From a8b1a00e06e43ab7e9514f3764d5f2d031c0d41f Mon Sep 17 00:00:00 2001 From: Daan Vanden Bosch Date: Tue, 16 Jul 2024 21:47:47 +0200 Subject: [PATCH] All code now compiles with Kotlin 2.0.0 and all tests pass. --- .github/workflows/deploy.yml | 19 +- .github/workflows/tests.yml | 24 +- .gitignore | 3 + README.md | 6 +- build.gradle.kts | 11 - buildSrc/build.gradle.kts | 4 +- .../phantasmal/ExperimentalAnnotations.kt | 8 - .../kotlin/world/phantasmal/common.gradle.kts | 38 +- .../kotlin/world/phantasmal/js.gradle.kts | 15 +- .../kotlin/world/phantasmal/jvm.gradle.kts | 21 +- .../world/phantasmal/multiplatform.gradle.kts | 50 +- .../phantasmal/cell/AbstractDependency.kt | 4 +- .../phantasmal/cell/list/SimpleListCell.kt | 12 +- ...edListCellPredicateDependencyEmitsTests.kt | 3 +- .../phantasmal/core/PrimitiveExtensions.kt | 9 +- .../jsMain/kotlin/world/phantasmal/core/Js.kt | 11 +- .../phantasmal/core/PrimitiveExtensions.kt | 9 - .../phantasmal/core/PrimitiveExtensions.kt | 9 - gradle/wrapper/gradle-wrapper.jar | Bin 59203 -> 59536 bytes gradle/wrapper/gradle-wrapper.properties | 2 +- gradlew | 2 +- kotlin-js-store/yarn.lock | 3300 +++++++++++++++++ psolib/build.gradle.kts | 14 +- .../psolib/fileFormats/quest/Bytecode.kt | 7 + .../fileFormats/quest/QuestNpcDefaultData.kt | 102 +- .../quest/QuestObjectDefaultData.kt | 200 +- psoserv/build.gradle.kts | 12 +- settings.gradle.kts | 4 + .../world/phantasmal/testUtils/TestUtils.kt | 10 +- web/assembly-worker/build.gradle.kts | 20 +- .../web/assemblyWorker/AsmAnalyser.kt | 2 + .../web/assemblyWorker/AsmServer.kt | 0 .../phantasmal/web/assemblyWorker/Main.kt | 0 .../web/assemblyWorker/AsmAnalyserTests.kt | 0 .../test/AssemblyWorkerTestSuite.kt | 0 .../assemblyWorker/test/MessagesAssertions.kt | 0 web/assets-generation/build.gradle.kts | 2 +- web/build.gradle.kts | 86 +- .../kotlin/world/phantasmal/web/Main.kt | 9 +- .../phantasmal/web/application/Application.kt | 0 .../controllers/MainContentController.kt | 0 .../controllers/NavigationController.kt | 0 .../application/widgets/ApplicationWidget.kt | 0 .../application/widgets/MainContentWidget.kt | 0 .../application/widgets/NavigationWidget.kt | 0 .../web/application/widgets/PwToolButton.kt | 0 .../world/phantasmal/web/core/PwTool.kt | 0 .../world/phantasmal/web/core/PwToolType.kt | 0 .../phantasmal/web/core/ThreeExtensions.kt | 4 +- .../phantasmal/web/core/commands/Command.kt | 0 .../web/core/controllers/DockController.kt | 0 .../PathAwareTabContainerController.kt | 0 .../world/phantasmal/web/core/dom/Dom.kt | 0 .../web/core/files/FilesExtensions.kt | 0 .../web/core/loading/AssetLoader.kt | 43 + .../web/core}/loading/LoadingCache.kt | 2 +- .../phantasmal/web/core/models/Server.kt | 0 .../phantasmal/web/core/observable/Emitter.kt | 0 .../web/core/observable/Observable.kt | 0 .../web/core/observable/ObservableUtils.kt | 0 .../web/core/persistence/KeyValueStore.kt | 0 .../web/core/persistence/Persister.kt | 0 .../core/rendering/DisposableThreeRenderer.kt | 0 .../rendering/DisposeObject3DResources.kt | 0 .../web/core/rendering/InputManager.kt | 0 .../rendering/OrbitalCameraInputManager.kt | 0 .../web/core/rendering/RenderContext.kt | 0 .../phantasmal/web/core/rendering/Renderer.kt | 0 .../core/rendering/conversion/Conversion.kt | 4 + .../core/rendering/conversion/MeshBuilder.kt | 0 .../rendering/conversion/NinjaAnimation.kt | 0 .../conversion/NinjaGeometryConversion.kt | 0 .../conversion/XvrTextureConversion.kt | 0 .../web/core/stores/ItemDropStore.kt | 2 +- .../web/core/stores/ItemTypeStore.kt | 2 +- .../phantasmal/web/core/stores/UiStore.kt | 0 .../world/phantasmal/web/core/undo/Undo.kt | 0 .../phantasmal/web/core/undo/UndoManager.kt | 0 .../phantasmal/web/core/undo/UndoStack.kt | 0 .../phantasmal/web/core/widgets/DockWidget.kt | 16 +- .../web/core/widgets/RendererWidget.kt | 0 .../web/core/widgets/UnavailableWidget.kt | 0 .../externals/goldenLayout/goldenLayout.kt | 2 +- .../javascriptLpSolver/javascriptLpSolver.kt | 0 .../web/externals/monacoEditor/editor.kt | 126 +- .../monacoEditor/editorExtensions.kt | 4 + .../web/externals/monacoEditor/languages.kt | 157 +- .../monacoEditor/languagesExtensions.kt | 8 + .../externals/monacoEditor/monacoEditor.kt | 22 +- .../externals/three/BufferGeometryUtils.kt | 0 .../web/externals/three/OrbitControls.kt | 0 .../phantasmal/web/externals/three/three.kt | 24 +- .../web/huntOptimizer/HuntOptimizer.kt | 0 .../web/huntOptimizer/HuntOptimizerUrls.kt | 0 .../controllers/HuntOptimizerController.kt | 0 .../controllers/MethodsController.kt | 0 .../MethodsForEpisodeController.kt | 0 .../OptimizationResultController.kt | 0 .../controllers/WantedItemsController.kt | 0 .../huntOptimizer/models/HuntMethodModel.kt | 0 .../models/OptimalMethodModel.kt | 0 .../models/OptimizationResultModel.kt | 0 .../huntOptimizer/models/SimpleQuestModel.kt | 0 .../huntOptimizer/models/WantedItemModel.kt | 0 .../persistence/HuntMethodPersister.kt | 4 +- .../persistence/WantedItemPersister.kt | 0 .../huntOptimizer/stores/HuntMethodStore.kt | 7 +- .../stores/HuntOptimizerStore.kt | 0 .../web/huntOptimizer/widgets/HelpWidget.kt | 0 .../widgets/HuntOptimizerWidget.kt | 0 .../widgets/MethodsForEpisodeWidget.kt | 0 .../huntOptimizer/widgets/MethodsWidget.kt | 0 .../widgets/OptimizationResultWidget.kt | 0 .../huntOptimizer/widgets/OptimizerWidget.kt | 0 .../widgets/WantedItemsWidget.kt | 0 .../phantasmal/web/questEditor/QuestEditor.kt | 0 .../phantasmal/web/questEditor/QuestRunner.kt | 0 .../web/questEditor/asm/AsmAnalyser.kt | 0 .../asm/monaco/AsmCompletionItemProvider.kt | 0 .../asm/monaco/AsmDefinitionProvider.kt | 0 .../monaco/AsmDocumentHighlightProvider.kt | 0 .../asm/monaco/AsmDocumentSymbolProvider.kt | 0 .../asm/monaco/AsmHoverProvider.kt | 0 .../asm/monaco/AsmLanguageConfiguration.kt | 0 .../asm/monaco/AsmMonarchLanguage.kt | 0 .../asm/monaco/AsmSignatureHelpProvider.kt | 0 .../questEditor/asm/monaco/EditorHistory.kt | 0 .../questEditor/asm/monaco/MonacoProvider.kt | 0 .../web/questEditor/asm/monaco/MonacoUtils.kt | 0 .../commands/CreateEntityCommand.kt | 0 .../commands/CreateEventActionCommand.kt | 0 .../commands/CreateEventCommand.kt | 0 .../commands/DeleteEntityCommand.kt | 0 .../commands/DeleteEventActionCommand.kt | 0 .../commands/DeleteEventCommand.kt | 0 .../commands/EditEntityPropCommand.kt | 0 .../commands/EditEntityPropertyCommand.kt | 0 .../commands/EditEntitySectionCommand.kt | 0 .../EditEventActionPropertyCommand.kt | 0 .../commands/EditEventPropertyCommand.kt | 0 .../commands/EditQuestPropertyCommand.kt | 0 .../commands/RotateEntityCommand.kt | 0 .../commands/TranslateEntityCommand.kt | 0 .../controllers/AsmEditorController.kt | 0 .../controllers/EntityInfoController.kt | 0 .../controllers/EntityListController.kt | 0 .../controllers/EventsController.kt | 0 .../controllers/NpcCountsController.kt | 0 .../controllers/QuestEditorController.kt | 0 .../QuestEditorToolbarController.kt | 51 +- .../controllers/QuestInfoController.kt | 0 .../questEditor/loading/AreaAssetLoader.kt | 1 + .../questEditor/loading/EntityAssetLoader.kt | 1 + .../web/questEditor/loading/QuestLoader.kt | 1 + .../web/questEditor/models/AreaModel.kt | 0 .../questEditor/models/AreaVariantModel.kt | 0 .../questEditor/models/QuestEntityModel.kt | 0 .../models/QuestEntityPropModel.kt | 0 .../models/QuestEventActionModel.kt | 0 .../web/questEditor/models/QuestEventModel.kt | 0 .../web/questEditor/models/QuestModel.kt | 0 .../web/questEditor/models/QuestNpcModel.kt | 0 .../questEditor/models/QuestObjectModel.kt | 0 .../web/questEditor/models/SectionModel.kt | 0 .../web/questEditor/models/WaveModel.kt | 0 .../persistence/QuestEditorUiPersister.kt | 0 .../questEditor/rendering/AreaMeshManager.kt | 0 .../rendering/DestinationInstance.kt | 0 .../rendering/DestinationInstanceContainer.kt | 0 .../rendering/EntityImageRenderer.kt | 2 +- .../questEditor/rendering/EntityInstance.kt | 0 .../rendering/EntityInstanceContainer.kt | 0 .../rendering/EntityMeshManager.kt | 2 +- .../web/questEditor/rendering/Instance.kt | 0 .../rendering/InstanceContainer.kt | 0 .../rendering/QuestEditorMeshManager.kt | 0 .../questEditor/rendering/QuestMeshManager.kt | 0 .../rendering/QuestRenderContext.kt | 0 .../questEditor/rendering/QuestRenderer.kt | 0 .../web/questEditor/rendering/input/Evt.kt | 0 .../rendering/input/QuestInputManager.kt | 0 .../rendering/input/state/CreationState.kt | 0 .../rendering/input/state/IdleState.kt | 0 .../rendering/input/state/RotationState.kt | 0 .../rendering/input/state/State.kt | 0 .../rendering/input/state/StateContext.kt | 0 .../rendering/input/state/TranslationState.kt | 0 .../web/questEditor/stores/AreaStore.kt | 0 .../web/questEditor/stores/AsmStore.kt | 0 .../web/questEditor/stores/ModelConversion.kt | 0 .../questEditor/stores/QuestEditorStore.kt | 0 .../web/questEditor/undo/TextModelUndo.kt | 0 .../questEditor/widgets/AsmEditorWidget.kt | 0 .../questEditor/widgets/AsmToolbarWidget.kt | 0 .../web/questEditor/widgets/AsmWidget.kt | 0 .../web/questEditor/widgets/EntityDnd.kt | 0 .../questEditor/widgets/EntityInfoWidget.kt | 0 .../questEditor/widgets/EntityListWidget.kt | 0 .../questEditor/widgets/EventActionWidget.kt | 0 .../web/questEditor/widgets/EventWidget.kt | 0 .../web/questEditor/widgets/EventsWidget.kt | 0 .../questEditor/widgets/NpcCountsWidget.kt | 0 .../widgets/QuestEditorRendererWidget.kt | 0 .../widgets/QuestEditorToolbarWidget.kt | 0 .../questEditor/widgets/QuestEditorWidget.kt | 0 .../questEditor/widgets/QuestInfoWidget.kt | 0 .../widgets/QuestRendererWidget.kt | 0 .../world/phantasmal/web/viewer/Viewer.kt | 0 .../world/phantasmal/web/viewer/ViewerUrls.kt | 0 .../CharacterClassOptionsController.kt | 0 .../viewer/controllers/ViewerController.kt | 0 .../controllers/ViewerToolbarController.kt | 0 .../viewer/loading/AnimationAssetLoader.kt | 2 +- .../loading/CharacterClassAssetLoader.kt | 2 +- .../web/viewer/models/AnimationModel.kt | 0 .../web/viewer/models/CharacterClass.kt | 0 .../web/viewer/rendering/MeshRenderer.kt | 0 .../web/viewer/rendering/TextureRenderer.kt | 0 .../web/viewer/stores/ViewerStore.kt | 0 .../widgets/CharacterClassOptionsWidget.kt | 0 .../web/viewer/widgets/SelectionWidget.kt | 0 .../web/viewer/widgets/ViewerToolbarWidget.kt | 0 .../web/viewer/widgets/ViewerWidget.kt | 0 .../resources/assets/areas/map_ancient01.xvm | Bin .../assets/areas/map_ancient01_00c.rel | Bin .../assets/areas/map_ancient01_00n.rel | Bin .../assets/areas/map_ancient01_01c.rel | Bin .../assets/areas/map_ancient01_01n.rel | Bin .../assets/areas/map_ancient01_02c.rel | Bin .../assets/areas/map_ancient01_02n.rel | Bin .../assets/areas/map_ancient01_03c.rel | Bin .../assets/areas/map_ancient01_03n.rel | Bin .../assets/areas/map_ancient01_04c.rel | Bin .../assets/areas/map_ancient01_04n.rel | Bin .../resources/assets/areas/map_ancient02.xvm | Bin .../assets/areas/map_ancient02_00c.rel | Bin .../assets/areas/map_ancient02_00n.rel | Bin .../assets/areas/map_ancient02_01c.rel | Bin .../assets/areas/map_ancient02_01n.rel | Bin .../assets/areas/map_ancient02_02c.rel | Bin .../assets/areas/map_ancient02_02n.rel | Bin .../assets/areas/map_ancient02_03c.rel | Bin .../assets/areas/map_ancient02_03n.rel | Bin .../assets/areas/map_ancient02_04c.rel | Bin .../assets/areas/map_ancient02_04n.rel | Bin .../resources/assets/areas/map_ancient03.xvm | Bin .../assets/areas/map_ancient03_00c.rel | Bin .../assets/areas/map_ancient03_00n.rel | Bin .../assets/areas/map_ancient03_01c.rel | Bin .../assets/areas/map_ancient03_01n.rel | Bin .../assets/areas/map_ancient03_02c.rel | Bin .../assets/areas/map_ancient03_02n.rel | Bin .../assets/areas/map_ancient03_03c.rel | Bin .../assets/areas/map_ancient03_03n.rel | Bin .../assets/areas/map_ancient03_04c.rel | Bin .../assets/areas/map_ancient03_04n.rel | Bin .../resources/assets/areas/map_boss01.xvm | Bin .../resources/assets/areas/map_boss01c.rel | Bin .../resources/assets/areas/map_boss01n.rel | Bin .../resources/assets/areas/map_boss02.xvm | Bin .../resources/assets/areas/map_boss02c.rel | Bin .../resources/assets/areas/map_boss02n.rel | Bin .../resources/assets/areas/map_boss03.xvm | Bin .../resources/assets/areas/map_boss03c.rel | Bin .../resources/assets/areas/map_boss03n.rel | Bin .../resources/assets/areas/map_boss05.xvm | Bin .../resources/assets/areas/map_boss05c.rel | Bin .../resources/assets/areas/map_boss05m.xvm | Bin .../resources/assets/areas/map_boss05n.rel | Bin .../resources/assets/areas/map_boss06.xvm | Bin .../resources/assets/areas/map_boss06c.rel | Bin .../resources/assets/areas/map_boss06n.rel | Bin .../resources/assets/areas/map_boss07.xvm | Bin .../resources/assets/areas/map_boss07c.rel | Bin .../resources/assets/areas/map_boss07n.rel | Bin .../resources/assets/areas/map_boss08.xvm | Bin .../resources/assets/areas/map_boss08c.rel | Bin .../resources/assets/areas/map_boss08m.xvm | Bin .../resources/assets/areas/map_boss08n.rel | Bin .../resources/assets/areas/map_boss09.xvm | Bin .../resources/assets/areas/map_boss09_00c.rel | Bin .../resources/assets/areas/map_boss09_00n.rel | Bin .../resources/assets/areas/map_cave01.xvm | Bin .../resources/assets/areas/map_cave01_00c.rel | Bin .../resources/assets/areas/map_cave01_00n.rel | Bin .../resources/assets/areas/map_cave01_01c.rel | Bin .../resources/assets/areas/map_cave01_01n.rel | Bin .../resources/assets/areas/map_cave01_02c.rel | Bin .../resources/assets/areas/map_cave01_02n.rel | Bin .../resources/assets/areas/map_cave01_03c.rel | Bin .../resources/assets/areas/map_cave01_03n.rel | Bin .../resources/assets/areas/map_cave01_04c.rel | Bin .../resources/assets/areas/map_cave01_04n.rel | Bin .../resources/assets/areas/map_cave01_05c.rel | Bin .../resources/assets/areas/map_cave01_05n.rel | Bin .../resources/assets/areas/map_cave02.xvm | Bin .../resources/assets/areas/map_cave02_00c.rel | Bin .../resources/assets/areas/map_cave02_00n.rel | Bin .../resources/assets/areas/map_cave02_01c.rel | Bin .../resources/assets/areas/map_cave02_01n.rel | Bin .../resources/assets/areas/map_cave02_02c.rel | Bin .../resources/assets/areas/map_cave02_02n.rel | Bin .../resources/assets/areas/map_cave02_03c.rel | Bin .../resources/assets/areas/map_cave02_03n.rel | Bin .../resources/assets/areas/map_cave02_04c.rel | Bin .../resources/assets/areas/map_cave02_04n.rel | Bin .../resources/assets/areas/map_cave03.xvm | Bin .../resources/assets/areas/map_cave03_00c.rel | Bin .../resources/assets/areas/map_cave03_00n.rel | Bin .../resources/assets/areas/map_cave03_01c.rel | Bin .../resources/assets/areas/map_cave03_01n.rel | Bin .../resources/assets/areas/map_cave03_02c.rel | Bin .../resources/assets/areas/map_cave03_02n.rel | Bin .../resources/assets/areas/map_cave03_03c.rel | Bin .../resources/assets/areas/map_cave03_03n.rel | Bin .../resources/assets/areas/map_cave03_04c.rel | Bin .../resources/assets/areas/map_cave03_04n.rel | Bin .../resources/assets/areas/map_cave03_05c.rel | Bin .../resources/assets/areas/map_cave03_05n.rel | Bin .../resources/assets/areas/map_city00.xvm | Bin .../resources/assets/areas/map_city00_00c.rel | Bin .../resources/assets/areas/map_city00_00n.rel | Bin .../resources/assets/areas/map_city02.xvm | Bin .../resources/assets/areas/map_city02_00c.rel | Bin .../resources/assets/areas/map_city02_00n.rel | Bin .../resources/assets/areas/map_crater01.xvm | Bin .../assets/areas/map_crater01_00c.rel | Bin .../assets/areas/map_crater01_00n.rel | Bin .../resources/assets/areas/map_darkfalz00.xvm | Bin .../assets/areas/map_darkfalz00c.rel | Bin .../assets/areas/map_darkfalz00n.rel | Bin .../resources/assets/areas/map_desert01.xvm | Bin .../assets/areas/map_desert01_00c.rel | Bin .../assets/areas/map_desert01_00n.rel | Bin .../assets/areas/map_desert01_01c.rel | Bin .../assets/areas/map_desert01_01n.rel | Bin .../assets/areas/map_desert01_02c.rel | Bin .../assets/areas/map_desert01_02n.rel | Bin .../resources/assets/areas/map_desert02.xvm | Bin .../assets/areas/map_desert02_00c.rel | Bin .../assets/areas/map_desert02_00n.rel | Bin .../assets/areas/map_desert02_01c.rel | Bin .../assets/areas/map_desert02_01n.rel | Bin .../assets/areas/map_desert02_02c.rel | Bin .../assets/areas/map_desert02_02n.rel | Bin .../resources/assets/areas/map_desert03.xvm | Bin .../assets/areas/map_desert03_00c.rel | Bin .../assets/areas/map_desert03_00n.rel | Bin .../assets/areas/map_desert03_01c.rel | Bin .../assets/areas/map_desert03_01n.rel | Bin .../assets/areas/map_desert03_02c.rel | Bin .../assets/areas/map_desert03_02n.rel | Bin .../resources/assets/areas/map_forest01.xvm | Bin .../resources/assets/areas/map_forest01c.rel | Bin .../resources/assets/areas/map_forest01n.rel | Bin .../resources/assets/areas/map_forest02.xvm | Bin .../resources/assets/areas/map_forest02c.rel | Bin .../resources/assets/areas/map_forest02n.rel | Bin .../resources/assets/areas/map_jungle01.xvm | Bin .../assets/areas/map_jungle01_00c.rel | Bin .../assets/areas/map_jungle01_00n.rel | Bin .../resources/assets/areas/map_jungle01m.xvm | Bin .../resources/assets/areas/map_jungle02.xvm | Bin .../assets/areas/map_jungle02_00c.rel | Bin .../assets/areas/map_jungle02_00n.rel | Bin .../resources/assets/areas/map_jungle02m.xvm | Bin .../resources/assets/areas/map_jungle03.xvm | Bin .../assets/areas/map_jungle03_00c.rel | Bin .../assets/areas/map_jungle03_00n.rel | Bin .../resources/assets/areas/map_jungle03m.xvm | Bin .../resources/assets/areas/map_jungle04.xvm | Bin .../assets/areas/map_jungle04_00c.rel | Bin .../assets/areas/map_jungle04_00n.rel | Bin .../assets/areas/map_jungle04_01c.rel | Bin .../assets/areas/map_jungle04_01n.rel | Bin .../assets/areas/map_jungle04_02c.rel | Bin .../assets/areas/map_jungle04_02n.rel | Bin .../resources/assets/areas/map_jungle04m.xvm | Bin .../resources/assets/areas/map_jungle05.xvm | Bin .../assets/areas/map_jungle05_00c.rel | Bin .../assets/areas/map_jungle05_00n.rel | Bin .../resources/assets/areas/map_jungle05m.xvm | Bin .../resources/assets/areas/map_jungle06.xvm | Bin .../assets/areas/map_jungle06_00c.rel | Bin .../assets/areas/map_jungle06_00n.rel | Bin .../resources/assets/areas/map_jungle07.xvm | Bin .../assets/areas/map_jungle07_00c.rel | Bin .../assets/areas/map_jungle07_00n.rel | Bin .../assets/areas/map_jungle07_01c.rel | Bin .../assets/areas/map_jungle07_01n.rel | Bin .../assets/areas/map_jungle07_02c.rel | Bin .../assets/areas/map_jungle07_02n.rel | Bin .../assets/areas/map_jungle07_03c.rel | Bin .../assets/areas/map_jungle07_03n.rel | Bin .../assets/areas/map_jungle07_04c.rel | Bin .../assets/areas/map_jungle07_04n.rel | Bin .../resources/assets/areas/map_labo00.xvm | Bin .../resources/assets/areas/map_labo00_00c.rel | Bin .../resources/assets/areas/map_labo00_00n.rel | Bin .../resources/assets/areas/map_labo00m.xvm | Bin .../resources/assets/areas/map_lobby_00c.rel | Bin .../resources/assets/areas/map_lobby_00n.rel | Bin .../resources/assets/areas/map_lobby_01.xvm | Bin .../resources/assets/areas/map_lobby_01c.rel | Bin .../resources/assets/areas/map_lobby_01n.rel | Bin .../resources/assets/areas/map_lobby_02c.rel | Bin .../resources/assets/areas/map_lobby_02n.rel | Bin .../resources/assets/areas/map_lobby_03c.rel | Bin .../resources/assets/areas/map_lobby_03n.rel | Bin .../resources/assets/areas/map_lobby_04c.rel | Bin .../resources/assets/areas/map_lobby_04n.rel | Bin .../resources/assets/areas/map_lobby_05c.rel | Bin .../resources/assets/areas/map_lobby_05n.rel | Bin .../resources/assets/areas/map_lobby_06c.rel | Bin .../resources/assets/areas/map_lobby_06n.rel | Bin .../resources/assets/areas/map_lobby_07c.rel | Bin .../resources/assets/areas/map_lobby_07n.rel | Bin .../resources/assets/areas/map_lobby_08c.rel | Bin .../resources/assets/areas/map_lobby_08n.rel | Bin .../resources/assets/areas/map_lobby_09c.rel | Bin .../resources/assets/areas/map_lobby_09n.rel | Bin .../resources/assets/areas/map_lobby_10c.rel | Bin .../resources/assets/areas/map_lobby_10n.rel | Bin .../assets/areas/map_lobby_green_be00.xvm | Bin .../assets/areas/map_lobby_green_be00c.rel | Bin .../assets/areas/map_lobby_green_be00n.rel | Bin .../assets/areas/map_lobby_red_be00.xvm | Bin .../assets/areas/map_lobby_red_be00c.rel | Bin .../assets/areas/map_lobby_red_be00n.rel | Bin .../assets/areas/map_lobby_yellow_be00.xvm | Bin .../assets/areas/map_lobby_yellow_be00c.rel | Bin .../assets/areas/map_lobby_yellow_be00n.rel | Bin .../resources/assets/areas/map_machine01.xvm | Bin .../assets/areas/map_machine01_00c.rel | Bin .../assets/areas/map_machine01_00n.rel | Bin .../assets/areas/map_machine01_01c.rel | Bin .../assets/areas/map_machine01_01n.rel | Bin .../assets/areas/map_machine01_02c.rel | Bin .../assets/areas/map_machine01_02n.rel | Bin .../assets/areas/map_machine01_03c.rel | Bin .../assets/areas/map_machine01_03n.rel | Bin .../assets/areas/map_machine01_04c.rel | Bin .../assets/areas/map_machine01_04n.rel | Bin .../assets/areas/map_machine01_05c.rel | Bin .../assets/areas/map_machine01_05n.rel | Bin .../resources/assets/areas/map_machine01m.xvm | Bin .../resources/assets/areas/map_machine02.xvm | Bin .../assets/areas/map_machine02_00c.rel | Bin .../assets/areas/map_machine02_00n.rel | Bin .../assets/areas/map_machine02_01c.rel | Bin .../assets/areas/map_machine02_01n.rel | Bin .../assets/areas/map_machine02_02c.rel | Bin .../assets/areas/map_machine02_02n.rel | Bin .../assets/areas/map_machine02_03c.rel | Bin .../assets/areas/map_machine02_03n.rel | Bin .../assets/areas/map_machine02_04c.rel | Bin .../assets/areas/map_machine02_04n.rel | Bin .../assets/areas/map_machine02_05c.rel | Bin .../assets/areas/map_machine02_05n.rel | Bin .../resources/assets/areas/map_machine02m.xvm | Bin .../resources/assets/areas/map_ruins01.xvm | Bin .../assets/areas/map_ruins01_00c.rel | Bin .../assets/areas/map_ruins01_00n.rel | Bin .../assets/areas/map_ruins01_01c.rel | Bin .../assets/areas/map_ruins01_01n.rel | Bin .../assets/areas/map_ruins01_02c.rel | Bin .../assets/areas/map_ruins01_02n.rel | Bin .../resources/assets/areas/map_ruins02.xvm | Bin .../assets/areas/map_ruins02_00c.rel | Bin .../assets/areas/map_ruins02_00n.rel | Bin .../assets/areas/map_ruins02_01c.rel | Bin .../assets/areas/map_ruins02_01n.rel | Bin .../assets/areas/map_ruins02_02c.rel | Bin .../assets/areas/map_ruins02_02n.rel | Bin .../resources/assets/areas/map_seabed01.xvm | Bin .../assets/areas/map_seabed01_00c.rel | Bin .../assets/areas/map_seabed01_00n.rel | Bin .../assets/areas/map_seabed01_01c.rel | Bin .../assets/areas/map_seabed01_01n.rel | Bin .../assets/areas/map_seabed01_02c.rel | Bin .../assets/areas/map_seabed01_02n.rel | Bin .../resources/assets/areas/map_seabed01m.xvm | Bin .../resources/assets/areas/map_seabed02.xvm | Bin .../assets/areas/map_seabed02_00c.rel | Bin .../assets/areas/map_seabed02_00n.rel | Bin .../assets/areas/map_seabed02_01c.rel | Bin .../assets/areas/map_seabed02_01n.rel | Bin .../assets/areas/map_seabed02_02c.rel | Bin .../assets/areas/map_seabed02_02n.rel | Bin .../resources/assets/areas/map_seabed02m.xvm | Bin .../resources/assets/areas/map_soccer11.xvm | Bin .../resources/assets/areas/map_soccer11c.rel | Bin .../resources/assets/areas/map_soccer11n.rel | Bin .../resources/assets/areas/map_soccer12.xvm | Bin .../resources/assets/areas/map_soccer12c.rel | Bin .../resources/assets/areas/map_soccer12n.rel | Bin .../resources/assets/areas/map_space01.xvm | Bin .../assets/areas/map_space01_00c.rel | Bin .../assets/areas/map_space01_00n.rel | Bin .../assets/areas/map_space01_01c.rel | Bin .../assets/areas/map_space01_01n.rel | Bin .../assets/areas/map_space01_02c.rel | Bin .../assets/areas/map_space01_02n.rel | Bin .../resources/assets/areas/map_space02.xvm | Bin .../assets/areas/map_space02_00c.rel | Bin .../assets/areas/map_space02_00n.rel | Bin .../assets/areas/map_space02_01c.rel | Bin .../assets/areas/map_space02_01n.rel | Bin .../assets/areas/map_space02_02c.rel | Bin .../assets/areas/map_space02_02n.rel | Bin .../resources/assets/areas/map_test01.xvm | Bin .../resources/assets/areas/map_test01_00c.rel | Bin .../resources/assets/areas/map_test01_00n.rel | Bin .../resources/assets/areas/map_vs01.xvm | Bin .../resources/assets/areas/map_vs01_00c.rel | Bin .../resources/assets/areas/map_vs01_00n.rel | Bin .../resources/assets/areas/map_vs01_01c.rel | Bin .../resources/assets/areas/map_vs01_01n.rel | Bin .../resources/assets/areas/map_vs01_02c.rel | Bin .../resources/assets/areas/map_vs01_02n.rel | Bin .../resources/assets/areas/map_vs02.xvm | Bin .../resources/assets/areas/map_vs02_00c.rel | Bin .../resources/assets/areas/map_vs02_00n.rel | Bin .../resources/assets/areas/map_vs02_01c.rel | Bin .../resources/assets/areas/map_vs02_01n.rel | Bin .../resources/assets/areas/map_vs02_02c.rel | Bin .../resources/assets/areas/map_vs02_02n.rel | Bin .../resources/assets/areas/map_wilds01.xvm | Bin .../assets/areas/map_wilds01_00c.rel | Bin .../assets/areas/map_wilds01_00n.rel | Bin .../assets/areas/map_wilds01_01c.rel | Bin .../assets/areas/map_wilds01_01n.rel | Bin .../assets/areas/map_wilds01_02c.rel | Bin .../assets/areas/map_wilds01_02n.rel | Bin .../assets/areas/map_wilds01_03c.rel | Bin .../assets/areas/map_wilds01_03n.rel | Bin .../resources/assets/box_drops.ephinea.json | 0 .../resources/assets/enemy_drops.ephinea.json | 0 .../assets/images/sectionids/Bluefull.png | Bin .../assets/images/sectionids/Greenill.png | Bin .../assets/images/sectionids/Oran.png | Bin .../assets/images/sectionids/Pinkal.png | Bin .../assets/images/sectionids/Purplenum.png | Bin .../assets/images/sectionids/Redria.png | Bin .../assets/images/sectionids/Skyly.png | Bin .../assets/images/sectionids/Viridia.png | Bin .../assets/images/sectionids/Whitill.png | Bin .../assets/images/sectionids/Yellowboze.png | Bin .../resources/assets/item_types.ephinea.json | 0 .../resources/assets/npcs/AlRappy.nj | Bin .../resources/assets/npcs/AlRappy.xvm | Bin .../resources/assets/npcs/Astark.nj | Bin .../resources/assets/npcs/Astark.xvm | Bin .../resources/assets/npcs/BaBoota.nj | Bin .../resources/assets/npcs/BaBoota.xvm | Bin .../resources/assets/npcs/BarbaRay.nj | Bin .../resources/assets/npcs/BarbaRay.xvm | Bin .../resources/assets/npcs/BarbarousWolf.nj | Bin .../resources/assets/npcs/BarbarousWolf.xvm | Bin .../resources/assets/npcs/BlueSoldier.nj | Bin .../resources/assets/npcs/BlueSoldier.xvm | Bin .../resources/assets/npcs/Booma.nj | Bin .../resources/assets/npcs/Booma.xvm | Bin .../resources/assets/npcs/Boota.nj | Bin .../resources/assets/npcs/Boota.xvm | Bin .../resources/assets/npcs/Bulclaw.nj | Bin .../resources/assets/npcs/Bulclaw.xvm | Bin .../resources/assets/npcs/Bulk.nj | Bin .../resources/assets/npcs/Bulk.xvm | Bin .../resources/assets/npcs/Canadine.nj | Bin .../resources/assets/npcs/Canadine.xvm | Bin .../resources/assets/npcs/Canane.nj | Bin .../resources/assets/npcs/Canane.xvm | Bin .../resources/assets/npcs/ChaosBringer.nj | Bin .../resources/assets/npcs/ChaosBringer.xvm | Bin .../resources/assets/npcs/ChaosSorcerer.nj | Bin .../resources/assets/npcs/ChaosSorcerer.xvm | Bin .../resources/assets/npcs/Claw.nj | Bin .../resources/assets/npcs/Claw.xvm | Bin .../resources/assets/npcs/DarkBelra.nj | Bin .../resources/assets/npcs/DarkBelra.xvm | Bin .../resources/assets/npcs/DarkFalz.nj | Bin .../resources/assets/npcs/DarkFalz.xvm | Bin .../resources/assets/npcs/DarkGunner.nj | Bin .../resources/assets/npcs/DarkGunner.xvm | Bin .../resources/assets/npcs/DeRolLe.nj | Bin .../resources/assets/npcs/DeRolLe.xvm | Bin .../resources/assets/npcs/DelLily.nj | Bin .../resources/assets/npcs/DelLily.xvm | Bin .../resources/assets/npcs/DelRappy.nj | Bin .../resources/assets/npcs/DelRappy.xvm | Bin .../resources/assets/npcs/Delbiter.nj | Bin .../resources/assets/npcs/Delbiter.xvm | Bin .../resources/assets/npcs/Deldepth.nj | Bin .../resources/assets/npcs/Deldepth.xvm | Bin .../resources/assets/npcs/Delsaber.nj | Bin .../resources/assets/npcs/Delsaber.xvm | Bin .../resources/assets/npcs/Dimenian.nj | Bin .../resources/assets/npcs/Dimenian.xvm | Bin .../resources/assets/npcs/Dolmdarl.nj | Bin .../resources/assets/npcs/Dolmdarl.xvm | Bin .../resources/assets/npcs/Dolmolm.nj | Bin .../resources/assets/npcs/Dolmolm.xvm | Bin .../resources/assets/npcs/Dorphon.nj | Bin .../resources/assets/npcs/Dorphon.xvm | Bin .../resources/assets/npcs/DorphonEclair.nj | Bin .../resources/assets/npcs/DorphonEclair.xvm | Bin .../resources/assets/npcs/Dragon.nj | Bin .../resources/assets/npcs/Dragon.xvm | Bin .../resources/assets/npcs/Dubchic.nj | Bin .../resources/assets/npcs/Dubchic.xvm | Bin .../resources/assets/npcs/Dubswitch.xj | Bin .../resources/assets/npcs/Dubswitch.xvm | Bin .../resources/assets/npcs/Epsilon.nj | Bin .../resources/assets/npcs/Epsilon.xvm | Bin .../resources/assets/npcs/EvilShark.nj | Bin .../resources/assets/npcs/EvilShark.xvm | Bin .../resources/assets/npcs/FemaleFat.nj | Bin .../resources/assets/npcs/FemaleFat.xvm | Bin .../resources/assets/npcs/FemaleMacho.nj | Bin .../resources/assets/npcs/FemaleMacho.xvm | Bin .../resources/assets/npcs/FemaleTall.nj | Bin .../resources/assets/npcs/FemaleTall.xvm | Bin .../resources/assets/npcs/GalGryphon.nj | Bin .../resources/assets/npcs/GalGryphon.xvm | Bin .../resources/assets/npcs/Garanz.nj | Bin .../resources/assets/npcs/Garanz.xvm | Bin .../resources/assets/npcs/Gee.nj | Bin .../resources/assets/npcs/Gee.xvm | Bin .../resources/assets/npcs/GiGue.nj | Bin .../resources/assets/npcs/GiGue.xvm | Bin .../resources/assets/npcs/Gibbles.nj | Bin .../resources/assets/npcs/Gibbles.xvm | Bin .../resources/assets/npcs/Gigobooma.nj | Bin .../resources/assets/npcs/Gigobooma.xvm | Bin .../resources/assets/npcs/Gilchic.nj | Bin .../resources/assets/npcs/Gilchic.xvm | Bin .../resources/assets/npcs/Girtablulu.nj | Bin .../resources/assets/npcs/Girtablulu.xvm | Bin .../resources/assets/npcs/Gobooma.nj | Bin .../resources/assets/npcs/Gobooma.xvm | Bin .../resources/assets/npcs/GolDragon.nj | Bin .../resources/assets/npcs/GolDragon.xvm | Bin .../resources/assets/npcs/Goran.nj | Bin .../resources/assets/npcs/Goran.xvm | Bin .../resources/assets/npcs/GoranDetonator.nj | Bin .../resources/assets/npcs/GoranDetonator.xvm | Bin .../resources/assets/npcs/GrassAssassin.nj | Bin .../resources/assets/npcs/GrassAssassin.xvm | Bin .../resources/assets/npcs/GuilShark.nj | Bin .../resources/assets/npcs/GuilShark.xvm | Bin .../resources/assets/npcs/GuildLady.nj | Bin .../resources/assets/npcs/GuildLady.xvm | Bin .../resources/assets/npcs/Hildebear.nj | Bin .../resources/assets/npcs/Hildebear.xvm | Bin .../resources/assets/npcs/Hildeblue.nj | Bin .../resources/assets/npcs/Hildeblue.xvm | Bin .../resources/assets/npcs/IllGill.nj | Bin .../resources/assets/npcs/IllGill.xvm | Bin .../resources/assets/npcs/Irene.nj | Bin .../resources/assets/npcs/Irene.xvm | Bin .../resources/assets/npcs/ItemShop.nj | Bin .../resources/assets/npcs/ItemShop.xvm | Bin .../resources/assets/npcs/Kondrieu.nj | Bin .../resources/assets/npcs/Kondrieu.xvm | Bin .../resources/assets/npcs/LaDimenian.nj | Bin .../resources/assets/npcs/LaDimenian.xvm | Bin .../resources/assets/npcs/LoveRappy.nj | Bin .../resources/assets/npcs/LoveRappy.xvm | Bin .../resources/assets/npcs/MaleDwarf.nj | Bin .../resources/assets/npcs/MaleDwarf.xvm | Bin .../resources/assets/npcs/MaleFat.nj | Bin .../resources/assets/npcs/MaleFat.xvm | Bin .../resources/assets/npcs/MaleMacho.nj | Bin .../resources/assets/npcs/MaleMacho.xvm | Bin .../resources/assets/npcs/MaleOld.nj | Bin .../resources/assets/npcs/MaleOld.xvm | Bin .../resources/assets/npcs/Mericarol.nj | Bin .../resources/assets/npcs/Mericarol.xvm | Bin .../resources/assets/npcs/Mericus.nj | Bin .../resources/assets/npcs/Mericus.xvm | Bin .../resources/assets/npcs/Merikle.nj | Bin .../resources/assets/npcs/Merikle.xvm | Bin .../resources/assets/npcs/Merillia.nj | Bin .../resources/assets/npcs/Merillia.xvm | Bin .../resources/assets/npcs/Meriltas.nj | Bin .../resources/assets/npcs/Meriltas.xvm | Bin .../resources/assets/npcs/MerissaA.nj | Bin .../resources/assets/npcs/MerissaA.xvm | Bin .../resources/assets/npcs/MerissaAA.nj | Bin .../resources/assets/npcs/MerissaAA.xvm | Bin .../resources/assets/npcs/Monest.nj | Bin .../resources/assets/npcs/Monest.xvm | Bin .../resources/assets/npcs/Morfos.nj | Bin .../resources/assets/npcs/Morfos.xvm | Bin .../resources/assets/npcs/Mothmant.nj | Bin .../resources/assets/npcs/Mothmant.xvm | Bin .../resources/assets/npcs/NanoDragon.nj | Bin .../resources/assets/npcs/NanoDragon.xvm | Bin .../resources/assets/npcs/NarLily.nj | Bin .../resources/assets/npcs/NarLily.xvm | Bin .../resources/assets/npcs/Nurse.nj | Bin .../resources/assets/npcs/Nurse.xvm | Bin .../resources/assets/npcs/Nurse2.nj | Bin .../resources/assets/npcs/Nurse2.xvm | Bin .../resources/assets/npcs/OlgaFlow.nj | Bin .../resources/assets/npcs/OlgaFlow.xvm | Bin .../resources/assets/npcs/PalShark.nj | Bin .../resources/assets/npcs/PalShark.xvm | Bin .../resources/assets/npcs/PanArms.nj | Bin .../resources/assets/npcs/PanArms.xvm | Bin .../resources/assets/npcs/Pazuzu.nj | Bin .../resources/assets/npcs/Pazuzu.xvm | Bin .../resources/assets/npcs/PofuillySlime.nj | Bin .../resources/assets/npcs/PofuillySlime.xvm | Bin .../resources/assets/npcs/PoisonLily.nj | Bin .../resources/assets/npcs/PoisonLily.xvm | Bin .../resources/assets/npcs/PouillySlime.nj | Bin .../resources/assets/npcs/PouillySlime.xvm | Bin .../resources/assets/npcs/Principal.nj | Bin .../resources/assets/npcs/Principal.xvm | Bin .../resources/assets/npcs/PyroGoran.nj | Bin .../resources/assets/npcs/PyroGoran.xvm | Bin .../resources/assets/npcs/RagRappy.nj | Bin .../resources/assets/npcs/RagRappy.xvm | Bin .../resources/assets/npcs/Recobox.nj | Bin .../resources/assets/npcs/Recobox.xvm | Bin .../resources/assets/npcs/RedSoldier.nj | Bin .../resources/assets/npcs/RedSoldier.xvm | Bin .../resources/assets/npcs/SaintMilion.nj | Bin .../resources/assets/npcs/SaintMilion.xvm | Bin .../resources/assets/npcs/SandRappy.nj | Bin .../resources/assets/npcs/SandRappy.xvm | Bin .../resources/assets/npcs/SatelliteLizard.nj | Bin .../resources/assets/npcs/SatelliteLizard.xvm | Bin .../resources/assets/npcs/SavageWolf.nj | Bin .../resources/assets/npcs/SavageWolf.xvm | Bin .../resources/assets/npcs/Scientist.nj | Bin .../resources/assets/npcs/Scientist.xvm | Bin .../resources/assets/npcs/Shambertin.nj | Bin .../resources/assets/npcs/Shambertin.xvm | Bin .../resources/assets/npcs/SinowBeat.nj | Bin .../resources/assets/npcs/SinowBeat.xvm | Bin .../resources/assets/npcs/SinowBerill.nj | Bin .../resources/assets/npcs/SinowBerill.xvm | Bin .../resources/assets/npcs/SinowGold.nj | Bin .../resources/assets/npcs/SinowGold.xvm | Bin .../resources/assets/npcs/SinowSpigell.nj | Bin .../resources/assets/npcs/SinowSpigell.xvm | Bin .../resources/assets/npcs/SinowZele.nj | Bin .../resources/assets/npcs/SinowZele.xvm | Bin .../resources/assets/npcs/SinowZoa.nj | Bin .../resources/assets/npcs/SinowZoa.xvm | Bin .../resources/assets/npcs/SoDimenian.nj | Bin .../resources/assets/npcs/SoDimenian.xvm | Bin .../resources/assets/npcs/Tekker.nj | Bin .../resources/assets/npcs/Tekker.xvm | Bin .../resources/assets/npcs/UlGibbon.nj | Bin .../resources/assets/npcs/UlGibbon.xvm | Bin .../resources/assets/npcs/VolOptPart2.nj | Bin .../resources/assets/npcs/VolOptPart2.xvm | Bin .../resources/assets/npcs/Yowie.nj | Bin .../resources/assets/npcs/Yowie.xvm | Bin .../resources/assets/npcs/ZeBoota.nj | Bin .../resources/assets/npcs/ZeBoota.xvm | Bin .../resources/assets/npcs/ZolGibbon.nj | Bin .../resources/assets/npcs/ZolGibbon.xvm | Bin .../resources/assets/npcs/Zu.nj | Bin .../resources/assets/npcs/Zu.xvm | Bin .../resources/assets/objects/10-2.xj | Bin .../resources/assets/objects/10-2.xvm | Bin .../resources/assets/objects/10.xj | Bin .../resources/assets/objects/10.xvm | Bin .../resources/assets/objects/11-2.xj | Bin .../resources/assets/objects/11-2.xvm | Bin .../resources/assets/objects/11.xj | Bin .../resources/assets/objects/11.xvm | Bin .../resources/assets/objects/12-2.xj | Bin .../resources/assets/objects/12-2.xvm | Bin .../resources/assets/objects/12.xj | Bin .../resources/assets/objects/12.xvm | Bin .../resources/assets/objects/128-2.xj | Bin .../resources/assets/objects/128-3.xj | Bin .../resources/assets/objects/128-4.xj | Bin .../resources/assets/objects/128-5.xj | Bin .../resources/assets/objects/128.xj | Bin .../resources/assets/objects/128.xvm | Bin .../resources/assets/objects/129-2.xj | Bin .../resources/assets/objects/129-3.xj | Bin .../resources/assets/objects/129.xj | Bin .../resources/assets/objects/129.xvm | Bin .../resources/assets/objects/13-2.xj | Bin .../resources/assets/objects/13-2.xvm | Bin .../resources/assets/objects/13.xj | Bin .../resources/assets/objects/13.xvm | Bin .../resources/assets/objects/130-2.xj | Bin .../resources/assets/objects/130.xj | Bin .../resources/assets/objects/130.xvm | Bin .../resources/assets/objects/131-2.xj | Bin .../resources/assets/objects/131.xj | Bin .../resources/assets/objects/131.xvm | Bin .../resources/assets/objects/132-2.xj | Bin .../resources/assets/objects/132-3.xj | Bin .../resources/assets/objects/132.xj | Bin .../resources/assets/objects/132.xvm | Bin .../resources/assets/objects/133.xj | Bin .../resources/assets/objects/133.xvm | Bin .../resources/assets/objects/134.xj | Bin .../resources/assets/objects/134.xvm | Bin .../resources/assets/objects/135-0.xj | Bin .../resources/assets/objects/135-0.xvm | Bin .../resources/assets/objects/135-1.xj | Bin .../resources/assets/objects/135-1.xvm | Bin .../resources/assets/objects/135.xj | Bin .../resources/assets/objects/135.xvm | Bin .../resources/assets/objects/136-2.xj | Bin .../resources/assets/objects/136-3.xj | Bin .../resources/assets/objects/136.xj | Bin .../resources/assets/objects/136.xvm | Bin .../resources/assets/objects/137.xj | Bin .../resources/assets/objects/137.xvm | Bin .../resources/assets/objects/139-0.xj | Bin .../resources/assets/objects/139-0.xvm | Bin .../resources/assets/objects/139-1.xj | Bin .../resources/assets/objects/139-1.xvm | Bin .../resources/assets/objects/139.xj | Bin .../resources/assets/objects/139.xvm | Bin .../resources/assets/objects/140-2.xj | Bin .../resources/assets/objects/140.xj | Bin .../resources/assets/objects/140.xvm | Bin .../resources/assets/objects/141.xj | Bin .../resources/assets/objects/141.xvm | Bin .../resources/assets/objects/142-2.xj | Bin .../resources/assets/objects/142-2.xvm | Bin .../resources/assets/objects/142.xj | Bin .../resources/assets/objects/142.xvm | Bin .../resources/assets/objects/143.xj | Bin .../resources/assets/objects/143.xvm | Bin .../resources/assets/objects/144-2.xj | Bin .../resources/assets/objects/144-a.xj | Bin .../resources/assets/objects/144-a.xvm | Bin .../resources/assets/objects/144.xj | Bin .../resources/assets/objects/144.xvm | Bin .../resources/assets/objects/145-2.xj | Bin .../resources/assets/objects/145-3.xj | Bin .../resources/assets/objects/145.xj | Bin .../resources/assets/objects/145.xvm | Bin .../resources/assets/objects/146-2.xj | Bin .../resources/assets/objects/146-3.xj | Bin .../resources/assets/objects/146-4.xj | Bin .../resources/assets/objects/146.xj | Bin .../resources/assets/objects/146.xvm | Bin .../resources/assets/objects/147-2.xj | Bin .../resources/assets/objects/147-3.xj | Bin .../resources/assets/objects/147-4.xj | Bin .../resources/assets/objects/147.xj | Bin .../resources/assets/objects/147.xvm | Bin .../resources/assets/objects/149.xj | Bin .../resources/assets/objects/149.xvm | Bin .../resources/assets/objects/15.xj | Bin .../resources/assets/objects/15.xvm | Bin .../resources/assets/objects/150-2.xj | Bin .../resources/assets/objects/150.xj | Bin .../resources/assets/objects/150.xvm | Bin .../resources/assets/objects/151-2.xj | Bin .../resources/assets/objects/151.xj | Bin .../resources/assets/objects/151.xvm | Bin .../resources/assets/objects/19.xj | Bin .../resources/assets/objects/19.xvm | Bin .../resources/assets/objects/192.xj | Bin .../resources/assets/objects/192.xvm | Bin .../resources/assets/objects/193.xj | Bin .../resources/assets/objects/193.xvm | Bin .../resources/assets/objects/194.xj | Bin .../resources/assets/objects/194.xvm | Bin .../resources/assets/objects/195-2.xj | Bin .../resources/assets/objects/195-3.xj | Bin .../resources/assets/objects/195.xj | Bin .../resources/assets/objects/195.xvm | Bin .../resources/assets/objects/196.xj | Bin .../resources/assets/objects/196.xvm | Bin .../resources/assets/objects/197.xj | Bin .../resources/assets/objects/197.xvm | Bin .../resources/assets/objects/198.xj | Bin .../resources/assets/objects/198.xvm | Bin .../resources/assets/objects/199.xj | Bin .../resources/assets/objects/199.xvm | Bin .../resources/assets/objects/2-2.xj | Bin .../resources/assets/objects/2.xj | Bin .../resources/assets/objects/2.xvm | Bin .../resources/assets/objects/200.xj | Bin .../resources/assets/objects/200.xvm | Bin .../resources/assets/objects/201.xj | Bin .../resources/assets/objects/201.xvm | Bin .../resources/assets/objects/204.nj | Bin .../resources/assets/objects/204.xvm | Bin .../resources/assets/objects/205.xj | Bin .../resources/assets/objects/205.xvm | Bin .../resources/assets/objects/206.xj | Bin .../resources/assets/objects/206.xvm | Bin .../resources/assets/objects/207-2.xj | Bin .../resources/assets/objects/207.xj | Bin .../resources/assets/objects/207.xvm | Bin .../resources/assets/objects/208.xj | Bin .../resources/assets/objects/208.xvm | Bin .../resources/assets/objects/209.xj | Bin .../resources/assets/objects/209.xvm | Bin .../resources/assets/objects/210.xj | Bin .../resources/assets/objects/210.xvm | Bin .../resources/assets/objects/211.xj | Bin .../resources/assets/objects/211.xvm | Bin .../resources/assets/objects/212.xj | Bin .../resources/assets/objects/212.xvm | Bin .../resources/assets/objects/213.xj | Bin .../resources/assets/objects/213.xvm | Bin .../resources/assets/objects/214.xj | Bin .../resources/assets/objects/214.xvm | Bin .../resources/assets/objects/215.xj | Bin .../resources/assets/objects/215.xvm | Bin .../resources/assets/objects/216.xj | Bin .../resources/assets/objects/216.xvm | Bin .../resources/assets/objects/217.xj | Bin .../resources/assets/objects/217.xvm | Bin .../resources/assets/objects/218.xj | Bin .../resources/assets/objects/218.xvm | Bin .../resources/assets/objects/219.xj | Bin .../resources/assets/objects/219.xvm | Bin .../resources/assets/objects/220.xj | Bin .../resources/assets/objects/220.xvm | Bin .../resources/assets/objects/222.xj | Bin .../resources/assets/objects/222.xvm | Bin .../resources/assets/objects/223.xj | Bin .../resources/assets/objects/223.xvm | Bin .../resources/assets/objects/224.xj | Bin .../resources/assets/objects/224.xvm | Bin .../resources/assets/objects/225.xj | Bin .../resources/assets/objects/225.xvm | Bin .../resources/assets/objects/25-2.xj | Bin .../resources/assets/objects/25.xj | Bin .../resources/assets/objects/25.xvm | Bin .../resources/assets/objects/256.xj | Bin .../resources/assets/objects/256.xvm | Bin .../resources/assets/objects/257.xj | Bin .../resources/assets/objects/257.xvm | Bin .../resources/assets/objects/258.xj | Bin .../resources/assets/objects/258.xvm | Bin .../resources/assets/objects/259.xj | Bin .../resources/assets/objects/259.xvm | Bin .../resources/assets/objects/260.xj | Bin .../resources/assets/objects/260.xvm | Bin .../resources/assets/objects/261.xj | Bin .../resources/assets/objects/261.xvm | Bin .../resources/assets/objects/262.xj | Bin .../resources/assets/objects/262.xvm | Bin .../resources/assets/objects/264-a.xj | Bin .../resources/assets/objects/264-a.xvm | Bin .../resources/assets/objects/264-b.xj | Bin .../resources/assets/objects/264-b.xvm | Bin .../resources/assets/objects/264.xj | Bin .../resources/assets/objects/264.xvm | Bin .../resources/assets/objects/265-a.xj | Bin .../resources/assets/objects/265-a.xvm | Bin .../resources/assets/objects/265-b.xj | Bin .../resources/assets/objects/265-b.xvm | Bin .../resources/assets/objects/265.xj | Bin .../resources/assets/objects/265.xvm | Bin .../resources/assets/objects/266-a.xj | Bin .../resources/assets/objects/266-a.xvm | Bin .../resources/assets/objects/266-b.xj | Bin .../resources/assets/objects/266-b.xvm | Bin .../resources/assets/objects/266.xj | Bin .../resources/assets/objects/266.xvm | Bin .../resources/assets/objects/267.xj | Bin .../resources/assets/objects/267.xvm | Bin .../resources/assets/objects/268.xj | Bin .../resources/assets/objects/268.xvm | Bin .../resources/assets/objects/27-2.xj | Bin .../resources/assets/objects/27.xj | Bin .../resources/assets/objects/27.xvm | Bin .../resources/assets/objects/28-2.xj | Bin .../resources/assets/objects/28.xj | Bin .../resources/assets/objects/28.xvm | Bin .../resources/assets/objects/3-2.xj | Bin .../resources/assets/objects/3.xj | Bin .../resources/assets/objects/3.xvm | Bin .../resources/assets/objects/304.nj | Bin .../resources/assets/objects/304.xvm | Bin .../resources/assets/objects/320-2.xj | Bin .../resources/assets/objects/320-3.xj | Bin .../resources/assets/objects/320-4.xj | Bin .../resources/assets/objects/320-a.xj | Bin .../resources/assets/objects/320-a.xvm | Bin .../resources/assets/objects/320-b.xj | Bin .../resources/assets/objects/320-b.xvm | Bin .../resources/assets/objects/320-c.xj | Bin .../resources/assets/objects/320-c.xvm | Bin .../resources/assets/objects/320.xj | Bin .../resources/assets/objects/320.xvm | Bin .../resources/assets/objects/321-2.xj | Bin .../resources/assets/objects/321-a.xj | Bin .../resources/assets/objects/321-a.xvm | Bin .../resources/assets/objects/321.xj | Bin .../resources/assets/objects/321.xvm | Bin .../resources/assets/objects/322-2.xj | Bin .../resources/assets/objects/322-a.xj | Bin .../resources/assets/objects/322-a.xvm | Bin .../resources/assets/objects/322.xj | Bin .../resources/assets/objects/322.xvm | Bin .../resources/assets/objects/323.xj | Bin .../resources/assets/objects/323.xvm | Bin .../resources/assets/objects/324.xj | Bin .../resources/assets/objects/324.xvm | Bin .../resources/assets/objects/325.xj | Bin .../resources/assets/objects/325.xvm | Bin .../resources/assets/objects/326.xj | Bin .../resources/assets/objects/326.xvm | Bin .../resources/assets/objects/327.xj | Bin .../resources/assets/objects/327.xvm | Bin .../resources/assets/objects/328.xj | Bin .../resources/assets/objects/328.xvm | Bin .../resources/assets/objects/329.xj | Bin .../resources/assets/objects/329.xvm | Bin .../resources/assets/objects/330.xj | Bin .../resources/assets/objects/330.xvm | Bin .../resources/assets/objects/331.xj | Bin .../resources/assets/objects/331.xvm | Bin .../resources/assets/objects/332.xj | Bin .../resources/assets/objects/332.xvm | Bin .../resources/assets/objects/333.xj | Bin .../resources/assets/objects/333.xvm | Bin .../resources/assets/objects/334.xj | Bin .../resources/assets/objects/334.xvm | Bin .../resources/assets/objects/335.xj | Bin .../resources/assets/objects/335.xvm | Bin .../resources/assets/objects/336.xj | Bin .../resources/assets/objects/336.xvm | Bin .../resources/assets/objects/337.xj | Bin .../resources/assets/objects/337.xvm | Bin .../resources/assets/objects/338.xj | Bin .../resources/assets/objects/338.xvm | Bin .../resources/assets/objects/339-2.xj | Bin .../resources/assets/objects/339-3.xj | Bin .../resources/assets/objects/339-4.xj | Bin .../resources/assets/objects/339.xj | Bin .../resources/assets/objects/339.xvm | Bin .../resources/assets/objects/341-2.xj | Bin .../resources/assets/objects/341-3.xj | Bin .../resources/assets/objects/341.xj | Bin .../resources/assets/objects/341.xvm | Bin .../resources/assets/objects/342.xj | Bin .../resources/assets/objects/342.xvm | Bin .../resources/assets/objects/345.xj | Bin .../resources/assets/objects/345.xvm | Bin .../resources/assets/objects/346.xj | Bin .../resources/assets/objects/346.xvm | Bin .../resources/assets/objects/347.xj | Bin .../resources/assets/objects/347.xvm | Bin .../resources/assets/objects/348.xj | Bin .../resources/assets/objects/348.xvm | Bin .../resources/assets/objects/349.xj | Bin .../resources/assets/objects/349.xvm | Bin .../resources/assets/objects/350.xj | Bin .../resources/assets/objects/350.xvm | Bin .../resources/assets/objects/351.xj | Bin .../resources/assets/objects/351.xvm | Bin .../resources/assets/objects/353-2.xj | Bin .../resources/assets/objects/353-3.xj | Bin .../resources/assets/objects/353.xj | Bin .../resources/assets/objects/353.xvm | Bin .../resources/assets/objects/354-2.xj | Bin .../resources/assets/objects/354-3.xj | Bin .../resources/assets/objects/354.xj | Bin .../resources/assets/objects/354.xvm | Bin .../resources/assets/objects/358.xj | Bin .../resources/assets/objects/358.xvm | Bin .../resources/assets/objects/359.xj | Bin .../resources/assets/objects/359.xvm | Bin .../resources/assets/objects/368.xj | Bin .../resources/assets/objects/368.xvm | Bin .../resources/assets/objects/369.xj | Bin .../resources/assets/objects/369.xvm | Bin .../resources/assets/objects/370-0.xj | Bin .../resources/assets/objects/370-0.xvm | Bin .../resources/assets/objects/370-1.xj | Bin .../resources/assets/objects/370-1.xvm | Bin .../resources/assets/objects/370-2.xj | Bin .../resources/assets/objects/370-2.xvm | Bin .../resources/assets/objects/370-3.xj | Bin .../resources/assets/objects/370-3.xvm | Bin .../resources/assets/objects/385.xj | Bin .../resources/assets/objects/385.xvm | Bin .../resources/assets/objects/386.xj | Bin .../resources/assets/objects/386.xvm | Bin .../resources/assets/objects/390.xj | Bin .../resources/assets/objects/390.xvm | Bin .../resources/assets/objects/391.xj | Bin .../resources/assets/objects/391.xvm | Bin .../resources/assets/objects/395.xj | Bin .../resources/assets/objects/395.xvm | Bin .../resources/assets/objects/396.xj | Bin .../resources/assets/objects/396.xvm | Bin .../resources/assets/objects/401.xj | Bin .../resources/assets/objects/401.xvm | Bin .../resources/assets/objects/402.xj | Bin .../resources/assets/objects/402.xvm | Bin .../resources/assets/objects/403.xj | Bin .../resources/assets/objects/403.xvm | Bin .../resources/assets/objects/416.xj | Bin .../resources/assets/objects/416.xvm | Bin .../resources/assets/objects/417.xj | Bin .../resources/assets/objects/417.xvm | Bin .../resources/assets/objects/418.xj | Bin .../resources/assets/objects/418.xvm | Bin .../resources/assets/objects/419.xj | Bin .../resources/assets/objects/419.xvm | Bin .../resources/assets/objects/420.xj | Bin .../resources/assets/objects/420.xvm | Bin .../resources/assets/objects/421.xj | Bin .../resources/assets/objects/421.xvm | Bin .../resources/assets/objects/422.xj | Bin .../resources/assets/objects/422.xvm | Bin .../resources/assets/objects/423.xj | Bin .../resources/assets/objects/423.xvm | Bin .../resources/assets/objects/425.xj | Bin .../resources/assets/objects/425.xvm | Bin .../resources/assets/objects/426.xj | Bin .../resources/assets/objects/426.xvm | Bin .../resources/assets/objects/427.xj | Bin .../resources/assets/objects/427.xvm | Bin .../resources/assets/objects/448.xj | Bin .../resources/assets/objects/448.xvm | Bin .../resources/assets/objects/512-2.xj | Bin .../resources/assets/objects/512-3.xj | Bin .../resources/assets/objects/512-4.xj | Bin .../resources/assets/objects/512.xj | Bin .../resources/assets/objects/512.xvm | Bin .../resources/assets/objects/513-2.xj | Bin .../resources/assets/objects/513.xj | Bin .../resources/assets/objects/513.xvm | Bin .../resources/assets/objects/514-2.xj | Bin .../resources/assets/objects/514.xj | Bin .../resources/assets/objects/514.xvm | Bin .../resources/assets/objects/515-2.xj | Bin .../resources/assets/objects/515-3.xj | Bin .../resources/assets/objects/515-4.xj | Bin .../resources/assets/objects/515.xj | Bin .../resources/assets/objects/515.xvm | Bin .../resources/assets/objects/516-2.xj | Bin .../resources/assets/objects/516-3.xj | Bin .../resources/assets/objects/516-4.xj | Bin .../resources/assets/objects/516.xj | Bin .../resources/assets/objects/516.xvm | Bin .../resources/assets/objects/517-2.xj | Bin .../resources/assets/objects/517.xj | Bin .../resources/assets/objects/517.xvm | Bin .../resources/assets/objects/518.xj | Bin .../resources/assets/objects/518.xvm | Bin .../resources/assets/objects/519.xj | Bin .../resources/assets/objects/519.xvm | Bin .../resources/assets/objects/520.xj | Bin .../resources/assets/objects/520.xvm | Bin .../resources/assets/objects/521.xj | Bin .../resources/assets/objects/521.xvm | Bin .../resources/assets/objects/527-0.xj | Bin .../resources/assets/objects/527-0.xvm | Bin .../resources/assets/objects/527-1.xj | Bin .../resources/assets/objects/527-1.xvm | Bin .../resources/assets/objects/527.xj | Bin .../resources/assets/objects/527.xvm | Bin .../resources/assets/objects/528-0.xj | Bin .../resources/assets/objects/528-0.xvm | Bin .../resources/assets/objects/528-1.xj | Bin .../resources/assets/objects/528-1.xvm | Bin .../resources/assets/objects/528-2.xj | Bin .../resources/assets/objects/528.xj | Bin .../resources/assets/objects/528.xvm | Bin .../resources/assets/objects/544.xj | Bin .../resources/assets/objects/544.xvm | Bin .../resources/assets/objects/545.xj | Bin .../resources/assets/objects/545.xvm | Bin .../resources/assets/objects/546.xj | Bin .../resources/assets/objects/546.xvm | Bin .../resources/assets/objects/547-0.xj | Bin .../resources/assets/objects/547-0.xvm | Bin .../resources/assets/objects/547-1.xj | Bin .../resources/assets/objects/547-1.xvm | Bin .../resources/assets/objects/547.xj | Bin .../resources/assets/objects/547.xvm | Bin .../resources/assets/objects/548.xj | Bin .../resources/assets/objects/548.xvm | Bin .../resources/assets/objects/549.xj | Bin .../resources/assets/objects/549.xvm | Bin .../resources/assets/objects/550.xj | Bin .../resources/assets/objects/550.xvm | Bin .../resources/assets/objects/551.nj | Bin .../resources/assets/objects/551.xvm | Bin .../resources/assets/objects/552-2.xj | Bin .../resources/assets/objects/552-3.xj | Bin .../resources/assets/objects/552.xj | Bin .../resources/assets/objects/552.xvm | Bin .../resources/assets/objects/553.xj | Bin .../resources/assets/objects/553.xvm | Bin .../resources/assets/objects/67-2.xj | Bin .../resources/assets/objects/67.xj | Bin .../resources/assets/objects/67.xvm | Bin .../resources/assets/objects/68.xj | Bin .../resources/assets/objects/68.xvm | Bin .../resources/assets/objects/688.xj | Bin .../resources/assets/objects/688.xvm | Bin .../resources/assets/objects/689.xj | Bin .../resources/assets/objects/689.xvm | Bin .../resources/assets/objects/69-0.xj | Bin .../resources/assets/objects/69-0.xvm | Bin .../resources/assets/objects/69-1.xj | Bin .../resources/assets/objects/69-1.xvm | Bin .../resources/assets/objects/69-2.xj | Bin .../resources/assets/objects/69-a.xj | Bin .../resources/assets/objects/69.xj | Bin .../resources/assets/objects/69.xvm | Bin .../resources/assets/objects/690.xj | Bin .../resources/assets/objects/690.xvm | Bin .../resources/assets/objects/691.xj | Bin .../resources/assets/objects/691.xvm | Bin .../resources/assets/objects/692.xj | Bin .../resources/assets/objects/692.xvm | Bin .../resources/assets/objects/693.xj | Bin .../resources/assets/objects/693.xvm | Bin .../resources/assets/objects/694.xj | Bin .../resources/assets/objects/694.xvm | Bin .../resources/assets/objects/696.xj | Bin .../resources/assets/objects/696.xvm | Bin .../resources/assets/objects/699.xj | Bin .../resources/assets/objects/699.xvm | Bin .../resources/assets/objects/70.xj | Bin .../resources/assets/objects/70.xvm | Bin .../resources/assets/objects/701-2.xj | Bin .../resources/assets/objects/701.xj | Bin .../resources/assets/objects/701.xvm | Bin .../resources/assets/objects/71.xj | Bin .../resources/assets/objects/71.xvm | Bin .../resources/assets/objects/72-2.xj | Bin .../resources/assets/objects/72.xj | Bin .../resources/assets/objects/72.xvm | Bin .../resources/assets/objects/73.xj | Bin .../resources/assets/objects/73.xvm | Bin .../resources/assets/objects/74.xj | Bin .../resources/assets/objects/74.xvm | Bin .../resources/assets/objects/75-2.nj | Bin .../resources/assets/objects/75.nj | Bin .../resources/assets/objects/75.xvm | Bin .../resources/assets/objects/76-2.xj | Bin .../resources/assets/objects/76-3.xj | Bin .../resources/assets/objects/76.xj | Bin .../resources/assets/objects/76.xvm | Bin .../resources/assets/objects/769-0.nj | Bin .../resources/assets/objects/769-0.xvm | Bin .../resources/assets/objects/769-1.nj | Bin .../resources/assets/objects/769-1.xvm | Bin .../resources/assets/objects/769-2.nj | Bin .../resources/assets/objects/769-2.xvm | Bin .../resources/assets/objects/769.nj | Bin .../resources/assets/objects/769.xvm | Bin .../resources/assets/objects/77-2.nj | Bin .../resources/assets/objects/77-3.nj | Bin .../resources/assets/objects/77-4.nj | Bin .../resources/assets/objects/77.nj | Bin .../resources/assets/objects/77.xvm | Bin .../resources/assets/objects/770-0.nj | Bin .../resources/assets/objects/770-0.xvm | Bin .../resources/assets/objects/770-1.nj | Bin .../resources/assets/objects/770-1.xvm | Bin .../resources/assets/objects/770-2.nj | Bin .../resources/assets/objects/770-2.xvm | Bin .../resources/assets/objects/78.nj | Bin .../resources/assets/objects/78.xvm | Bin .../resources/assets/objects/79.xj | Bin .../resources/assets/objects/79.xvm | Bin .../resources/assets/objects/80-2.nj | Bin .../resources/assets/objects/80.nj | Bin .../resources/assets/objects/80.xvm | Bin .../resources/assets/objects/81-0.nj | Bin .../resources/assets/objects/81-0.xvm | Bin .../resources/assets/objects/81-1.nj | Bin .../resources/assets/objects/81-1.xvm | Bin .../resources/assets/objects/81-2.nj | Bin .../resources/assets/objects/81-2.xvm | Bin .../resources/assets/objects/81-3.nj | Bin .../resources/assets/objects/81-3.xvm | Bin .../resources/assets/objects/81.nj | Bin .../resources/assets/objects/81.xvm | Bin .../resources/assets/objects/82-2.nj | Bin .../resources/assets/objects/82.nj | Bin .../resources/assets/objects/82.xvm | Bin .../resources/assets/objects/84.xj | Bin .../resources/assets/objects/84.xvm | Bin .../resources/assets/objects/86.xj | Bin .../resources/assets/objects/86.xvm | Bin .../resources/assets/objects/896.nj | Bin .../resources/assets/objects/896.xvm | Bin .../resources/assets/objects/902-0.nj | Bin .../resources/assets/objects/902-0.xvm | Bin .../resources/assets/objects/902-1.nj | Bin .../resources/assets/objects/902-1.xvm | Bin .../resources/assets/objects/902-2.nj | Bin .../resources/assets/objects/902-2.xvm | Bin .../resources/assets/objects/902.nj | Bin .../resources/assets/objects/902.xvm | Bin .../resources/assets/objects/907.nj | Bin .../resources/assets/objects/907.xvm | Bin .../resources/assets/objects/909.nj | Bin .../resources/assets/objects/909.xvm | Bin .../resources/assets/objects/911-0.nj | Bin .../resources/assets/objects/911-0.xvm | Bin .../resources/assets/objects/911-1.nj | Bin .../resources/assets/objects/911-1.xvm | Bin .../resources/assets/objects/911.nj | Bin .../resources/assets/objects/911.xvm | Bin .../assets/player/FOmarAccessory0.nj | Bin .../assets/player/FOmarAccessory1.nj | Bin .../assets/player/FOmarAccessory2.nj | Bin .../assets/player/FOmarAccessory3.nj | Bin .../assets/player/FOmarAccessory4.nj | Bin .../assets/player/FOmarAccessory5.nj | Bin .../assets/player/FOmarAccessory6.nj | Bin .../assets/player/FOmarAccessory7.nj | Bin .../assets/player/FOmarAccessory8.nj | Bin .../assets/player/FOmarAccessory9.nj | Bin .../resources/assets/player/FOmarBody.nj | Bin .../resources/assets/player/FOmarHair0.nj | Bin .../resources/assets/player/FOmarHair1.nj | Bin .../resources/assets/player/FOmarHair2.nj | Bin .../resources/assets/player/FOmarHair3.nj | Bin .../resources/assets/player/FOmarHair4.nj | Bin .../resources/assets/player/FOmarHair5.nj | Bin .../resources/assets/player/FOmarHair6.nj | Bin .../resources/assets/player/FOmarHair7.nj | Bin .../resources/assets/player/FOmarHair8.nj | Bin .../resources/assets/player/FOmarHair9.nj | Bin .../resources/assets/player/FOmarHead0.nj | Bin .../resources/assets/player/FOmarTex.afs | Bin .../assets/player/FOmarlAccessory0.nj | Bin .../assets/player/FOmarlAccessory1.nj | Bin .../assets/player/FOmarlAccessory2.nj | Bin .../assets/player/FOmarlAccessory3.nj | Bin .../assets/player/FOmarlAccessory4.nj | Bin .../assets/player/FOmarlAccessory5.nj | Bin .../assets/player/FOmarlAccessory6.nj | Bin .../assets/player/FOmarlAccessory7.nj | Bin .../assets/player/FOmarlAccessory8.nj | Bin .../assets/player/FOmarlAccessory9.nj | Bin .../resources/assets/player/FOmarlBody.nj | Bin .../resources/assets/player/FOmarlHair0.nj | Bin .../resources/assets/player/FOmarlHair1.nj | Bin .../resources/assets/player/FOmarlHair2.nj | Bin .../resources/assets/player/FOmarlHair3.nj | Bin .../resources/assets/player/FOmarlHair4.nj | Bin .../resources/assets/player/FOmarlHair5.nj | Bin .../resources/assets/player/FOmarlHair6.nj | Bin .../resources/assets/player/FOmarlHair7.nj | Bin .../resources/assets/player/FOmarlHair8.nj | Bin .../resources/assets/player/FOmarlHair9.nj | Bin .../resources/assets/player/FOmarlHead0.nj | Bin .../resources/assets/player/FOmarlTex.afs | Bin .../assets/player/FOnewearlAccessory0.nj | Bin .../assets/player/FOnewearlAccessory1.nj | Bin .../assets/player/FOnewearlAccessory2.nj | Bin .../assets/player/FOnewearlAccessory3.nj | Bin .../assets/player/FOnewearlAccessory4.nj | Bin .../assets/player/FOnewearlAccessory5.nj | Bin .../assets/player/FOnewearlAccessory6.nj | Bin .../assets/player/FOnewearlAccessory7.nj | Bin .../assets/player/FOnewearlAccessory8.nj | Bin .../assets/player/FOnewearlAccessory9.nj | Bin .../resources/assets/player/FOnewearlBody.nj | Bin .../resources/assets/player/FOnewearlHair0.nj | Bin .../resources/assets/player/FOnewearlHair1.nj | Bin .../resources/assets/player/FOnewearlHair2.nj | Bin .../resources/assets/player/FOnewearlHair3.nj | Bin .../resources/assets/player/FOnewearlHair4.nj | Bin .../resources/assets/player/FOnewearlHair5.nj | Bin .../resources/assets/player/FOnewearlHair6.nj | Bin .../resources/assets/player/FOnewearlHair7.nj | Bin .../resources/assets/player/FOnewearlHair8.nj | Bin .../resources/assets/player/FOnewearlHair9.nj | Bin .../resources/assets/player/FOnewearlHead0.nj | Bin .../resources/assets/player/FOnewearlTex.afs | Bin .../assets/player/FOnewmAccessory0.nj | Bin .../assets/player/FOnewmAccessory1.nj | Bin .../assets/player/FOnewmAccessory2.nj | Bin .../assets/player/FOnewmAccessory3.nj | Bin .../assets/player/FOnewmAccessory4.nj | Bin .../assets/player/FOnewmAccessory5.nj | Bin .../assets/player/FOnewmAccessory6.nj | Bin .../assets/player/FOnewmAccessory7.nj | Bin .../assets/player/FOnewmAccessory8.nj | Bin .../assets/player/FOnewmAccessory9.nj | Bin .../resources/assets/player/FOnewmBody.nj | Bin .../resources/assets/player/FOnewmHair0.nj | Bin .../resources/assets/player/FOnewmHair1.nj | Bin .../resources/assets/player/FOnewmHair2.nj | Bin .../resources/assets/player/FOnewmHair3.nj | Bin .../resources/assets/player/FOnewmHair4.nj | Bin .../resources/assets/player/FOnewmHair5.nj | Bin .../resources/assets/player/FOnewmHair6.nj | Bin .../resources/assets/player/FOnewmHair7.nj | Bin .../resources/assets/player/FOnewmHair8.nj | Bin .../resources/assets/player/FOnewmHair9.nj | Bin .../resources/assets/player/FOnewmHead0.nj | Bin .../resources/assets/player/FOnewmTex.afs | Bin .../resources/assets/player/HUcasealBody.nj | Bin .../resources/assets/player/HUcasealHead0.nj | Bin .../resources/assets/player/HUcasealHead1.nj | Bin .../resources/assets/player/HUcasealHead2.nj | Bin .../resources/assets/player/HUcasealHead3.nj | Bin .../resources/assets/player/HUcasealHead4.nj | Bin .../resources/assets/player/HUcasealTex.afs | Bin .../resources/assets/player/HUcastBody.nj | Bin .../resources/assets/player/HUcastHead0.nj | Bin .../resources/assets/player/HUcastHead1.nj | Bin .../resources/assets/player/HUcastHead2.nj | Bin .../resources/assets/player/HUcastHead3.nj | Bin .../resources/assets/player/HUcastHead4.nj | Bin .../resources/assets/player/HUcastTex.afs | Bin .../assets/player/HUmarAccessory6.nj | Bin .../resources/assets/player/HUmarBody.nj | Bin .../resources/assets/player/HUmarHair0.nj | Bin .../resources/assets/player/HUmarHair1.nj | Bin .../resources/assets/player/HUmarHair2.nj | Bin .../resources/assets/player/HUmarHair3.nj | Bin .../resources/assets/player/HUmarHair4.nj | Bin .../resources/assets/player/HUmarHair5.nj | Bin .../resources/assets/player/HUmarHair6.nj | Bin .../resources/assets/player/HUmarHair7.nj | Bin .../resources/assets/player/HUmarHair8.nj | Bin .../resources/assets/player/HUmarHair9.nj | Bin .../resources/assets/player/HUmarHead0.nj | Bin .../resources/assets/player/HUmarTex.afs | Bin .../resources/assets/player/HUnewearlBody.nj | Bin .../resources/assets/player/HUnewearlHair0.nj | Bin .../resources/assets/player/HUnewearlHair1.nj | Bin .../resources/assets/player/HUnewearlHair2.nj | Bin .../resources/assets/player/HUnewearlHair3.nj | Bin .../resources/assets/player/HUnewearlHair4.nj | Bin .../resources/assets/player/HUnewearlHair5.nj | Bin .../resources/assets/player/HUnewearlHair6.nj | Bin .../resources/assets/player/HUnewearlHair7.nj | Bin .../resources/assets/player/HUnewearlHair8.nj | Bin .../resources/assets/player/HUnewearlHair9.nj | Bin .../resources/assets/player/HUnewearlHead0.nj | Bin .../resources/assets/player/HUnewearlTex.afs | Bin .../resources/assets/player/RAcasealBody.nj | Bin .../resources/assets/player/RAcasealHead0.nj | Bin .../resources/assets/player/RAcasealHead1.nj | Bin .../resources/assets/player/RAcasealHead2.nj | Bin .../resources/assets/player/RAcasealHead3.nj | Bin .../resources/assets/player/RAcasealHead4.nj | Bin .../resources/assets/player/RAcasealTex.afs | Bin .../resources/assets/player/RAcastBody.nj | Bin .../resources/assets/player/RAcastHead0.nj | Bin .../resources/assets/player/RAcastHead1.nj | Bin .../resources/assets/player/RAcastHead2.nj | Bin .../resources/assets/player/RAcastHead3.nj | Bin .../resources/assets/player/RAcastHead4.nj | Bin .../resources/assets/player/RAcastTex.afs | Bin .../assets/player/RAmarAccessory0.nj | Bin .../assets/player/RAmarAccessory1.nj | Bin .../assets/player/RAmarAccessory2.nj | Bin .../assets/player/RAmarAccessory3.nj | Bin .../assets/player/RAmarAccessory4.nj | Bin .../assets/player/RAmarAccessory5.nj | Bin .../assets/player/RAmarAccessory6.nj | Bin .../assets/player/RAmarAccessory7.nj | Bin .../assets/player/RAmarAccessory8.nj | Bin .../assets/player/RAmarAccessory9.nj | Bin .../resources/assets/player/RAmarBody.nj | Bin .../resources/assets/player/RAmarHair0.nj | Bin .../resources/assets/player/RAmarHair1.nj | Bin .../resources/assets/player/RAmarHair2.nj | Bin .../resources/assets/player/RAmarHair3.nj | Bin .../resources/assets/player/RAmarHair4.nj | Bin .../resources/assets/player/RAmarHair5.nj | Bin .../resources/assets/player/RAmarHair6.nj | Bin .../resources/assets/player/RAmarHair7.nj | Bin .../resources/assets/player/RAmarHair8.nj | Bin .../resources/assets/player/RAmarHair9.nj | Bin .../resources/assets/player/RAmarHead0.nj | Bin .../resources/assets/player/RAmarTex.afs | Bin .../assets/player/RAmarlAccessory0.nj | Bin .../assets/player/RAmarlAccessory1.nj | Bin .../assets/player/RAmarlAccessory2.nj | Bin .../assets/player/RAmarlAccessory3.nj | Bin .../assets/player/RAmarlAccessory4.nj | Bin .../assets/player/RAmarlAccessory5.nj | Bin .../assets/player/RAmarlAccessory6.nj | Bin .../assets/player/RAmarlAccessory7.nj | Bin .../assets/player/RAmarlAccessory8.nj | Bin .../assets/player/RAmarlAccessory9.nj | Bin .../resources/assets/player/RAmarlBody.nj | Bin .../resources/assets/player/RAmarlHair0.nj | Bin .../resources/assets/player/RAmarlHair1.nj | Bin .../resources/assets/player/RAmarlHair2.nj | Bin .../resources/assets/player/RAmarlHair3.nj | Bin .../resources/assets/player/RAmarlHair4.nj | Bin .../resources/assets/player/RAmarlHair5.nj | Bin .../resources/assets/player/RAmarlHair6.nj | Bin .../resources/assets/player/RAmarlHair7.nj | Bin .../resources/assets/player/RAmarlHair8.nj | Bin .../resources/assets/player/RAmarlHair9.nj | Bin .../resources/assets/player/RAmarlHead0.nj | Bin .../resources/assets/player/RAmarlTex.afs | Bin .../assets/player/animation/animation_000.njm | Bin .../assets/player/animation/animation_001.njm | Bin .../assets/player/animation/animation_002.njm | Bin .../assets/player/animation/animation_003.njm | Bin .../assets/player/animation/animation_004.njm | Bin .../assets/player/animation/animation_005.njm | Bin .../assets/player/animation/animation_006.njm | Bin .../assets/player/animation/animation_007.njm | Bin .../assets/player/animation/animation_008.njm | Bin .../assets/player/animation/animation_009.njm | Bin .../assets/player/animation/animation_010.njm | Bin .../assets/player/animation/animation_011.njm | Bin .../assets/player/animation/animation_012.njm | Bin .../assets/player/animation/animation_013.njm | Bin .../assets/player/animation/animation_014.njm | Bin .../assets/player/animation/animation_015.njm | Bin .../assets/player/animation/animation_016.njm | Bin .../assets/player/animation/animation_017.njm | Bin .../assets/player/animation/animation_018.njm | Bin .../assets/player/animation/animation_019.njm | Bin .../assets/player/animation/animation_020.njm | Bin .../assets/player/animation/animation_021.njm | Bin .../assets/player/animation/animation_022.njm | Bin .../assets/player/animation/animation_023.njm | Bin .../assets/player/animation/animation_024.njm | Bin .../assets/player/animation/animation_025.njm | Bin .../assets/player/animation/animation_026.njm | Bin .../assets/player/animation/animation_027.njm | Bin .../assets/player/animation/animation_028.njm | Bin .../assets/player/animation/animation_029.njm | Bin .../assets/player/animation/animation_030.njm | Bin .../assets/player/animation/animation_031.njm | Bin .../assets/player/animation/animation_032.njm | Bin .../assets/player/animation/animation_033.njm | Bin .../assets/player/animation/animation_034.njm | Bin .../assets/player/animation/animation_035.njm | Bin .../assets/player/animation/animation_036.njm | Bin .../assets/player/animation/animation_037.njm | Bin .../assets/player/animation/animation_038.njm | Bin .../assets/player/animation/animation_039.njm | Bin .../assets/player/animation/animation_040.njm | Bin .../assets/player/animation/animation_041.njm | Bin .../assets/player/animation/animation_042.njm | Bin .../assets/player/animation/animation_043.njm | Bin .../assets/player/animation/animation_044.njm | Bin .../assets/player/animation/animation_045.njm | Bin .../assets/player/animation/animation_046.njm | Bin .../assets/player/animation/animation_047.njm | Bin .../assets/player/animation/animation_048.njm | Bin .../assets/player/animation/animation_049.njm | Bin .../assets/player/animation/animation_050.njm | Bin .../assets/player/animation/animation_051.njm | Bin .../assets/player/animation/animation_052.njm | Bin .../assets/player/animation/animation_053.njm | Bin .../assets/player/animation/animation_054.njm | Bin .../assets/player/animation/animation_055.njm | Bin .../assets/player/animation/animation_056.njm | Bin .../assets/player/animation/animation_057.njm | Bin .../assets/player/animation/animation_058.njm | Bin .../assets/player/animation/animation_059.njm | Bin .../assets/player/animation/animation_060.njm | Bin .../assets/player/animation/animation_061.njm | Bin .../assets/player/animation/animation_062.njm | Bin .../assets/player/animation/animation_063.njm | Bin .../assets/player/animation/animation_064.njm | Bin .../assets/player/animation/animation_065.njm | Bin .../assets/player/animation/animation_066.njm | Bin .../assets/player/animation/animation_067.njm | Bin .../assets/player/animation/animation_068.njm | Bin .../assets/player/animation/animation_069.njm | Bin .../assets/player/animation/animation_070.njm | Bin .../assets/player/animation/animation_071.njm | Bin .../assets/player/animation/animation_072.njm | Bin .../assets/player/animation/animation_073.njm | Bin .../assets/player/animation/animation_074.njm | Bin .../assets/player/animation/animation_075.njm | Bin .../assets/player/animation/animation_076.njm | Bin .../assets/player/animation/animation_077.njm | Bin .../assets/player/animation/animation_078.njm | Bin .../assets/player/animation/animation_079.njm | Bin .../assets/player/animation/animation_080.njm | Bin .../assets/player/animation/animation_081.njm | Bin .../assets/player/animation/animation_082.njm | Bin .../assets/player/animation/animation_083.njm | Bin .../assets/player/animation/animation_084.njm | Bin .../assets/player/animation/animation_085.njm | Bin .../assets/player/animation/animation_086.njm | Bin .../assets/player/animation/animation_087.njm | Bin .../assets/player/animation/animation_088.njm | Bin .../assets/player/animation/animation_089.njm | Bin .../assets/player/animation/animation_090.njm | Bin .../assets/player/animation/animation_091.njm | Bin .../assets/player/animation/animation_092.njm | Bin .../assets/player/animation/animation_093.njm | Bin .../assets/player/animation/animation_094.njm | Bin .../assets/player/animation/animation_095.njm | Bin .../assets/player/animation/animation_096.njm | Bin .../assets/player/animation/animation_097.njm | Bin .../assets/player/animation/animation_098.njm | Bin .../assets/player/animation/animation_099.njm | Bin .../assets/player/animation/animation_100.njm | Bin .../assets/player/animation/animation_101.njm | Bin .../assets/player/animation/animation_102.njm | Bin .../assets/player/animation/animation_103.njm | Bin .../assets/player/animation/animation_104.njm | Bin .../assets/player/animation/animation_105.njm | Bin .../assets/player/animation/animation_106.njm | Bin .../assets/player/animation/animation_107.njm | Bin .../assets/player/animation/animation_108.njm | Bin .../assets/player/animation/animation_109.njm | Bin .../assets/player/animation/animation_110.njm | Bin .../assets/player/animation/animation_111.njm | Bin .../assets/player/animation/animation_112.njm | Bin .../assets/player/animation/animation_113.njm | Bin .../assets/player/animation/animation_114.njm | Bin .../assets/player/animation/animation_115.njm | Bin .../assets/player/animation/animation_116.njm | Bin .../assets/player/animation/animation_117.njm | Bin .../assets/player/animation/animation_118.njm | Bin .../assets/player/animation/animation_119.njm | Bin .../assets/player/animation/animation_120.njm | Bin .../assets/player/animation/animation_121.njm | Bin .../assets/player/animation/animation_122.njm | Bin .../assets/player/animation/animation_123.njm | Bin .../assets/player/animation/animation_124.njm | Bin .../assets/player/animation/animation_125.njm | Bin .../assets/player/animation/animation_126.njm | Bin .../assets/player/animation/animation_127.njm | Bin .../assets/player/animation/animation_128.njm | Bin .../assets/player/animation/animation_129.njm | Bin .../assets/player/animation/animation_130.njm | Bin .../assets/player/animation/animation_131.njm | Bin .../assets/player/animation/animation_132.njm | Bin .../assets/player/animation/animation_133.njm | Bin .../assets/player/animation/animation_134.njm | Bin .../assets/player/animation/animation_135.njm | Bin .../assets/player/animation/animation_136.njm | Bin .../assets/player/animation/animation_137.njm | Bin .../assets/player/animation/animation_138.njm | Bin .../assets/player/animation/animation_139.njm | Bin .../assets/player/animation/animation_140.njm | Bin .../assets/player/animation/animation_141.njm | Bin .../assets/player/animation/animation_142.njm | Bin .../assets/player/animation/animation_143.njm | Bin .../assets/player/animation/animation_144.njm | Bin .../assets/player/animation/animation_145.njm | Bin .../assets/player/animation/animation_146.njm | Bin .../assets/player/animation/animation_147.njm | Bin .../assets/player/animation/animation_148.njm | Bin .../assets/player/animation/animation_149.njm | Bin .../assets/player/animation/animation_150.njm | Bin .../assets/player/animation/animation_151.njm | Bin .../assets/player/animation/animation_152.njm | Bin .../assets/player/animation/animation_153.njm | Bin .../assets/player/animation/animation_154.njm | Bin .../assets/player/animation/animation_155.njm | Bin .../assets/player/animation/animation_156.njm | Bin .../assets/player/animation/animation_157.njm | Bin .../assets/player/animation/animation_158.njm | Bin .../assets/player/animation/animation_159.njm | Bin .../assets/player/animation/animation_160.njm | Bin .../assets/player/animation/animation_161.njm | Bin .../assets/player/animation/animation_162.njm | Bin .../assets/player/animation/animation_163.njm | Bin .../assets/player/animation/animation_164.njm | Bin .../assets/player/animation/animation_165.njm | Bin .../assets/player/animation/animation_166.njm | Bin .../assets/player/animation/animation_167.njm | Bin .../assets/player/animation/animation_168.njm | Bin .../assets/player/animation/animation_169.njm | Bin .../assets/player/animation/animation_170.njm | Bin .../assets/player/animation/animation_171.njm | Bin .../assets/player/animation/animation_172.njm | Bin .../assets/player/animation/animation_173.njm | Bin .../assets/player/animation/animation_174.njm | Bin .../assets/player/animation/animation_175.njm | Bin .../assets/player/animation/animation_176.njm | Bin .../assets/player/animation/animation_177.njm | Bin .../assets/player/animation/animation_178.njm | Bin .../assets/player/animation/animation_179.njm | Bin .../assets/player/animation/animation_180.njm | Bin .../assets/player/animation/animation_181.njm | Bin .../assets/player/animation/animation_182.njm | Bin .../assets/player/animation/animation_183.njm | Bin .../assets/player/animation/animation_184.njm | Bin .../assets/player/animation/animation_185.njm | Bin .../assets/player/animation/animation_186.njm | Bin .../assets/player/animation/animation_187.njm | Bin .../assets/player/animation/animation_188.njm | Bin .../assets/player/animation/animation_189.njm | Bin .../assets/player/animation/animation_190.njm | Bin .../assets/player/animation/animation_191.njm | Bin .../assets/player/animation/animation_192.njm | Bin .../assets/player/animation/animation_193.njm | Bin .../assets/player/animation/animation_194.njm | Bin .../assets/player/animation/animation_195.njm | Bin .../assets/player/animation/animation_196.njm | Bin .../assets/player/animation/animation_197.njm | Bin .../assets/player/animation/animation_198.njm | Bin .../assets/player/animation/animation_199.njm | Bin .../assets/player/animation/animation_200.njm | Bin .../assets/player/animation/animation_201.njm | Bin .../assets/player/animation/animation_202.njm | Bin .../assets/player/animation/animation_203.njm | Bin .../assets/player/animation/animation_204.njm | Bin .../assets/player/animation/animation_205.njm | Bin .../assets/player/animation/animation_206.njm | Bin .../assets/player/animation/animation_207.njm | Bin .../assets/player/animation/animation_208.njm | Bin .../assets/player/animation/animation_209.njm | Bin .../assets/player/animation/animation_210.njm | Bin .../assets/player/animation/animation_211.njm | Bin .../assets/player/animation/animation_212.njm | Bin .../assets/player/animation/animation_213.njm | Bin .../assets/player/animation/animation_214.njm | Bin .../assets/player/animation/animation_215.njm | Bin .../assets/player/animation/animation_216.njm | Bin .../assets/player/animation/animation_217.njm | Bin .../assets/player/animation/animation_218.njm | Bin .../assets/player/animation/animation_219.njm | Bin .../assets/player/animation/animation_220.njm | Bin .../assets/player/animation/animation_221.njm | Bin .../assets/player/animation/animation_222.njm | Bin .../assets/player/animation/animation_223.njm | Bin .../assets/player/animation/animation_224.njm | Bin .../assets/player/animation/animation_225.njm | Bin .../assets/player/animation/animation_226.njm | Bin .../assets/player/animation/animation_227.njm | Bin .../assets/player/animation/animation_228.njm | Bin .../assets/player/animation/animation_229.njm | Bin .../assets/player/animation/animation_230.njm | Bin .../assets/player/animation/animation_231.njm | Bin .../assets/player/animation/animation_232.njm | Bin .../assets/player/animation/animation_233.njm | Bin .../assets/player/animation/animation_234.njm | Bin .../assets/player/animation/animation_235.njm | Bin .../assets/player/animation/animation_236.njm | Bin .../assets/player/animation/animation_237.njm | Bin .../assets/player/animation/animation_238.njm | Bin .../assets/player/animation/animation_239.njm | Bin .../assets/player/animation/animation_240.njm | Bin .../assets/player/animation/animation_241.njm | Bin .../assets/player/animation/animation_242.njm | Bin .../assets/player/animation/animation_243.njm | Bin .../assets/player/animation/animation_244.njm | Bin .../assets/player/animation/animation_245.njm | Bin .../assets/player/animation/animation_246.njm | Bin .../assets/player/animation/animation_247.njm | Bin .../assets/player/animation/animation_248.njm | Bin .../assets/player/animation/animation_249.njm | Bin .../assets/player/animation/animation_250.njm | Bin .../assets/player/animation/animation_251.njm | Bin .../assets/player/animation/animation_252.njm | Bin .../assets/player/animation/animation_253.njm | Bin .../assets/player/animation/animation_254.njm | Bin .../assets/player/animation/animation_255.njm | Bin .../assets/player/animation/animation_256.njm | Bin .../assets/player/animation/animation_257.njm | Bin .../assets/player/animation/animation_258.njm | Bin .../assets/player/animation/animation_259.njm | Bin .../assets/player/animation/animation_260.njm | Bin .../assets/player/animation/animation_261.njm | Bin .../assets/player/animation/animation_262.njm | Bin .../assets/player/animation/animation_263.njm | Bin .../assets/player/animation/animation_264.njm | Bin .../assets/player/animation/animation_265.njm | Bin .../assets/player/animation/animation_266.njm | Bin .../assets/player/animation/animation_267.njm | Bin .../assets/player/animation/animation_268.njm | Bin .../assets/player/animation/animation_269.njm | Bin .../assets/player/animation/animation_270.njm | Bin .../assets/player/animation/animation_271.njm | Bin .../assets/player/animation/animation_272.njm | Bin .../assets/player/animation/animation_273.njm | Bin .../assets/player/animation/animation_274.njm | Bin .../assets/player/animation/animation_275.njm | Bin .../assets/player/animation/animation_276.njm | Bin .../assets/player/animation/animation_277.njm | Bin .../assets/player/animation/animation_278.njm | Bin .../assets/player/animation/animation_279.njm | Bin .../assets/player/animation/animation_280.njm | Bin .../assets/player/animation/animation_281.njm | Bin .../assets/player/animation/animation_282.njm | Bin .../assets/player/animation/animation_283.njm | Bin .../assets/player/animation/animation_284.njm | Bin .../assets/player/animation/animation_285.njm | Bin .../assets/player/animation/animation_286.njm | Bin .../assets/player/animation/animation_287.njm | Bin .../assets/player/animation/animation_288.njm | Bin .../assets/player/animation/animation_289.njm | Bin .../assets/player/animation/animation_290.njm | Bin .../assets/player/animation/animation_291.njm | Bin .../assets/player/animation/animation_292.njm | Bin .../assets/player/animation/animation_293.njm | Bin .../assets/player/animation/animation_294.njm | Bin .../assets/player/animation/animation_295.njm | Bin .../assets/player/animation/animation_296.njm | Bin .../assets/player/animation/animation_297.njm | Bin .../assets/player/animation/animation_298.njm | Bin .../assets/player/animation/animation_299.njm | Bin .../assets/player/animation/animation_300.njm | Bin .../assets/player/animation/animation_301.njm | Bin .../assets/player/animation/animation_302.njm | Bin .../assets/player/animation/animation_303.njm | Bin .../assets/player/animation/animation_304.njm | Bin .../assets/player/animation/animation_305.njm | Bin .../assets/player/animation/animation_306.njm | Bin .../assets/player/animation/animation_307.njm | Bin .../assets/player/animation/animation_308.njm | Bin .../assets/player/animation/animation_309.njm | Bin .../assets/player/animation/animation_310.njm | Bin .../assets/player/animation/animation_311.njm | Bin .../assets/player/animation/animation_312.njm | Bin .../assets/player/animation/animation_313.njm | Bin .../assets/player/animation/animation_314.njm | Bin .../assets/player/animation/animation_315.njm | Bin .../assets/player/animation/animation_316.njm | Bin .../assets/player/animation/animation_317.njm | Bin .../assets/player/animation/animation_318.njm | Bin .../assets/player/animation/animation_319.njm | Bin .../assets/player/animation/animation_320.njm | Bin .../assets/player/animation/animation_321.njm | Bin .../assets/player/animation/animation_322.njm | Bin .../assets/player/animation/animation_323.njm | Bin .../assets/player/animation/animation_324.njm | Bin .../assets/player/animation/animation_325.njm | Bin .../assets/player/animation/animation_326.njm | Bin .../assets/player/animation/animation_327.njm | Bin .../assets/player/animation/animation_328.njm | Bin .../assets/player/animation/animation_329.njm | Bin .../assets/player/animation/animation_330.njm | Bin .../assets/player/animation/animation_331.njm | Bin .../assets/player/animation/animation_332.njm | Bin .../assets/player/animation/animation_333.njm | Bin .../assets/player/animation/animation_334.njm | Bin .../assets/player/animation/animation_335.njm | Bin .../assets/player/animation/animation_336.njm | Bin .../assets/player/animation/animation_337.njm | Bin .../assets/player/animation/animation_338.njm | Bin .../assets/player/animation/animation_339.njm | Bin .../assets/player/animation/animation_340.njm | Bin .../assets/player/animation/animation_341.njm | Bin .../assets/player/animation/animation_342.njm | Bin .../assets/player/animation/animation_343.njm | Bin .../assets/player/animation/animation_344.njm | Bin .../assets/player/animation/animation_345.njm | Bin .../assets/player/animation/animation_346.njm | Bin .../assets/player/animation/animation_347.njm | Bin .../assets/player/animation/animation_348.njm | Bin .../assets/player/animation/animation_349.njm | Bin .../assets/player/animation/animation_350.njm | Bin .../assets/player/animation/animation_351.njm | Bin .../assets/player/animation/animation_352.njm | Bin .../assets/player/animation/animation_353.njm | Bin .../assets/player/animation/animation_354.njm | Bin .../assets/player/animation/animation_355.njm | Bin .../assets/player/animation/animation_356.njm | Bin .../assets/player/animation/animation_357.njm | Bin .../assets/player/animation/animation_358.njm | Bin .../assets/player/animation/animation_359.njm | Bin .../assets/player/animation/animation_360.njm | Bin .../assets/player/animation/animation_361.njm | Bin .../assets/player/animation/animation_362.njm | Bin .../assets/player/animation/animation_363.njm | Bin .../assets/player/animation/animation_364.njm | Bin .../assets/player/animation/animation_365.njm | Bin .../assets/player/animation/animation_366.njm | Bin .../assets/player/animation/animation_367.njm | Bin .../assets/player/animation/animation_368.njm | Bin .../assets/player/animation/animation_369.njm | Bin .../assets/player/animation/animation_370.njm | Bin .../assets/player/animation/animation_371.njm | Bin .../assets/player/animation/animation_372.njm | Bin .../assets/player/animation/animation_373.njm | Bin .../assets/player/animation/animation_374.njm | Bin .../assets/player/animation/animation_375.njm | Bin .../assets/player/animation/animation_376.njm | Bin .../assets/player/animation/animation_377.njm | Bin .../assets/player/animation/animation_378.njm | Bin .../assets/player/animation/animation_379.njm | Bin .../assets/player/animation/animation_380.njm | Bin .../assets/player/animation/animation_381.njm | Bin .../assets/player/animation/animation_382.njm | Bin .../assets/player/animation/animation_383.njm | Bin .../assets/player/animation/animation_384.njm | Bin .../assets/player/animation/animation_385.njm | Bin .../assets/player/animation/animation_386.njm | Bin .../assets/player/animation/animation_387.njm | Bin .../assets/player/animation/animation_388.njm | Bin .../assets/player/animation/animation_389.njm | Bin .../assets/player/animation/animation_390.njm | Bin .../assets/player/animation/animation_391.njm | Bin .../assets/player/animation/animation_392.njm | Bin .../assets/player/animation/animation_393.njm | Bin .../assets/player/animation/animation_394.njm | Bin .../assets/player/animation/animation_395.njm | Bin .../assets/player/animation/animation_396.njm | Bin .../assets/player/animation/animation_397.njm | Bin .../assets/player/animation/animation_398.njm | Bin .../assets/player/animation/animation_399.njm | Bin .../assets/player/animation/animation_400.njm | Bin .../assets/player/animation/animation_401.njm | Bin .../assets/player/animation/animation_402.njm | Bin .../assets/player/animation/animation_403.njm | Bin .../assets/player/animation/animation_404.njm | Bin .../assets/player/animation/animation_405.njm | Bin .../assets/player/animation/animation_406.njm | Bin .../assets/player/animation/animation_407.njm | Bin .../assets/player/animation/animation_408.njm | Bin .../assets/player/animation/animation_409.njm | Bin .../assets/player/animation/animation_410.njm | Bin .../assets/player/animation/animation_411.njm | Bin .../assets/player/animation/animation_412.njm | Bin .../assets/player/animation/animation_413.njm | Bin .../assets/player/animation/animation_414.njm | Bin .../assets/player/animation/animation_415.njm | Bin .../assets/player/animation/animation_416.njm | Bin .../assets/player/animation/animation_417.njm | Bin .../assets/player/animation/animation_418.njm | Bin .../assets/player/animation/animation_419.njm | Bin .../assets/player/animation/animation_420.njm | Bin .../assets/player/animation/animation_421.njm | Bin .../assets/player/animation/animation_422.njm | Bin .../assets/player/animation/animation_423.njm | Bin .../assets/player/animation/animation_424.njm | Bin .../assets/player/animation/animation_425.njm | Bin .../assets/player/animation/animation_426.njm | Bin .../assets/player/animation/animation_427.njm | Bin .../assets/player/animation/animation_428.njm | Bin .../assets/player/animation/animation_429.njm | Bin .../assets/player/animation/animation_430.njm | Bin .../assets/player/animation/animation_431.njm | Bin .../assets/player/animation/animation_432.njm | Bin .../assets/player/animation/animation_433.njm | Bin .../assets/player/animation/animation_434.njm | Bin .../assets/player/animation/animation_435.njm | Bin .../assets/player/animation/animation_436.njm | Bin .../assets/player/animation/animation_437.njm | Bin .../assets/player/animation/animation_438.njm | Bin .../assets/player/animation/animation_439.njm | Bin .../assets/player/animation/animation_440.njm | Bin .../assets/player/animation/animation_441.njm | Bin .../assets/player/animation/animation_442.njm | Bin .../assets/player/animation/animation_443.njm | Bin .../assets/player/animation/animation_444.njm | Bin .../assets/player/animation/animation_445.njm | Bin .../assets/player/animation/animation_446.njm | Bin .../assets/player/animation/animation_447.njm | Bin .../assets/player/animation/animation_448.njm | Bin .../assets/player/animation/animation_449.njm | Bin .../assets/player/animation/animation_450.njm | Bin .../assets/player/animation/animation_451.njm | Bin .../assets/player/animation/animation_452.njm | Bin .../assets/player/animation/animation_453.njm | Bin .../assets/player/animation/animation_454.njm | Bin .../assets/player/animation/animation_455.njm | Bin .../assets/player/animation/animation_456.njm | Bin .../assets/player/animation/animation_457.njm | Bin .../assets/player/animation/animation_458.njm | Bin .../assets/player/animation/animation_459.njm | Bin .../assets/player/animation/animation_460.njm | Bin .../assets/player/animation/animation_461.njm | Bin .../assets/player/animation/animation_462.njm | Bin .../assets/player/animation/animation_463.njm | Bin .../assets/player/animation/animation_464.njm | Bin .../assets/player/animation/animation_465.njm | Bin .../assets/player/animation/animation_466.njm | Bin .../assets/player/animation/animation_467.njm | Bin .../assets/player/animation/animation_468.njm | Bin .../assets/player/animation/animation_469.njm | Bin .../assets/player/animation/animation_470.njm | Bin .../assets/player/animation/animation_471.njm | Bin .../assets/player/animation/animation_472.njm | Bin .../assets/player/animation/animation_473.njm | Bin .../assets/player/animation/animation_474.njm | Bin .../assets/player/animation/animation_475.njm | Bin .../assets/player/animation/animation_476.njm | Bin .../assets/player/animation/animation_477.njm | Bin .../assets/player/animation/animation_478.njm | Bin .../assets/player/animation/animation_479.njm | Bin .../assets/player/animation/animation_480.njm | Bin .../assets/player/animation/animation_481.njm | Bin .../assets/player/animation/animation_482.njm | Bin .../assets/player/animation/animation_483.njm | Bin .../assets/player/animation/animation_484.njm | Bin .../assets/player/animation/animation_485.njm | Bin .../assets/player/animation/animation_486.njm | Bin .../assets/player/animation/animation_487.njm | Bin .../assets/player/animation/animation_488.njm | Bin .../assets/player/animation/animation_489.njm | Bin .../assets/player/animation/animation_490.njm | Bin .../assets/player/animation/animation_491.njm | Bin .../assets/player/animation/animation_492.njm | Bin .../assets/player/animation/animation_493.njm | Bin .../assets/player/animation/animation_494.njm | Bin .../assets/player/animation/animation_495.njm | Bin .../assets/player/animation/animation_496.njm | Bin .../assets/player/animation/animation_497.njm | Bin .../assets/player/animation/animation_498.njm | Bin .../assets/player/animation/animation_499.njm | Bin .../assets/player/animation/animation_500.njm | Bin .../assets/player/animation/animation_501.njm | Bin .../assets/player/animation/animation_502.njm | Bin .../assets/player/animation/animation_503.njm | Bin .../assets/player/animation/animation_504.njm | Bin .../assets/player/animation/animation_505.njm | Bin .../assets/player/animation/animation_506.njm | Bin .../assets/player/animation/animation_507.njm | Bin .../assets/player/animation/animation_508.njm | Bin .../assets/player/animation/animation_509.njm | Bin .../assets/player/animation/animation_510.njm | Bin .../assets/player/animation/animation_511.njm | Bin .../assets/player/animation/animation_512.njm | Bin .../assets/player/animation/animation_513.njm | Bin .../assets/player/animation/animation_514.njm | Bin .../assets/player/animation/animation_515.njm | Bin .../assets/player/animation/animation_516.njm | Bin .../assets/player/animation/animation_517.njm | Bin .../assets/player/animation/animation_518.njm | Bin .../assets/player/animation/animation_519.njm | Bin .../assets/player/animation/animation_520.njm | Bin .../assets/player/animation/animation_521.njm | Bin .../assets/player/animation/animation_522.njm | Bin .../assets/player/animation/animation_523.njm | Bin .../assets/player/animation/animation_524.njm | Bin .../assets/player/animation/animation_525.njm | Bin .../assets/player/animation/animation_526.njm | Bin .../assets/player/animation/animation_527.njm | Bin .../assets/player/animation/animation_528.njm | Bin .../assets/player/animation/animation_529.njm | Bin .../assets/player/animation/animation_530.njm | Bin .../assets/player/animation/animation_531.njm | Bin .../assets/player/animation/animation_532.njm | Bin .../assets/player/animation/animation_533.njm | Bin .../assets/player/animation/animation_534.njm | Bin .../assets/player/animation/animation_535.njm | Bin .../assets/player/animation/animation_536.njm | Bin .../assets/player/animation/animation_537.njm | Bin .../assets/player/animation/animation_538.njm | Bin .../assets/player/animation/animation_539.njm | Bin .../assets/player/animation/animation_540.njm | Bin .../assets/player/animation/animation_541.njm | Bin .../assets/player/animation/animation_542.njm | Bin .../assets/player/animation/animation_543.njm | Bin .../assets/player/animation/animation_544.njm | Bin .../assets/player/animation/animation_545.njm | Bin .../assets/player/animation/animation_546.njm | Bin .../assets/player/animation/animation_547.njm | Bin .../assets/player/animation/animation_548.njm | Bin .../assets/player/animation/animation_549.njm | Bin .../assets/player/animation/animation_550.njm | Bin .../assets/player/animation/animation_551.njm | Bin .../assets/player/animation/animation_552.njm | Bin .../assets/player/animation/animation_553.njm | Bin .../assets/player/animation/animation_554.njm | Bin .../assets/player/animation/animation_555.njm | Bin .../assets/player/animation/animation_556.njm | Bin .../assets/player/animation/animation_557.njm | Bin .../assets/player/animation/animation_558.njm | Bin .../assets/player/animation/animation_559.njm | Bin .../assets/player/animation/animation_560.njm | Bin .../assets/player/animation/animation_561.njm | Bin .../assets/player/animation/animation_562.njm | Bin .../assets/player/animation/animation_563.njm | Bin .../assets/player/animation/animation_564.njm | Bin .../assets/player/animation/animation_565.njm | Bin .../assets/player/animation/animation_566.njm | Bin .../assets/player/animation/animation_567.njm | Bin .../assets/player/animation/animation_568.njm | Bin .../assets/player/animation/animation_569.njm | Bin .../assets/player/animation/animation_570.njm | Bin .../assets/player/animation/animation_571.njm | Bin .../resources/assets/player/plObdy00.nj | Bin .../resources/assets/player/plOhai00.nj | Bin .../resources/assets/player/plOhed00.nj | Bin .../resources/assets/player/plPbdy00.nj | Bin .../resources/assets/player/plPhai00.nj | Bin .../resources/assets/player/plPhed00.nj | Bin .../resources/assets/player/plQbdy00.nj | Bin .../resources/assets/player/plQhai00.nj | Bin .../resources/assets/player/plQhed00.nj | Bin .../resources/assets/player/plRbdy00.nj | Bin .../resources/assets/player/plRhai00.nj | Bin .../resources/assets/player/plRhed00.nj | Bin .../resources/assets/player/plSbdy00.nj | Bin .../resources/assets/player/plShai00.nj | Bin .../resources/assets/player/plShed00.nj | Bin .../resources/assets/player/plTbdy00.nj | Bin .../resources/assets/player/plThai00.nj | Bin .../resources/assets/player/plThed00.nj | Bin .../resources/assets/player/plUbdy00.nj | Bin .../resources/assets/player/plUhed00.nj | Bin .../resources/assets/player/plVbdy00.nj | Bin .../resources/assets/player/plVhed00.nj | Bin .../resources/assets/player/plWbdy00.nj | Bin .../resources/assets/player/plWhed00.nj | Bin .../resources/assets/player/plXbdy00.nj | Bin .../resources/assets/player/plXhed00.nj | Bin .../resources/assets/player/plYbdy00.nj | Bin .../resources/assets/player/plYhed00.nj | Bin .../resources/assets/quests.ephinea.json | 0 .../assets/quests/defaults/default_ep_1.qst | Bin web/src/{main => jsMain}/resources/index.html | 0 .../web/application/ApplicationTests.kt | 0 .../controllers/NavigationControllerTests.kt | 0 .../PathAwareTabControllerTests.kt | 0 .../web/core/observable/EmitterTests.kt | 0 .../phantasmal/web/core/store/UiStoreTests.kt | 0 .../web/core/undo/UndoStackTests.kt | 0 .../web/huntOptimizer/HuntOptimizerTests.kt | 0 .../MethodsForEpisodeControllerTests.kt | 0 .../web/questEditor/QuestEditorTests.kt | 0 .../controllers/EntityInfoControllerTests.kt | 0 .../controllers/EventsControllerTests.kt | 0 .../controllers/NpcCountsControllerTests.kt | 0 .../QuestEditorToolbarControllerTests.kt | 0 .../controllers/QuestInfoControllerTests.kt | 0 .../models/QuestEntityModelTests.kt | 0 .../world/phantasmal/web/test/NopRenderer.kt | 7 +- .../world/phantasmal/web/test/StubClock.kt | 0 .../phantasmal/web/test/TestApplicationUrl.kt | 0 .../phantasmal/web/test/TestComponents.kt | 9 +- .../world/phantasmal/web/test/TestModels.kt | 0 .../phantasmal/web/test/WebTestContext.kt | 0 .../world/phantasmal/web/test/WebTestSuite.kt | 0 .../phantasmal/web/viewer/ViewerTests.kt | 0 .../CharacterClassOptionsControllerTests.kt | 0 .../web/core/loading/AssetLoader.kt | 43 - webui/build.gradle.kts | 26 +- .../phantasmal/webui/DisposableContainer.kt | 0 .../kotlin/world/phantasmal/webui/Js.kt | 0 .../phantasmal/webui/LoadingStatusCell.kt | 0 .../phantasmal/webui/StandardExtensions.kt | 0 .../world/phantasmal/webui/TimeExtensions.kt | 0 .../webui/controllers/Controller.kt | 0 .../controllers/TabContainerController.kt | 0 .../webui/controllers/TableController.kt | 0 .../phantasmal/webui/dom/DefaultStyle.kt | 0 .../kotlin/world/phantasmal/webui/dom/Dom.kt | 2 +- .../world/phantasmal/webui/dom/DomCreation.kt | 7 +- .../webui/dom/HTMLElementSizeCell.kt | 0 .../fontawesome/fontawesomeSvgCore.kt | 0 .../fontawesomeFreeSolidSvgIcons.kt | 0 .../fontawesomeFreeSolidSvgIcons.kt | 0 .../fontawesomeFreeSolidSvgIcons.kt | 0 .../world/phantasmal/webui/files/Files.kt | 0 .../world/phantasmal/webui/stores/Store.kt | 0 .../world/phantasmal/webui/widgets/Button.kt | 0 .../phantasmal/webui/widgets/Checkbox.kt | 0 .../phantasmal/webui/widgets/ComboBox.kt | 0 .../world/phantasmal/webui/widgets/Control.kt | 0 .../world/phantasmal/webui/widgets/Dialog.kt | 0 .../phantasmal/webui/widgets/DoubleInput.kt | 0 .../phantasmal/webui/widgets/DropDown.kt | 0 .../phantasmal/webui/widgets/DurationInput.kt | 5 +- .../phantasmal/webui/widgets/FileButton.kt | 0 .../world/phantasmal/webui/widgets/Input.kt | 0 .../phantasmal/webui/widgets/IntInput.kt | 0 .../world/phantasmal/webui/widgets/Label.kt | 0 .../webui/widgets/LabelledControl.kt | 0 .../phantasmal/webui/widgets/LazyLoader.kt | 0 .../world/phantasmal/webui/widgets/Menu.kt | 0 .../phantasmal/webui/widgets/NumberInput.kt | 0 .../phantasmal/webui/widgets/ResultDialog.kt | 0 .../world/phantasmal/webui/widgets/Select.kt | 0 .../phantasmal/webui/widgets/TabContainer.kt | 0 .../world/phantasmal/webui/widgets/Table.kt | 0 .../phantasmal/webui/widgets/TextArea.kt | 0 .../phantasmal/webui/widgets/TextInput.kt | 0 .../world/phantasmal/webui/widgets/Toolbar.kt | 0 .../phantasmal/webui/widgets/UniqueId.kt | 0 .../world/phantasmal/webui/widgets/Widget.kt | 0 .../webui/StandardExtensionsTests.kt | 0 .../phantasmal/webui/test/WebuiTestSuite.kt | 0 .../phantasmal/webui/widgets/WidgetTests.kt | 0 2185 files changed, 4121 insertions(+), 495 deletions(-) delete mode 100644 buildSrc/src/main/kotlin/world/phantasmal/ExperimentalAnnotations.kt delete mode 100644 core/src/jsMain/kotlin/world/phantasmal/core/PrimitiveExtensions.kt delete mode 100644 core/src/jvmMain/kotlin/world/phantasmal/core/PrimitiveExtensions.kt create mode 100644 kotlin-js-store/yarn.lock rename web/assembly-worker/src/{main => jsMain}/kotlin/world/phantasmal/web/assemblyWorker/AsmAnalyser.kt (99%) rename web/assembly-worker/src/{main => jsMain}/kotlin/world/phantasmal/web/assemblyWorker/AsmServer.kt (100%) rename web/assembly-worker/src/{main => jsMain}/kotlin/world/phantasmal/web/assemblyWorker/Main.kt (100%) rename web/assembly-worker/src/{test => jsTest}/kotlin/world/phantasmal/web/assemblyWorker/AsmAnalyserTests.kt (100%) rename web/assembly-worker/src/{test => jsTest}/kotlin/world/phantasmal/web/assemblyWorker/test/AssemblyWorkerTestSuite.kt (100%) rename web/assembly-worker/src/{test => jsTest}/kotlin/world/phantasmal/web/assemblyWorker/test/MessagesAssertions.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/Main.kt (94%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/application/Application.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/application/controllers/MainContentController.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/application/controllers/NavigationController.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/application/widgets/ApplicationWidget.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/application/widgets/MainContentWidget.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/application/widgets/NavigationWidget.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/application/widgets/PwToolButton.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/core/PwTool.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/core/PwToolType.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/core/ThreeExtensions.kt (96%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/core/commands/Command.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/core/controllers/DockController.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/core/controllers/PathAwareTabContainerController.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/core/dom/Dom.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/core/files/FilesExtensions.kt (100%) create mode 100644 web/src/jsMain/kotlin/world/phantasmal/web/core/loading/AssetLoader.kt rename web/src/{main/kotlin/world/phantasmal/web/questEditor => jsMain/kotlin/world/phantasmal/web/core}/loading/LoadingCache.kt (95%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/core/models/Server.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/core/observable/Emitter.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/core/observable/Observable.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/core/observable/ObservableUtils.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/core/persistence/KeyValueStore.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/core/persistence/Persister.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/core/rendering/DisposableThreeRenderer.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/core/rendering/DisposeObject3DResources.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/core/rendering/InputManager.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/core/rendering/OrbitalCameraInputManager.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/core/rendering/RenderContext.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/core/rendering/Renderer.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/core/rendering/conversion/Conversion.kt (83%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/core/rendering/conversion/MeshBuilder.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/core/rendering/conversion/NinjaAnimation.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/core/rendering/conversion/NinjaGeometryConversion.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/core/rendering/conversion/XvrTextureConversion.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/core/stores/ItemDropStore.kt (97%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/core/stores/ItemTypeStore.kt (94%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/core/stores/UiStore.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/core/undo/Undo.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/core/undo/UndoManager.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/core/undo/UndoStack.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/core/widgets/DockWidget.kt (97%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/core/widgets/RendererWidget.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/core/widgets/UnavailableWidget.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/externals/goldenLayout/goldenLayout.kt (99%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/externals/javascriptLpSolver/javascriptLpSolver.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/externals/monacoEditor/editor.kt (88%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/externals/monacoEditor/editorExtensions.kt (61%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/externals/monacoEditor/languages.kt (84%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/externals/monacoEditor/languagesExtensions.kt (67%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/externals/monacoEditor/monacoEditor.kt (96%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/externals/three/BufferGeometryUtils.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/externals/three/OrbitControls.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/externals/three/three.kt (98%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/huntOptimizer/HuntOptimizer.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/huntOptimizer/HuntOptimizerUrls.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/huntOptimizer/controllers/HuntOptimizerController.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/huntOptimizer/controllers/MethodsController.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/huntOptimizer/controllers/MethodsForEpisodeController.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/huntOptimizer/controllers/OptimizationResultController.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/huntOptimizer/controllers/WantedItemsController.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/huntOptimizer/models/HuntMethodModel.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/huntOptimizer/models/OptimalMethodModel.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/huntOptimizer/models/OptimizationResultModel.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/huntOptimizer/models/SimpleQuestModel.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/huntOptimizer/models/WantedItemModel.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/huntOptimizer/persistence/HuntMethodPersister.kt (92%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/huntOptimizer/persistence/WantedItemPersister.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/huntOptimizer/stores/HuntMethodStore.kt (94%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/huntOptimizer/stores/HuntOptimizerStore.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/huntOptimizer/widgets/HelpWidget.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/huntOptimizer/widgets/HuntOptimizerWidget.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/huntOptimizer/widgets/MethodsForEpisodeWidget.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/huntOptimizer/widgets/MethodsWidget.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/huntOptimizer/widgets/OptimizationResultWidget.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/huntOptimizer/widgets/OptimizerWidget.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/huntOptimizer/widgets/WantedItemsWidget.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/questEditor/QuestEditor.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/questEditor/QuestRunner.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/questEditor/asm/AsmAnalyser.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/questEditor/asm/monaco/AsmCompletionItemProvider.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/questEditor/asm/monaco/AsmDefinitionProvider.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/questEditor/asm/monaco/AsmDocumentHighlightProvider.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/questEditor/asm/monaco/AsmDocumentSymbolProvider.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/questEditor/asm/monaco/AsmHoverProvider.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/questEditor/asm/monaco/AsmLanguageConfiguration.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/questEditor/asm/monaco/AsmMonarchLanguage.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/questEditor/asm/monaco/AsmSignatureHelpProvider.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/questEditor/asm/monaco/EditorHistory.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/questEditor/asm/monaco/MonacoProvider.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/questEditor/asm/monaco/MonacoUtils.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/questEditor/commands/CreateEntityCommand.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/questEditor/commands/CreateEventActionCommand.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/questEditor/commands/CreateEventCommand.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/questEditor/commands/DeleteEntityCommand.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/questEditor/commands/DeleteEventActionCommand.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/questEditor/commands/DeleteEventCommand.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/questEditor/commands/EditEntityPropCommand.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/questEditor/commands/EditEntityPropertyCommand.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/questEditor/commands/EditEntitySectionCommand.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/questEditor/commands/EditEventActionPropertyCommand.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/questEditor/commands/EditEventPropertyCommand.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/questEditor/commands/EditQuestPropertyCommand.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/questEditor/commands/RotateEntityCommand.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/questEditor/commands/TranslateEntityCommand.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/questEditor/controllers/AsmEditorController.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/questEditor/controllers/EntityInfoController.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/questEditor/controllers/EntityListController.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/questEditor/controllers/EventsController.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/questEditor/controllers/NpcCountsController.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/questEditor/controllers/QuestEditorController.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/questEditor/controllers/QuestEditorToolbarController.kt (92%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/questEditor/controllers/QuestInfoController.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/questEditor/loading/AreaAssetLoader.kt (99%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/questEditor/loading/EntityAssetLoader.kt (99%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/questEditor/loading/QuestLoader.kt (95%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/questEditor/models/AreaModel.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/questEditor/models/AreaVariantModel.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/questEditor/models/QuestEntityModel.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/questEditor/models/QuestEntityPropModel.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/questEditor/models/QuestEventActionModel.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/questEditor/models/QuestEventModel.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/questEditor/models/QuestModel.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/questEditor/models/QuestNpcModel.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/questEditor/models/QuestObjectModel.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/questEditor/models/SectionModel.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/questEditor/models/WaveModel.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/questEditor/persistence/QuestEditorUiPersister.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/questEditor/rendering/AreaMeshManager.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/questEditor/rendering/DestinationInstance.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/questEditor/rendering/DestinationInstanceContainer.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/questEditor/rendering/EntityImageRenderer.kt (98%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/questEditor/rendering/EntityInstance.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/questEditor/rendering/EntityInstanceContainer.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/questEditor/rendering/EntityMeshManager.kt (99%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/questEditor/rendering/Instance.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/questEditor/rendering/InstanceContainer.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/questEditor/rendering/QuestEditorMeshManager.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/questEditor/rendering/QuestMeshManager.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/questEditor/rendering/QuestRenderContext.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/questEditor/rendering/QuestRenderer.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/questEditor/rendering/input/Evt.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/questEditor/rendering/input/QuestInputManager.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/questEditor/rendering/input/state/CreationState.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/questEditor/rendering/input/state/IdleState.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/questEditor/rendering/input/state/RotationState.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/questEditor/rendering/input/state/State.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/questEditor/rendering/input/state/StateContext.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/questEditor/rendering/input/state/TranslationState.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/questEditor/stores/AreaStore.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/questEditor/stores/AsmStore.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/questEditor/stores/ModelConversion.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/questEditor/stores/QuestEditorStore.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/questEditor/undo/TextModelUndo.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/questEditor/widgets/AsmEditorWidget.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/questEditor/widgets/AsmToolbarWidget.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/questEditor/widgets/AsmWidget.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/questEditor/widgets/EntityDnd.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/questEditor/widgets/EntityInfoWidget.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/questEditor/widgets/EntityListWidget.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/questEditor/widgets/EventActionWidget.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/questEditor/widgets/EventWidget.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/questEditor/widgets/EventsWidget.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/questEditor/widgets/NpcCountsWidget.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/questEditor/widgets/QuestEditorRendererWidget.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/questEditor/widgets/QuestEditorToolbarWidget.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/questEditor/widgets/QuestEditorWidget.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/questEditor/widgets/QuestInfoWidget.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/questEditor/widgets/QuestRendererWidget.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/viewer/Viewer.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/viewer/ViewerUrls.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/viewer/controllers/CharacterClassOptionsController.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/viewer/controllers/ViewerController.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/viewer/controllers/ViewerToolbarController.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/viewer/loading/AnimationAssetLoader.kt (93%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/viewer/loading/CharacterClassAssetLoader.kt (99%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/viewer/models/AnimationModel.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/viewer/models/CharacterClass.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/viewer/rendering/MeshRenderer.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/viewer/rendering/TextureRenderer.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/viewer/stores/ViewerStore.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/viewer/widgets/CharacterClassOptionsWidget.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/viewer/widgets/SelectionWidget.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/viewer/widgets/ViewerToolbarWidget.kt (100%) rename web/src/{main => jsMain}/kotlin/world/phantasmal/web/viewer/widgets/ViewerWidget.kt (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_ancient01.xvm (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_ancient01_00c.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_ancient01_00n.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_ancient01_01c.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_ancient01_01n.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_ancient01_02c.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_ancient01_02n.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_ancient01_03c.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_ancient01_03n.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_ancient01_04c.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_ancient01_04n.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_ancient02.xvm (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_ancient02_00c.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_ancient02_00n.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_ancient02_01c.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_ancient02_01n.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_ancient02_02c.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_ancient02_02n.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_ancient02_03c.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_ancient02_03n.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_ancient02_04c.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_ancient02_04n.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_ancient03.xvm (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_ancient03_00c.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_ancient03_00n.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_ancient03_01c.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_ancient03_01n.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_ancient03_02c.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_ancient03_02n.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_ancient03_03c.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_ancient03_03n.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_ancient03_04c.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_ancient03_04n.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_boss01.xvm (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_boss01c.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_boss01n.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_boss02.xvm (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_boss02c.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_boss02n.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_boss03.xvm (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_boss03c.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_boss03n.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_boss05.xvm (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_boss05c.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_boss05m.xvm (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_boss05n.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_boss06.xvm (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_boss06c.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_boss06n.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_boss07.xvm (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_boss07c.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_boss07n.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_boss08.xvm (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_boss08c.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_boss08m.xvm (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_boss08n.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_boss09.xvm (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_boss09_00c.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_boss09_00n.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_cave01.xvm (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_cave01_00c.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_cave01_00n.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_cave01_01c.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_cave01_01n.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_cave01_02c.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_cave01_02n.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_cave01_03c.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_cave01_03n.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_cave01_04c.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_cave01_04n.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_cave01_05c.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_cave01_05n.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_cave02.xvm (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_cave02_00c.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_cave02_00n.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_cave02_01c.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_cave02_01n.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_cave02_02c.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_cave02_02n.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_cave02_03c.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_cave02_03n.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_cave02_04c.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_cave02_04n.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_cave03.xvm (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_cave03_00c.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_cave03_00n.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_cave03_01c.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_cave03_01n.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_cave03_02c.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_cave03_02n.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_cave03_03c.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_cave03_03n.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_cave03_04c.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_cave03_04n.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_cave03_05c.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_cave03_05n.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_city00.xvm (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_city00_00c.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_city00_00n.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_city02.xvm (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_city02_00c.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_city02_00n.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_crater01.xvm (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_crater01_00c.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_crater01_00n.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_darkfalz00.xvm (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_darkfalz00c.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_darkfalz00n.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_desert01.xvm (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_desert01_00c.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_desert01_00n.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_desert01_01c.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_desert01_01n.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_desert01_02c.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_desert01_02n.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_desert02.xvm (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_desert02_00c.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_desert02_00n.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_desert02_01c.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_desert02_01n.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_desert02_02c.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_desert02_02n.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_desert03.xvm (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_desert03_00c.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_desert03_00n.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_desert03_01c.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_desert03_01n.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_desert03_02c.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_desert03_02n.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_forest01.xvm (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_forest01c.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_forest01n.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_forest02.xvm (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_forest02c.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_forest02n.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_jungle01.xvm (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_jungle01_00c.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_jungle01_00n.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_jungle01m.xvm (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_jungle02.xvm (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_jungle02_00c.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_jungle02_00n.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_jungle02m.xvm (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_jungle03.xvm (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_jungle03_00c.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_jungle03_00n.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_jungle03m.xvm (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_jungle04.xvm (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_jungle04_00c.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_jungle04_00n.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_jungle04_01c.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_jungle04_01n.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_jungle04_02c.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_jungle04_02n.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_jungle04m.xvm (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_jungle05.xvm (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_jungle05_00c.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_jungle05_00n.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_jungle05m.xvm (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_jungle06.xvm (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_jungle06_00c.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_jungle06_00n.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_jungle07.xvm (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_jungle07_00c.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_jungle07_00n.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_jungle07_01c.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_jungle07_01n.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_jungle07_02c.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_jungle07_02n.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_jungle07_03c.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_jungle07_03n.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_jungle07_04c.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_jungle07_04n.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_labo00.xvm (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_labo00_00c.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_labo00_00n.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_labo00m.xvm (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_lobby_00c.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_lobby_00n.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_lobby_01.xvm (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_lobby_01c.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_lobby_01n.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_lobby_02c.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_lobby_02n.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_lobby_03c.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_lobby_03n.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_lobby_04c.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_lobby_04n.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_lobby_05c.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_lobby_05n.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_lobby_06c.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_lobby_06n.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_lobby_07c.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_lobby_07n.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_lobby_08c.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_lobby_08n.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_lobby_09c.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_lobby_09n.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_lobby_10c.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_lobby_10n.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_lobby_green_be00.xvm (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_lobby_green_be00c.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_lobby_green_be00n.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_lobby_red_be00.xvm (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_lobby_red_be00c.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_lobby_red_be00n.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_lobby_yellow_be00.xvm (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_lobby_yellow_be00c.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_lobby_yellow_be00n.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_machine01.xvm (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_machine01_00c.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_machine01_00n.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_machine01_01c.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_machine01_01n.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_machine01_02c.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_machine01_02n.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_machine01_03c.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_machine01_03n.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_machine01_04c.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_machine01_04n.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_machine01_05c.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_machine01_05n.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_machine01m.xvm (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_machine02.xvm (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_machine02_00c.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_machine02_00n.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_machine02_01c.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_machine02_01n.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_machine02_02c.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_machine02_02n.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_machine02_03c.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_machine02_03n.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_machine02_04c.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_machine02_04n.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_machine02_05c.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_machine02_05n.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_machine02m.xvm (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_ruins01.xvm (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_ruins01_00c.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_ruins01_00n.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_ruins01_01c.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_ruins01_01n.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_ruins01_02c.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_ruins01_02n.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_ruins02.xvm (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_ruins02_00c.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_ruins02_00n.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_ruins02_01c.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_ruins02_01n.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_ruins02_02c.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_ruins02_02n.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_seabed01.xvm (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_seabed01_00c.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_seabed01_00n.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_seabed01_01c.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_seabed01_01n.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_seabed01_02c.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_seabed01_02n.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_seabed01m.xvm (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_seabed02.xvm (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_seabed02_00c.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_seabed02_00n.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_seabed02_01c.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_seabed02_01n.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_seabed02_02c.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_seabed02_02n.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_seabed02m.xvm (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_soccer11.xvm (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_soccer11c.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_soccer11n.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_soccer12.xvm (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_soccer12c.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_soccer12n.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_space01.xvm (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_space01_00c.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_space01_00n.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_space01_01c.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_space01_01n.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_space01_02c.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_space01_02n.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_space02.xvm (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_space02_00c.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_space02_00n.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_space02_01c.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_space02_01n.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_space02_02c.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_space02_02n.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_test01.xvm (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_test01_00c.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_test01_00n.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_vs01.xvm (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_vs01_00c.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_vs01_00n.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_vs01_01c.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_vs01_01n.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_vs01_02c.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_vs01_02n.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_vs02.xvm (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_vs02_00c.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_vs02_00n.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_vs02_01c.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_vs02_01n.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_vs02_02c.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_vs02_02n.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_wilds01.xvm (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_wilds01_00c.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_wilds01_00n.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_wilds01_01c.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_wilds01_01n.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_wilds01_02c.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_wilds01_02n.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_wilds01_03c.rel (100%) rename web/src/{main => jsMain}/resources/assets/areas/map_wilds01_03n.rel (100%) rename web/src/{main => jsMain}/resources/assets/box_drops.ephinea.json (100%) rename web/src/{main => jsMain}/resources/assets/enemy_drops.ephinea.json (100%) rename web/src/{main => jsMain}/resources/assets/images/sectionids/Bluefull.png (100%) rename web/src/{main => jsMain}/resources/assets/images/sectionids/Greenill.png (100%) rename web/src/{main => jsMain}/resources/assets/images/sectionids/Oran.png (100%) rename web/src/{main => jsMain}/resources/assets/images/sectionids/Pinkal.png (100%) rename web/src/{main => jsMain}/resources/assets/images/sectionids/Purplenum.png (100%) rename web/src/{main => jsMain}/resources/assets/images/sectionids/Redria.png (100%) rename web/src/{main => jsMain}/resources/assets/images/sectionids/Skyly.png (100%) rename web/src/{main => jsMain}/resources/assets/images/sectionids/Viridia.png (100%) rename web/src/{main => jsMain}/resources/assets/images/sectionids/Whitill.png (100%) rename web/src/{main => jsMain}/resources/assets/images/sectionids/Yellowboze.png (100%) rename web/src/{main => jsMain}/resources/assets/item_types.ephinea.json (100%) rename web/src/{main => jsMain}/resources/assets/npcs/AlRappy.nj (100%) rename web/src/{main => jsMain}/resources/assets/npcs/AlRappy.xvm (100%) rename web/src/{main => jsMain}/resources/assets/npcs/Astark.nj (100%) rename web/src/{main => jsMain}/resources/assets/npcs/Astark.xvm (100%) rename web/src/{main => jsMain}/resources/assets/npcs/BaBoota.nj (100%) rename web/src/{main => jsMain}/resources/assets/npcs/BaBoota.xvm (100%) rename web/src/{main => jsMain}/resources/assets/npcs/BarbaRay.nj (100%) rename web/src/{main => jsMain}/resources/assets/npcs/BarbaRay.xvm (100%) rename web/src/{main => jsMain}/resources/assets/npcs/BarbarousWolf.nj (100%) rename web/src/{main => jsMain}/resources/assets/npcs/BarbarousWolf.xvm (100%) rename web/src/{main => jsMain}/resources/assets/npcs/BlueSoldier.nj (100%) rename web/src/{main => jsMain}/resources/assets/npcs/BlueSoldier.xvm (100%) rename web/src/{main => jsMain}/resources/assets/npcs/Booma.nj (100%) rename web/src/{main => jsMain}/resources/assets/npcs/Booma.xvm (100%) rename web/src/{main => jsMain}/resources/assets/npcs/Boota.nj (100%) rename web/src/{main => jsMain}/resources/assets/npcs/Boota.xvm (100%) rename web/src/{main => jsMain}/resources/assets/npcs/Bulclaw.nj (100%) rename web/src/{main => jsMain}/resources/assets/npcs/Bulclaw.xvm (100%) rename web/src/{main => jsMain}/resources/assets/npcs/Bulk.nj (100%) rename web/src/{main => jsMain}/resources/assets/npcs/Bulk.xvm (100%) rename web/src/{main => jsMain}/resources/assets/npcs/Canadine.nj (100%) rename web/src/{main => jsMain}/resources/assets/npcs/Canadine.xvm (100%) rename web/src/{main => jsMain}/resources/assets/npcs/Canane.nj (100%) rename web/src/{main => jsMain}/resources/assets/npcs/Canane.xvm (100%) rename web/src/{main => jsMain}/resources/assets/npcs/ChaosBringer.nj (100%) rename web/src/{main => jsMain}/resources/assets/npcs/ChaosBringer.xvm (100%) rename web/src/{main => jsMain}/resources/assets/npcs/ChaosSorcerer.nj (100%) rename web/src/{main => jsMain}/resources/assets/npcs/ChaosSorcerer.xvm (100%) rename web/src/{main => jsMain}/resources/assets/npcs/Claw.nj (100%) rename web/src/{main => jsMain}/resources/assets/npcs/Claw.xvm (100%) rename web/src/{main => jsMain}/resources/assets/npcs/DarkBelra.nj (100%) rename web/src/{main => jsMain}/resources/assets/npcs/DarkBelra.xvm (100%) rename web/src/{main => jsMain}/resources/assets/npcs/DarkFalz.nj (100%) rename web/src/{main => jsMain}/resources/assets/npcs/DarkFalz.xvm (100%) rename web/src/{main => jsMain}/resources/assets/npcs/DarkGunner.nj (100%) rename web/src/{main => jsMain}/resources/assets/npcs/DarkGunner.xvm (100%) rename web/src/{main => jsMain}/resources/assets/npcs/DeRolLe.nj (100%) rename web/src/{main => jsMain}/resources/assets/npcs/DeRolLe.xvm (100%) rename web/src/{main => jsMain}/resources/assets/npcs/DelLily.nj (100%) rename web/src/{main => jsMain}/resources/assets/npcs/DelLily.xvm (100%) rename web/src/{main => jsMain}/resources/assets/npcs/DelRappy.nj (100%) rename web/src/{main => jsMain}/resources/assets/npcs/DelRappy.xvm (100%) rename web/src/{main => jsMain}/resources/assets/npcs/Delbiter.nj (100%) rename web/src/{main => jsMain}/resources/assets/npcs/Delbiter.xvm (100%) rename web/src/{main => jsMain}/resources/assets/npcs/Deldepth.nj (100%) rename web/src/{main => jsMain}/resources/assets/npcs/Deldepth.xvm (100%) rename web/src/{main => jsMain}/resources/assets/npcs/Delsaber.nj (100%) rename web/src/{main => jsMain}/resources/assets/npcs/Delsaber.xvm (100%) rename web/src/{main => jsMain}/resources/assets/npcs/Dimenian.nj (100%) rename web/src/{main => jsMain}/resources/assets/npcs/Dimenian.xvm (100%) rename web/src/{main => jsMain}/resources/assets/npcs/Dolmdarl.nj (100%) rename web/src/{main => jsMain}/resources/assets/npcs/Dolmdarl.xvm (100%) rename web/src/{main => jsMain}/resources/assets/npcs/Dolmolm.nj (100%) rename web/src/{main => jsMain}/resources/assets/npcs/Dolmolm.xvm (100%) rename web/src/{main => jsMain}/resources/assets/npcs/Dorphon.nj (100%) rename web/src/{main => jsMain}/resources/assets/npcs/Dorphon.xvm (100%) rename web/src/{main => jsMain}/resources/assets/npcs/DorphonEclair.nj (100%) rename web/src/{main => jsMain}/resources/assets/npcs/DorphonEclair.xvm (100%) rename web/src/{main => jsMain}/resources/assets/npcs/Dragon.nj (100%) rename web/src/{main => jsMain}/resources/assets/npcs/Dragon.xvm (100%) rename web/src/{main => jsMain}/resources/assets/npcs/Dubchic.nj (100%) rename web/src/{main => jsMain}/resources/assets/npcs/Dubchic.xvm (100%) rename web/src/{main => jsMain}/resources/assets/npcs/Dubswitch.xj (100%) rename web/src/{main => jsMain}/resources/assets/npcs/Dubswitch.xvm (100%) rename web/src/{main => jsMain}/resources/assets/npcs/Epsilon.nj (100%) rename web/src/{main => jsMain}/resources/assets/npcs/Epsilon.xvm (100%) rename web/src/{main => jsMain}/resources/assets/npcs/EvilShark.nj (100%) rename web/src/{main => jsMain}/resources/assets/npcs/EvilShark.xvm (100%) rename web/src/{main => jsMain}/resources/assets/npcs/FemaleFat.nj (100%) rename web/src/{main => jsMain}/resources/assets/npcs/FemaleFat.xvm (100%) rename web/src/{main => jsMain}/resources/assets/npcs/FemaleMacho.nj (100%) rename web/src/{main => jsMain}/resources/assets/npcs/FemaleMacho.xvm (100%) rename web/src/{main => jsMain}/resources/assets/npcs/FemaleTall.nj (100%) rename web/src/{main => jsMain}/resources/assets/npcs/FemaleTall.xvm (100%) rename web/src/{main => jsMain}/resources/assets/npcs/GalGryphon.nj (100%) rename web/src/{main => jsMain}/resources/assets/npcs/GalGryphon.xvm (100%) rename web/src/{main => jsMain}/resources/assets/npcs/Garanz.nj (100%) rename web/src/{main => jsMain}/resources/assets/npcs/Garanz.xvm (100%) rename web/src/{main => jsMain}/resources/assets/npcs/Gee.nj (100%) rename web/src/{main => jsMain}/resources/assets/npcs/Gee.xvm (100%) rename web/src/{main => jsMain}/resources/assets/npcs/GiGue.nj (100%) rename web/src/{main => jsMain}/resources/assets/npcs/GiGue.xvm (100%) rename web/src/{main => jsMain}/resources/assets/npcs/Gibbles.nj (100%) rename web/src/{main => jsMain}/resources/assets/npcs/Gibbles.xvm (100%) rename web/src/{main => jsMain}/resources/assets/npcs/Gigobooma.nj (100%) rename web/src/{main => jsMain}/resources/assets/npcs/Gigobooma.xvm (100%) rename web/src/{main => jsMain}/resources/assets/npcs/Gilchic.nj (100%) rename web/src/{main => jsMain}/resources/assets/npcs/Gilchic.xvm (100%) rename web/src/{main => jsMain}/resources/assets/npcs/Girtablulu.nj (100%) rename web/src/{main => jsMain}/resources/assets/npcs/Girtablulu.xvm (100%) rename web/src/{main => jsMain}/resources/assets/npcs/Gobooma.nj (100%) rename web/src/{main => jsMain}/resources/assets/npcs/Gobooma.xvm (100%) rename web/src/{main => jsMain}/resources/assets/npcs/GolDragon.nj (100%) rename web/src/{main => jsMain}/resources/assets/npcs/GolDragon.xvm (100%) rename web/src/{main => jsMain}/resources/assets/npcs/Goran.nj (100%) rename web/src/{main => jsMain}/resources/assets/npcs/Goran.xvm (100%) rename web/src/{main => jsMain}/resources/assets/npcs/GoranDetonator.nj (100%) rename web/src/{main => jsMain}/resources/assets/npcs/GoranDetonator.xvm (100%) rename web/src/{main => jsMain}/resources/assets/npcs/GrassAssassin.nj (100%) rename web/src/{main => jsMain}/resources/assets/npcs/GrassAssassin.xvm (100%) rename web/src/{main => jsMain}/resources/assets/npcs/GuilShark.nj (100%) rename web/src/{main => jsMain}/resources/assets/npcs/GuilShark.xvm (100%) rename web/src/{main => jsMain}/resources/assets/npcs/GuildLady.nj (100%) rename web/src/{main => jsMain}/resources/assets/npcs/GuildLady.xvm (100%) rename web/src/{main => jsMain}/resources/assets/npcs/Hildebear.nj (100%) rename web/src/{main => jsMain}/resources/assets/npcs/Hildebear.xvm (100%) rename web/src/{main => jsMain}/resources/assets/npcs/Hildeblue.nj (100%) rename web/src/{main => jsMain}/resources/assets/npcs/Hildeblue.xvm (100%) rename web/src/{main => jsMain}/resources/assets/npcs/IllGill.nj (100%) rename web/src/{main => jsMain}/resources/assets/npcs/IllGill.xvm (100%) rename web/src/{main => jsMain}/resources/assets/npcs/Irene.nj (100%) rename web/src/{main => jsMain}/resources/assets/npcs/Irene.xvm (100%) rename web/src/{main => jsMain}/resources/assets/npcs/ItemShop.nj (100%) rename web/src/{main => jsMain}/resources/assets/npcs/ItemShop.xvm (100%) rename web/src/{main => jsMain}/resources/assets/npcs/Kondrieu.nj (100%) rename web/src/{main => jsMain}/resources/assets/npcs/Kondrieu.xvm (100%) rename web/src/{main => jsMain}/resources/assets/npcs/LaDimenian.nj (100%) rename web/src/{main => jsMain}/resources/assets/npcs/LaDimenian.xvm (100%) rename web/src/{main => jsMain}/resources/assets/npcs/LoveRappy.nj (100%) rename web/src/{main => jsMain}/resources/assets/npcs/LoveRappy.xvm (100%) rename web/src/{main => jsMain}/resources/assets/npcs/MaleDwarf.nj (100%) rename web/src/{main => jsMain}/resources/assets/npcs/MaleDwarf.xvm (100%) rename web/src/{main => jsMain}/resources/assets/npcs/MaleFat.nj (100%) rename web/src/{main => jsMain}/resources/assets/npcs/MaleFat.xvm (100%) rename web/src/{main => jsMain}/resources/assets/npcs/MaleMacho.nj (100%) rename web/src/{main => jsMain}/resources/assets/npcs/MaleMacho.xvm (100%) rename web/src/{main => jsMain}/resources/assets/npcs/MaleOld.nj (100%) rename web/src/{main => jsMain}/resources/assets/npcs/MaleOld.xvm (100%) rename web/src/{main => jsMain}/resources/assets/npcs/Mericarol.nj (100%) rename web/src/{main => jsMain}/resources/assets/npcs/Mericarol.xvm (100%) rename web/src/{main => jsMain}/resources/assets/npcs/Mericus.nj (100%) rename web/src/{main => jsMain}/resources/assets/npcs/Mericus.xvm (100%) rename web/src/{main => jsMain}/resources/assets/npcs/Merikle.nj (100%) rename web/src/{main => jsMain}/resources/assets/npcs/Merikle.xvm (100%) rename web/src/{main => jsMain}/resources/assets/npcs/Merillia.nj (100%) rename web/src/{main => jsMain}/resources/assets/npcs/Merillia.xvm (100%) rename web/src/{main => jsMain}/resources/assets/npcs/Meriltas.nj (100%) rename web/src/{main => jsMain}/resources/assets/npcs/Meriltas.xvm (100%) rename web/src/{main => jsMain}/resources/assets/npcs/MerissaA.nj (100%) rename web/src/{main => jsMain}/resources/assets/npcs/MerissaA.xvm (100%) rename web/src/{main => jsMain}/resources/assets/npcs/MerissaAA.nj (100%) rename web/src/{main => jsMain}/resources/assets/npcs/MerissaAA.xvm (100%) rename web/src/{main => jsMain}/resources/assets/npcs/Monest.nj (100%) rename web/src/{main => jsMain}/resources/assets/npcs/Monest.xvm (100%) rename web/src/{main => jsMain}/resources/assets/npcs/Morfos.nj (100%) rename web/src/{main => jsMain}/resources/assets/npcs/Morfos.xvm (100%) rename web/src/{main => jsMain}/resources/assets/npcs/Mothmant.nj (100%) rename web/src/{main => jsMain}/resources/assets/npcs/Mothmant.xvm (100%) rename web/src/{main => jsMain}/resources/assets/npcs/NanoDragon.nj (100%) rename web/src/{main => jsMain}/resources/assets/npcs/NanoDragon.xvm (100%) rename web/src/{main => jsMain}/resources/assets/npcs/NarLily.nj (100%) rename web/src/{main => jsMain}/resources/assets/npcs/NarLily.xvm (100%) rename web/src/{main => jsMain}/resources/assets/npcs/Nurse.nj (100%) rename web/src/{main => jsMain}/resources/assets/npcs/Nurse.xvm (100%) rename web/src/{main => jsMain}/resources/assets/npcs/Nurse2.nj (100%) rename web/src/{main => jsMain}/resources/assets/npcs/Nurse2.xvm (100%) rename web/src/{main => jsMain}/resources/assets/npcs/OlgaFlow.nj (100%) rename web/src/{main => jsMain}/resources/assets/npcs/OlgaFlow.xvm (100%) rename web/src/{main => jsMain}/resources/assets/npcs/PalShark.nj (100%) rename web/src/{main => jsMain}/resources/assets/npcs/PalShark.xvm (100%) rename web/src/{main => jsMain}/resources/assets/npcs/PanArms.nj (100%) rename web/src/{main => jsMain}/resources/assets/npcs/PanArms.xvm (100%) rename web/src/{main => jsMain}/resources/assets/npcs/Pazuzu.nj (100%) rename web/src/{main => jsMain}/resources/assets/npcs/Pazuzu.xvm (100%) rename web/src/{main => jsMain}/resources/assets/npcs/PofuillySlime.nj (100%) rename web/src/{main => jsMain}/resources/assets/npcs/PofuillySlime.xvm (100%) rename web/src/{main => jsMain}/resources/assets/npcs/PoisonLily.nj (100%) rename web/src/{main => jsMain}/resources/assets/npcs/PoisonLily.xvm (100%) rename web/src/{main => jsMain}/resources/assets/npcs/PouillySlime.nj (100%) rename web/src/{main => jsMain}/resources/assets/npcs/PouillySlime.xvm (100%) rename web/src/{main => jsMain}/resources/assets/npcs/Principal.nj (100%) rename web/src/{main => jsMain}/resources/assets/npcs/Principal.xvm (100%) rename web/src/{main => jsMain}/resources/assets/npcs/PyroGoran.nj (100%) rename web/src/{main => jsMain}/resources/assets/npcs/PyroGoran.xvm (100%) rename web/src/{main => jsMain}/resources/assets/npcs/RagRappy.nj (100%) rename web/src/{main => jsMain}/resources/assets/npcs/RagRappy.xvm (100%) rename web/src/{main => jsMain}/resources/assets/npcs/Recobox.nj (100%) rename web/src/{main => jsMain}/resources/assets/npcs/Recobox.xvm (100%) rename web/src/{main => jsMain}/resources/assets/npcs/RedSoldier.nj (100%) rename web/src/{main => jsMain}/resources/assets/npcs/RedSoldier.xvm (100%) rename web/src/{main => jsMain}/resources/assets/npcs/SaintMilion.nj (100%) rename web/src/{main => jsMain}/resources/assets/npcs/SaintMilion.xvm (100%) rename web/src/{main => jsMain}/resources/assets/npcs/SandRappy.nj (100%) rename web/src/{main => jsMain}/resources/assets/npcs/SandRappy.xvm (100%) rename web/src/{main => jsMain}/resources/assets/npcs/SatelliteLizard.nj (100%) rename web/src/{main => jsMain}/resources/assets/npcs/SatelliteLizard.xvm (100%) rename web/src/{main => jsMain}/resources/assets/npcs/SavageWolf.nj (100%) rename web/src/{main => jsMain}/resources/assets/npcs/SavageWolf.xvm (100%) rename web/src/{main => jsMain}/resources/assets/npcs/Scientist.nj (100%) rename web/src/{main => jsMain}/resources/assets/npcs/Scientist.xvm (100%) rename web/src/{main => jsMain}/resources/assets/npcs/Shambertin.nj (100%) rename web/src/{main => jsMain}/resources/assets/npcs/Shambertin.xvm (100%) rename web/src/{main => jsMain}/resources/assets/npcs/SinowBeat.nj (100%) rename web/src/{main => jsMain}/resources/assets/npcs/SinowBeat.xvm (100%) rename web/src/{main => jsMain}/resources/assets/npcs/SinowBerill.nj (100%) rename web/src/{main => jsMain}/resources/assets/npcs/SinowBerill.xvm (100%) rename web/src/{main => jsMain}/resources/assets/npcs/SinowGold.nj (100%) rename web/src/{main => jsMain}/resources/assets/npcs/SinowGold.xvm (100%) rename web/src/{main => jsMain}/resources/assets/npcs/SinowSpigell.nj (100%) rename web/src/{main => jsMain}/resources/assets/npcs/SinowSpigell.xvm (100%) rename web/src/{main => jsMain}/resources/assets/npcs/SinowZele.nj (100%) rename web/src/{main => jsMain}/resources/assets/npcs/SinowZele.xvm (100%) rename web/src/{main => jsMain}/resources/assets/npcs/SinowZoa.nj (100%) rename web/src/{main => jsMain}/resources/assets/npcs/SinowZoa.xvm (100%) rename web/src/{main => jsMain}/resources/assets/npcs/SoDimenian.nj (100%) rename web/src/{main => jsMain}/resources/assets/npcs/SoDimenian.xvm (100%) rename web/src/{main => jsMain}/resources/assets/npcs/Tekker.nj (100%) rename web/src/{main => jsMain}/resources/assets/npcs/Tekker.xvm (100%) rename web/src/{main => jsMain}/resources/assets/npcs/UlGibbon.nj (100%) rename web/src/{main => jsMain}/resources/assets/npcs/UlGibbon.xvm (100%) rename web/src/{main => jsMain}/resources/assets/npcs/VolOptPart2.nj (100%) rename web/src/{main => jsMain}/resources/assets/npcs/VolOptPart2.xvm (100%) rename web/src/{main => jsMain}/resources/assets/npcs/Yowie.nj (100%) rename web/src/{main => jsMain}/resources/assets/npcs/Yowie.xvm (100%) rename web/src/{main => jsMain}/resources/assets/npcs/ZeBoota.nj (100%) rename web/src/{main => jsMain}/resources/assets/npcs/ZeBoota.xvm (100%) rename web/src/{main => jsMain}/resources/assets/npcs/ZolGibbon.nj (100%) rename web/src/{main => jsMain}/resources/assets/npcs/ZolGibbon.xvm (100%) rename web/src/{main => jsMain}/resources/assets/npcs/Zu.nj (100%) rename web/src/{main => jsMain}/resources/assets/npcs/Zu.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/10-2.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/10-2.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/10.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/10.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/11-2.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/11-2.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/11.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/11.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/12-2.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/12-2.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/12.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/12.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/128-2.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/128-3.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/128-4.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/128-5.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/128.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/128.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/129-2.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/129-3.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/129.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/129.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/13-2.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/13-2.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/13.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/13.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/130-2.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/130.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/130.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/131-2.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/131.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/131.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/132-2.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/132-3.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/132.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/132.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/133.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/133.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/134.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/134.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/135-0.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/135-0.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/135-1.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/135-1.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/135.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/135.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/136-2.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/136-3.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/136.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/136.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/137.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/137.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/139-0.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/139-0.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/139-1.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/139-1.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/139.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/139.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/140-2.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/140.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/140.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/141.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/141.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/142-2.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/142-2.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/142.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/142.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/143.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/143.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/144-2.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/144-a.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/144-a.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/144.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/144.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/145-2.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/145-3.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/145.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/145.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/146-2.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/146-3.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/146-4.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/146.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/146.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/147-2.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/147-3.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/147-4.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/147.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/147.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/149.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/149.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/15.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/15.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/150-2.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/150.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/150.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/151-2.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/151.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/151.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/19.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/19.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/192.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/192.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/193.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/193.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/194.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/194.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/195-2.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/195-3.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/195.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/195.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/196.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/196.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/197.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/197.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/198.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/198.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/199.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/199.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/2-2.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/2.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/2.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/200.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/200.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/201.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/201.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/204.nj (100%) rename web/src/{main => jsMain}/resources/assets/objects/204.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/205.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/205.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/206.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/206.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/207-2.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/207.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/207.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/208.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/208.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/209.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/209.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/210.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/210.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/211.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/211.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/212.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/212.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/213.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/213.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/214.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/214.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/215.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/215.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/216.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/216.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/217.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/217.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/218.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/218.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/219.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/219.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/220.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/220.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/222.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/222.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/223.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/223.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/224.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/224.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/225.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/225.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/25-2.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/25.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/25.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/256.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/256.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/257.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/257.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/258.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/258.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/259.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/259.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/260.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/260.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/261.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/261.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/262.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/262.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/264-a.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/264-a.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/264-b.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/264-b.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/264.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/264.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/265-a.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/265-a.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/265-b.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/265-b.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/265.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/265.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/266-a.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/266-a.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/266-b.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/266-b.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/266.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/266.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/267.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/267.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/268.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/268.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/27-2.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/27.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/27.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/28-2.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/28.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/28.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/3-2.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/3.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/3.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/304.nj (100%) rename web/src/{main => jsMain}/resources/assets/objects/304.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/320-2.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/320-3.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/320-4.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/320-a.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/320-a.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/320-b.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/320-b.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/320-c.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/320-c.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/320.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/320.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/321-2.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/321-a.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/321-a.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/321.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/321.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/322-2.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/322-a.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/322-a.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/322.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/322.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/323.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/323.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/324.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/324.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/325.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/325.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/326.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/326.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/327.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/327.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/328.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/328.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/329.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/329.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/330.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/330.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/331.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/331.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/332.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/332.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/333.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/333.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/334.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/334.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/335.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/335.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/336.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/336.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/337.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/337.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/338.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/338.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/339-2.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/339-3.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/339-4.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/339.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/339.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/341-2.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/341-3.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/341.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/341.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/342.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/342.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/345.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/345.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/346.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/346.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/347.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/347.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/348.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/348.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/349.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/349.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/350.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/350.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/351.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/351.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/353-2.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/353-3.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/353.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/353.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/354-2.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/354-3.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/354.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/354.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/358.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/358.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/359.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/359.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/368.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/368.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/369.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/369.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/370-0.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/370-0.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/370-1.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/370-1.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/370-2.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/370-2.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/370-3.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/370-3.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/385.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/385.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/386.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/386.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/390.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/390.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/391.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/391.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/395.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/395.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/396.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/396.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/401.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/401.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/402.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/402.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/403.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/403.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/416.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/416.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/417.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/417.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/418.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/418.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/419.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/419.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/420.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/420.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/421.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/421.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/422.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/422.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/423.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/423.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/425.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/425.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/426.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/426.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/427.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/427.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/448.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/448.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/512-2.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/512-3.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/512-4.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/512.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/512.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/513-2.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/513.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/513.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/514-2.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/514.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/514.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/515-2.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/515-3.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/515-4.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/515.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/515.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/516-2.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/516-3.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/516-4.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/516.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/516.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/517-2.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/517.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/517.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/518.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/518.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/519.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/519.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/520.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/520.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/521.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/521.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/527-0.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/527-0.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/527-1.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/527-1.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/527.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/527.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/528-0.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/528-0.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/528-1.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/528-1.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/528-2.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/528.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/528.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/544.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/544.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/545.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/545.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/546.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/546.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/547-0.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/547-0.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/547-1.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/547-1.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/547.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/547.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/548.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/548.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/549.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/549.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/550.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/550.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/551.nj (100%) rename web/src/{main => jsMain}/resources/assets/objects/551.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/552-2.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/552-3.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/552.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/552.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/553.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/553.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/67-2.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/67.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/67.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/68.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/68.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/688.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/688.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/689.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/689.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/69-0.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/69-0.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/69-1.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/69-1.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/69-2.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/69-a.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/69.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/69.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/690.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/690.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/691.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/691.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/692.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/692.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/693.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/693.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/694.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/694.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/696.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/696.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/699.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/699.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/70.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/70.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/701-2.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/701.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/701.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/71.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/71.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/72-2.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/72.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/72.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/73.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/73.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/74.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/74.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/75-2.nj (100%) rename web/src/{main => jsMain}/resources/assets/objects/75.nj (100%) rename web/src/{main => jsMain}/resources/assets/objects/75.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/76-2.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/76-3.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/76.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/76.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/769-0.nj (100%) rename web/src/{main => jsMain}/resources/assets/objects/769-0.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/769-1.nj (100%) rename web/src/{main => jsMain}/resources/assets/objects/769-1.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/769-2.nj (100%) rename web/src/{main => jsMain}/resources/assets/objects/769-2.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/769.nj (100%) rename web/src/{main => jsMain}/resources/assets/objects/769.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/77-2.nj (100%) rename web/src/{main => jsMain}/resources/assets/objects/77-3.nj (100%) rename web/src/{main => jsMain}/resources/assets/objects/77-4.nj (100%) rename web/src/{main => jsMain}/resources/assets/objects/77.nj (100%) rename web/src/{main => jsMain}/resources/assets/objects/77.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/770-0.nj (100%) rename web/src/{main => jsMain}/resources/assets/objects/770-0.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/770-1.nj (100%) rename web/src/{main => jsMain}/resources/assets/objects/770-1.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/770-2.nj (100%) rename web/src/{main => jsMain}/resources/assets/objects/770-2.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/78.nj (100%) rename web/src/{main => jsMain}/resources/assets/objects/78.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/79.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/79.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/80-2.nj (100%) rename web/src/{main => jsMain}/resources/assets/objects/80.nj (100%) rename web/src/{main => jsMain}/resources/assets/objects/80.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/81-0.nj (100%) rename web/src/{main => jsMain}/resources/assets/objects/81-0.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/81-1.nj (100%) rename web/src/{main => jsMain}/resources/assets/objects/81-1.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/81-2.nj (100%) rename web/src/{main => jsMain}/resources/assets/objects/81-2.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/81-3.nj (100%) rename web/src/{main => jsMain}/resources/assets/objects/81-3.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/81.nj (100%) rename web/src/{main => jsMain}/resources/assets/objects/81.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/82-2.nj (100%) rename web/src/{main => jsMain}/resources/assets/objects/82.nj (100%) rename web/src/{main => jsMain}/resources/assets/objects/82.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/84.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/84.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/86.xj (100%) rename web/src/{main => jsMain}/resources/assets/objects/86.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/896.nj (100%) rename web/src/{main => jsMain}/resources/assets/objects/896.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/902-0.nj (100%) rename web/src/{main => jsMain}/resources/assets/objects/902-0.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/902-1.nj (100%) rename web/src/{main => jsMain}/resources/assets/objects/902-1.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/902-2.nj (100%) rename web/src/{main => jsMain}/resources/assets/objects/902-2.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/902.nj (100%) rename web/src/{main => jsMain}/resources/assets/objects/902.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/907.nj (100%) rename web/src/{main => jsMain}/resources/assets/objects/907.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/909.nj (100%) rename web/src/{main => jsMain}/resources/assets/objects/909.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/911-0.nj (100%) rename web/src/{main => jsMain}/resources/assets/objects/911-0.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/911-1.nj (100%) rename web/src/{main => jsMain}/resources/assets/objects/911-1.xvm (100%) rename web/src/{main => jsMain}/resources/assets/objects/911.nj (100%) rename web/src/{main => jsMain}/resources/assets/objects/911.xvm (100%) rename web/src/{main => jsMain}/resources/assets/player/FOmarAccessory0.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/FOmarAccessory1.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/FOmarAccessory2.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/FOmarAccessory3.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/FOmarAccessory4.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/FOmarAccessory5.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/FOmarAccessory6.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/FOmarAccessory7.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/FOmarAccessory8.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/FOmarAccessory9.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/FOmarBody.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/FOmarHair0.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/FOmarHair1.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/FOmarHair2.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/FOmarHair3.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/FOmarHair4.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/FOmarHair5.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/FOmarHair6.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/FOmarHair7.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/FOmarHair8.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/FOmarHair9.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/FOmarHead0.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/FOmarTex.afs (100%) rename web/src/{main => jsMain}/resources/assets/player/FOmarlAccessory0.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/FOmarlAccessory1.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/FOmarlAccessory2.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/FOmarlAccessory3.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/FOmarlAccessory4.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/FOmarlAccessory5.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/FOmarlAccessory6.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/FOmarlAccessory7.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/FOmarlAccessory8.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/FOmarlAccessory9.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/FOmarlBody.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/FOmarlHair0.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/FOmarlHair1.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/FOmarlHair2.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/FOmarlHair3.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/FOmarlHair4.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/FOmarlHair5.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/FOmarlHair6.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/FOmarlHair7.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/FOmarlHair8.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/FOmarlHair9.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/FOmarlHead0.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/FOmarlTex.afs (100%) rename web/src/{main => jsMain}/resources/assets/player/FOnewearlAccessory0.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/FOnewearlAccessory1.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/FOnewearlAccessory2.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/FOnewearlAccessory3.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/FOnewearlAccessory4.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/FOnewearlAccessory5.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/FOnewearlAccessory6.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/FOnewearlAccessory7.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/FOnewearlAccessory8.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/FOnewearlAccessory9.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/FOnewearlBody.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/FOnewearlHair0.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/FOnewearlHair1.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/FOnewearlHair2.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/FOnewearlHair3.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/FOnewearlHair4.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/FOnewearlHair5.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/FOnewearlHair6.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/FOnewearlHair7.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/FOnewearlHair8.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/FOnewearlHair9.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/FOnewearlHead0.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/FOnewearlTex.afs (100%) rename web/src/{main => jsMain}/resources/assets/player/FOnewmAccessory0.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/FOnewmAccessory1.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/FOnewmAccessory2.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/FOnewmAccessory3.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/FOnewmAccessory4.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/FOnewmAccessory5.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/FOnewmAccessory6.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/FOnewmAccessory7.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/FOnewmAccessory8.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/FOnewmAccessory9.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/FOnewmBody.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/FOnewmHair0.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/FOnewmHair1.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/FOnewmHair2.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/FOnewmHair3.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/FOnewmHair4.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/FOnewmHair5.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/FOnewmHair6.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/FOnewmHair7.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/FOnewmHair8.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/FOnewmHair9.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/FOnewmHead0.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/FOnewmTex.afs (100%) rename web/src/{main => jsMain}/resources/assets/player/HUcasealBody.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/HUcasealHead0.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/HUcasealHead1.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/HUcasealHead2.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/HUcasealHead3.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/HUcasealHead4.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/HUcasealTex.afs (100%) rename web/src/{main => jsMain}/resources/assets/player/HUcastBody.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/HUcastHead0.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/HUcastHead1.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/HUcastHead2.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/HUcastHead3.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/HUcastHead4.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/HUcastTex.afs (100%) rename web/src/{main => jsMain}/resources/assets/player/HUmarAccessory6.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/HUmarBody.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/HUmarHair0.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/HUmarHair1.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/HUmarHair2.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/HUmarHair3.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/HUmarHair4.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/HUmarHair5.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/HUmarHair6.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/HUmarHair7.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/HUmarHair8.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/HUmarHair9.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/HUmarHead0.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/HUmarTex.afs (100%) rename web/src/{main => jsMain}/resources/assets/player/HUnewearlBody.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/HUnewearlHair0.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/HUnewearlHair1.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/HUnewearlHair2.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/HUnewearlHair3.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/HUnewearlHair4.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/HUnewearlHair5.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/HUnewearlHair6.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/HUnewearlHair7.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/HUnewearlHair8.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/HUnewearlHair9.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/HUnewearlHead0.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/HUnewearlTex.afs (100%) rename web/src/{main => jsMain}/resources/assets/player/RAcasealBody.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/RAcasealHead0.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/RAcasealHead1.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/RAcasealHead2.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/RAcasealHead3.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/RAcasealHead4.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/RAcasealTex.afs (100%) rename web/src/{main => jsMain}/resources/assets/player/RAcastBody.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/RAcastHead0.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/RAcastHead1.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/RAcastHead2.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/RAcastHead3.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/RAcastHead4.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/RAcastTex.afs (100%) rename web/src/{main => jsMain}/resources/assets/player/RAmarAccessory0.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/RAmarAccessory1.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/RAmarAccessory2.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/RAmarAccessory3.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/RAmarAccessory4.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/RAmarAccessory5.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/RAmarAccessory6.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/RAmarAccessory7.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/RAmarAccessory8.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/RAmarAccessory9.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/RAmarBody.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/RAmarHair0.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/RAmarHair1.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/RAmarHair2.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/RAmarHair3.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/RAmarHair4.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/RAmarHair5.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/RAmarHair6.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/RAmarHair7.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/RAmarHair8.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/RAmarHair9.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/RAmarHead0.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/RAmarTex.afs (100%) rename web/src/{main => jsMain}/resources/assets/player/RAmarlAccessory0.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/RAmarlAccessory1.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/RAmarlAccessory2.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/RAmarlAccessory3.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/RAmarlAccessory4.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/RAmarlAccessory5.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/RAmarlAccessory6.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/RAmarlAccessory7.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/RAmarlAccessory8.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/RAmarlAccessory9.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/RAmarlBody.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/RAmarlHair0.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/RAmarlHair1.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/RAmarlHair2.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/RAmarlHair3.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/RAmarlHair4.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/RAmarlHair5.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/RAmarlHair6.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/RAmarlHair7.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/RAmarlHair8.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/RAmarlHair9.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/RAmarlHead0.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/RAmarlTex.afs (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_000.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_001.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_002.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_003.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_004.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_005.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_006.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_007.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_008.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_009.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_010.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_011.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_012.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_013.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_014.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_015.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_016.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_017.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_018.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_019.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_020.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_021.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_022.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_023.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_024.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_025.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_026.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_027.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_028.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_029.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_030.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_031.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_032.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_033.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_034.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_035.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_036.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_037.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_038.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_039.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_040.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_041.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_042.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_043.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_044.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_045.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_046.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_047.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_048.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_049.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_050.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_051.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_052.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_053.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_054.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_055.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_056.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_057.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_058.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_059.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_060.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_061.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_062.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_063.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_064.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_065.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_066.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_067.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_068.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_069.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_070.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_071.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_072.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_073.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_074.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_075.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_076.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_077.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_078.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_079.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_080.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_081.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_082.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_083.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_084.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_085.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_086.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_087.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_088.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_089.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_090.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_091.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_092.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_093.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_094.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_095.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_096.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_097.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_098.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_099.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_100.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_101.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_102.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_103.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_104.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_105.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_106.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_107.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_108.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_109.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_110.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_111.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_112.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_113.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_114.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_115.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_116.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_117.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_118.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_119.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_120.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_121.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_122.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_123.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_124.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_125.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_126.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_127.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_128.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_129.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_130.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_131.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_132.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_133.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_134.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_135.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_136.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_137.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_138.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_139.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_140.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_141.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_142.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_143.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_144.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_145.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_146.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_147.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_148.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_149.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_150.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_151.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_152.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_153.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_154.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_155.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_156.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_157.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_158.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_159.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_160.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_161.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_162.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_163.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_164.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_165.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_166.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_167.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_168.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_169.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_170.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_171.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_172.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_173.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_174.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_175.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_176.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_177.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_178.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_179.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_180.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_181.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_182.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_183.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_184.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_185.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_186.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_187.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_188.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_189.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_190.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_191.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_192.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_193.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_194.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_195.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_196.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_197.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_198.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_199.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_200.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_201.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_202.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_203.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_204.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_205.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_206.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_207.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_208.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_209.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_210.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_211.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_212.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_213.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_214.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_215.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_216.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_217.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_218.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_219.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_220.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_221.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_222.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_223.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_224.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_225.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_226.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_227.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_228.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_229.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_230.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_231.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_232.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_233.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_234.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_235.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_236.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_237.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_238.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_239.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_240.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_241.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_242.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_243.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_244.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_245.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_246.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_247.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_248.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_249.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_250.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_251.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_252.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_253.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_254.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_255.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_256.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_257.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_258.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_259.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_260.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_261.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_262.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_263.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_264.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_265.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_266.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_267.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_268.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_269.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_270.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_271.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_272.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_273.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_274.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_275.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_276.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_277.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_278.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_279.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_280.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_281.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_282.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_283.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_284.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_285.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_286.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_287.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_288.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_289.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_290.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_291.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_292.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_293.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_294.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_295.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_296.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_297.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_298.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_299.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_300.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_301.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_302.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_303.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_304.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_305.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_306.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_307.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_308.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_309.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_310.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_311.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_312.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_313.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_314.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_315.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_316.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_317.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_318.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_319.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_320.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_321.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_322.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_323.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_324.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_325.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_326.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_327.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_328.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_329.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_330.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_331.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_332.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_333.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_334.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_335.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_336.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_337.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_338.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_339.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_340.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_341.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_342.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_343.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_344.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_345.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_346.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_347.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_348.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_349.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_350.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_351.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_352.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_353.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_354.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_355.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_356.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_357.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_358.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_359.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_360.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_361.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_362.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_363.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_364.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_365.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_366.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_367.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_368.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_369.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_370.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_371.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_372.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_373.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_374.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_375.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_376.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_377.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_378.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_379.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_380.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_381.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_382.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_383.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_384.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_385.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_386.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_387.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_388.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_389.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_390.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_391.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_392.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_393.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_394.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_395.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_396.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_397.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_398.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_399.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_400.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_401.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_402.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_403.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_404.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_405.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_406.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_407.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_408.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_409.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_410.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_411.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_412.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_413.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_414.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_415.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_416.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_417.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_418.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_419.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_420.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_421.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_422.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_423.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_424.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_425.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_426.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_427.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_428.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_429.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_430.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_431.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_432.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_433.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_434.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_435.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_436.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_437.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_438.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_439.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_440.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_441.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_442.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_443.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_444.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_445.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_446.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_447.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_448.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_449.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_450.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_451.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_452.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_453.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_454.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_455.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_456.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_457.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_458.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_459.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_460.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_461.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_462.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_463.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_464.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_465.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_466.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_467.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_468.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_469.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_470.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_471.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_472.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_473.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_474.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_475.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_476.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_477.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_478.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_479.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_480.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_481.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_482.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_483.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_484.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_485.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_486.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_487.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_488.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_489.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_490.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_491.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_492.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_493.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_494.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_495.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_496.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_497.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_498.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_499.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_500.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_501.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_502.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_503.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_504.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_505.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_506.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_507.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_508.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_509.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_510.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_511.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_512.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_513.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_514.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_515.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_516.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_517.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_518.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_519.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_520.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_521.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_522.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_523.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_524.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_525.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_526.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_527.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_528.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_529.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_530.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_531.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_532.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_533.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_534.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_535.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_536.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_537.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_538.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_539.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_540.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_541.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_542.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_543.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_544.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_545.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_546.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_547.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_548.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_549.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_550.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_551.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_552.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_553.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_554.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_555.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_556.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_557.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_558.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_559.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_560.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_561.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_562.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_563.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_564.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_565.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_566.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_567.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_568.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_569.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_570.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/animation/animation_571.njm (100%) rename web/src/{main => jsMain}/resources/assets/player/plObdy00.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/plOhai00.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/plOhed00.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/plPbdy00.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/plPhai00.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/plPhed00.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/plQbdy00.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/plQhai00.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/plQhed00.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/plRbdy00.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/plRhai00.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/plRhed00.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/plSbdy00.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/plShai00.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/plShed00.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/plTbdy00.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/plThai00.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/plThed00.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/plUbdy00.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/plUhed00.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/plVbdy00.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/plVhed00.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/plWbdy00.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/plWhed00.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/plXbdy00.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/plXhed00.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/plYbdy00.nj (100%) rename web/src/{main => jsMain}/resources/assets/player/plYhed00.nj (100%) rename web/src/{main => jsMain}/resources/assets/quests.ephinea.json (100%) rename web/src/{main => jsMain}/resources/assets/quests/defaults/default_ep_1.qst (100%) rename web/src/{main => jsMain}/resources/index.html (100%) rename web/src/{test => jsTest}/kotlin/world/phantasmal/web/application/ApplicationTests.kt (100%) rename web/src/{test => jsTest}/kotlin/world/phantasmal/web/application/controllers/NavigationControllerTests.kt (100%) rename web/src/{test => jsTest}/kotlin/world/phantasmal/web/core/controllers/PathAwareTabControllerTests.kt (100%) rename web/src/{test => jsTest}/kotlin/world/phantasmal/web/core/observable/EmitterTests.kt (100%) rename web/src/{test => jsTest}/kotlin/world/phantasmal/web/core/store/UiStoreTests.kt (100%) rename web/src/{test => jsTest}/kotlin/world/phantasmal/web/core/undo/UndoStackTests.kt (100%) rename web/src/{test => jsTest}/kotlin/world/phantasmal/web/huntOptimizer/HuntOptimizerTests.kt (100%) rename web/src/{test => jsTest}/kotlin/world/phantasmal/web/huntOptimizer/controllers/MethodsForEpisodeControllerTests.kt (100%) rename web/src/{test => jsTest}/kotlin/world/phantasmal/web/questEditor/QuestEditorTests.kt (100%) rename web/src/{test => jsTest}/kotlin/world/phantasmal/web/questEditor/controllers/EntityInfoControllerTests.kt (100%) rename web/src/{test => jsTest}/kotlin/world/phantasmal/web/questEditor/controllers/EventsControllerTests.kt (100%) rename web/src/{test => jsTest}/kotlin/world/phantasmal/web/questEditor/controllers/NpcCountsControllerTests.kt (100%) rename web/src/{test => jsTest}/kotlin/world/phantasmal/web/questEditor/controllers/QuestEditorToolbarControllerTests.kt (100%) rename web/src/{test => jsTest}/kotlin/world/phantasmal/web/questEditor/controllers/QuestInfoControllerTests.kt (100%) rename web/src/{test => jsTest}/kotlin/world/phantasmal/web/questEditor/models/QuestEntityModelTests.kt (100%) rename web/src/{test => jsTest}/kotlin/world/phantasmal/web/test/NopRenderer.kt (74%) rename web/src/{test => jsTest}/kotlin/world/phantasmal/web/test/StubClock.kt (100%) rename web/src/{test => jsTest}/kotlin/world/phantasmal/web/test/TestApplicationUrl.kt (100%) rename web/src/{test => jsTest}/kotlin/world/phantasmal/web/test/TestComponents.kt (95%) rename web/src/{test => jsTest}/kotlin/world/phantasmal/web/test/TestModels.kt (100%) rename web/src/{test => jsTest}/kotlin/world/phantasmal/web/test/WebTestContext.kt (100%) rename web/src/{test => jsTest}/kotlin/world/phantasmal/web/test/WebTestSuite.kt (100%) rename web/src/{test => jsTest}/kotlin/world/phantasmal/web/viewer/ViewerTests.kt (100%) rename web/src/{test => jsTest}/kotlin/world/phantasmal/web/viewer/controllers/CharacterClassOptionsControllerTests.kt (100%) delete mode 100644 web/src/main/kotlin/world/phantasmal/web/core/loading/AssetLoader.kt rename webui/src/{main => jsMain}/kotlin/world/phantasmal/webui/DisposableContainer.kt (100%) rename webui/src/{main => jsMain}/kotlin/world/phantasmal/webui/Js.kt (100%) rename webui/src/{main => jsMain}/kotlin/world/phantasmal/webui/LoadingStatusCell.kt (100%) rename webui/src/{main => jsMain}/kotlin/world/phantasmal/webui/StandardExtensions.kt (100%) rename webui/src/{main => jsMain}/kotlin/world/phantasmal/webui/TimeExtensions.kt (100%) rename webui/src/{main => jsMain}/kotlin/world/phantasmal/webui/controllers/Controller.kt (100%) rename webui/src/{main => jsMain}/kotlin/world/phantasmal/webui/controllers/TabContainerController.kt (100%) rename webui/src/{main => jsMain}/kotlin/world/phantasmal/webui/controllers/TableController.kt (100%) rename webui/src/{main => jsMain}/kotlin/world/phantasmal/webui/dom/DefaultStyle.kt (100%) rename webui/src/{main => jsMain}/kotlin/world/phantasmal/webui/dom/Dom.kt (99%) rename webui/src/{main => jsMain}/kotlin/world/phantasmal/webui/dom/DomCreation.kt (97%) rename webui/src/{main => jsMain}/kotlin/world/phantasmal/webui/dom/HTMLElementSizeCell.kt (100%) rename webui/src/{main => jsMain}/kotlin/world/phantasmal/webui/externals/fontawesome/fontawesomeSvgCore.kt (100%) rename webui/src/{main => jsMain}/kotlin/world/phantasmal/webui/externals/fontawesome/freeBrandsSvgIcons/fontawesomeFreeSolidSvgIcons.kt (100%) rename webui/src/{main => jsMain}/kotlin/world/phantasmal/webui/externals/fontawesome/freeRegularSvgIcons/fontawesomeFreeSolidSvgIcons.kt (100%) rename webui/src/{main => jsMain}/kotlin/world/phantasmal/webui/externals/fontawesome/freeSolidSvgIcons/fontawesomeFreeSolidSvgIcons.kt (100%) rename webui/src/{main => jsMain}/kotlin/world/phantasmal/webui/files/Files.kt (100%) rename webui/src/{main => jsMain}/kotlin/world/phantasmal/webui/stores/Store.kt (100%) rename webui/src/{main => jsMain}/kotlin/world/phantasmal/webui/widgets/Button.kt (100%) rename webui/src/{main => jsMain}/kotlin/world/phantasmal/webui/widgets/Checkbox.kt (100%) rename webui/src/{main => jsMain}/kotlin/world/phantasmal/webui/widgets/ComboBox.kt (100%) rename webui/src/{main => jsMain}/kotlin/world/phantasmal/webui/widgets/Control.kt (100%) rename webui/src/{main => jsMain}/kotlin/world/phantasmal/webui/widgets/Dialog.kt (100%) rename webui/src/{main => jsMain}/kotlin/world/phantasmal/webui/widgets/DoubleInput.kt (100%) rename webui/src/{main => jsMain}/kotlin/world/phantasmal/webui/widgets/DropDown.kt (100%) rename webui/src/{main => jsMain}/kotlin/world/phantasmal/webui/widgets/DurationInput.kt (91%) rename webui/src/{main => jsMain}/kotlin/world/phantasmal/webui/widgets/FileButton.kt (100%) rename webui/src/{main => jsMain}/kotlin/world/phantasmal/webui/widgets/Input.kt (100%) rename webui/src/{main => jsMain}/kotlin/world/phantasmal/webui/widgets/IntInput.kt (100%) rename webui/src/{main => jsMain}/kotlin/world/phantasmal/webui/widgets/Label.kt (100%) rename webui/src/{main => jsMain}/kotlin/world/phantasmal/webui/widgets/LabelledControl.kt (100%) rename webui/src/{main => jsMain}/kotlin/world/phantasmal/webui/widgets/LazyLoader.kt (100%) rename webui/src/{main => jsMain}/kotlin/world/phantasmal/webui/widgets/Menu.kt (100%) rename webui/src/{main => jsMain}/kotlin/world/phantasmal/webui/widgets/NumberInput.kt (100%) rename webui/src/{main => jsMain}/kotlin/world/phantasmal/webui/widgets/ResultDialog.kt (100%) rename webui/src/{main => jsMain}/kotlin/world/phantasmal/webui/widgets/Select.kt (100%) rename webui/src/{main => jsMain}/kotlin/world/phantasmal/webui/widgets/TabContainer.kt (100%) rename webui/src/{main => jsMain}/kotlin/world/phantasmal/webui/widgets/Table.kt (100%) rename webui/src/{main => jsMain}/kotlin/world/phantasmal/webui/widgets/TextArea.kt (100%) rename webui/src/{main => jsMain}/kotlin/world/phantasmal/webui/widgets/TextInput.kt (100%) rename webui/src/{main => jsMain}/kotlin/world/phantasmal/webui/widgets/Toolbar.kt (100%) rename webui/src/{main => jsMain}/kotlin/world/phantasmal/webui/widgets/UniqueId.kt (100%) rename webui/src/{main => jsMain}/kotlin/world/phantasmal/webui/widgets/Widget.kt (100%) rename webui/src/{test => jsTest}/kotlin/world/phantasmal/webui/StandardExtensionsTests.kt (100%) rename webui/src/{test => jsTest}/kotlin/world/phantasmal/webui/test/WebuiTestSuite.kt (100%) rename webui/src/{test => jsTest}/kotlin/world/phantasmal/webui/widgets/WidgetTests.kt (100%) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 2a67d410..f37a544d 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -9,31 +9,26 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v2 + uses: actions/checkout@v4 with: persist-credentials: false - name: Set up JDK - uses: actions/setup-java@v1 + uses: actions/setup-java@v4 with: + distribution: 'temurin' java-version: '11' - - name: Cache Gradle packages - uses: actions/cache@v2 - with: - path: | - ~/.gradle - .gradle - build/js - key: ${{ runner.os }}-gradle + - name: Set up Gradle + uses: gradle/actions/setup-gradle@v3 - name: Build - run: './gradlew :web:browserDistribution' + run: './gradlew :web:jsBrowserDistribution' - name: Deploy uses: JamesIves/github-pages-deploy-action@3.6.2 with: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} BRANCH: gh-pages - FOLDER: web/build/distributions + FOLDER: web/build/dist/js/productionExecutable CLEAN: true diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 6d601c5d..0ea4dbd1 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -12,28 +12,16 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v2 + uses: actions/checkout@v4 - name: Set up JDK - uses: actions/setup-java@v1 + uses: actions/setup-java@v4 with: + distribution: 'temurin' java-version: '11' - - name: Cache Gradle packages - uses: actions/cache@v2 - with: - path: | - ~/.gradle - .gradle - build/js - key: ${{ runner.os }}-gradle + - name: Set up Gradle + uses: gradle/actions/setup-gradle@v3 - name: Test - run: ./gradlew check - - - name: Cleanup Gradle Cache - # Remove some files from the Gradle cache, so they aren't cached by GitHub Actions. - # Restoring these files from a GitHub Actions cache might cause problems for future builds. - run: | - rm -f ~/.gradle/caches/modules-2/modules-2.lock - rm -f ~/.gradle/caches/modules-2/gc.properties + run: './gradlew check' diff --git a/.gitignore b/.gitignore index 14a339e1..e3690aa1 100644 --- a/.gitignore +++ b/.gitignore @@ -13,3 +13,6 @@ karma.config.generated.js # Config /psoserv/psoserv.conf + +# Kotlin +/.kotlin diff --git a/README.md b/README.md index b8d1c96f..d6be2583 100644 --- a/README.md +++ b/README.md @@ -32,7 +32,7 @@ Then, for the web application: 1. `cd` to the project directory 2. Launch webpack server on [http://localhost:1623/](http://localhost:1623/) - with `./gradlew :web:run --continuous` + with `./gradlew :web:jsBrowserDevelopmentRun --continuous` 3. [web/src/main/kotlin/world/phantasmal/web/Main.kt](web/src/main/kotlin/world/phantasmal/web/Main.kt) is the application's entry point @@ -95,6 +95,8 @@ Work-in-progress PSO server and fully functional PSO proxy server. Run the unit tests with `./gradlew check`. JS tests are run with Karma and Mocha, JVM tests with Junit 5. Tests can also be run per project with e.g. `./gradlew :psolib:check`. +TODO: Figure out why `./gradlew check` runs the cell tests twice since upgrade to Gradle 8.9. + ### Code Style and Formatting The Kotlin [coding conventions](https://kotlinlang.org/docs/coding-conventions.html) are used. @@ -103,7 +105,7 @@ The Kotlin [coding conventions](https://kotlinlang.org/docs/coding-conventions.h #### Web Application -Create an optimized production build with `./gradlew :web:browserDistribution`. +Create an optimized production build with `./gradlew :web:jsBrowserDistribution`. #### PSO Server diff --git a/build.gradle.kts b/build.gradle.kts index 5f12ed94..e69de29b 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,11 +0,0 @@ -import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootExtension -import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootPlugin - -tasks.wrapper { - gradleVersion = "7.1.1" -} - -// Temporary fix for issue with incompatible webpack-cli and @webpack-cli versions. -rootProject.plugins.withType { - rootProject.the().versions.webpackCli.version = "4.9.0" -} diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts index 89299dfa..2f5bd24b 100644 --- a/buildSrc/build.gradle.kts +++ b/buildSrc/build.gradle.kts @@ -7,6 +7,6 @@ repositories { } dependencies { - implementation("org.jetbrains.kotlin:kotlin-gradle-plugin:1.5.31") - implementation("org.jetbrains.kotlin:kotlin-serialization:1.5.31") + implementation("org.jetbrains.kotlin:kotlin-gradle-plugin:2.0.0") + implementation("org.jetbrains.kotlin:kotlin-serialization:1.9.24") } diff --git a/buildSrc/src/main/kotlin/world/phantasmal/ExperimentalAnnotations.kt b/buildSrc/src/main/kotlin/world/phantasmal/ExperimentalAnnotations.kt deleted file mode 100644 index 836b7821..00000000 --- a/buildSrc/src/main/kotlin/world/phantasmal/ExperimentalAnnotations.kt +++ /dev/null @@ -1,8 +0,0 @@ -package world.phantasmal - -val EXPERIMENTAL_ANNOTATIONS: List = listOf( - "kotlin.RequiresOptIn", - "kotlin.ExperimentalUnsignedTypes", - "kotlin.contracts.ExperimentalContracts", - "kotlin.time.ExperimentalTime", -) diff --git a/buildSrc/src/main/kotlin/world/phantasmal/common.gradle.kts b/buildSrc/src/main/kotlin/world/phantasmal/common.gradle.kts index a5ff603f..5ed300d1 100644 --- a/buildSrc/src/main/kotlin/world/phantasmal/common.gradle.kts +++ b/buildSrc/src/main/kotlin/world/phantasmal/common.gradle.kts @@ -1,5 +1,9 @@ package world.phantasmal +import org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_11 +import org.jetbrains.kotlin.gradle.tasks.KotlinCompilationTask +import org.jetbrains.kotlin.gradle.tasks.KotlinCompile + plugins { kotlin("plugin.serialization") apply false } @@ -8,9 +12,35 @@ repositories { mavenCentral() } -project.extra["coroutinesVersion"] = "1.5.2" -project.extra["junitVersion"] = "5.7.1" +tasks.withType> { + compilerOptions { + allWarningsAsErrors.set(true) + optIn.set( + listOf( + "kotlin.contracts.ExperimentalContracts", + "kotlin.ExperimentalUnsignedTypes", + ) + ) + freeCompilerArgs.add("-Xexpect-actual-classes") + } +} + +tasks.withType().configureEach { + compilerOptions { + jvmTarget.set(JVM_11) + freeCompilerArgs.addAll( + "-Xjdk-release=${jvmTarget.get().target}", + "-Xjvm-default=all", + ) + } +} + +tasks.withType().configureEach { + useJUnitPlatform() +} + +project.extra["coroutinesVersion"] = "1.9.0-RC" project.extra["kotlinLoggingVersion"] = "2.0.11" -project.extra["ktorVersion"] = "1.6.1" +project.extra["ktorVersion"] = "2.3.12" project.extra["log4jVersion"] = "2.14.1" -project.extra["serializationVersion"] = "1.2.2" +project.extra["serializationVersion"] = "1.7.1" diff --git a/buildSrc/src/main/kotlin/world/phantasmal/js.gradle.kts b/buildSrc/src/main/kotlin/world/phantasmal/js.gradle.kts index e48006d8..7b16e9af 100644 --- a/buildSrc/src/main/kotlin/world/phantasmal/js.gradle.kts +++ b/buildSrc/src/main/kotlin/world/phantasmal/js.gradle.kts @@ -1,16 +1,13 @@ package world.phantasmal plugins { - kotlin("js") + kotlin("multiplatform") id("world.phantasmal.common") id("world.phantasmal.karma-resources") } kotlin { js { - compilations.configureEach { - EXPERIMENTAL_ANNOTATIONS.forEach(languageSettings::optIn) - } browser { testTask { useKarma { @@ -19,8 +16,12 @@ kotlin { } } } -} -dependencies { - testImplementation(kotlin("test-js")) + sourceSets { + commonTest { + dependencies { + implementation(kotlin("test")) + } + } + } } diff --git a/buildSrc/src/main/kotlin/world/phantasmal/jvm.gradle.kts b/buildSrc/src/main/kotlin/world/phantasmal/jvm.gradle.kts index ba928e15..de1bbfd3 100644 --- a/buildSrc/src/main/kotlin/world/phantasmal/jvm.gradle.kts +++ b/buildSrc/src/main/kotlin/world/phantasmal/jvm.gradle.kts @@ -1,35 +1,18 @@ package world.phantasmal -import org.jetbrains.kotlin.gradle.tasks.KotlinCompile - plugins { kotlin("jvm") id("world.phantasmal.common") } -val junitVersion: String by project.extra val log4jVersion: String by project.extra kotlin { - sourceSets.configureEach { - EXPERIMENTAL_ANNOTATIONS.forEach(languageSettings::optIn) - } -} - -tasks.withType().configureEach { - kotlinOptions { - jvmTarget = "11" - freeCompilerArgs = freeCompilerArgs + "-Xjvm-default=all" - } + jvmToolchain(11) } dependencies { runtimeOnly("org.apache.logging.log4j:log4j-slf4j-impl:$log4jVersion") - testImplementation(kotlin("test-junit5")) - testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine:$junitVersion") -} - -tasks.withType().configureEach { - useJUnitPlatform() + testImplementation(kotlin("test")) } diff --git a/buildSrc/src/main/kotlin/world/phantasmal/multiplatform.gradle.kts b/buildSrc/src/main/kotlin/world/phantasmal/multiplatform.gradle.kts index 15c693ad..cf3eaa04 100644 --- a/buildSrc/src/main/kotlin/world/phantasmal/multiplatform.gradle.kts +++ b/buildSrc/src/main/kotlin/world/phantasmal/multiplatform.gradle.kts @@ -2,40 +2,20 @@ package world.phantasmal plugins { kotlin("multiplatform") - id("world.phantasmal.common") + id("world.phantasmal.js") id("world.phantasmal.karma-resources") } val coroutinesVersion: String by project.ext -val junitVersion: String by project.extra val kotlinLoggingVersion: String by project.extra val log4jVersion: String by project.extra kotlin { - js { - browser { - testTask { - useKarma { - useChromeHeadless() - } - } - } - } + jvmToolchain(11) - jvm { - compilations.configureEach { - kotlinOptions { - jvmTarget = "11" - freeCompilerArgs = freeCompilerArgs + "-Xjvm-default=all" - } - } - } + jvm {} sourceSets { - configureEach { - EXPERIMENTAL_ANNOTATIONS.forEach(languageSettings::optIn) - } - commonMain { dependencies { api("org.jetbrains.kotlinx:kotlinx-coroutines-core:$coroutinesVersion") @@ -43,34 +23,10 @@ kotlin { } } - commonTest { - dependencies { - implementation(kotlin("test-common")) - implementation(kotlin("test-annotations-common")) - } - } - - getByName("jsTest") { - dependencies { - implementation(kotlin("test-js")) - } - } - getByName("jvmMain") { dependencies { runtimeOnly("org.apache.logging.log4j:log4j-slf4j-impl:$log4jVersion") } } - - getByName("jvmTest") { - dependencies { - implementation(kotlin("test-junit5")) - runtimeOnly("org.junit.jupiter:junit-jupiter-engine:$junitVersion") - } - } } } - -tasks.withType().configureEach { - useJUnitPlatform() -} diff --git a/cell/src/commonMain/kotlin/world/phantasmal/cell/AbstractDependency.kt b/cell/src/commonMain/kotlin/world/phantasmal/cell/AbstractDependency.kt index 5200cc15..79fc77f1 100644 --- a/cell/src/commonMain/kotlin/world/phantasmal/cell/AbstractDependency.kt +++ b/cell/src/commonMain/kotlin/world/phantasmal/cell/AbstractDependency.kt @@ -1,6 +1,6 @@ package world.phantasmal.cell -import kotlin.contracts.InvocationKind +import kotlin.contracts.InvocationKind.EXACTLY_ONCE import kotlin.contracts.contract abstract class AbstractDependency : Dependency { @@ -22,7 +22,7 @@ abstract class AbstractDependency : Dependency { protected inline fun applyChange(block: () -> Unit) { contract { - callsInPlace(block, InvocationKind.EXACTLY_ONCE) + callsInPlace(block, EXACTLY_ONCE) } MutationManager.changeDependency { diff --git a/cell/src/commonMain/kotlin/world/phantasmal/cell/list/SimpleListCell.kt b/cell/src/commonMain/kotlin/world/phantasmal/cell/list/SimpleListCell.kt index 74c8e3e0..ad127131 100644 --- a/cell/src/commonMain/kotlin/world/phantasmal/cell/list/SimpleListCell.kt +++ b/cell/src/commonMain/kotlin/world/phantasmal/cell/list/SimpleListCell.kt @@ -28,7 +28,11 @@ internal class SimpleListCell( override operator fun set(index: Int, element: E): E { checkIndex(index, elements.lastIndex) - applyChange { + // TODO: Use applyChange instead of MutationManager.changeDependency, once + // https://youtrack.jetbrains.com/issue/KT-69964 is fixed. + MutationManager.changeDependency { + emitDependencyInvalidated() + val removed = elements.set(index, element) finalizeChange( @@ -81,7 +85,11 @@ internal class SimpleListCell( override fun removeAt(index: Int): E { checkIndex(index, elements.lastIndex) - applyChange { + // TODO: Use applyChange instead of MutationManager.changeDependency, once + // https://youtrack.jetbrains.com/issue/KT-69964 is fixed. + MutationManager.changeDependency { + emitDependencyInvalidated() + val prevSize = elements.size val removed = elements.removeAt(index) diff --git a/cell/src/commonTest/kotlin/world/phantasmal/cell/list/FilteredListCellPredicateDependencyEmitsTests.kt b/cell/src/commonTest/kotlin/world/phantasmal/cell/list/FilteredListCellPredicateDependencyEmitsTests.kt index baade308..0ad85ad3 100644 --- a/cell/src/commonTest/kotlin/world/phantasmal/cell/list/FilteredListCellPredicateDependencyEmitsTests.kt +++ b/cell/src/commonTest/kotlin/world/phantasmal/cell/list/FilteredListCellPredicateDependencyEmitsTests.kt @@ -11,7 +11,8 @@ class FilteredListCellPredicateDependencyEmitsTests : ListCellTests, CellWithDep private var maxValue = if (empty) 0 else 1 // The predicate cell changes, the predicate results don't. - private val predicateCell = SimpleCell<(Int) -> Cell> { cell(it <= maxValue) } + private val predicateCell: SimpleCell<(Int) -> Cell> = + SimpleCell { cell(it <= maxValue) } override val cell = FilteredListCell( diff --git a/core/src/commonMain/kotlin/world/phantasmal/core/PrimitiveExtensions.kt b/core/src/commonMain/kotlin/world/phantasmal/core/PrimitiveExtensions.kt index b811a46f..a36ab390 100644 --- a/core/src/commonMain/kotlin/world/phantasmal/core/PrimitiveExtensions.kt +++ b/core/src/commonMain/kotlin/world/phantasmal/core/PrimitiveExtensions.kt @@ -2,9 +2,14 @@ package world.phantasmal.core // Char.isWhitespace is very slow in JS, use this until // https://youtrack.jetbrains.com/issue/KT-43216 lands. -expect inline fun Char.fastIsWhitespace(): Boolean +@Suppress("NOTHING_TO_INLINE") +inline fun Char.fastIsWhitespace(): Boolean = + code == 0x20 || (code in 0x09..0x0D) -expect inline fun Char.isDigit(): Boolean +// This is optimized for KJS. Last checked with Kotlin 1.6. +@Suppress("NOTHING_TO_INLINE") +inline fun Char.isDigit(): Boolean = + code in 0x30..0x39 /** * Returns true if the bit at the given position is set. Bits are indexed from lowest-order diff --git a/core/src/jsMain/kotlin/world/phantasmal/core/Js.kt b/core/src/jsMain/kotlin/world/phantasmal/core/Js.kt index 923d4ca1..c5cfb81f 100644 --- a/core/src/jsMain/kotlin/world/phantasmal/core/Js.kt +++ b/core/src/jsMain/kotlin/world/phantasmal/core/Js.kt @@ -1,5 +1,3 @@ -@file:Suppress("NOTHING_TO_INLINE") - package world.phantasmal.core import org.w3c.dom.DOMRectReadOnly @@ -19,21 +17,27 @@ external interface JsArray { fun splice(start: Int, deleteCount: Int, vararg items: T): JsArray } +@Suppress("NOTHING_TO_INLINE") inline operator fun JsArray.get(index: Int): T = asDynamic()[index].unsafeCast() +@Suppress("NOTHING_TO_INLINE") inline operator fun JsArray.set(index: Int, value: T) { asDynamic()[index] = value } +@Suppress("NOTHING_TO_INLINE") inline fun jsArrayOf(vararg elements: T): JsArray = elements.unsafeCast>() +@Suppress("NOTHING_TO_INLINE") inline fun JsArray.asArray(): Array = unsafeCast>() +@Suppress("NOTHING_TO_INLINE") inline fun Array.asJsArray(): JsArray = unsafeCast>() +@Suppress("NOTHING_TO_INLINE") inline fun List.toJsArray(): JsArray = toTypedArray().asJsArray() @@ -43,7 +47,10 @@ external interface JsPair inline val JsPair.first: T get() = asDynamic()[0].unsafeCast() inline val JsPair<*, T>.second: T get() = asDynamic()[1].unsafeCast() +@Suppress("NOTHING_TO_INLINE") inline operator fun JsPair.component1(): T = first + +@Suppress("NOTHING_TO_INLINE") inline operator fun JsPair<*, T>.component2(): T = second @JsName("Object") diff --git a/core/src/jsMain/kotlin/world/phantasmal/core/PrimitiveExtensions.kt b/core/src/jsMain/kotlin/world/phantasmal/core/PrimitiveExtensions.kt deleted file mode 100644 index 188cc613..00000000 --- a/core/src/jsMain/kotlin/world/phantasmal/core/PrimitiveExtensions.kt +++ /dev/null @@ -1,9 +0,0 @@ -package world.phantasmal.core - -@Suppress("NOTHING_TO_INLINE") -actual inline fun Char.fastIsWhitespace(): Boolean = - asDynamic() == 0x20 || (asDynamic() >= 0x09 && asDynamic() <= 0x0D) - -@Suppress("NOTHING_TO_INLINE") -actual inline fun Char.isDigit(): Boolean = - asDynamic() >= 0x30 && asDynamic() <= 0x39 diff --git a/core/src/jvmMain/kotlin/world/phantasmal/core/PrimitiveExtensions.kt b/core/src/jvmMain/kotlin/world/phantasmal/core/PrimitiveExtensions.kt deleted file mode 100644 index eeb57f16..00000000 --- a/core/src/jvmMain/kotlin/world/phantasmal/core/PrimitiveExtensions.kt +++ /dev/null @@ -1,9 +0,0 @@ -@file:JvmName("PrimitiveExtensionsJvm") - -package world.phantasmal.core - -@Suppress("NOTHING_TO_INLINE") -actual inline fun Char.fastIsWhitespace(): Boolean = isWhitespace() - -@Suppress("NOTHING_TO_INLINE") -actual inline fun Char.isDigit(): Boolean = this in '0'..'9' diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index e708b1c023ec8b20f512888fe07c5bd3ff77bb8f..7454180f2ae8848c63b8b4dea2cb829da983f2fa 100644 GIT binary patch delta 18435 zcmY&<19zBR)MXm8v2EM7ZQHi-#I|kQZfv7Tn#Q)%81v4zX3d)U4d4 zYYc!v@NU%|U;_sM`2z(4BAilWijmR>4U^KdN)D8%@2KLcqkTDW%^3U(Wg>{qkAF z&RcYr;D1I5aD(N-PnqoEeBN~JyXiT(+@b`4Pv`;KmkBXYN48@0;iXuq6!ytn`vGp$ z6X4DQHMx^WlOek^bde&~cvEO@K$oJ}i`T`N;M|lX0mhmEH zuRpo!rS~#&rg}ajBdma$$}+vEhz?JAFUW|iZEcL%amAg_pzqul-B7Itq6Y_BGmOCC zX*Bw3rFz3R)DXpCVBkI!SoOHtYstv*e-May|+?b80ZRh$MZ$FerlC`)ZKt} zTd0Arf9N2dimjs>mg5&@sfTPsRXKXI;0L~&t+GH zkB<>wxI9D+k5VHHcB7Rku{Z>i3$&hgd9Mt_hS_GaGg0#2EHzyV=j=u5xSyV~F0*qs zW{k9}lFZ?H%@4hII_!bzao!S(J^^ZZVmG_;^qXkpJb7OyR*sPL>))Jx{K4xtO2xTr@St!@CJ=y3q2wY5F`77Tqwz8!&Q{f7Dp zifvzVV1!Dj*dxG%BsQyRP6${X+Tc$+XOG zzvq5xcC#&-iXlp$)L=9t{oD~bT~v^ZxQG;FRz|HcZj|^L#_(VNG)k{=_6|6Bs-tRNCn-XuaZ^*^hpZ@qwi`m|BxcF6IWc?_bhtK_cDZRTw#*bZ2`1@1HcB`mLUmo_>@2R&nj7&CiH zF&laHkG~7#U>c}rn#H)q^|sk+lc!?6wg0xy`VPn!{4P=u@cs%-V{VisOxVqAR{XX+ zw}R;{Ux@6A_QPka=48|tph^^ZFjSHS1BV3xfrbY84^=?&gX=bmz(7C({=*oy|BEp+ zYgj;<`j)GzINJA>{HeSHC)bvp6ucoE`c+6#2KzY9)TClmtEB1^^Mk)(mXWYvup02e%Ghm9qyjz#fO3bNGBX} zFiB>dvc1+If!>I10;qZk`?6pEd*(?bI&G*3YLt;MWw&!?=Mf7%^Op?qnyXWur- zwX|S^P>jF?{m9c&mmK-epCRg#WB+-VDe!2d2~YVoi%7_q(dyC{(}zB${!ElKB2D}P z7QNFM!*O^?FrPMGZ}wQ0TrQAVqZy!weLhu_Zq&`rlD39r*9&2sJHE(JT0EY5<}~x@ z1>P0!L2IFDqAB!($H9s2fI`&J_c+5QT|b#%99HA3@zUWOuYh(~7q7!Pf_U3u!ij5R zjFzeZta^~RvAmd_TY+RU@e}wQaB_PNZI26zmtzT4iGJg9U(Wrgrl>J%Z3MKHOWV(? zj>~Ph$<~8Q_sI+)$DOP^9FE6WhO09EZJ?1W|KidtEjzBX3RCLUwmj9qH1CM=^}MaK z59kGxRRfH(n|0*lkE?`Rpn6d^u5J6wPfi0WF(rucTv(I;`aW)3;nY=J=igkjsn?ED ztH&ji>}TW8)o!Jg@9Z}=i2-;o4#xUksQHu}XT~yRny|kg-$Pqeq!^78xAz2mYP9+4 z9gwAoti2ICvUWxE&RZ~}E)#M8*zy1iwz zHqN%q;u+f6Ti|SzILm0s-)=4)>eb5o-0K zbMW8ecB4p^6OuIX@u`f{>Yn~m9PINEl#+t*jqalwxIx=TeGB9(b6jA}9VOHnE$9sC zH`;epyH!k-3kNk2XWXW!K`L_G!%xOqk0ljPCMjK&VweAxEaZ==cT#;!7)X&C|X{dY^IY(e4D#!tx^vV3NZqK~--JW~wtXJ8X19adXim?PdN(|@o(OdgH3AiHts~?#QkolO?*=U_buYC&tQ3sc(O5HGHN~=6wB@dgIAVT$ z_OJWJ^&*40Pw&%y^t8-Wn4@l9gOl`uU z{Uda_uk9!Iix?KBu9CYwW9Rs=yt_lE11A+k$+)pkY5pXpocxIEJe|pTxwFgB%Kpr&tH;PzgOQ&m|(#Otm?@H^r`v)9yiR8v&Uy>d#TNdRfyN4Jk;`g zp+jr5@L2A7TS4=G-#O<`A9o;{En5!I8lVUG?!PMsv~{E_yP%QqqTxxG%8%KxZ{uwS zOT+EA5`*moN8wwV`Z=wp<3?~f#frmID^K?t7YL`G^(X43gWbo!6(q*u%HxWh$$^2EOq`Hj zp=-fS#Av+s9r-M)wGIggQ)b<@-BR`R8l1G@2+KODmn<_$Tzb7k35?e8;!V0G>`(!~ zY~qZz!6*&|TupOcnvsQYPbcMiJ!J{RyfezB^;fceBk znpA1XS)~KcC%0^_;ihibczSxwBuy;^ksH7lwfq7*GU;TLt*WmUEVQxt{ zKSfJf;lk$0XO8~48Xn2dnh8tMC9WHu`%DZj&a`2!tNB`5%;Md zBs|#T0Ktf?vkWQ)Y+q!At1qgL`C|nbzvgc(+28Q|4N6Geq)Il%+I5c@t02{9^=QJ?=h2BTe`~BEu=_u3xX2&?^zwcQWL+)7dI>JK0g8_`W1n~ zMaEP97X>Ok#=G*nkPmY`VoP8_{~+Rp7DtdSyWxI~?TZHxJ&=6KffcO2Qx1?j7=LZA z?GQt`oD9QpXw+s7`t+eeLO$cpQpl9(6h3_l9a6OUpbwBasCeCw^UB6we!&h9Ik@1zvJ`j4i=tvG9X8o34+N|y(ay~ho$f=l z514~mP>Z>#6+UxM<6@4z*|hFJ?KnkQBs_9{H(-v!_#Vm6Z4(xV5WgWMd3mB9A(>@XE292#k(HdI7P zJkQ2)`bQXTKlr}{VrhSF5rK9TsjtGs0Rs&nUMcH@$ZX_`Hh$Uje*)(Wd&oLW($hZQ z_tPt`{O@f8hZ<}?aQc6~|9iHt>=!%We3=F9yIfiqhXqp=QUVa!@UY@IF5^dr5H8$R zIh{=%S{$BHG+>~a=vQ={!B9B=<-ID=nyjfA0V8->gN{jRL>Qc4Rc<86;~aY+R!~Vs zV7MI~gVzGIY`B*Tt@rZk#Lg}H8sL39OE31wr_Bm%mn}8n773R&N)8B;l+-eOD@N$l zh&~Wz`m1qavVdxwtZLACS(U{rAa0;}KzPq9r76xL?c{&GaG5hX_NK!?)iq`t7q*F# zFoKI{h{*8lb>&sOeHXoAiqm*vV6?C~5U%tXR8^XQ9Y|(XQvcz*>a?%HQ(Vy<2UhNf zVmGeOO#v159KV@1g`m%gJ)XGPLa`a|?9HSzSSX{j;)xg>G(Ncc7+C>AyAWYa(k}5B3mtzg4tsA=C^Wfezb1&LlyrBE1~kNfeiubLls{C)!<%#m@f}v^o+7<VZ6!FZ;JeiAG@5vw7Li{flC8q1%jD_WP2ApBI{fQ}kN zhvhmdZ0bb5(qK@VS5-)G+@GK(tuF6eJuuV5>)Odgmt?i_`tB69DWpC~e8gqh!>jr_ zL1~L0xw@CbMSTmQflpRyjif*Y*O-IVQ_OFhUw-zhPrXXW>6X}+73IoMsu2?uuK3lT>;W#38#qG5tDl66A7Y{mYh=jK8Se!+f=N7%nv zYSHr6a~Nxd`jqov9VgII{%EpC_jFCEc>>SND0;}*Ja8Kv;G)MK7?T~h((c&FEBcQq zvUU1hW2^TX(dDCeU@~a1LF-(+#lz3997A@pipD53&Dr@III2tlw>=!iGabjXzbyUJ z4Hi~M1KCT-5!NR#I%!2Q*A>mqI{dpmUa_mW)%SDs{Iw1LG}0y=wbj@0ba-`q=0!`5 zr(9q1p{#;Rv2CY!L#uTbs(UHVR5+hB@m*zEf4jNu3(Kj$WwW|v?YL*F_0x)GtQC~! zzrnZRmBmwt+i@uXnk05>uR5&1Ddsx1*WwMrIbPD3yU*2By`71pk@gt{|H0D<#B7&8 z2dVmXp*;B)SWY)U1VSNs4ds!yBAj;P=xtatUx^7_gC5tHsF#vvdV;NmKwmNa1GNWZ zi_Jn-B4GnJ%xcYWD5h$*z^haku#_Irh818x^KB)3-;ufjf)D0TE#6>|zFf@~pU;Rs zNw+}c9S+6aPzxkEA6R%s*xhJ37wmgc)-{Zd1&mD5QT}4BQvczWr-Xim>(P^)52`@R z9+Z}44203T5}`AM_G^Snp<_KKc!OrA(5h7{MT^$ZeDsSr(R@^kI?O;}QF)OU zQ9-`t^ys=6DzgLcWt0U{Q(FBs22=r zKD%fLQ^5ZF24c-Z)J{xv?x$&4VhO^mswyb4QTIofCvzq+27*WlYm;h@;Bq%i;{hZA zM97mHI6pP}XFo|^pRTuWQzQs3B-8kY@ajLV!Fb?OYAO3jFv*W-_;AXd;G!CbpZt04iW`Ie^_+cQZGY_Zd@P<*J9EdRsc>c=edf$K|;voXRJ zk*aC@@=MKwR120(%I_HX`3pJ+8GMeO>%30t?~uXT0O-Tu-S{JA;zHoSyXs?Z;fy58 zi>sFtI7hoxNAdOt#3#AWFDW)4EPr4kDYq^`s%JkuO7^efX+u#-qZ56aoRM!tC^P6O zP(cFuBnQGjhX(^LJ(^rVe4-_Vk*3PkBCj!?SsULdmVr0cGJM^=?8b0^DuOFq>0*yA zk1g|C7n%pMS0A8@Aintd$fvRbH?SNdRaFrfoAJ=NoX)G5Gr}3-$^IGF+eI&t{I-GT zp=1fj)2|*ur1Td)+s&w%p#E6tDXX3YYOC{HGHLiCvv?!%%3DO$B$>A}aC;8D0Ef#b z{7NNqC8j+%1n95zq8|hFY`afAB4E)w_&7?oqG0IPJZv)lr{MT}>9p?}Y`=n+^CZ6E zKkjIXPub5!82(B-O2xQojW^P(#Q*;ETpEr^+Wa=qDJ9_k=Wm@fZB6?b(u?LUzX(}+ zE6OyapdG$HC& z&;oa*ALoyIxVvB2cm_N&h&{3ZTuU|aBrJlGOLtZc3KDx)<{ z27@)~GtQF@%6B@w3emrGe?Cv_{iC@a#YO8~OyGRIvp@%RRKC?fclXMP*6GzBFO z5U4QK?~>AR>?KF@I;|(rx(rKxdT9-k-anYS+#S#e1SzKPslK!Z&r8iomPsWG#>`Ld zJ<#+8GFHE!^wsXt(s=CGfVz5K+FHYP5T0E*?0A-z*lNBf)${Y`>Gwc@?j5{Q|6;Bl zkHG1%r$r&O!N^><8AEL+=y(P$7E6hd=>BZ4ZZ9ukJ2*~HR4KGvUR~MUOe$d>E5UK3 z*~O2LK4AnED}4t1Fs$JgvPa*O+WeCji_cn1@Tv7XQ6l@($F1K%{E$!naeX)`bfCG> z8iD<%_M6aeD?a-(Qqu61&fzQqC(E8ksa%CulMnPvR35d{<`VsmaHyzF+B zF6a@1$CT0xGVjofcct4SyxA40uQ`b#9kI)& z?B67-12X-$v#Im4CVUGZHXvPWwuspJ610ITG*A4xMoRVXJl5xbk;OL(;}=+$9?H`b z>u2~yd~gFZ*V}-Q0K6E@p}mtsri&%Zep?ZrPJmv`Qo1>94Lo||Yl)nqwHXEbe)!g( zo`w|LU@H14VvmBjjkl~=(?b{w^G$~q_G(HL`>|aQR%}A64mv0xGHa`S8!*Wb*eB}` zZh)&rkjLK!Rqar)UH)fM<&h&@v*YyOr!Xk2OOMV%$S2mCRdJxKO1RL7xP_Assw)bb z9$sQ30bapFfYTS`i1PihJZYA#0AWNmp>x(;C!?}kZG7Aq?zp!B+gGyJ^FrXQ0E<>2 zCjqZ(wDs-$#pVYP3NGA=en<@_uz!FjFvn1&w1_Igvqs_sL>ExMbcGx4X5f%`Wrri@ z{&vDs)V!rd=pS?G(ricfwPSg(w<8P_6=Qj`qBC7_XNE}1_5>+GBjpURPmvTNE7)~r)Y>ZZecMS7Ro2` z0}nC_GYo3O7j|Wux?6-LFZs%1IV0H`f`l9or-8y0=5VGzjPqO2cd$RRHJIY06Cnh- ztg@Pn1OeY=W`1Mv3`Ti6!@QIT{qcC*&vptnX4Pt1O|dWv8u2s|(CkV`)vBjAC_U5` zCw1f&c4o;LbBSp0=*q z3Y^horBAnR)u=3t?!}e}14%K>^562K!)Vy6r~v({5{t#iRh8WIL|U9H6H97qX09xp zjb0IJ^9Lqxop<-P*VA0By@In*5dq8Pr3bTPu|ArID*4tWM7w+mjit0PgmwLV4&2PW z3MnIzbdR`3tPqtUICEuAH^MR$K_u8~-U2=N1)R=l>zhygus44>6V^6nJFbW-`^)f} zI&h$FK)Mo*x?2`0npTD~jRd}5G~-h8=wL#Y-G+a^C?d>OzsVl7BFAaM==(H zR;ARWa^C3J)`p~_&FRsxt|@e+M&!84`eq)@aO9yBj8iifJv0xVW4F&N-(#E=k`AwJ z3EFXWcpsRlB%l_0Vdu`0G(11F7( zsl~*@XP{jS@?M#ec~%Pr~h z2`M*lIQaolzWN&;hkR2*<=!ORL(>YUMxOzj(60rQfr#wTrkLO!t{h~qg% zv$R}0IqVIg1v|YRu9w7RN&Uh7z$ijV=3U_M(sa`ZF=SIg$uY|=NdC-@%HtkUSEqJv zg|c}mKTCM=Z8YmsFQu7k{VrXtL^!Cts-eb@*v0B3M#3A7JE*)MeW1cfFqz~^S6OXFOIP&iL;Vpy z4dWKsw_1Wn%Y;eW1YOfeP_r1s4*p1C(iDG_hrr~-I%kA>ErxnMWRYu{IcG{sAW;*t z9T|i4bI*g)FXPpKM@~!@a7LDVVGqF}C@mePD$ai|I>73B+9!Ks7W$pw;$W1B%-rb; zJ*-q&ljb=&41dJ^*A0)7>Wa@khGZ;q1fL(2qW=|38j43mTl_;`PEEw07VKY%71l6p z@F|jp88XEnm1p~<5c*cVXvKlj0{THF=n3sU7g>Ki&(ErR;!KSmfH=?49R5(|c_*xw z4$jhCJ1gWT6-g5EV)Ahg?Nw=}`iCyQ6@0DqUb%AZEM^C#?B-@Hmw?LhJ^^VU>&phJ zlB!n5&>I>@sndh~v$2I2Ue23F?0!0}+9H~jg7E`?CS_ERu75^jSwm%!FTAegT`6s7 z^$|%sj2?8wtPQR>@D3sA0-M-g-vL@47YCnxdvd|1mPymvk!j5W1jHnVB&F-0R5e-vs`@u8a5GKdv`LF7uCfKncI4+??Z4iG@AxuX7 z6+@nP^TZ5HX#*z(!y+-KJ3+Ku0M90BTY{SC^{ z&y2#RZPjfX_PE<<>XwGp;g4&wcXsQ0T&XTi(^f+}4qSFH1%^GYi+!rJo~t#ChTeAX zmR0w(iODzQOL+b&{1OqTh*psAb;wT*drr^LKdN?c?HJ*gJl+%kEH&48&S{s28P=%p z7*?(xFW_RYxJxxILS!kdLIJYu@p#mnQ(?moGD1)AxQd66X6b*KN?o&e`u9#N4wu8% z^Gw#G!@|>c740RXziOR=tdbkqf(v~wS_N^CS^1hN-N4{Dww1lvSWcBTX*&9}Cz|s@ z*{O@jZ4RVHq19(HC9xSBZI0M)E;daza+Q*zayrX~N5H4xJ33BD4gn5Ka^Hj{995z4 zzm#Eo?ntC$q1a?)dD$qaC_M{NW!5R!vVZ(XQqS67xR3KP?rA1^+s3M$60WRTVHeTH z6BJO$_jVx0EGPXy}XK_&x597 zt(o6ArN8vZX0?~(lFGHRtHP{gO0y^$iU6Xt2e&v&ugLxfsl;GD)nf~3R^ACqSFLQ< zV7`cXgry((wDMJB55a6D4J;13$z6pupC{-F+wpToW%k1qKjUS^$Mo zN3@}T!ZdpiV7rkNvqP3KbpEn|9aB;@V;gMS1iSb@ zwyD7!5mfj)q+4jE1dq3H`sEKgrVqk|y8{_vmn8bMOi873!rmnu5S=1=-DFx+Oj)Hi zx?~ToiJqOrvSou?RVALltvMADodC7BOg7pOyc4m&6yd(qIuV5?dYUpYzpTe!BuWKi zpTg(JHBYzO&X1e{5o|ZVU-X5e?<}mh=|eMY{ldm>V3NsOGwyxO2h)l#)rH@BI*TN; z`yW26bMSp=k6C4Ja{xB}s`dNp zE+41IwEwo>7*PA|7v-F#jLN>h#a`Er9_86!fwPl{6yWR|fh?c%qc44uP~Ocm2V*(* zICMpS*&aJjxutxKC0Tm8+FBz;3;R^=ajXQUB*nTN*Lb;mruQHUE<&=I7pZ@F-O*VMkJbI#FOrBM8`QEL5Uy=q5e2 z_BwVH%c0^uIWO0*_qD;0jlPoA@sI7BPwOr-mrp7y`|EF)j;$GYdOtEPFRAKyUuUZS z(N4)*6R*ux8s@pMdC*TP?Hx`Zh{{Ser;clg&}CXriXZCr2A!wIoh;j=_eq3_%n7V} za?{KhXg2cXPpKHc90t6=`>s@QF-DNcTJRvLTS)E2FTb+og(wTV7?$kI?QZYgVBn)& zdpJf@tZ{j>B;<MVHiPl_U&KlqBT)$ic+M0uUQWK|N1 zCMl~@o|}!!7yyT%7p#G4?T^Azxt=D(KP{tyx^lD_(q&|zNFgO%!i%7T`>mUuU^FeR zHP&uClWgXm6iXgI8*DEA!O&X#X(zdrNctF{T#pyax16EZ5Lt5Z=RtAja!x+0Z31U8 zjfaky?W)wzd+66$L>o`n;DISQNs09g{GAv%8q2k>2n8q)O^M}=5r#^WR^=se#WSCt zQ`7E1w4qdChz4r@v6hgR?nsaE7pg2B6~+i5 zcTTbBQ2ghUbC-PV(@xvIR(a>Kh?{%YAsMV#4gt1nxBF?$FZ2~nFLKMS!aK=(`WllA zHS<_7ugqKw!#0aUtQwd#A$8|kPN3Af?Tkn)dHF?_?r#X68Wj;|$aw)Wj2Dkw{6)*^ zZfy!TWwh=%g~ECDCy1s8tTgWCi}F1BvTJ9p3H6IFq&zn#3FjZoecA_L_bxGWgeQup zAAs~1IPCnI@H>g|6Lp^Bk)mjrA3_qD4(D(65}l=2RzF-8@h>|Aq!2K-qxt(Q9w7c^ z;gtx`I+=gKOl;h=#fzSgw-V*YT~2_nnSz|!9hIxFb{~dKB!{H zSi??dnmr@%(1w^Be=*Jz5bZeofEKKN&@@uHUMFr-DHS!pb1I&;x9*${bmg6=2I4Zt zHb5LSvojY7ubCNGhp)=95jQ00sMAC{IZdAFsN!lAVQDeiec^HAu=8);2AKqNTT!&E zo+FAR`!A1#T6w@0A+o%&*yzkvxsrqbrfVTG+@z8l4+mRi@j<&)U9n6L>uZoezW>qS zA4YfO;_9dQSyEYpkWnsk0IY}Nr2m(ql@KuQjLgY-@g z4=$uai6^)A5+~^TvLdvhgfd+y?@+tRE^AJabamheJFnpA#O*5_B%s=t8<;?I;qJ}j z&g-9?hbwWEez-!GIhqpB>nFvyi{>Yv>dPU=)qXnr;3v-cd`l}BV?6!v{|cHDOx@IG z;TSiQQ(8=vlH^rCEaZ@Yw}?4#a_Qvx=}BJuxACxm(E7tP4hki^jU@8A zUS|4tTLd)gr@T|F$1eQXPY%fXb7u}(>&9gsd3It^B{W#6F2_g40cgo1^)@-xO&R5X z>qKon+Nvp!4v?-rGQu#M_J2v+3e+?N-WbgPQWf`ZL{Xd9KO^s{uIHTJ6~@d=mc7i z+##ya1p+ZHELmi%3C>g5V#yZt*jMv( zc{m*Y;7v*sjVZ-3mBuaT{$g+^sbs8Rp7BU%Ypi+c%JxtC4O}|9pkF-p-}F{Z7-+45 zDaJQx&CNR)8x~0Yf&M|-1rw%KW3ScjWmKH%J1fBxUp(;F%E+w!U470e_3%+U_q7~P zJm9VSWmZ->K`NfswW(|~fGdMQ!K2z%k-XS?Bh`zrjZDyBMu74Fb4q^A=j6+Vg@{Wc zPRd5Vy*-RS4p1OE-&8f^Fo}^yDj$rb+^>``iDy%t)^pHSV=En5B5~*|32#VkH6S%9 zxgIbsG+|{-$v7mhOww#v-ejaS>u(9KV9_*X!AY#N*LXIxor9hDv%aie@+??X6@Et=xz>6ev9U>6Pn$g4^!}w2Z%Kpqpp+M%mk~?GE-jL&0xLC zy(`*|&gm#mLeoRU8IU?Ujsv=;ab*URmsCl+r?%xcS1BVF*rP}XRR%MO_C!a9J^fOe>U;Y&3aj3 zX`3?i12*^W_|D@VEYR;h&b^s#Kd;JMNbZ#*x8*ZXm(jgw3!jyeHo14Zq!@_Q`V;Dv zKik~!-&%xx`F|l^z2A92aCt4x*I|_oMH9oeqsQgQDgI0j2p!W@BOtCTK8Jp#txi}7 z9kz);EX-2~XmxF5kyAa@n_$YYP^Hd4UPQ>O0-U^-pw1*n{*kdX`Jhz6{!W=V8a$0S z9mYboj#o)!d$gs6vf8I$OVOdZu7L5%)Vo0NhN`SwrQFhP3y4iXe2uV@(G{N{yjNG( zKvcN{k@pXkxyB~9ucR(uPSZ7{~sC=lQtz&V(^A^HppuN!@B4 zS>B=kb14>M-sR>{`teApuHlca6YXs6&sRvRV;9G!XI08CHS~M$=%T~g5Xt~$exVk` zWP^*0h{W%`>K{BktGr@+?ZP}2t0&smjKEVw@3=!rSjw5$gzlx`{dEajg$A58m|Okx zG8@BTPODSk@iqLbS*6>FdVqk}KKHuAHb0UJNnPm!(XO{zg--&@#!niF4T!dGVdNif z3_&r^3+rfQuV^8}2U?bkI5Ng*;&G>(O4&M<86GNxZK{IgKNbRfpg>+32I>(h`T&uv zUN{PRP&onFj$tn1+Yh|0AF330en{b~R+#i9^QIbl9fBv>pN|k&IL2W~j7xbkPyTL^ z*TFONZUS2f33w3)fdzr?)Yg;(s|||=aWZV(nkDaACGSxNCF>XLJSZ=W@?$*` z#sUftY&KqTV+l@2AP5$P-k^N`Bme-xcWPS|5O~arUq~%(z8z87JFB|llS&h>a>Som zC34(_uDViE!H2jI3<@d+F)LYhY)hoW6)i=9u~lM*WH?hI(yA$X#ip}yYld3RAv#1+sBt<)V_9c4(SN9Fn#$}_F}A-}P>N+8io}I3mh!}> z*~*N}ZF4Zergb;`R_g49>ZtTCaEsCHiFb(V{9c@X0`YV2O^@c6~LXg2AE zhA=a~!ALnP6aO9XOC^X15(1T)3!1lNXBEVj5s*G|Wm4YBPV`EOhU&)tTI9-KoLI-U zFI@adu6{w$dvT(zu*#aW*4F=i=!7`P!?hZy(9iL;Z^De3?AW`-gYTPALhrZ*K2|3_ zfz;6xQN9?|;#_U=4t^uS2VkQ8$|?Ub5CgKOj#Ni5j|(zX>x#K(h7LgDP-QHwok~-I zOu9rn%y97qrtKdG=ep)4MKF=TY9^n6CugQ3#G2yx;{))hvlxZGE~rzZ$qEHy-8?pU#G;bwufgSN6?*BeA!7N3RZEh{xS>>-G1!C(e1^ zzd#;39~PE_wFX3Tv;zo>5cc=md{Q}(Rb?37{;YPtAUGZo7j*yHfGH|TOVR#4ACaM2 z;1R0hO(Gl}+0gm9Bo}e@lW)J2OU4nukOTVKshHy7u)tLH^9@QI-jAnDBp(|J8&{fKu=_97$v&F67Z zq+QsJ=gUx3_h_%=+q47msQ*Ub=gMzoSa@S2>`Y9Cj*@Op4plTc!jDhu51nSGI z^sfZ(4=yzlR}kP2rcHRzAY9@T7f`z>fdCU0zibx^gVg&fMkcl)-0bRyWe12bT0}<@ z^h(RgGqS|1y#M;mER;8!CVmX!j=rfNa6>#_^j{^C+SxGhbSJ_a0O|ae!ZxiQCN2qA zKs_Z#Zy|9BOw6x{0*APNm$6tYVG2F$K~JNZ!6>}gJ_NLRYhcIsxY1z~)mt#Yl0pvC zO8#Nod;iow5{B*rUn(0WnN_~~M4|guwfkT(xv;z)olmj=f=aH#Y|#f_*d1H!o( z!EXNxKxth9w1oRr0+1laQceWfgi8z`YS#uzg#s9-QlTT7y2O^^M1PZx z3YS7iegfp6Cs0-ixlG93(JW4wuE7)mfihw}G~Uue{Xb+#F!BkDWs#*cHX^%(We}3% zT%^;m&Juw{hLp^6eyM}J({luCL_$7iRFA6^8B!v|B9P{$42F>|M`4Z_yA{kK()WcM zu#xAZWG%QtiANfX?@+QQOtbU;Avr*_>Yu0C2>=u}zhH9VLp6M>fS&yp*-7}yo8ZWB z{h>ce@HgV?^HgwRThCYnHt{Py0MS=Ja{nIj5%z;0S@?nGQ`z`*EVs&WWNwbzlk`(t zxDSc)$dD+4G6N(p?K>iEKXIk>GlGKTH{08WvrehnHhh%tgpp&8db4*FLN zETA@<$V=I7S^_KxvYv$Em4S{gO>(J#(Wf;Y%(NeECoG3n+o;d~Bjme-4dldKukd`S zRVAnKxOGjWc;L#OL{*BDEA8T=zL8^`J=2N)d&E#?OMUqk&9j_`GX*A9?V-G zdA5QQ#(_Eb^+wDkDiZ6RXL`fck|rVy%)BVv;dvY#`msZ}{x5fmd! zInmWSxvRgXbJ{unxAi*7=Lt&7_e0B#8M5a=Ad0yX#0rvMacnKnXgh>4iiRq<&wit93n!&p zeq~-o37qf)L{KJo3!{l9l9AQb;&>)^-QO4RhG>j`rBlJ09~cbfNMR_~pJD1$UzcGp zOEGTzz01j$=-kLC+O$r8B|VzBotz}sj(rUGOa7PDYwX~9Tum^sW^xjjoncxSz;kqz z$Pz$Ze|sBCTjk7oM&`b5g2mFtuTx>xl{dj*U$L%y-xeQL~|i>KzdUHeep-Yd@}p&L*ig< zgg__3l9T=nbM3bw0Sq&Z2*FA)P~sx0h634BXz0AxV69cED7QGTbK3?P?MENkiy-mV zZ1xV5ry3zIpy>xmThBL0Q!g+Wz@#?6fYvzmEczs(rcujrfCN=^!iWQ6$EM zaCnRThqt~gI-&6v@KZ78unqgv9j6-%TOxpbV`tK{KaoBbhc}$h+rK)5h|bT6wY*t6st-4$e99+Egb#3ip+ERbve08G@Ref&hP)qB&?>B94?eq5i3k;dOuU#!y-@+&5>~!FZik=z4&4|YHy=~!F254 zQAOTZr26}Nc7jzgJ;V~+9ry#?7Z0o*;|Q)k+@a^87lC}}1C)S))f5tk+lMNqw>vh( z`A9E~5m#b9!ZDBltf7QIuMh+VheCoD7nCFhuzThlhA?|8NCt3w?oWW|NDin&&eDU6 zwH`aY=))lpWG?{fda=-auXYp1WIPu&3 zwK|t(Qiqvc@<;1_W#ALDJ}bR;3&v4$9rP)eAg`-~iCte`O^MY+SaP!w%~+{{1tMo` zbp?T%ENs|mHP)Lsxno=nWL&qizR+!Ib=9i%4=B@(Umf$|7!WVxkD%hfRjvxV`Co<; zG*g4QG_>;RE{3V_DOblu$GYm&!+}%>G*yO{-|V9GYG|bH2JIU2iO}ZvY>}Fl%1!OE zZFsirH^$G>BDIy`8;R?lZl|uu@qWj2T5}((RG``6*05AWsVVa2Iu>!F5U>~7_Tlv{ zt=Dpgm~0QVa5mxta+fUt)I0gToeEm9eJX{yYZ~3sLR&nCuyuFWuiDIVJ+-lwViO(E zH+@Rg$&GLueMR$*K8kOl>+aF84Hss5p+dZ8hbW$=bWNIk0paB!qEK$xIm5{*^ad&( zgtA&gb&6FwaaR2G&+L+Pp>t^LrG*-B&Hv;-s(h0QTuYWdnUObu8LRSZoAVd7SJ;%$ zh%V?58mD~3G2X<$H7I)@x?lmbeeSY7X~QiE`dfQ5&K^FB#9e!6!@d9vrSt!);@ZQZ zO#84N5yH$kjm9X4iY#f+U`FKhg=x*FiDoUeu1O5LcC2w&$~5hKB9ZnH+8BpbTGh5T zi_nfmyQY$vQh%ildbR7T;7TKPxSs#vhKR|uup`qi1PufMa(tNCjRbllakshQgn1)a8OO-j8W&aBc_#q1hKDF5-X$h`!CeT z+c#Ial~fDsGAenv7~f@!icm(~)a3OKi((=^zcOb^qH$#DVciGXslUwTd$gt{7)&#a`&Lp ze%AnL0#U?lAl8vUkv$n>bxH*`qOujO0HZkPWZnE0;}0DSEu1O!hg-d9#{&#B1Dm)L zvN%r^hdEt1vR<4zwshg*0_BNrDWjo65be1&_82SW8#iKWs7>TCjUT;-K~*NxpG2P% zovXUo@S|fMGudVSRQrP}J3-Wxq;4xIxJJC|Y#TQBr>pwfy*%=`EUNE*dr-Y?9y9xK zmh1zS@z{^|UL}v**LNYY!?1qIRPTvr!gNXzE{%=-`oKclPrfMKwn` zUwPeIvLcxkIV>(SZ-SeBo-yw~{p!<&_}eELG?wxp zee-V59%@BtB+Z&Xs=O(@P$}v_qy1m=+`!~r^aT> zY+l?+6(L-=P%m4ScfAYR8;f9dyVw)@(;v{|nO#lAPI1xDHXMYt~-BGiP&9y2OQsYdh7-Q1(vL<$u6W0nxVn-qh=nwuRk}{d!uACozccRGx6~xZQ;=#JCE?OuA@;4 zadp$sm}jfgW4?La(pb!3f0B=HUI{5A4b$2rsB|ZGb?3@CTA{|zBf07pYpQ$NM({C6Srv6%_{rVkCndT=1nS}qyEf}Wjtg$e{ng7Wgz$7itYy0sWW_$qld);iUm85GBH)fk3b=2|5mvflm?~inoVo zDH_%e;y`DzoNj|NgZ`U%a9(N*=~8!qqy0Etkxo#`r!!{|(NyT0;5= z8nVZ6AiM+SjMG8J@6c4_f-KXd_}{My?Se1GWP|@wROFpD^5_lu?I%CBzpwi(`x~xh B8dv}T delta 17845 zcmV)CK*GO}(F4QI1F(Jx4W$DjNjn4p0N4ir06~)x5+0MO2`GQvQyWzj|J`gh3(E#l zNGO!HfVMRRN~%`0q^)g%XlN*vP!O#;m*h5VyX@j-1N|HN;8S1vqEAj=eCdn`)tUB9 zXZjcT^`bL6qvL}gvXj%9vrOD+x!Gc_0{$Zg+6lTXG$bmoEBV z*%y^c-mV0~Rjzv%e6eVI)yl>h;TMG)Ft8lqpR`>&IL&`>KDi5l$AavcVh9g;CF0tY zw_S0eIzKD?Nj~e4raA8wxiiImTRzv6;b6|LFmw)!E4=CiJ4I%&axSey4zE-MIh@*! z*P;K2Mx{xVYPLeagKA}Hj=N=1VrWU`ukuBnc14iBG?B}Uj>?=2UMk4|42=()8KOnc zrJzAxxaEIfjw(CKV6F$35u=1qyf(%cY8fXaS9iS?yetY{mQ#Xyat*7sSoM9fJlZqq zyasQ3>D>6p^`ck^Y|kYYZB*G})uAbQ#7)Jeb~glGz@2rPu}zBWDzo5K$tP<|meKV% z{Swf^eq6NBioF)v&~9NLIxHMTKe6gJ@QQ^A6fA!n#u1C&n`aG7TDXKM1Jly-DwTB` z+6?=Y)}hj;C#r5>&x;MCM4U13nuXVK*}@yRY~W3X%>U>*CB2C^K6_OZsXD!nG2RSX zQg*0)$G3%Es$otA@p_1N!hIPT(iSE=8OPZG+t)oFyD~{nevj0gZen$p>U<7}uRE`t5Mk1f4M0K*5 zbn@3IG5I2mk;8K>*RZ zPV6iL006)S001s%0eYj)9hu1 z9o)iQT9(v*sAuZ|ot){RrZ0Qw4{E0A+!Yx_M~#Pj&OPUM&i$RU=Uxu}e*6Sr2ror= z&?lmvFCO$)BY+^+21E>ENWe`I0{02H<-lz&?})gIVFyMWxX0B|0b?S6?qghp3lDgz z2?0|ALJU=7s-~Lb3>9AA5`#UYCl!Xeh^i@bxs5f&SdiD!WN}CIgq&WI4VCW;M!UJL zX2};d^sVj5oVl)OrkapV-C&SrG)*x=X*ru!2s04TjZ`pY$jP)4+%)7&MlpiZ`lgoF zo_p>^4qGz^(Y*uB10dY2kcIbt=$FIdYNqk;~47wf@)6|nJp z1cocL3zDR9N2Pxkw)dpi&_rvMW&Dh0@T*_}(1JFSc0S~Ph2Sr=vy)u*=TY$i_IHSo zR+&dtWFNxHE*!miRJ%o5@~GK^G~4$LzEYR-(B-b(L*3jyTq}M3d0g6sdx!X3-m&O% zK5g`P179KHJKXpIAAX`A2MFUA;`nXx^b?mboVbQgigIHTU8FI>`q53AjWaD&aowtj z{XyIX>c)*nLO~-WZG~>I)4S1d2q@&?nwL)CVSWqWi&m1&#K1!gt`g%O4s$u^->Dwq ziKc&0O9KQ7000OG0000%03-m(e&Y`S09YWC4iYDSty&3q8^?8ij|8zxaCt!zCFq1@ z9TX4Hl68`nY>}cQNW4Ullqp$~SHO~l1!CdFLKK}ij_t^a?I?C^CvlvnZkwiVn>dl2 z2$V(JN{`5`-8ShF_ek6HNRPBlPuIPYu>TAeAV5O2)35r3*_k(Q-h1+h5pb(Zu%oJ__pBsW0n5ILw`!&QR&YV`g0Fe z(qDM!FX_7;`U3rxX#QHT{f%h;)Eursw=*#qvV)~y%^Uo^% zi-%sMe^uz;#Pe;@{JUu05zT*i=u7mU9{MkT`ft(vPdQZoK&2mg=tnf8FsaNQ+QcPg zB>vP8Rd6Z0JoH5_Q`zldg;hx4azQCq*rRZThqlqTRMzn1O3_rQTrHk8LQ<{5UYN~` zM6*~lOGHyAnx&#yCK{i@%N1Us@=6cw=UQxpSE;<(LnnES%6^q^QhBYQ-VCSmIu8wh z@_LmwcFDfAhIn>`%h7L{)iGBzu`Md4dj-m3C8mA9+BL*<>q z#$7^ttIBOE-=^|zmG`K8yUKT{yjLu2SGYsreN0*~9yhFxn4U};Nv1XXj1fH*v-g=3 z@tCPc`YdzQGLp%zXwo*o$m9j-+~nSWls#s|?PyrHO%SUGdk**X9_=|b)Y%^j_V$3S z>mL2A-V)Q}qb(uZipEFVm?}HWc+%G6_K+S+87g-&RkRQ8-{0APDil115eG|&>WQhU zufO*|e`hFks^cJJmx_qNx{ltSp3aT|XgD5-VxGGXb7gkiOG$w^qMVBDjR8%!Sbh72niHRDV* ziFy8LE+*$j?t^6aZP9qt-ow;hzkmhvy*Hn-X^6?yVMbtNbyqZQ^rXg58`gk+I%Wv} zn_)dRq+3xjc8D%}EQ%nnTF7L7m}o9&*^jf`_qvUhVKY7w9Zgxr-0YHWFRd3$l_6UX zpXt^U&TiC*qZWx#pOG6k?3Tg)pra*fw(O6_45>lUBN1U5Qmc>^DHt)5b~Ntjsw!NI z1n4{$HWFeIi)*qvgK^ui;(81VQc1(wJ8C#tjR>Dkjf{xYC^_B^#qrdCc)uZxtgua6 zk98UGQF|;;k`c+0_z)tQ&9DwLB~&12@D1!*mTz_!3Mp=cg;B7Oq4cKN>5v&dW7q@H zal=g6Ipe`siZN4NZiBrkJCU*x216gmbV(FymgHuG@%%|8sgD?gR&0*{y4n=pukZnd z4=Nl~_>jVfbIehu)pG)WvuUpLR}~OKlW|)=S738Wh^a&L+Vx~KJU25o6%G7+Cy5mB zgmYsgkBC|@K4Jm_PwPoz`_|5QSk}^p`XV`649#jr4Lh^Q>Ne~#6Cqxn$7dNMF=%Va z%z9Ef6QmfoXAlQ3)PF8#3Y% zadcE<1`fd1&Q9fMZZnyI;&L;YPuy#TQ8b>AnXr*SGY&xUb>2678A+Y z8K%HOdgq_4LRFu_M>Ou|kj4W%sPPaV)#zDzN~25klE!!PFz_>5wCxglj7WZI13U5| zEq_YLKPH;v8sEhyG`dV_jozR);a6dBvkauhC;1dk%mr+J*Z6MMH9jqxFk@)&h{mHl zrf^i_d-#mTF=6-T8Rk?(1+rPGgl$9=j%#dkf@x6>czSc`jk7$f!9SrV{do%m!t8{? z_iAi$Qe&GDR#Nz^#uJ>-_?(E$ns)(3)X3cYY)?gFvU+N>nnCoBSmwB2<4L|xH19+4 z`$u#*Gt%mRw=*&|em}h_Y`Pzno?k^8e*hEwfM`A_yz-#vJtUfkGb=s>-!6cHfR$Mz z`*A8jVcz7T{n8M>ZTb_sl{EZ9Ctau4naX7TX?&g^VLE?wZ+}m)=YW4ODRy*lV4%-0 zG1XrPs($mVVfpnqoSihnIFkLdxG9um&n-U|`47l{bnr(|8dmglO7H~yeK7-wDwZXq zaHT($Qy2=MMuj@lir(iyxI1HnMlaJwpX86je}e=2n|Esb6hB?SmtDH3 z2qH6o`33b{;M{mDa5@@~1or8+Zcio*97pi1Jkx6v5MXCaYsb~Ynq)eWpKnF{n)FXZ z?Xd;o7ESu&rtMFr5(yJ(B7V>&0gnDdL*4MZH&eO+r*t!TR98ssbMRaw`7;`SLI8mT z=)hSAt~F=mz;JbDI6g~J%w!;QI(X14AnOu;uve^4wyaP3>(?jSLp+LQ7uU(iib%IyB(d&g@+hg;78M>h7yAeq$ALRoHGkKXA+E z$Sk-hd$Fs2nL4w9p@O*Y$c;U)W#d~)&8Js;i^Dp^* z0*7*zEGj~VehF4sRqSGny*K_CxeF=T^8;^lb}HF125G{kMRV?+hYktZWfNA^Mp7y8 zK~Q?ycf%rr+wgLaHQ|_<6z^eTG7izr@99SG9Q{$PCjJabSz`6L_QJJe7{LzTc$P&pwTy<&3RRUlSHmK;?}=QAhQaDW3#VWcNAH3 zeBPRTDf3?3mfdI$&WOg(nr9Gyzg`&u^o!f2rKJ57D_>p z6|?Vg?h(@(*X=o071{g^le>*>qSbVam`o}sAK8>b|11%e&;%`~b2OP7--q%0^2YDS z`2M`{2QYr1VC)sIW9WOu8<~7Q>^$*Og{KF+kI;wFegvaIDkB%3*%PWtWKSq7l`1YcDxQQ2@nv{J!xWV?G+w6C zhUUxUYVf%(Q(40_xrZB@rbxL=Dj3RV^{*yHd>4n-TOoHVRnazDOxxkS9kiZyN}IN3 zB^5N=* zRSTO+rA<{*P8-$GZdyUNOB=MzddG$*@q>mM;pUIiQ_z)hbE#Ze-IS)9G}Rt$5PSB{ zZZ;#h9nS7Rf1ecW&n(Gpu9}{vXQZ-f`UHIvD?cTbF`YvH*{rgE(zE22pLAQfhg-`U zuh612EpByB(~{w7svCylrBk%5$LCIyuhrGi=yOfca`=8ltKxHcSNfDRt@62QH^R_0 z&eQL6rRk>Dvf6rjMQv5ZXzg}S`HqV69hJT^pPHtdhqsrPJWs|IT9>BvpQa@*(FX6v zG}TYjreQCnH(slMt5{NgUf)qsS1F&Bb(M>$X}tWI&yt2I&-rJbqveuj?5J$`Dyfa2 z)m6Mq0XH@K)Y2v8X=-_4=4niodT&Y7W?$KLQhjA<+R}WTdYjX9>kD+SRS^oOY1{A= zZTId-(@wF^UEWso($wZtrs%e7t<}YaC_;#@`r0LUzKY&|qPJz*y~RHG`E6bypP5AX zN!p0^AUu8uDR>xM-ALFzBxXM~Q3z=}fHWCIG>0&I6x2Iu7&U)49j7qeMI&?qb$=4I zdMmhAJrO%@0f%YW! z^gLByEGSk+R0v4*d4w*N$Ju6z#j%HBI}6y$2en=-@S3=6+yZX94m&1j@s- z7T6|#0$c~dYq9IkA!P)AGkp~S$zYJ1SXZ#RM0|E~Q0PSm?DsT4N3f^)b#h(u9%_V5 zX*&EIX|gD~P!vtx?ra71pl%v)F!W~X2hcE!h8cu@6uKURdmo1-7icN4)ej4H1N~-C zjXgOK+mi#aJv4;`DZ%QUbVVZclkx;9`2kgbAhL^d{@etnm+5N8pB#fyH)bxtZGCAv z(%t0kPgBS{Q2HtjrfI0B$$M0c?{r~2T=zeXo7V&&aprCzww=i*}Atu7g^(*ivauMz~kkB%Vt{Wydlz%%2c26%>0PAbZO zVHx%tK(uzDl#ZZK`cW8TD2)eD77wB@gum{B2bO_jnqGl~01EF_^jx4Uqu1yfA~*&g zXJ`-N?D-n~5_QNF_5+Un-4&l$1b zVlHFqtluoN85b^C{A==lp#hS9J(npJ#6P4aY41r) zzCmv~c77X5L}H%sj>5t&@0heUDy;S1gSOS>JtH1v-k5l}z2h~i3^4NF6&iMb;ZYVE zMw*0%-9GdbpF1?HHim|4+)Zed=Fk<2Uz~GKc^P(Ig@x0&XuX0<-K(gA*KkN&lY2Xu zG054Q8wbK~$jE32#Ba*Id2vkqmfV{U$Nx9vJ;jeI`X+j1kh7hB8$CBTe@ANmT^tI8 z%U>zrTKuECin-M|B*gy(SPd`(_xvxjUL?s137KOyH>U{z01cBcFFt=Fp%d+BK4U;9 zQG_W5i)JASNpK)Q0wQpL<+Ml#cei41kCHe&P9?>p+KJN>I~`I^vK1h`IKB7k^xi`f z$H_mtr_+@M>C5+_xt%v}{#WO{86J83;VS@Ei3JLtp<*+hsY1oGzo z0?$?OJO$79;{|@aP!fO6t9TJ!?8i&|c&UPWRMbkwT3nEeFH`Yyyh6b%Rm^nBuTt@9 z+$&-4lf!G|@LCo3<8=yN@5dYbc%uq|Hz|0tiiLQKiUoM9g14zyECKGv0}3AWv2WJ zUAXGUhvkNk`0-H%ACsRSmy4fJ@kxBD3ZKSj6g(n1KPw?g{v19phcBr3BEF>J%lL|d zud3LNuL;cR*xS+;X+N^Br+x2{&hDMhb-$6_fKU(Pt0FQUXgNrZvzsVCnsFqv?#L z4-FYsQ-?D>;LdjHu_TT1CHN~aGkmDjWJkJg4G^!+V_APd%_48tErDv6BW5;ji^UDD zRu5Sw7wwplk`w{OGEKWJM&61c-AWn!SeUP8G#+beH4_Ov*)NUV?eGw&GHNDI6G(1Y zTfCv?T*@{QyK|!Q09wbk5koPD>=@(cA<~i4pSO?f(^5sSbdhUc+K$DW#_7^d7i%At z?KBg#vm$?P4h%?T=XymU;w*AsO_tJr)`+HUll+Uk_zx6vNw>G3jT){w3ck+Z=>7f0 zZVkM*!k^Z_E@_pZK6uH#|vzoL{-j1VFlUHP&5~q?j=UvJJNQG ztQdiCF$8_EaN_Pu8+afN6n8?m5UeR_p_6Log$5V(n9^W)-_vS~Ws`RJhQNPb1$C?| zd9D_ePe*`aI9AZ~Ltbg)DZ;JUo@-tu*O7CJ=T)ZI1&tn%#cisS85EaSvpS~c#CN9B z#Bx$vw|E@gm{;cJOuDi3F1#fxWZ9+5JCqVRCz5o`EDW890NUfNCuBn)3!&vFQE{E$L`Cf7FMSSX%ppLH+Z}#=p zSow$)$z3IL7frW#M>Z4|^9T!=Z8}B0h*MrWXXiVschEA=$a|yX9T~o!=%C?T+l^Cc zJx&MB$me(a*@lLLWZ=>PhKs!}#!ICa0! zq%jNgnF$>zrBZ3z%)Y*yOqHbKzEe_P=@<5$u^!~9G2OAzi#}oP&UL9JljG!zf{JIK z++G*8j)K=$#57N)hj_gSA8golO7xZP|KM?elUq)qLS)i(?&lk{oGMJh{^*FgklBY@Xfl<_Q zXP~(}ST6V01$~VfOmD6j!Hi}lsE}GQikW1YmBH)`f_+)KI!t#~B7=V;{F*`umxy#2Wt8(EbQ~ks9wZS(KV5#5Tn3Ia90r{}fI%pfbqBAG zhZ)E7)ZzqA672%@izC5sBpo>dCcpXi$VNFztSQnmI&u`@zQ#bqFd9d&ls?RomgbSh z9a2rjfNiKl2bR!$Y1B*?3Ko@s^L5lQN|i6ZtiZL|w5oq%{Fb@@E*2%%j=bcma{K~9 z*g1%nEZ;0g;S84ZZ$+Rfurh;Nhq0;{t~(EIRt}D@(Jb7fbe+_@H=t&)I)gPCtj*xI z9S>k?WEAWBmJZ|gs}#{3*pR`-`!HJ)1Dkx8vAM6Tv1bHZhH=MLI;iC#Y!$c|$*R>h zjP{ETat(izXB{@tTOAC4nWNhh1_%7AVaf!kVI5D=Jf5I1!?}stbx_Yv23hLf$iUTb z-)WrTtd2X+;vBW_q*Z6}B!10fs=2FA=3gy*dljsE43!G*3Uw(Is>(-a*5E!T4}b-Y zfvOC)-HYjNfcpi`=kG%(X3XcP?;p&=pz+F^6LKqRom~pA}O* zitR+Np{QZ(D2~p_Jh-k|dL!LPmexLM?tEqI^qRDq9Mg z5XBftj3z}dFir4oScbB&{m5>s{v&U=&_trq#7i&yQN}Z~OIu0}G)>RU*`4<}@7bB% zKYxGx0#L#u199YKSWZwV$nZd>D>{mDTs4qDNyi$4QT6z~D_%Bgf?>3L#NTtvX;?2D zS3IT*2i$Snp4fjDzR#<)A``4|dA(}wv^=L?rB!;kiotwU_gma`w+@AUtkSyhwp{M} z!e`jbUR3AG4XvnBVcyIZht6Vi~?pCC!$XF2 z*V~)DBVm8H7$*OZQJYl3482hadhsI2NCz~_NINtpC?|KI6H3`SG@1d%PsDdw{u}hq zN;OU~F7L1jT&KAitilb&Fl3X12zfSuFm;X)xQWOHL&7d)Q5wgn{78QJ6k5J;is+XP zCPO8_rlGMJB-kuQ*_=Yo1TswG4xnZd&eTjc8=-$6J^8TAa~kEnRQ@Zp-_W&B(4r@F zA==}0vBzsF1mB~743XqBmL9=0RSkGn$cvHf*hyc{<2{@hW+jKjbC|y%CNupHY_NC% zivz^btBLP-cDyV8j>u)=loBs>HoI5ME)xg)oK-Q0wAy|8WD$fm>K{-`0|W{H00;;G z000j`0OWQ8aHA9e04^;603eeQIvtaXMG=2tcr1y8Fl-J;AS+=<0%DU8Bp3oEEDhA^ zOY)M8%o5+cF$rC?trfMcty*f)R;^v=f~}||Xe!#;T3eTDZELN&-50xk+J1heP5AQ>h5O#S_uO;O@;~REd*_G$x$hVeE#bchX)otXQy|S5(oB)2a2%Sc(iDHm z=d>V|a!BLp9^#)o7^EQ2kg=K4%nI^sK2w@-kmvB+ARXYdq?xC2age6)e4$^UaY=wn zgLD^{X0A+{ySY+&7RpldwpC6=E zSPq?y(rl8ZN%(A*sapd4PU+dIakIwT0=zxIJEUW0kZSo|(zFEWdETY*ZjIk9uNMUA ze11=mHu8lUUlgRx!hItf0dAF#HfdIB+#aOuY--#QN9Ry zbx|XkG?PrBb@l6Owl{9Oa9w{x^R}%GwcEEfY;L-6OU8|9RXvu`-ECS`jcO1x1MP{P zcr;Bw##*Dod9K@pEx9z9G~MiNi>8v1OU-}vk*HbI)@CM? zn~b=jWUF%HP=CS+VCP>GiAU_UOz$aq3%%Z2laq^Gx`WAEmuNScCN)OlW>YHGYFgV2 z42lO5ZANs5VMXLS-RZTvBJkWy*OeV#L;7HwWg51*E|RpFR=H}h(|N+79g)tIW!RBK ze08bg^hlygY$C2`%N>7bDm`UZ(5M~DTanh3d~dg+OcNdUanr8azO?})g}EfnUB;5- zE1FX=ru?X=zAk4_6@__o1fE+ml1r&u^f1Kb24Jf-)zKla%-dbd>UZ1 zrj3!RR!Jg`ZnllKJ)4Yfg)@z>(fFepeOcp=F-^VHv?3jSxfa}-NB~*qkJ5Uq(yn+( z<8)qbZh{C!xnO@-XC~XMNVnr-Z+paowv!$H7>`ypMwA(X4(knx7z{UcWWe-wXM!d? zYT}xaVy|7T@yCbNOoy)$D=E%hUNTm(lPZqL)?$v+-~^-1P8m@Jm2t^L%4#!JK#Vtg zyUjM+Y*!$);1<)0MUqL00L0*EZcsE&usAK-?|{l|-)b7|PBKl}?TM6~#j9F+eZq25_L&oSl}DOMv^-tacpDI)l*Ws3u+~jO@;t(T)P=HCEZ#s_5q=m zOsVY!QsOJn)&+Ge6Tm)Ww_Bd@0PY(78ZJ)7_eP-cnXYk`>j9q`x2?Xc6O@55wF+6R zUPdIX!2{VGA;FSivN@+;GNZ7H2(pTDnAOKqF*ARg+C54vZ@Ve`i?%nDDvQRh?m&`1 zq46gH)wV=;UrwfCT3F(m!Q5qYpa!#f6qr0wF=5b9rk%HF(ITc!*R3wIFaCcftGwPt z(kzx{$*>g5L<;u}HzS4XD%ml zmdStbJcY@pn`!fUmkzJ8N>*8Y+DOO^r}1f4ix-`?x|khoRvF%jiA)8)P{?$8j2_qN zcl3Lm9-s$xdYN9)>3j6BPFK)Jbovl|Sf_p((CHe!4hx@F)hd&&*Xb&{TBj>%pT;-n z{3+hA^QZYnjXxtF2XwxPZ`S#J8h>5qLwtwM-{5abbEnRS z`9_`Zq8FJiI#0syE_V_3M&trw$P=ezkHosV$8&I5c0(*-9KBE5DJOC-Xv zw}1bq~AD0_Xerm`%ryiG9_$S z5G|btfiAUNdV09SO2l9v+e#(H6HYOdQs=^ z@xwZQU)~;p1L*~ciC}9ao{nQ-@B>rpUzKBxv=cUusOP5Trs3QnvHxGh9e>s7AM{V1|HfYe z3QwH;nHHR49fYzuGc3W3l5xrDAI392SFXx>lWE3V9Ds9il3PyZaN5>oC3>9W-^7vC z3~KZ-@iD?tIkhg+6t{m;RGk2%>@I0&kf)o$+-^ls0(YABNbM(=l#ad@nKp_j=b~Xs ziR;xu_+)lxy6|+af!@}gO2H_x)p;nZ-tYxW5Omq=l`GzMp*GTLr>vZN1?e}^C$t*Z zvzEdIc2|HA2RFN_4#EkzMqKnbbw!?!?%B@M0^^5Z;K?x-%lg?Z>}wMV8zEqHZ$cr~Y#Wv>9+)KMUZatUqbRU8 z8t9qrek(H^C0Tuzq|cP2$WL7tzj+Dj5y^2SF1D154CnsB$xbz`$wV||n-cG%rsT$p z+3RHdadK(3-noj(2L#8c5lODg)V8pv(GEnNb@F>dEHQr>!qge@L>#qg)RAUtiOYqF ziiV_ETExwD)bQ<))?-9$)E(FiRBYyC@}issHS!j9n)~I1tarxnQ2LfjdIJ)*jp{0E z&1oTd%!Qbw$W58s!6ms>F z=p0!~_Mv~8jyaicOS*t(ntw`5uFi0Bc4*mH8kSkk$>!f0;FM zX_t14I55!ZVsg0O$D2iuEDb7(J>5|NKW^Z~kzm@dax z9(|As$U7^}LF%#`6r&UPB*6`!Rf74h~*C=ami6xUxYCwiJxdr$+`z zKSC4A%8!s%R&j*2si(OEc*fy!q)?%=TjDZJ2}O zxT6o>jlKXz_7_Y$N})}IG`*#KfMzs#R(SI#)3*ZEzCv%_tu(VTZ5J| zw2$5kK)xTa>xGFgS0?X(NecjzFVKG%VVn?neu=&eQ+DJ1APlY1E?Q1s!Kk=yf7Uho z>8mg_!U{cKqpvI3ucSkC2V`!d^XMDk;>GG~>6>&X_z75-kv0UjevS5ORHV^e8r{tr z-9z*y&0eq3k-&c_AKw~<`8dtjsP0XgFv6AnG?0eo5P14T{xW#b*Hn2gEnt5-KvN1z zy!TUSi>IRbD3u+h@;fn7fy{F&hAKx7dG4i!c?5_GnvYV|_d&F16p;)pzEjB{zL-zr z(0&AZUkQ!(A>ghC5U-)t7(EXb-3)tNgb=z`>8m8n+N?vtl-1i&*ftMbE~0zsKG^I$ zSbh+rUiucsb!Ax@yB}j>yGeiKIZk1Xj!i#K^I*LZW_bWQIA-}FmJ~^}>p=K$bX9F{}z{s^KWc~OK(zl_X57aB^J9v}yQ5h#BE$+C)WOglV)nd0WWtaF{7`_Ur`my>4*NleQG#xae4fIo(b zW(&|g*#YHZNvDtE|6}yHvu(hDekJ-t*f!2RK;FZHRMb*l@Qwkh*~CqQRNLaepXypX z1?%ATf_nHIu3z6gK<7Dmd;{`0a!|toT0ck|TL$U;7Wr-*piO@R)KrbUz8SXO0vr1K z>76arfrqImq!ny+VkH!4?x*IR$d6*;ZA}Mhro(mzUa?agrFZpHi*)P~4~4N;XoIvH z9N%4VK|j4mV2DRQUD!_-9fmfA2(YVYyL#S$B;vqu7fnTbAFMqH``wS7^B5=|1O&fL z)qq(oV6_u4x(I(**#mD}MnAy(C&B4a1n6V%$&=vrIDq^F_KhE5Uw8_@{V`_#M0vCu zaNUXB=n0HT@D+ppDXi8-vp{tj)?7+k>1j}VvEKRgQ~DWva}8*pp`W8~KRo*kJ*&X} zP!~2fxQr@dM*q0dI|)Fux=pZWBk==RI7i{^BQf`kWlD2%|@R9!JA7& zLbM$uJ12y}_62$|T|{)@OJZtzfpL^t@1nMTYHutrF#D+^?~CN~9`YQ@#&&@c_Zf)( zbC~y8!2LO8jHwQXv>G~1q?c68ipT*%dY&c{8wd_!Y#~tMJ7yk!F8| zt?m_CLVw6cU@@p(#h4cY&Qsfz2Xp3w^4Cg%m03Tmq~9n%hyoMH^KY7{(QkRyn_!YB zzZa!Tgr~5$MAG$x)Fs71#6j}Kvcv3=9VUX8CH< zbP3|fY8f#$K*<5JQ7whM(v=GN2k26Xsh)#0!HKS(koLgAp-;)8z0w&_Z=nG4v6n8u z&Tm0Fi){4_!Y5Kp?!zv$FKfUifQ{%c82uYfrvE{%ejUd72aNYmI*0z3-a-EYr+bB->oH3#t(AY3 zV{Z=(SJr;D#0(`u*dc*~9T7D8Pudw894%!>c4wU&V1m<~0InidR6fbi?yPl(z+sKa zdF*kS>_4^1UO>y4T%Ar>epSr5&vp`$KdY7B(F%P0@VyHk@1fJ=6X0=aGjD-)BrOJD zW}IU@hg~^2r>a1fQvjTtvL*mKJ7q;pfP*U2=URL`VB_Y_JojbZ+MS=vaVN0C6L_MV zG1#5=35-E`KsD%r>-Q_ndvJ2tOYcMMP9f*t0iJ`(Z`^+YP)h>@lR(@Wvrt-`0tHG+ zuP2R@@mx=T@fPoQ1s`e^1I0H*kQPBGDky@!ZQG@8jY-+2ihreG5q$6i{3vmDTg0j$ zzRb*-nKN@{_wD`V6+i*YS)?$XfrA-sW?js?SYU8#vXxxQCc|*K!EbpWfu)3~jwq6_@KC0m;3A%jH^18_a0;ksC2DEwa@2{9@{ z9@T??<4QwR69zk{UvcHHX;`ICOwrF;@U;etd@YE)4MzI1WCsadP=`%^B>xPS-{`=~ zZ+2im8meb#4p~XIL9}ZOBg7D8R=PC8V}ObDcxEEK(4yGKcyCQWUe{9jCs+@k!_y|I z%s{W(&>P4w@hjQ>PQL$zY+=&aDU6cWr#hG)BVCyfP)h>@3IG5I2mk;8K>)Ppba*!h z005B=001VF5fT=Y4_ytCUk`sv8hJckqSy&Gc2Jx^WJ$J~08N{il-M$fz_ML$)Cpil z(nOv_nlZB^c4s&&O3h=OLiCz&(|f0 zxWU_-JZy>hxP*gvR>CLnNeQ1~g;6{g#-}AbkIzWR;j=8=6!AHpKQCbjFYxf9h%bov zVi;eNa1>t-<14KERUW>^KwoF+8zNo`Y*WiQwq}3m0_2RYtL9Wmu`JaRaQMQ)`Si^6+VbM`!rH~T?DX2=(n4nT zf`G`(Rpq*pDk*v~wMYPZ@vMNZDMPnxMYmU!lA{Xfo?n=Ibb4y3eyY1@Dut4|Y^ml& zqs$r}jAo=B(Ml>ogeEjyv(E`=kBzPf2uv9TQtO$~bamD#=Tv`lNy(K|w$J2O6jS51 zzZtOCHDWz7W0=L1XDW5WR5mtLGc~W+>*vX5{e~U@rE~?7e>vKU-v8bj;F4#abtcV(3ZtwXo9ia93HiETyQXwW4a-0){;$OU*l` zW^bjkyZTJ6_DL^0}`*)#EZ|2nvKRzMLH9-~@Z6$v#t8Dm%(qpP+DgzNe6d)1q zBqhyF$jJTyYFvl_=a>#I8jhJ)d6SBNPg#xg2^kZ3NX8kQ74ah(Y5Z8mlXyzTD&}Q8 ziY(pj-N-V2f>&hZQJ`Di%wp2fN(I%F@l)3M8GcSdNy+#HuO{$I8NXubRlFkL)cY@b z#`v{}-^hRXEq*8B_cG=%PZvI$eo(|8Wc(2o8L#0_GX9L$1@yV>%7mGk)QTD1R*OvS z4OW;ym1)%k9Bfem0tOqq3yyAUWp&q|LsN!RDnxa|j;>R|Mm2rIv7=tej5GFaa+`#| z;7u9Z_^XV+vD@2hF8Xe63+Qd`oig6S9jX(*DbjzPb*K-H7c^7E-(~!R6E%TrgW;RvG;WS{Ziv*W*a*`9Bb;$Er3?MyF~5GcXv`k>U)n}lwv$Sp+H@IKA5$mKk0g*4Ln{!tfvITeY zzr%8JJ5BdcEYsR9eGzJ4B&$}4FMmbRU6{8{_w7Kl77@PNe7|Bc#c?5(C5&Z=kJ#(oM90D4`rh2S!|^L!P#e#1hkD5@~-- z`63GV0~*rOZSqw7k^#-Y$Q4z3Oa2SPRURqEahB1B^h{7~+p03SwzqL9QU#$3-X zdYtQ?-K5xDAdfomEd6(yPtZ!yY_<35bMedeq`z2JWorljz5-f9<^93HM-$#+acw%9r!JOM%O<|BR`W& zd-%j_?b^q7Kl6{q^N{cg2u;11rFB5EP+oqG9&pHD#_Mo@aNMj;LUvsl&nK(ca(hT( zzFc2oHC6WQv8g7jo+3ZSwK+9G$cvfRnql)?g=XeQ3+LTh3)79nhEle8OqS3T$qn(> z(=5Bg?EWq-ldEywgzXW965%H(9^ik*rH(8dNdkbcS9|ow&_r`X~R^R?B+(oTiMzzlx8KnHqUi z8Rh-)VAnS-CO+3}yxqm8)X+N+uzieFVm-F#syP#M1p5&$wX3MJ8 z+R@grZ*5G^Uh4I@VT=>C4RJNc^~3mx$kS1F{L?3)BzdduD2MZKdu#jNno&f2&d{?` zW(>$oktzY@GO{|Ln~Bt^A4)(%?l-&(Dm!iL#$K_xOyhwAf=K2<+Bom zw7|hl6E5}B$d%n0sfZvfQRy9Fyz2~ z83#=#LaHnf1th^k*p|ux8!!8pfHE!)x*%=_hAddl)P%4h4%&8!5-W#xqqb}c=H(i|wqcIS&oDQ{ zhI7N-$f$ra3=RjPmMh?-IEkJYQ<}R9Z!}wmp$#~Uc%u1oh#TP}wF*kJJmQX2#27kL z_dz(yKufo<=m71bZfLp^Ll#t3(IHkrgMcvx@~om%Ib(h(<$Da7urTI`x|%`wD--sN zJEEa>4DGSEG?0ulkosfj8IMNN4)B=ZtvGG{|4Fp=Xhg!wPNgYzS>{Bp%%Qa+624X@ X49Luk)baa85H9$5YCsTPT`SVRWMtMW diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 05679dc3..19cfad96 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.1.1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.9-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/gradlew b/gradlew index 4f906e0c..744e882e 100755 --- a/gradlew +++ b/gradlew @@ -72,7 +72,7 @@ case "`uname`" in Darwin* ) darwin=true ;; - MINGW* ) + MSYS* | MINGW* ) msys=true ;; NONSTOP* ) diff --git a/kotlin-js-store/yarn.lock b/kotlin-js-store/yarn.lock new file mode 100644 index 00000000..25696835 --- /dev/null +++ b/kotlin-js-store/yarn.lock @@ -0,0 +1,3300 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@colors/colors@1.5.0": + version "1.5.0" + resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.5.0.tgz#bb504579c1cae923e6576a4f5da43d25f97bdbd9" + integrity sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ== + +"@discoveryjs/json-ext@^0.5.0": + version "0.5.7" + resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz#1d572bfbbe14b7704e0ba0f39b74815b84870d70" + integrity sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw== + +"@fortawesome/fontawesome-common-types@^0.2.36": + version "0.2.36" + resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-0.2.36.tgz#b44e52db3b6b20523e0c57ef8c42d315532cb903" + integrity sha512-a/7BiSgobHAgBWeN7N0w+lAhInrGxksn13uK7231n2m8EDPE3BMCl9NZLTGrj9ZXfCmC6LM0QLqXidIizVQ6yg== + +"@fortawesome/fontawesome-common-types@^0.3.0": + version "0.3.0" + resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-0.3.0.tgz#949995a05c0d8801be7e0a594f775f1dbaa0d893" + integrity sha512-CA3MAZBTxVsF6SkfkHXDerkhcQs0QPofy43eFdbWJJkZiq3SfiaH1msOkac59rQaqto5EqWnASboY1dBuKen5w== + +"@fortawesome/fontawesome-svg-core@^1.2.36": + version "1.3.0" + resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-1.3.0.tgz#343fac91fa87daa630d26420bfedfba560f85885" + integrity sha512-UIL6crBWhjTNQcONt96ExjUnKt1D68foe3xjEensLDclqQ6YagwCRYVQdrp/hW0ALRp/5Fv/VKw+MqTUWYYvPg== + dependencies: + "@fortawesome/fontawesome-common-types" "^0.3.0" + +"@fortawesome/free-brands-svg-icons@^5.15.4": + version "5.15.4" + resolved "https://registry.yarnpkg.com/@fortawesome/free-brands-svg-icons/-/free-brands-svg-icons-5.15.4.tgz#ec8a44dd383bcdd58aa7d1c96f38251e6fec9733" + integrity sha512-f1witbwycL9cTENJegcmcZRYyawAFbm8+c6IirLmwbbpqz46wyjbQYLuxOc7weXFXfB7QR8/Vd2u5R3q6JYD9g== + dependencies: + "@fortawesome/fontawesome-common-types" "^0.2.36" + +"@fortawesome/free-regular-svg-icons@^5.15.4": + version "5.15.4" + resolved "https://registry.yarnpkg.com/@fortawesome/free-regular-svg-icons/-/free-regular-svg-icons-5.15.4.tgz#b97edab436954333bbeac09cfc40c6a951081a02" + integrity sha512-9VNNnU3CXHy9XednJ3wzQp6SwNwT3XaM26oS4Rp391GsxVYA+0oDR2J194YCIWf7jNRCYKjUCOduxdceLrx+xw== + dependencies: + "@fortawesome/fontawesome-common-types" "^0.2.36" + +"@fortawesome/free-solid-svg-icons@^5.15.4": + version "5.15.4" + resolved "https://registry.yarnpkg.com/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-5.15.4.tgz#2a68f3fc3ddda12e52645654142b9e4e8fbb6cc5" + integrity sha512-JLmQfz6tdtwxoihXLg6lT78BorrFyCf59SAwBM6qV/0zXyVeDygJVb3fk+j5Qat+Yvcxp1buLTY5iDh1ZSAQ8w== + dependencies: + "@fortawesome/fontawesome-common-types" "^0.2.36" + +"@isaacs/cliui@^8.0.2": + version "8.0.2" + resolved "https://registry.yarnpkg.com/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550" + integrity sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA== + dependencies: + string-width "^5.1.2" + string-width-cjs "npm:string-width@^4.2.0" + strip-ansi "^7.0.1" + strip-ansi-cjs "npm:strip-ansi@^6.0.1" + wrap-ansi "^8.1.0" + wrap-ansi-cjs "npm:wrap-ansi@^7.0.0" + +"@jridgewell/gen-mapping@^0.3.5": + version "0.3.5" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz#dcce6aff74bdf6dad1a95802b69b04a2fcb1fb36" + integrity sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg== + dependencies: + "@jridgewell/set-array" "^1.2.1" + "@jridgewell/sourcemap-codec" "^1.4.10" + "@jridgewell/trace-mapping" "^0.3.24" + +"@jridgewell/resolve-uri@^3.1.0": + version "3.1.2" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6" + integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== + +"@jridgewell/set-array@^1.2.1": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.2.1.tgz#558fb6472ed16a4c850b889530e6b36438c49280" + integrity sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A== + +"@jridgewell/source-map@^0.3.3": + version "0.3.6" + resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.6.tgz#9d71ca886e32502eb9362c9a74a46787c36df81a" + integrity sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ== + dependencies: + "@jridgewell/gen-mapping" "^0.3.5" + "@jridgewell/trace-mapping" "^0.3.25" + +"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14": + version "1.5.0" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz#3188bcb273a414b0d215fd22a58540b989b9409a" + integrity sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ== + +"@jridgewell/trace-mapping@^0.3.20", "@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.25": + version "0.3.25" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz#15f190e98895f3fc23276ee14bc76b675c2e50f0" + integrity sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ== + dependencies: + "@jridgewell/resolve-uri" "^3.1.0" + "@jridgewell/sourcemap-codec" "^1.4.14" + +"@js-joda/core@3.2.0": + version "3.2.0" + resolved "https://registry.yarnpkg.com/@js-joda/core/-/core-3.2.0.tgz#3e61e21b7b2b8a6be746df1335cf91d70db2a273" + integrity sha512-PMqgJ0sw5B7FKb2d5bWYIoxjri+QlW/Pys7+Rw82jSH0QN3rB05jZ/VrrsUdh1w4+i2kw9JOejXGq/KhDOX7Kg== + +"@jsonjoy.com/base64@^1.1.1": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@jsonjoy.com/base64/-/base64-1.1.2.tgz#cf8ea9dcb849b81c95f14fc0aaa151c6b54d2578" + integrity sha512-q6XAnWQDIMA3+FTiOYajoYqySkO+JSat0ytXGSuRdq9uXE7o92gzuQwQM14xaCRlBLGq3v5miDGC4vkVTn54xA== + +"@jsonjoy.com/json-pack@^1.0.3": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@jsonjoy.com/json-pack/-/json-pack-1.0.4.tgz#ab59c642a2e5368e8bcfd815d817143d4f3035d0" + integrity sha512-aOcSN4MeAtFROysrbqG137b7gaDDSmVrl5mpo6sT/w+kcXpWnzhMjmY/Fh/sDx26NBxyIE7MB1seqLeCAzy9Sg== + dependencies: + "@jsonjoy.com/base64" "^1.1.1" + "@jsonjoy.com/util" "^1.1.2" + hyperdyperid "^1.2.0" + thingies "^1.20.0" + +"@jsonjoy.com/util@^1.1.2": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@jsonjoy.com/util/-/util-1.2.0.tgz#0fe9a92de72308c566ebcebe8b5a3f01d3149df2" + integrity sha512-4B8B+3vFsY4eo33DMKyJPlQ3sBMpPFUZK2dr3O3rXrOGKKbYG44J0XSFkDo1VOQiri5HFEhIeVvItjR2xcazmg== + +"@leichtgewicht/ip-codec@^2.0.1": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz#4fc56c15c580b9adb7dc3c333a134e540b44bfb1" + integrity sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw== + +"@pkgjs/parseargs@^0.11.0": + version "0.11.0" + resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33" + integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== + +"@socket.io/component-emitter@~3.1.0": + version "3.1.2" + resolved "https://registry.yarnpkg.com/@socket.io/component-emitter/-/component-emitter-3.1.2.tgz#821f8442f4175d8f0467b9daf26e3a18e2d02af2" + integrity sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA== + +"@types/body-parser@*": + version "1.19.5" + resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.5.tgz#04ce9a3b677dc8bd681a17da1ab9835dc9d3ede4" + integrity sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg== + dependencies: + "@types/connect" "*" + "@types/node" "*" + +"@types/bonjour@^3.5.13": + version "3.5.13" + resolved "https://registry.yarnpkg.com/@types/bonjour/-/bonjour-3.5.13.tgz#adf90ce1a105e81dd1f9c61fdc5afda1bfb92956" + integrity sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ== + dependencies: + "@types/node" "*" + +"@types/connect-history-api-fallback@^1.5.4": + version "1.5.4" + resolved "https://registry.yarnpkg.com/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.4.tgz#7de71645a103056b48ac3ce07b3520b819c1d5b3" + integrity sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw== + dependencies: + "@types/express-serve-static-core" "*" + "@types/node" "*" + +"@types/connect@*": + version "3.4.38" + resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.38.tgz#5ba7f3bc4fbbdeaff8dded952e5ff2cc53f8d858" + integrity sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug== + dependencies: + "@types/node" "*" + +"@types/cookie@^0.4.1": + version "0.4.1" + resolved "https://registry.yarnpkg.com/@types/cookie/-/cookie-0.4.1.tgz#bfd02c1f2224567676c1545199f87c3a861d878d" + integrity sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q== + +"@types/cors@^2.8.12": + version "2.8.17" + resolved "https://registry.yarnpkg.com/@types/cors/-/cors-2.8.17.tgz#5d718a5e494a8166f569d986794e49c48b216b2b" + integrity sha512-8CGDvrBj1zgo2qE+oS3pOCyYNqCPryMWY2bGfwA0dcfopWGgxs+78df0Rs3rc9THP4JkOhLsAa+15VdpAqkcUA== + dependencies: + "@types/node" "*" + +"@types/eslint-scope@^3.7.3": + version "3.7.7" + resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.7.tgz#3108bd5f18b0cdb277c867b3dd449c9ed7079ac5" + integrity sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg== + dependencies: + "@types/eslint" "*" + "@types/estree" "*" + +"@types/eslint@*": + version "8.56.10" + resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.56.10.tgz#eb2370a73bf04a901eeba8f22595c7ee0f7eb58d" + integrity sha512-Shavhk87gCtY2fhXDctcfS3e6FdxWkCx1iUZ9eEUbh7rTqlZT0/IzOkCOVt0fCjcFuZ9FPYfuezTBImfHCDBGQ== + dependencies: + "@types/estree" "*" + "@types/json-schema" "*" + +"@types/estree@*", "@types/estree@^1.0.5": + version "1.0.5" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.5.tgz#a6ce3e556e00fd9895dd872dd172ad0d4bd687f4" + integrity sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw== + +"@types/express-serve-static-core@*", "@types/express-serve-static-core@^4.17.33": + version "4.19.5" + resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.19.5.tgz#218064e321126fcf9048d1ca25dd2465da55d9c6" + integrity sha512-y6W03tvrACO72aijJ5uF02FRq5cgDR9lUxddQ8vyF+GvmjJQqbzDcJngEjURc+ZsG31VI3hODNZJ2URj86pzmg== + dependencies: + "@types/node" "*" + "@types/qs" "*" + "@types/range-parser" "*" + "@types/send" "*" + +"@types/express@*", "@types/express@^4.17.21": + version "4.17.21" + resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.21.tgz#c26d4a151e60efe0084b23dc3369ebc631ed192d" + integrity sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ== + dependencies: + "@types/body-parser" "*" + "@types/express-serve-static-core" "^4.17.33" + "@types/qs" "*" + "@types/serve-static" "*" + +"@types/http-errors@*": + version "2.0.4" + resolved "https://registry.yarnpkg.com/@types/http-errors/-/http-errors-2.0.4.tgz#7eb47726c391b7345a6ec35ad7f4de469cf5ba4f" + integrity sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA== + +"@types/http-proxy@^1.17.8": + version "1.17.14" + resolved "https://registry.yarnpkg.com/@types/http-proxy/-/http-proxy-1.17.14.tgz#57f8ccaa1c1c3780644f8a94f9c6b5000b5e2eec" + integrity sha512-SSrD0c1OQzlFX7pGu1eXxSEjemej64aaNPRhhVYUGqXh0BtldAAx37MG8btcumvpgKyZp1F5Gn3JkktdxiFv6w== + dependencies: + "@types/node" "*" + +"@types/json-schema@*", "@types/json-schema@^7.0.8", "@types/json-schema@^7.0.9": + version "7.0.15" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841" + integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== + +"@types/mime@^1": + version "1.3.5" + resolved "https://registry.yarnpkg.com/@types/mime/-/mime-1.3.5.tgz#1ef302e01cf7d2b5a0fa526790c9123bf1d06690" + integrity sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w== + +"@types/node-forge@^1.3.0": + version "1.3.11" + resolved "https://registry.yarnpkg.com/@types/node-forge/-/node-forge-1.3.11.tgz#0972ea538ddb0f4d9c2fa0ec5db5724773a604da" + integrity sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ== + dependencies: + "@types/node" "*" + +"@types/node@*", "@types/node@>=10.0.0": + version "20.14.10" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.14.10.tgz#a1a218290f1b6428682e3af044785e5874db469a" + integrity sha512-MdiXf+nDuMvY0gJKxyfZ7/6UFsETO7mGKF54MVD/ekJS6HdFtpZFBgrh6Pseu64XTb2MLyFPlbW6hj8HYRQNOQ== + dependencies: + undici-types "~5.26.4" + +"@types/qs@*": + version "6.9.15" + resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.15.tgz#adde8a060ec9c305a82de1babc1056e73bd64dce" + integrity sha512-uXHQKES6DQKKCLh441Xv/dwxOq1TVS3JPUMlEqoEglvlhR6Mxnlew/Xq/LRVHpLyk7iK3zODe1qYHIMltO7XGg== + +"@types/range-parser@*": + version "1.2.7" + resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.7.tgz#50ae4353eaaddc04044279812f52c8c65857dbcb" + integrity sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ== + +"@types/retry@0.12.2": + version "0.12.2" + resolved "https://registry.yarnpkg.com/@types/retry/-/retry-0.12.2.tgz#ed279a64fa438bb69f2480eda44937912bb7480a" + integrity sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow== + +"@types/send@*": + version "0.17.4" + resolved "https://registry.yarnpkg.com/@types/send/-/send-0.17.4.tgz#6619cd24e7270793702e4e6a4b958a9010cfc57a" + integrity sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA== + dependencies: + "@types/mime" "^1" + "@types/node" "*" + +"@types/serve-index@^1.9.4": + version "1.9.4" + resolved "https://registry.yarnpkg.com/@types/serve-index/-/serve-index-1.9.4.tgz#e6ae13d5053cb06ed36392110b4f9a49ac4ec898" + integrity sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug== + dependencies: + "@types/express" "*" + +"@types/serve-static@*", "@types/serve-static@^1.15.5": + version "1.15.7" + resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.15.7.tgz#22174bbd74fb97fe303109738e9b5c2f3064f714" + integrity sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw== + dependencies: + "@types/http-errors" "*" + "@types/node" "*" + "@types/send" "*" + +"@types/sockjs@^0.3.36": + version "0.3.36" + resolved "https://registry.yarnpkg.com/@types/sockjs/-/sockjs-0.3.36.tgz#ce322cf07bcc119d4cbf7f88954f3a3bd0f67535" + integrity sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q== + dependencies: + "@types/node" "*" + +"@types/ws@^8.5.10": + version "8.5.11" + resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.5.11.tgz#90ad17b3df7719ce3e6bc32f83ff954d38656508" + integrity sha512-4+q7P5h3SpJxaBft0Dzpbr6lmMaqh0Jr2tbhJZ/luAwvD7ohSCniYkwz/pLxuT2h0EOa6QADgJj1Ko+TzRfZ+w== + dependencies: + "@types/node" "*" + +"@webassemblyjs/ast@1.12.1", "@webassemblyjs/ast@^1.12.1": + version "1.12.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.12.1.tgz#bb16a0e8b1914f979f45864c23819cc3e3f0d4bb" + integrity sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg== + dependencies: + "@webassemblyjs/helper-numbers" "1.11.6" + "@webassemblyjs/helper-wasm-bytecode" "1.11.6" + +"@webassemblyjs/floating-point-hex-parser@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz#dacbcb95aff135c8260f77fa3b4c5fea600a6431" + integrity sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw== + +"@webassemblyjs/helper-api-error@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz#6132f68c4acd59dcd141c44b18cbebbd9f2fa768" + integrity sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q== + +"@webassemblyjs/helper-buffer@1.12.1": + version "1.12.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.12.1.tgz#6df20d272ea5439bf20ab3492b7fb70e9bfcb3f6" + integrity sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw== + +"@webassemblyjs/helper-numbers@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz#cbce5e7e0c1bd32cf4905ae444ef64cea919f1b5" + integrity sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g== + dependencies: + "@webassemblyjs/floating-point-hex-parser" "1.11.6" + "@webassemblyjs/helper-api-error" "1.11.6" + "@xtuc/long" "4.2.2" + +"@webassemblyjs/helper-wasm-bytecode@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz#bb2ebdb3b83aa26d9baad4c46d4315283acd51e9" + integrity sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA== + +"@webassemblyjs/helper-wasm-section@1.12.1": + version "1.12.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.12.1.tgz#3da623233ae1a60409b509a52ade9bc22a37f7bf" + integrity sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g== + dependencies: + "@webassemblyjs/ast" "1.12.1" + "@webassemblyjs/helper-buffer" "1.12.1" + "@webassemblyjs/helper-wasm-bytecode" "1.11.6" + "@webassemblyjs/wasm-gen" "1.12.1" + +"@webassemblyjs/ieee754@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz#bb665c91d0b14fffceb0e38298c329af043c6e3a" + integrity sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg== + dependencies: + "@xtuc/ieee754" "^1.2.0" + +"@webassemblyjs/leb128@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.11.6.tgz#70e60e5e82f9ac81118bc25381a0b283893240d7" + integrity sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ== + dependencies: + "@xtuc/long" "4.2.2" + +"@webassemblyjs/utf8@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.11.6.tgz#90f8bc34c561595fe156603be7253cdbcd0fab5a" + integrity sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA== + +"@webassemblyjs/wasm-edit@^1.12.1": + version "1.12.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.12.1.tgz#9f9f3ff52a14c980939be0ef9d5df9ebc678ae3b" + integrity sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g== + dependencies: + "@webassemblyjs/ast" "1.12.1" + "@webassemblyjs/helper-buffer" "1.12.1" + "@webassemblyjs/helper-wasm-bytecode" "1.11.6" + "@webassemblyjs/helper-wasm-section" "1.12.1" + "@webassemblyjs/wasm-gen" "1.12.1" + "@webassemblyjs/wasm-opt" "1.12.1" + "@webassemblyjs/wasm-parser" "1.12.1" + "@webassemblyjs/wast-printer" "1.12.1" + +"@webassemblyjs/wasm-gen@1.12.1": + version "1.12.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.12.1.tgz#a6520601da1b5700448273666a71ad0a45d78547" + integrity sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w== + dependencies: + "@webassemblyjs/ast" "1.12.1" + "@webassemblyjs/helper-wasm-bytecode" "1.11.6" + "@webassemblyjs/ieee754" "1.11.6" + "@webassemblyjs/leb128" "1.11.6" + "@webassemblyjs/utf8" "1.11.6" + +"@webassemblyjs/wasm-opt@1.12.1": + version "1.12.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.12.1.tgz#9e6e81475dfcfb62dab574ac2dda38226c232bc5" + integrity sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg== + dependencies: + "@webassemblyjs/ast" "1.12.1" + "@webassemblyjs/helper-buffer" "1.12.1" + "@webassemblyjs/wasm-gen" "1.12.1" + "@webassemblyjs/wasm-parser" "1.12.1" + +"@webassemblyjs/wasm-parser@1.12.1", "@webassemblyjs/wasm-parser@^1.12.1": + version "1.12.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.12.1.tgz#c47acb90e6f083391e3fa61d113650eea1e95937" + integrity sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ== + dependencies: + "@webassemblyjs/ast" "1.12.1" + "@webassemblyjs/helper-api-error" "1.11.6" + "@webassemblyjs/helper-wasm-bytecode" "1.11.6" + "@webassemblyjs/ieee754" "1.11.6" + "@webassemblyjs/leb128" "1.11.6" + "@webassemblyjs/utf8" "1.11.6" + +"@webassemblyjs/wast-printer@1.12.1": + version "1.12.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.12.1.tgz#bcecf661d7d1abdaf989d8341a4833e33e2b31ac" + integrity sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA== + dependencies: + "@webassemblyjs/ast" "1.12.1" + "@xtuc/long" "4.2.2" + +"@webpack-cli/configtest@^2.1.1": + version "2.1.1" + resolved "https://registry.yarnpkg.com/@webpack-cli/configtest/-/configtest-2.1.1.tgz#3b2f852e91dac6e3b85fb2a314fb8bef46d94646" + integrity sha512-wy0mglZpDSiSS0XHrVR+BAdId2+yxPSoJW8fsna3ZpYSlufjvxnP4YbKTCBZnNIcGN4r6ZPXV55X4mYExOfLmw== + +"@webpack-cli/info@^2.0.2": + version "2.0.2" + resolved "https://registry.yarnpkg.com/@webpack-cli/info/-/info-2.0.2.tgz#cc3fbf22efeb88ff62310cf885c5b09f44ae0fdd" + integrity sha512-zLHQdI/Qs1UyT5UBdWNqsARasIA+AaF8t+4u2aS2nEpBQh2mWIVb8qAklq0eUENnC5mOItrIB4LiS9xMtph18A== + +"@webpack-cli/serve@^2.0.5": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@webpack-cli/serve/-/serve-2.0.5.tgz#325db42395cd49fe6c14057f9a900e427df8810e" + integrity sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ== + +"@xtuc/ieee754@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" + integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA== + +"@xtuc/long@4.2.2": + version "4.2.2" + resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" + integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== + +abort-controller@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/abort-controller/-/abort-controller-3.0.0.tgz#eaf54d53b62bae4138e809ca225c8439a6efb392" + integrity sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg== + dependencies: + event-target-shim "^5.0.0" + +accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.8: + version "1.3.8" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e" + integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw== + dependencies: + mime-types "~2.1.34" + negotiator "0.6.3" + +acorn-import-assertions@^1.9.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz#507276249d684797c84e0734ef84860334cfb1ac" + integrity sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA== + +acorn@^8.7.1, acorn@^8.8.2: + version "8.12.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.12.1.tgz#71616bdccbe25e27a54439e0046e89ca76df2248" + integrity sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg== + +ajv-formats@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ajv-formats/-/ajv-formats-2.1.1.tgz#6e669400659eb74973bbf2e33327180a0996b520" + integrity sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA== + dependencies: + ajv "^8.0.0" + +ajv-keywords@^3.5.2: + version "3.5.2" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" + integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== + +ajv-keywords@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-5.1.0.tgz#69d4d385a4733cdbeab44964a1170a88f87f0e16" + integrity sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw== + dependencies: + fast-deep-equal "^3.1.3" + +ajv@^6.12.5: + version "6.12.6" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" + integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== + dependencies: + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + +ajv@^8.0.0, ajv@^8.9.0: + version "8.17.1" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.17.1.tgz#37d9a5c776af6bc92d7f4f9510eba4c0a60d11a6" + integrity sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g== + dependencies: + fast-deep-equal "^3.1.3" + fast-uri "^3.0.1" + json-schema-traverse "^1.0.0" + require-from-string "^2.0.2" + +ansi-colors@4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" + integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== + +ansi-html-community@^0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/ansi-html-community/-/ansi-html-community-0.0.8.tgz#69fbc4d6ccbe383f9736934ae34c3f8290f1bf41" + integrity sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw== + +ansi-regex@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" + integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== + +ansi-regex@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.0.1.tgz#3183e38fae9a65d7cb5e53945cd5897d0260a06a" + integrity sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA== + +ansi-styles@^4.0.0, ansi-styles@^4.1.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + dependencies: + color-convert "^2.0.1" + +ansi-styles@^6.1.0: + version "6.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5" + integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug== + +anymatch@~3.1.2: + version "3.1.3" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" + integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + +argparse@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" + integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== + +array-flatten@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" + integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg== + +balanced-match@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== + +base64id@2.0.0, base64id@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/base64id/-/base64id-2.0.0.tgz#2770ac6bc47d312af97a8bf9a634342e0cd25cb6" + integrity sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog== + +batch@0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16" + integrity sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw== + +big.js@^5.2.2: + version "5.2.2" + resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" + integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== + +binary-extensions@^2.0.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.3.0.tgz#f6e14a97858d327252200242d4ccfe522c445522" + integrity sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw== + +body-parser@1.20.2, body-parser@^1.19.0: + version "1.20.2" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.2.tgz#6feb0e21c4724d06de7ff38da36dad4f57a747fd" + integrity sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA== + dependencies: + bytes "3.1.2" + content-type "~1.0.5" + debug "2.6.9" + depd "2.0.0" + destroy "1.2.0" + http-errors "2.0.0" + iconv-lite "0.4.24" + on-finished "2.4.1" + qs "6.11.0" + raw-body "2.5.2" + type-is "~1.6.18" + unpipe "1.0.0" + +bonjour-service@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/bonjour-service/-/bonjour-service-1.2.1.tgz#eb41b3085183df3321da1264719fbada12478d02" + integrity sha512-oSzCS2zV14bh2kji6vNe7vrpJYCHGvcZnlffFQ1MEoX/WOeQ/teD8SYWKR942OI3INjq8OMNJlbPK5LLLUxFDw== + dependencies: + fast-deep-equal "^3.1.3" + multicast-dns "^7.2.5" + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +brace-expansion@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" + integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== + dependencies: + balanced-match "^1.0.0" + +braces@^3.0.2, braces@^3.0.3, braces@~3.0.2: + version "3.0.3" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.3.tgz#490332f40919452272d55a8480adc0c441358789" + integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA== + dependencies: + fill-range "^7.1.1" + +browser-stdout@1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60" + integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw== + +browserslist@^4.21.10: + version "4.23.2" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.23.2.tgz#244fe803641f1c19c28c48c4b6ec9736eb3d32ed" + integrity sha512-qkqSyistMYdxAcw+CzbZwlBy8AGmS/eEWs+sEV5TnLRGDOL+C5M2EnH6tlZyg0YoAxGJAFKh61En9BR941GnHA== + dependencies: + caniuse-lite "^1.0.30001640" + electron-to-chromium "^1.4.820" + node-releases "^2.0.14" + update-browserslist-db "^1.1.0" + +buffer-from@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" + integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== + +bundle-name@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/bundle-name/-/bundle-name-4.1.0.tgz#f3b96b34160d6431a19d7688135af7cfb8797889" + integrity sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q== + dependencies: + run-applescript "^7.0.0" + +bytes@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" + integrity sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw== + +bytes@3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" + integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== + +call-bind@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.7.tgz#06016599c40c56498c18769d2730be242b6fa3b9" + integrity sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w== + dependencies: + es-define-property "^1.0.0" + es-errors "^1.3.0" + function-bind "^1.1.2" + get-intrinsic "^1.2.4" + set-function-length "^1.2.1" + +camelcase@^6.0.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" + integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== + +caniuse-lite@^1.0.30001640: + version "1.0.30001642" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001642.tgz#6aa6610eb24067c246d30c57f055a9d0a7f8d05f" + integrity sha512-3XQ0DoRgLijXJErLSl+bLnJ+Et4KqV1PY6JJBGAFlsNsz31zeAIncyeZfLCabHK/jtSh+671RM9YMldxjUPZtA== + +chalk@^4.1.0: + version "4.1.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +chokidar@3.5.3: + version "3.5.3" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" + integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== + dependencies: + anymatch "~3.1.2" + braces "~3.0.2" + glob-parent "~5.1.2" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.6.0" + optionalDependencies: + fsevents "~2.3.2" + +chokidar@^3.5.1, chokidar@^3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.6.0.tgz#197c6cc669ef2a8dc5e7b4d97ee4e092c3eb0d5b" + integrity sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw== + dependencies: + anymatch "~3.1.2" + braces "~3.0.2" + glob-parent "~5.1.2" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.6.0" + optionalDependencies: + fsevents "~2.3.2" + +chrome-trace-event@^1.0.2: + version "1.0.4" + resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz#05bffd7ff928465093314708c93bdfa9bd1f0f5b" + integrity sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ== + +cliui@^7.0.2: + version "7.0.4" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" + integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.0" + wrap-ansi "^7.0.0" + +clone-deep@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-4.0.1.tgz#c19fd9bdbbf85942b4fd979c84dcf7d5f07c2387" + integrity sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ== + dependencies: + is-plain-object "^2.0.4" + kind-of "^6.0.2" + shallow-clone "^3.0.0" + +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + +color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +colorette@^2.0.10, colorette@^2.0.14: + version "2.0.20" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.20.tgz#9eb793e6833067f7235902fcd3b09917a000a95a" + integrity sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w== + +commander@^10.0.1: + version "10.0.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-10.0.1.tgz#881ee46b4f77d1c1dccc5823433aa39b022cbe06" + integrity sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug== + +commander@^2.20.0: + version "2.20.3" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" + integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== + +compressible@~2.0.16: + version "2.0.18" + resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.18.tgz#af53cca6b070d4c3c0750fbd77286a6d7cc46fba" + integrity sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg== + dependencies: + mime-db ">= 1.43.0 < 2" + +compression@^1.7.4: + version "1.7.4" + resolved "https://registry.yarnpkg.com/compression/-/compression-1.7.4.tgz#95523eff170ca57c29a0ca41e6fe131f41e5bb8f" + integrity sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ== + dependencies: + accepts "~1.3.5" + bytes "3.0.0" + compressible "~2.0.16" + debug "2.6.9" + on-headers "~1.0.2" + safe-buffer "5.1.2" + vary "~1.1.2" + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== + +connect-history-api-fallback@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz#647264845251a0daf25b97ce87834cace0f5f1c8" + integrity sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA== + +connect@^3.7.0: + version "3.7.0" + resolved "https://registry.yarnpkg.com/connect/-/connect-3.7.0.tgz#5d49348910caa5e07a01800b030d0c35f20484f8" + integrity sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ== + dependencies: + debug "2.6.9" + finalhandler "1.1.2" + parseurl "~1.3.3" + utils-merge "1.0.1" + +content-disposition@0.5.4: + version "0.5.4" + resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe" + integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ== + dependencies: + safe-buffer "5.2.1" + +content-type@~1.0.4, content-type@~1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.5.tgz#8b773162656d1d1086784c8f23a54ce6d73d7918" + integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA== + +cookie-signature@1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" + integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ== + +cookie@0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.6.0.tgz#2798b04b071b0ecbff0dbb62a505a8efa4e19051" + integrity sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw== + +cookie@~0.4.1: + version "0.4.2" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.2.tgz#0e41f24de5ecf317947c82fc789e06a884824432" + integrity sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA== + +core-util-is@~1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" + integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== + +cors@~2.8.5: + version "2.8.5" + resolved "https://registry.yarnpkg.com/cors/-/cors-2.8.5.tgz#eac11da51592dd86b9f06f6e7ac293b3df875d29" + integrity sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g== + dependencies: + object-assign "^4" + vary "^1" + +cross-spawn@^7.0.0, cross-spawn@^7.0.3: + version "7.0.3" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" + integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + +css-loader@6.10.0: + version "6.10.0" + resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-6.10.0.tgz#7c172b270ec7b833951b52c348861206b184a4b7" + integrity sha512-LTSA/jWbwdMlk+rhmElbDR2vbtQoTBPr7fkJE+mxrHj+7ru0hUmHafDRzWIjIHTwpitWVaqY2/UWGRca3yUgRw== + dependencies: + icss-utils "^5.1.0" + postcss "^8.4.33" + postcss-modules-extract-imports "^3.0.0" + postcss-modules-local-by-default "^4.0.4" + postcss-modules-scope "^3.1.1" + postcss-modules-values "^4.0.0" + postcss-value-parser "^4.2.0" + semver "^7.5.4" + +cssesc@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" + integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== + +custom-event@~1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/custom-event/-/custom-event-1.0.1.tgz#5d02a46850adf1b4a317946a3928fccb5bfd0425" + integrity sha512-GAj5FOq0Hd+RsCGVJxZuKaIDXDf3h6GQoNEjFgbLLI/trgtavwUbSnZ5pVfg27DVCaWjIohryS0JFwIJyT2cMg== + +date-format@^4.0.14: + version "4.0.14" + resolved "https://registry.yarnpkg.com/date-format/-/date-format-4.0.14.tgz#7a8e584434fb169a521c8b7aa481f355810d9400" + integrity sha512-39BOQLs9ZjKh0/patS9nrT8wc3ioX3/eA/zgbKNopnF2wCqJEoxywwwElATYvRsXdnOxA/OQeQoFZ3rFjVajhg== + +debug@2.6.9: + version "2.6.9" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + +debug@4.3.4: + version "4.3.4" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" + integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== + dependencies: + ms "2.1.2" + +debug@^4.1.0, debug@^4.3.4, debug@~4.3.1, debug@~4.3.2, debug@~4.3.4: + version "4.3.5" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.5.tgz#e83444eceb9fedd4a1da56d671ae2446a01a6e1e" + integrity sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg== + dependencies: + ms "2.1.2" + +decamelize@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-4.0.0.tgz#aa472d7bf660eb15f3494efd531cab7f2a709837" + integrity sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ== + +default-browser-id@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/default-browser-id/-/default-browser-id-5.0.0.tgz#a1d98bf960c15082d8a3fa69e83150ccccc3af26" + integrity sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA== + +default-browser@^5.2.1: + version "5.2.1" + resolved "https://registry.yarnpkg.com/default-browser/-/default-browser-5.2.1.tgz#7b7ba61204ff3e425b556869ae6d3e9d9f1712cf" + integrity sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg== + dependencies: + bundle-name "^4.1.0" + default-browser-id "^5.0.0" + +default-gateway@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/default-gateway/-/default-gateway-6.0.3.tgz#819494c888053bdb743edbf343d6cdf7f2943a71" + integrity sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg== + dependencies: + execa "^5.0.0" + +define-data-property@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.4.tgz#894dc141bb7d3060ae4366f6a0107e68fbe48c5e" + integrity sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A== + dependencies: + es-define-property "^1.0.0" + es-errors "^1.3.0" + gopd "^1.0.1" + +define-lazy-prop@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz#dbb19adfb746d7fc6d734a06b72f4a00d021255f" + integrity sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg== + +depd@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" + integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== + +depd@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" + integrity sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ== + +destroy@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015" + integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== + +detect-node@^2.0.4: + version "2.1.0" + resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.1.0.tgz#c9c70775a49c3d03bc2c06d9a73be550f978f8b1" + integrity sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g== + +di@^0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/di/-/di-0.0.1.tgz#806649326ceaa7caa3306d75d985ea2748ba913c" + integrity sha512-uJaamHkagcZtHPqCIHZxnFrXlunQXgBOsZSUOWwFw31QJCAbyTBoHMW75YOTur5ZNx8pIeAKgf6GWIgaqqiLhA== + +diff@5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/diff/-/diff-5.0.0.tgz#7ed6ad76d859d030787ec35855f5b1daf31d852b" + integrity sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w== + +dns-packet@^5.2.2: + version "5.6.1" + resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-5.6.1.tgz#ae888ad425a9d1478a0674256ab866de1012cf2f" + integrity sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw== + dependencies: + "@leichtgewicht/ip-codec" "^2.0.1" + +dom-serialize@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/dom-serialize/-/dom-serialize-2.2.1.tgz#562ae8999f44be5ea3076f5419dcd59eb43ac95b" + integrity sha512-Yra4DbvoW7/Z6LBN560ZwXMjoNOSAN2wRsKFGc4iBeso+mpIA6qj1vfdf9HpMaKAqG6wXTy+1SYEzmNpKXOSsQ== + dependencies: + custom-event "~1.0.0" + ent "~2.2.0" + extend "^3.0.0" + void-elements "^2.0.0" + +eastasianwidth@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" + integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== + +ee-first@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" + integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== + +electron-to-chromium@^1.4.820: + version "1.4.827" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.827.tgz#76068ed1c71dd3963e1befc8ae815004b2da6a02" + integrity sha512-VY+J0e4SFcNfQy19MEoMdaIcZLmDCprqvBtkii1WTCTQHpRvf5N8+3kTYCgL/PcntvwQvmMJWTuDPsq+IlhWKQ== + +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + +emoji-regex@^9.2.2: + version "9.2.2" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" + integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== + +emojis-list@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" + integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== + +encodeurl@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" + integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== + +engine.io-parser@~5.2.1: + version "5.2.3" + resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-5.2.3.tgz#00dc5b97b1f233a23c9398d0209504cf5f94d92f" + integrity sha512-HqD3yTBfnBxIrbnM1DoD6Pcq8NECnh8d4As1Qgh0z5Gg3jRRIqijury0CL3ghu/edArpUYiYqQiDUQBIs4np3Q== + +engine.io@~6.5.2: + version "6.5.5" + resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-6.5.5.tgz#430b80d8840caab91a50e9e23cb551455195fc93" + integrity sha512-C5Pn8Wk+1vKBoHghJODM63yk8MvrO9EWZUfkAt5HAqIgPE4/8FF0PEGHXtEd40l223+cE5ABWuPzm38PHFXfMA== + dependencies: + "@types/cookie" "^0.4.1" + "@types/cors" "^2.8.12" + "@types/node" ">=10.0.0" + accepts "~1.3.4" + base64id "2.0.0" + cookie "~0.4.1" + cors "~2.8.5" + debug "~4.3.1" + engine.io-parser "~5.2.1" + ws "~8.17.1" + +enhanced-resolve@^5.16.0: + version "5.17.0" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.17.0.tgz#d037603789dd9555b89aaec7eb78845c49089bc5" + integrity sha512-dwDPwZL0dmye8Txp2gzFmA6sxALaSvdRDjPH0viLcKrtlOL3tw62nWWweVD1SdILDTJrbrL6tdWVN58Wo6U3eA== + dependencies: + graceful-fs "^4.2.4" + tapable "^2.2.0" + +ent@~2.2.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/ent/-/ent-2.2.1.tgz#68dc99a002f115792c26239baedaaea9e70c0ca2" + integrity sha512-QHuXVeZx9d+tIQAz/XztU0ZwZf2Agg9CcXcgE1rurqvdBeDBrpSwjl8/6XUqMg7tw2Y7uAdKb2sRv+bSEFqQ5A== + dependencies: + punycode "^1.4.1" + +envinfo@^7.7.3: + version "7.13.0" + resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.13.0.tgz#81fbb81e5da35d74e814941aeab7c325a606fb31" + integrity sha512-cvcaMr7KqXVh4nyzGTVqTum+gAiL265x5jUWQIDLq//zOGbW+gSW/C+OWLleY/rs9Qole6AZLMXPbtIFQbqu+Q== + +es-define-property@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/es-define-property/-/es-define-property-1.0.0.tgz#c7faefbdff8b2696cf5f46921edfb77cc4ba3845" + integrity sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ== + dependencies: + get-intrinsic "^1.2.4" + +es-errors@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f" + integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== + +es-module-lexer@^1.2.1: + version "1.5.4" + resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-1.5.4.tgz#a8efec3a3da991e60efa6b633a7cad6ab8d26b78" + integrity sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw== + +escalade@^3.1.1, escalade@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.2.tgz#54076e9ab29ea5bf3d8f1ed62acffbb88272df27" + integrity sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA== + +escape-html@~1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" + integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== + +escape-string-regexp@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" + integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== + +eslint-scope@5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" + integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== + dependencies: + esrecurse "^4.3.0" + estraverse "^4.1.1" + +esrecurse@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" + integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== + dependencies: + estraverse "^5.2.0" + +estraverse@^4.1.1: + version "4.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" + integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== + +estraverse@^5.2.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" + integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== + +etag@~1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" + integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== + +event-target-shim@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/event-target-shim/-/event-target-shim-5.0.1.tgz#5d4d3ebdf9583d63a5333ce2deb7480ab2b05789" + integrity sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ== + +eventemitter3@^4.0.0: + version "4.0.7" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" + integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== + +events@^3.2.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" + integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== + +execa@^5.0.0: + version "5.1.1" + resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" + integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== + dependencies: + cross-spawn "^7.0.3" + get-stream "^6.0.0" + human-signals "^2.1.0" + is-stream "^2.0.0" + merge-stream "^2.0.0" + npm-run-path "^4.0.1" + onetime "^5.1.2" + signal-exit "^3.0.3" + strip-final-newline "^2.0.0" + +express@^4.17.3: + version "4.19.2" + resolved "https://registry.yarnpkg.com/express/-/express-4.19.2.tgz#e25437827a3aa7f2a827bc8171bbbb664a356465" + integrity sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q== + dependencies: + accepts "~1.3.8" + array-flatten "1.1.1" + body-parser "1.20.2" + content-disposition "0.5.4" + content-type "~1.0.4" + cookie "0.6.0" + cookie-signature "1.0.6" + debug "2.6.9" + depd "2.0.0" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + finalhandler "1.2.0" + fresh "0.5.2" + http-errors "2.0.0" + merge-descriptors "1.0.1" + methods "~1.1.2" + on-finished "2.4.1" + parseurl "~1.3.3" + path-to-regexp "0.1.7" + proxy-addr "~2.0.7" + qs "6.11.0" + range-parser "~1.2.1" + safe-buffer "5.2.1" + send "0.18.0" + serve-static "1.15.0" + setprototypeof "1.2.0" + statuses "2.0.1" + type-is "~1.6.18" + utils-merge "1.0.1" + vary "~1.1.2" + +extend@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" + integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== + +fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" + integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== + +fast-json-stable-stringify@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" + integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== + +fast-uri@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/fast-uri/-/fast-uri-3.0.1.tgz#cddd2eecfc83a71c1be2cc2ef2061331be8a7134" + integrity sha512-MWipKbbYiYI0UC7cl8m/i/IWTqfC8YXsqjzybjddLsFjStroQzsHXkc73JutMvBiXmOvapk+axIl79ig5t55Bw== + +fastest-levenshtein@^1.0.12: + version "1.0.16" + resolved "https://registry.yarnpkg.com/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz#210e61b6ff181de91ea9b3d1b84fdedd47e034e5" + integrity sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg== + +faye-websocket@^0.11.3: + version "0.11.4" + resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.4.tgz#7f0d9275cfdd86a1c963dc8b65fcc451edcbb1da" + integrity sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g== + dependencies: + websocket-driver ">=0.5.1" + +file-loader@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-6.2.0.tgz#baef7cf8e1840df325e4390b4484879480eebe4d" + integrity sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw== + dependencies: + loader-utils "^2.0.0" + schema-utils "^3.0.0" + +fill-range@^7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.1.1.tgz#44265d3cac07e3ea7dc247516380643754a05292" + integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg== + dependencies: + to-regex-range "^5.0.1" + +finalhandler@1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d" + integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA== + dependencies: + debug "2.6.9" + encodeurl "~1.0.2" + escape-html "~1.0.3" + on-finished "~2.3.0" + parseurl "~1.3.3" + statuses "~1.5.0" + unpipe "~1.0.0" + +finalhandler@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.2.0.tgz#7d23fe5731b207b4640e4fcd00aec1f9207a7b32" + integrity sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg== + dependencies: + debug "2.6.9" + encodeurl "~1.0.2" + escape-html "~1.0.3" + on-finished "2.4.1" + parseurl "~1.3.3" + statuses "2.0.1" + unpipe "~1.0.0" + +find-up@5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" + integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== + dependencies: + locate-path "^6.0.0" + path-exists "^4.0.0" + +find-up@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" + integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== + dependencies: + locate-path "^5.0.0" + path-exists "^4.0.0" + +flat@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" + integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== + +flatted@^3.2.7: + version "3.3.1" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.3.1.tgz#21db470729a6734d4997002f439cb308987f567a" + integrity sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw== + +follow-redirects@^1.0.0: + version "1.15.6" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.6.tgz#7f815c0cda4249c74ff09e95ef97c23b5fd0399b" + integrity sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA== + +foreground-child@^3.1.0: + version "3.2.1" + resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.2.1.tgz#767004ccf3a5b30df39bed90718bab43fe0a59f7" + integrity sha512-PXUUyLqrR2XCWICfv6ukppP96sdFwWbNEnfEMt7jNsISjMsvaLNinAHNDYyvkyU+SZG2BTSbT5NjG+vZslfGTA== + dependencies: + cross-spawn "^7.0.0" + signal-exit "^4.0.1" + +format-util@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/format-util/-/format-util-1.0.5.tgz#1ffb450c8a03e7bccffe40643180918cc297d271" + integrity sha512-varLbTj0e0yVyRpqQhuWV+8hlePAgaoFRhNFj50BNjEIrw1/DphHSObtqwskVCPWNgzwPoQrZAbfa/SBiicNeg== + +forwarded@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" + integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== + +fresh@0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" + integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== + +fs-extra@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" + integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^4.0.0" + universalify "^0.1.0" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== + +fsevents@~2.3.2: + version "2.3.3" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" + integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== + +function-bind@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" + integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== + +get-caller-file@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" + integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== + +get-intrinsic@^1.1.3, get-intrinsic@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.4.tgz#e385f5a4b5227d449c3eabbad05494ef0abbeadd" + integrity sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ== + dependencies: + es-errors "^1.3.0" + function-bind "^1.1.2" + has-proto "^1.0.1" + has-symbols "^1.0.3" + hasown "^2.0.0" + +get-stream@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" + integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== + +glob-parent@~5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== + dependencies: + is-glob "^4.0.1" + +glob-to-regexp@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" + integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== + +glob@8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/glob/-/glob-8.1.0.tgz#d388f656593ef708ee3e34640fdfb99a9fd1c33e" + integrity sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^5.0.1" + once "^1.3.0" + +glob@^10.3.7: + version "10.4.5" + resolved "https://registry.yarnpkg.com/glob/-/glob-10.4.5.tgz#f4d9f0b90ffdbab09c9d77f5f29b4262517b0956" + integrity sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg== + dependencies: + foreground-child "^3.1.0" + jackspeak "^3.1.2" + minimatch "^9.0.4" + minipass "^7.1.2" + package-json-from-dist "^1.0.0" + path-scurry "^1.11.1" + +glob@^7.1.3, glob@^7.1.7: + version "7.2.3" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" + integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.1.1" + once "^1.3.0" + path-is-absolute "^1.0.0" + +golden-layout@^1.5.9: + version "1.5.9" + resolved "https://registry.yarnpkg.com/golden-layout/-/golden-layout-1.5.9.tgz#a39bc1f6a67e6f886b797c016dd924e9426ba77f" + integrity sha512-iBXDQCXOTgUEQJo96zPbjDoy5bRIk9XW5l+q+pDgLnIyReqaa1aiQctNud4epsskyLt952BG521dew5Z1liSxA== + dependencies: + jquery "*" + +gopd@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" + integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== + dependencies: + get-intrinsic "^1.1.3" + +graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.10, graceful-fs@^4.2.11, graceful-fs@^4.2.4, graceful-fs@^4.2.6: + version "4.2.11" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" + integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== + +handle-thing@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-2.0.1.tgz#857f79ce359580c340d43081cc648970d0bb234e" + integrity sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg== + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +has-property-descriptors@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz#963ed7d071dc7bf5f084c5bfbe0d1b6222586854" + integrity sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg== + dependencies: + es-define-property "^1.0.0" + +has-proto@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.3.tgz#b31ddfe9b0e6e9914536a6ab286426d0214f77fd" + integrity sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q== + +has-symbols@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" + integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== + +hasown@^2.0.0, hasown@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003" + integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== + dependencies: + function-bind "^1.1.2" + +he@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" + integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== + +hpack.js@^2.1.6: + version "2.1.6" + resolved "https://registry.yarnpkg.com/hpack.js/-/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2" + integrity sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ== + dependencies: + inherits "^2.0.1" + obuf "^1.0.0" + readable-stream "^2.0.1" + wbuf "^1.1.0" + +html-entities@^2.4.0: + version "2.5.2" + resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-2.5.2.tgz#201a3cf95d3a15be7099521620d19dfb4f65359f" + integrity sha512-K//PSRMQk4FZ78Kyau+mZurHn3FH0Vwr+H36eE0rPbeYkRRi9YxceYPhuN60UwWorxyKHhqoAJl2OFKa4BVtaA== + +http-deceiver@^1.2.7: + version "1.2.7" + resolved "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87" + integrity sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw== + +http-errors@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3" + integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== + dependencies: + depd "2.0.0" + inherits "2.0.4" + setprototypeof "1.2.0" + statuses "2.0.1" + toidentifier "1.0.1" + +http-errors@~1.6.2: + version "1.6.3" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" + integrity sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A== + dependencies: + depd "~1.1.2" + inherits "2.0.3" + setprototypeof "1.1.0" + statuses ">= 1.4.0 < 2" + +http-parser-js@>=0.5.1: + version "0.5.8" + resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.8.tgz#af23090d9ac4e24573de6f6aecc9d84a48bf20e3" + integrity sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q== + +http-proxy-middleware@^2.0.3: + version "2.0.6" + resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz#e1a4dd6979572c7ab5a4e4b55095d1f32a74963f" + integrity sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw== + dependencies: + "@types/http-proxy" "^1.17.8" + http-proxy "^1.18.1" + is-glob "^4.0.1" + is-plain-obj "^3.0.0" + micromatch "^4.0.2" + +http-proxy@^1.18.1: + version "1.18.1" + resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.1.tgz#401541f0534884bbf95260334e72f88ee3976549" + integrity sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ== + dependencies: + eventemitter3 "^4.0.0" + follow-redirects "^1.0.0" + requires-port "^1.0.0" + +human-signals@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" + integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== + +hyperdyperid@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/hyperdyperid/-/hyperdyperid-1.2.0.tgz#59668d323ada92228d2a869d3e474d5a33b69e6b" + integrity sha512-Y93lCzHYgGWdrJ66yIktxiaGULYc6oGiABxhcO5AufBeOyoIdZF7bIfLaOrbM0iGIOXQQgxxRrFEnb+Y6w1n4A== + +iconv-lite@0.4.24: + version "0.4.24" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" + integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== + dependencies: + safer-buffer ">= 2.1.2 < 3" + +iconv-lite@^0.6.3: + version "0.6.3" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" + integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== + dependencies: + safer-buffer ">= 2.1.2 < 3.0.0" + +icss-utils@^5.0.0, icss-utils@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-5.1.0.tgz#c6be6858abd013d768e98366ae47e25d5887b1ae" + integrity sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA== + +import-local@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.1.0.tgz#b4479df8a5fd44f6cdce24070675676063c95cb4" + integrity sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg== + dependencies: + pkg-dir "^4.2.0" + resolve-cwd "^3.0.0" + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.3: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +inherits@2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + integrity sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw== + +interpret@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/interpret/-/interpret-3.1.1.tgz#5be0ceed67ca79c6c4bc5cf0d7ee843dcea110c4" + integrity sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ== + +ipaddr.js@1.9.1: + version "1.9.1" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" + integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== + +ipaddr.js@^2.1.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-2.2.0.tgz#d33fa7bac284f4de7af949638c9d68157c6b92e8" + integrity sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA== + +is-binary-path@~2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" + integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== + dependencies: + binary-extensions "^2.0.0" + +is-core-module@^2.13.0: + version "2.14.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.14.0.tgz#43b8ef9f46a6a08888db67b1ffd4ec9e3dfd59d1" + integrity sha512-a5dFJih5ZLYlRtDc0dZWP7RiKr6xIKzmn/oAYCDvdLThadVgyJwlaoQPmRtMSpz+rk0OGAgIu+TcM9HUF0fk1A== + dependencies: + hasown "^2.0.2" + +is-docker@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-3.0.0.tgz#90093aa3106277d8a77a5910dbae71747e15a200" + integrity sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ== + +is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== + +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + +is-glob@^4.0.1, is-glob@~4.0.1: + version "4.0.3" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" + integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== + dependencies: + is-extglob "^2.1.1" + +is-inside-container@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-inside-container/-/is-inside-container-1.0.0.tgz#e81fba699662eb31dbdaf26766a61d4814717ea4" + integrity sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA== + dependencies: + is-docker "^3.0.0" + +is-network-error@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-network-error/-/is-network-error-1.1.0.tgz#d26a760e3770226d11c169052f266a4803d9c997" + integrity sha512-tUdRRAnhT+OtCZR/LxZelH/C7QtjtFrTu5tXCA8pl55eTUElUHT+GPYV8MBMBvea/j+NxQqVt3LbWMRir7Gx9g== + +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + +is-plain-obj@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287" + integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== + +is-plain-obj@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-3.0.0.tgz#af6f2ea14ac5a646183a5bbdb5baabbc156ad9d7" + integrity sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA== + +is-plain-object@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" + integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== + dependencies: + isobject "^3.0.1" + +is-stream@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" + integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== + +is-unicode-supported@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" + integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== + +is-wsl@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-3.1.0.tgz#e1c657e39c10090afcbedec61720f6b924c3cbd2" + integrity sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw== + dependencies: + is-inside-container "^1.0.0" + +isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== + +isbinaryfile@^4.0.8: + version "4.0.10" + resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-4.0.10.tgz#0c5b5e30c2557a2f06febd37b7322946aaee42b3" + integrity sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw== + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== + +isobject@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" + integrity sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg== + +jackspeak@^3.1.2: + version "3.4.3" + resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-3.4.3.tgz#8833a9d89ab4acde6188942bd1c53b6390ed5a8a" + integrity sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw== + dependencies: + "@isaacs/cliui" "^8.0.2" + optionalDependencies: + "@pkgjs/parseargs" "^0.11.0" + +javascript-lp-solver@0.4.17: + version "0.4.17" + resolved "https://registry.yarnpkg.com/javascript-lp-solver/-/javascript-lp-solver-0.4.17.tgz#dae77b9202af23e4da656e72836e4d2b3c3a6eee" + integrity sha512-kJtkZ0RRaCUx7cKu/EDSvjftbZSaLMx3KQ1NL3YS7ZfXhC7bqLtjY1pkkn9cP3cii8HghD3VpyvBFILXyBP07A== + +jest-worker@^27.4.5: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.5.1.tgz#8d146f0900e8973b106b6f73cc1e9a8cb86f8db0" + integrity sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg== + dependencies: + "@types/node" "*" + merge-stream "^2.0.0" + supports-color "^8.0.0" + +jquery@*: + version "3.7.1" + resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.7.1.tgz#083ef98927c9a6a74d05a6af02806566d16274de" + integrity sha512-m4avr8yL8kmFN8psrbFFFmB/If14iN5o9nw/NgnnM+kybDJpRsAynV2BsfpTYrTRysYUdADVD7CkUUizgkpLfg== + +js-yaml@4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" + integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== + dependencies: + argparse "^2.0.1" + +json-parse-even-better-errors@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" + integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== + +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== + +json-schema-traverse@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" + integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== + +json5@^2.1.2: + version "2.2.3" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" + integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== + +jsonfile@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" + integrity sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg== + optionalDependencies: + graceful-fs "^4.1.6" + +karma-chrome-launcher@3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/karma-chrome-launcher/-/karma-chrome-launcher-3.2.0.tgz#eb9c95024f2d6dfbb3748d3415ac9b381906b9a9" + integrity sha512-rE9RkUPI7I9mAxByQWkGJFXfFD6lE4gC5nPuZdobf/QdTEJI6EU4yIay/cfU/xV4ZxlM5JiTv7zWYgA64NpS5Q== + dependencies: + which "^1.2.1" + +karma-mocha@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/karma-mocha/-/karma-mocha-2.0.1.tgz#4b0254a18dfee71bdbe6188d9a6861bf86b0cd7d" + integrity sha512-Tzd5HBjm8his2OA4bouAsATYEpZrp9vC7z5E5j4C5Of5Rrs1jY67RAwXNcVmd/Bnk1wgvQRou0zGVLey44G4tQ== + dependencies: + minimist "^1.2.3" + +karma-sourcemap-loader@0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/karma-sourcemap-loader/-/karma-sourcemap-loader-0.4.0.tgz#b01d73f8f688f533bcc8f5d273d43458e13b5488" + integrity sha512-xCRL3/pmhAYF3I6qOrcn0uhbQevitc2DERMPH82FMnG+4WReoGcGFZb1pURf2a5apyrOHRdvD+O6K7NljqKHyA== + dependencies: + graceful-fs "^4.2.10" + +karma-webpack@5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/karma-webpack/-/karma-webpack-5.0.1.tgz#4eafd31bbe684a747a6e8f3e4ad373e53979ced4" + integrity sha512-oo38O+P3W2mSPCSUrQdySSPv1LvPpXP+f+bBimNomS5sW+1V4SuhCuW8TfJzV+rDv921w2fDSDw0xJbPe6U+kQ== + dependencies: + glob "^7.1.3" + minimatch "^9.0.3" + webpack-merge "^4.1.5" + +karma@6.4.3: + version "6.4.3" + resolved "https://registry.yarnpkg.com/karma/-/karma-6.4.3.tgz#763e500f99597218bbb536de1a14acc4ceea7ce8" + integrity sha512-LuucC/RE92tJ8mlCwqEoRWXP38UMAqpnq98vktmS9SznSoUPPUJQbc91dHcxcunROvfQjdORVA/YFviH+Xci9Q== + dependencies: + "@colors/colors" "1.5.0" + body-parser "^1.19.0" + braces "^3.0.2" + chokidar "^3.5.1" + connect "^3.7.0" + di "^0.0.1" + dom-serialize "^2.2.1" + glob "^7.1.7" + graceful-fs "^4.2.6" + http-proxy "^1.18.1" + isbinaryfile "^4.0.8" + lodash "^4.17.21" + log4js "^6.4.1" + mime "^2.5.2" + minimatch "^3.0.4" + mkdirp "^0.5.5" + qjobs "^1.2.0" + range-parser "^1.2.1" + rimraf "^3.0.2" + socket.io "^4.7.2" + source-map "^0.6.1" + tmp "^0.2.1" + ua-parser-js "^0.7.30" + yargs "^16.1.1" + +kind-of@^6.0.2: + version "6.0.3" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" + integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== + +launch-editor@^2.6.1: + version "2.8.0" + resolved "https://registry.yarnpkg.com/launch-editor/-/launch-editor-2.8.0.tgz#7255d90bdba414448e2138faa770a74f28451305" + integrity sha512-vJranOAJrI/llyWGRQqiDM+adrw+k83fvmmx3+nV47g3+36xM15jE+zyZ6Ffel02+xSvuM0b2GDRosXZkbb6wA== + dependencies: + picocolors "^1.0.0" + shell-quote "^1.8.1" + +loader-runner@^4.2.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.3.0.tgz#c1b4a163b99f614830353b16755e7149ac2314e1" + integrity sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg== + +loader-utils@^2.0.0: + version "2.0.4" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.4.tgz#8b5cb38b5c34a9a018ee1fc0e6a066d1dfcc528c" + integrity sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw== + dependencies: + big.js "^5.2.2" + emojis-list "^3.0.0" + json5 "^2.1.2" + +locate-path@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" + integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== + dependencies: + p-locate "^4.1.0" + +locate-path@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" + integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== + dependencies: + p-locate "^5.0.0" + +lodash@^4.17.15, lodash@^4.17.21: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== + +log-symbols@4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503" + integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== + dependencies: + chalk "^4.1.0" + is-unicode-supported "^0.1.0" + +log4js@^6.4.1: + version "6.9.1" + resolved "https://registry.yarnpkg.com/log4js/-/log4js-6.9.1.tgz#aba5a3ff4e7872ae34f8b4c533706753709e38b6" + integrity sha512-1somDdy9sChrr9/f4UlzhdaGfDR2c/SaD2a4T7qEkG4jTS57/B3qmnjLYePwQ8cqWnUHZI0iAKxMBpCZICiZ2g== + dependencies: + date-format "^4.0.14" + debug "^4.3.4" + flatted "^3.2.7" + rfdc "^1.3.0" + streamroller "^3.1.5" + +lru-cache@^10.2.0: + version "10.4.3" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.4.3.tgz#410fc8a17b70e598013df257c2446b7f3383f119" + integrity sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ== + +media-typer@0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" + integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== + +memfs@^4.6.0: + version "4.9.3" + resolved "https://registry.yarnpkg.com/memfs/-/memfs-4.9.3.tgz#41a3218065fe3911d9eba836250c8f4e43f816bc" + integrity sha512-bsYSSnirtYTWi1+OPMFb0M048evMKyUYe0EbtuGQgq6BVQM1g1W8/KIUJCCvjgI/El0j6Q4WsmMiBwLUBSw8LA== + dependencies: + "@jsonjoy.com/json-pack" "^1.0.3" + "@jsonjoy.com/util" "^1.1.2" + tree-dump "^1.0.1" + tslib "^2.0.0" + +merge-descriptors@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" + integrity sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w== + +merge-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" + integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== + +methods@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" + integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== + +micromatch@^4.0.2: + version "4.0.7" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.7.tgz#33e8190d9fe474a9895525f5618eee136d46c2e5" + integrity sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q== + dependencies: + braces "^3.0.3" + picomatch "^2.3.1" + +mime-db@1.52.0: + version "1.52.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" + integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== + +"mime-db@>= 1.43.0 < 2": + version "1.53.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.53.0.tgz#3cb63cd820fc29896d9d4e8c32ab4fcd74ccb447" + integrity sha512-oHlN/w+3MQ3rba9rqFr6V/ypF10LSkdwUysQL7GkXoTgIWeV+tcXGA852TBxH+gsh8UWoyhR1hKcoMJTuWflpg== + +mime-types@^2.1.27, mime-types@^2.1.31, mime-types@~2.1.17, mime-types@~2.1.24, mime-types@~2.1.34: + version "2.1.35" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" + integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== + dependencies: + mime-db "1.52.0" + +mime@1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" + integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== + +mime@^2.5.2: + version "2.6.0" + resolved "https://registry.yarnpkg.com/mime/-/mime-2.6.0.tgz#a2a682a95cd4d0cb1d6257e28f83da7e35800367" + integrity sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg== + +mimic-fn@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" + integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== + +minimalistic-assert@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" + integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== + +minimatch@5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.0.1.tgz#fb9022f7528125187c92bd9e9b6366be1cf3415b" + integrity sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g== + dependencies: + brace-expansion "^2.0.1" + +minimatch@^3.0.4, minimatch@^3.1.1: + version "3.1.2" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== + dependencies: + brace-expansion "^1.1.7" + +minimatch@^5.0.1: + version "5.1.6" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.6.tgz#1cfcb8cf5522ea69952cd2af95ae09477f122a96" + integrity sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g== + dependencies: + brace-expansion "^2.0.1" + +minimatch@^9.0.3, minimatch@^9.0.4: + version "9.0.5" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.5.tgz#d74f9dd6b57d83d8e98cfb82133b03978bc929e5" + integrity sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow== + dependencies: + brace-expansion "^2.0.1" + +minimist@^1.2.3, minimist@^1.2.6: + version "1.2.8" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" + integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== + +"minipass@^5.0.0 || ^6.0.2 || ^7.0.0", minipass@^7.1.2: + version "7.1.2" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.1.2.tgz#93a9626ce5e5e66bd4db86849e7515e92340a707" + integrity sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw== + +mkdirp@^0.5.5: + version "0.5.6" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6" + integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== + dependencies: + minimist "^1.2.6" + +mocha@10.3.0: + version "10.3.0" + resolved "https://registry.yarnpkg.com/mocha/-/mocha-10.3.0.tgz#0e185c49e6dccf582035c05fa91084a4ff6e3fe9" + integrity sha512-uF2XJs+7xSLsrmIvn37i/wnc91nw7XjOQB8ccyx5aEgdnohr7n+rEiZP23WkCYHjilR6+EboEnbq/ZQDz4LSbg== + dependencies: + ansi-colors "4.1.1" + browser-stdout "1.3.1" + chokidar "3.5.3" + debug "4.3.4" + diff "5.0.0" + escape-string-regexp "4.0.0" + find-up "5.0.0" + glob "8.1.0" + he "1.2.0" + js-yaml "4.1.0" + log-symbols "4.1.0" + minimatch "5.0.1" + ms "2.1.3" + serialize-javascript "6.0.0" + strip-json-comments "3.1.1" + supports-color "8.1.1" + workerpool "6.2.1" + yargs "16.2.0" + yargs-parser "20.2.4" + yargs-unparser "2.0.0" + +monaco-editor-webpack-plugin@4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/monaco-editor-webpack-plugin/-/monaco-editor-webpack-plugin-4.1.1.tgz#b44127910c8f4a29bde72859a1c4107c2960a939" + integrity sha512-daa+k3rytb7Jf8bcSSsbrnMsCPR7+kiHUGt08Bvqxdws3tGMPMzsiiRgCyckpKY4XChIXWoasDav3idHhrooEQ== + dependencies: + loader-utils "^2.0.0" + +monaco-editor@0.26.1: + version "0.26.1" + resolved "https://registry.yarnpkg.com/monaco-editor/-/monaco-editor-0.26.1.tgz#62bb5f658bc95379f8abb64b147632bd1c019d73" + integrity sha512-mm45nUrBDk0DgZKgbD7+bhDOtcAFNGPJJRAdS6Su1kTGl6XEgC7U3xOmDUW/0RrLf+jlvCGaqLvD4p2VjwuwwQ== + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== + +ms@2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +ms@2.1.3: + version "2.1.3" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + +multicast-dns@^7.2.5: + version "7.2.5" + resolved "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-7.2.5.tgz#77eb46057f4d7adbd16d9290fa7299f6fa64cced" + integrity sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg== + dependencies: + dns-packet "^5.2.2" + thunky "^1.0.2" + +nanoid@^3.3.7: + version "3.3.7" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.7.tgz#d0c301a691bc8d54efa0a2226ccf3fe2fd656bd8" + integrity sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g== + +negotiator@0.6.3: + version "0.6.3" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" + integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== + +neo-async@^2.6.2: + version "2.6.2" + resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" + integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== + +node-fetch@2.6.7: + version "2.6.7" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad" + integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ== + dependencies: + whatwg-url "^5.0.0" + +node-forge@^1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-1.3.1.tgz#be8da2af243b2417d5f646a770663a92b7e9ded3" + integrity sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA== + +node-releases@^2.0.14: + version "2.0.14" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.14.tgz#2ffb053bceb8b2be8495ece1ab6ce600c4461b0b" + integrity sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw== + +normalize-path@^3.0.0, normalize-path@~3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + +npm-run-path@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" + integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== + dependencies: + path-key "^3.0.0" + +object-assign@^4: + version "4.1.1" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== + +object-inspect@^1.13.1: + version "1.13.2" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.2.tgz#dea0088467fb991e67af4058147a24824a3043ff" + integrity sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g== + +obuf@^1.0.0, obuf@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e" + integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg== + +on-finished@2.4.1, on-finished@^2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f" + integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg== + dependencies: + ee-first "1.1.1" + +on-finished@~2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" + integrity sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww== + dependencies: + ee-first "1.1.1" + +on-headers@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f" + integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== + +once@^1.3.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== + dependencies: + wrappy "1" + +onetime@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" + integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== + dependencies: + mimic-fn "^2.1.0" + +open@^10.0.3: + version "10.1.0" + resolved "https://registry.yarnpkg.com/open/-/open-10.1.0.tgz#a7795e6e5d519abe4286d9937bb24b51122598e1" + integrity sha512-mnkeQ1qP5Ue2wd+aivTD3NHd/lZ96Lu0jgf0pwktLPtx6cTZiH7tyeGRRHs0zX0rbrahXPnXlUnbeXyaBBuIaw== + dependencies: + default-browser "^5.2.1" + define-lazy-prop "^3.0.0" + is-inside-container "^1.0.0" + is-wsl "^3.1.0" + +p-limit@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" + integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== + dependencies: + p-try "^2.0.0" + +p-limit@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" + integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== + dependencies: + yocto-queue "^0.1.0" + +p-locate@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" + integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== + dependencies: + p-limit "^2.2.0" + +p-locate@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" + integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== + dependencies: + p-limit "^3.0.2" + +p-retry@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-6.2.0.tgz#8d6df01af298750009691ce2f9b3ad2d5968f3bd" + integrity sha512-JA6nkq6hKyWLLasXQXUrO4z8BUZGUt/LjlJxx8Gb2+2ntodU/SS63YZ8b0LUTbQ8ZB9iwOfhEPhg4ykKnn2KsA== + dependencies: + "@types/retry" "0.12.2" + is-network-error "^1.0.0" + retry "^0.13.1" + +p-try@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" + integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== + +package-json-from-dist@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/package-json-from-dist/-/package-json-from-dist-1.0.0.tgz#e501cd3094b278495eb4258d4c9f6d5ac3019f00" + integrity sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw== + +parseurl@~1.3.2, parseurl@~1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" + integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== + +path-exists@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== + +path-key@^3.0.0, path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== + +path-parse@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" + integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== + +path-scurry@^1.11.1: + version "1.11.1" + resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.11.1.tgz#7960a668888594a0720b12a911d1a742ab9f11d2" + integrity sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA== + dependencies: + lru-cache "^10.2.0" + minipass "^5.0.0 || ^6.0.2 || ^7.0.0" + +path-to-regexp@0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" + integrity sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ== + +picocolors@^1.0.0, picocolors@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.1.tgz#a8ad579b571952f0e5d25892de5445bcfe25aaa1" + integrity sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew== + +picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== + +pkg-dir@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" + integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== + dependencies: + find-up "^4.0.0" + +postcss-modules-extract-imports@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.1.0.tgz#b4497cb85a9c0c4b5aabeb759bb25e8d89f15002" + integrity sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q== + +postcss-modules-local-by-default@^4.0.4: + version "4.0.5" + resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.5.tgz#f1b9bd757a8edf4d8556e8d0f4f894260e3df78f" + integrity sha512-6MieY7sIfTK0hYfafw1OMEG+2bg8Q1ocHCpoWLqOKj3JXlKu4G7btkmM/B7lFubYkYWmRSPLZi5chid63ZaZYw== + dependencies: + icss-utils "^5.0.0" + postcss-selector-parser "^6.0.2" + postcss-value-parser "^4.1.0" + +postcss-modules-scope@^3.1.1: + version "3.2.0" + resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-3.2.0.tgz#a43d28289a169ce2c15c00c4e64c0858e43457d5" + integrity sha512-oq+g1ssrsZOsx9M96c5w8laRmvEu9C3adDSjI8oTcbfkrTE8hx/zfyobUoWIxaKPO8bt6S62kxpw5GqypEw1QQ== + dependencies: + postcss-selector-parser "^6.0.4" + +postcss-modules-values@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz#d7c5e7e68c3bb3c9b27cbf48ca0bb3ffb4602c9c" + integrity sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ== + dependencies: + icss-utils "^5.0.0" + +postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4: + version "6.1.1" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.1.1.tgz#5be94b277b8955904476a2400260002ce6c56e38" + integrity sha512-b4dlw/9V8A71rLIDsSwVmak9z2DuBUB7CA1/wSdelNEzqsjoSPeADTWNO09lpH49Diy3/JIZ2bSPB1dI3LJCHg== + dependencies: + cssesc "^3.0.0" + util-deprecate "^1.0.2" + +postcss-value-parser@^4.1.0, postcss-value-parser@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" + integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== + +postcss@^8.4.33: + version "8.4.39" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.39.tgz#aa3c94998b61d3a9c259efa51db4b392e1bde0e3" + integrity sha512-0vzE+lAiG7hZl1/9I8yzKLx3aR9Xbof3fBHKunvMfOCYAtMhrsnccJY2iTURb9EZd5+pLuiNV9/c/GZJOHsgIw== + dependencies: + nanoid "^3.3.7" + picocolors "^1.0.1" + source-map-js "^1.2.0" + +process-nextick-args@~2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" + integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== + +proxy-addr@~2.0.7: + version "2.0.7" + resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" + integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== + dependencies: + forwarded "0.2.0" + ipaddr.js "1.9.1" + +punycode@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" + integrity sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ== + +punycode@^2.1.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5" + integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== + +qjobs@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/qjobs/-/qjobs-1.2.0.tgz#c45e9c61800bd087ef88d7e256423bdd49e5d071" + integrity sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg== + +qs@6.11.0: + version "6.11.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.0.tgz#fd0d963446f7a65e1367e01abd85429453f0c37a" + integrity sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q== + dependencies: + side-channel "^1.0.4" + +randombytes@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" + integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== + dependencies: + safe-buffer "^5.1.0" + +range-parser@^1.2.1, range-parser@~1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" + integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== + +raw-body@2.5.2: + version "2.5.2" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.2.tgz#99febd83b90e08975087e8f1f9419a149366b68a" + integrity sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA== + dependencies: + bytes "3.1.2" + http-errors "2.0.0" + iconv-lite "0.4.24" + unpipe "1.0.0" + +readable-stream@^2.0.1: + version "2.3.8" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.8.tgz#91125e8042bba1b9887f49345f6277027ce8be9b" + integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA== + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.1.1" + util-deprecate "~1.0.1" + +readable-stream@^3.0.6: + version "3.6.2" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" + integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + +readdirp@~3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" + integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== + dependencies: + picomatch "^2.2.1" + +rechoir@^0.8.0: + version "0.8.0" + resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.8.0.tgz#49f866e0d32146142da3ad8f0eff352b3215ff22" + integrity sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ== + dependencies: + resolve "^1.20.0" + +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== + +require-from-string@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" + integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== + +requires-port@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" + integrity sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ== + +resolve-cwd@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d" + integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg== + dependencies: + resolve-from "^5.0.0" + +resolve-from@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" + integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== + +resolve@^1.20.0: + version "1.22.8" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.8.tgz#b6c87a9f2aa06dfab52e3d70ac8cde321fa5a48d" + integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw== + dependencies: + is-core-module "^2.13.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + +retry@^0.13.1: + version "0.13.1" + resolved "https://registry.yarnpkg.com/retry/-/retry-0.13.1.tgz#185b1587acf67919d63b357349e03537b2484658" + integrity sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg== + +rfdc@^1.3.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.4.1.tgz#778f76c4fb731d93414e8f925fbecf64cce7f6ca" + integrity sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA== + +rimraf@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" + integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== + dependencies: + glob "^7.1.3" + +rimraf@^5.0.5: + version "5.0.9" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-5.0.9.tgz#c3baa1b886eadc2ec7981a06a593c3d01134ffe9" + integrity sha512-3i7b8OcswU6CpU8Ej89quJD4O98id7TtVM5U4Mybh84zQXdrFmDLouWBEEaD/QfO3gDDfH+AGFCGsR7kngzQnA== + dependencies: + glob "^10.3.7" + +run-applescript@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/run-applescript/-/run-applescript-7.0.0.tgz#e5a553c2bffd620e169d276c1cd8f1b64778fbeb" + integrity sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A== + +safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + +safe-buffer@5.2.1, safe-buffer@>=5.1.0, safe-buffer@^5.1.0, safe-buffer@~5.2.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0": + version "2.1.2" + resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + +schema-utils@^3.0.0, schema-utils@^3.1.1, schema-utils@^3.2.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.3.0.tgz#f50a88877c3c01652a15b622ae9e9795df7a60fe" + integrity sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg== + dependencies: + "@types/json-schema" "^7.0.8" + ajv "^6.12.5" + ajv-keywords "^3.5.2" + +schema-utils@^4.0.0, schema-utils@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-4.2.0.tgz#70d7c93e153a273a805801882ebd3bff20d89c8b" + integrity sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw== + dependencies: + "@types/json-schema" "^7.0.9" + ajv "^8.9.0" + ajv-formats "^2.1.1" + ajv-keywords "^5.1.0" + +select-hose@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" + integrity sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg== + +selfsigned@^2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-2.4.1.tgz#560d90565442a3ed35b674034cec4e95dceb4ae0" + integrity sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q== + dependencies: + "@types/node-forge" "^1.3.0" + node-forge "^1" + +semver@^7.5.4: + version "7.6.3" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.3.tgz#980f7b5550bc175fb4dc09403085627f9eb33143" + integrity sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A== + +send@0.18.0: + version "0.18.0" + resolved "https://registry.yarnpkg.com/send/-/send-0.18.0.tgz#670167cc654b05f5aa4a767f9113bb371bc706be" + integrity sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg== + dependencies: + debug "2.6.9" + depd "2.0.0" + destroy "1.2.0" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + fresh "0.5.2" + http-errors "2.0.0" + mime "1.6.0" + ms "2.1.3" + on-finished "2.4.1" + range-parser "~1.2.1" + statuses "2.0.1" + +serialize-javascript@6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.0.tgz#efae5d88f45d7924141da8b5c3a7a7e663fefeb8" + integrity sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag== + dependencies: + randombytes "^2.1.0" + +serialize-javascript@^6.0.1: + version "6.0.2" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.2.tgz#defa1e055c83bf6d59ea805d8da862254eb6a6c2" + integrity sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g== + dependencies: + randombytes "^2.1.0" + +serve-index@^1.9.1: + version "1.9.1" + resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239" + integrity sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw== + dependencies: + accepts "~1.3.4" + batch "0.6.1" + debug "2.6.9" + escape-html "~1.0.3" + http-errors "~1.6.2" + mime-types "~2.1.17" + parseurl "~1.3.2" + +serve-static@1.15.0: + version "1.15.0" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.15.0.tgz#faaef08cffe0a1a62f60cad0c4e513cff0ac9540" + integrity sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g== + dependencies: + encodeurl "~1.0.2" + escape-html "~1.0.3" + parseurl "~1.3.3" + send "0.18.0" + +set-function-length@^1.2.1: + version "1.2.2" + resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.2.tgz#aac72314198eaed975cf77b2c3b6b880695e5449" + integrity sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg== + dependencies: + define-data-property "^1.1.4" + es-errors "^1.3.0" + function-bind "^1.1.2" + get-intrinsic "^1.2.4" + gopd "^1.0.1" + has-property-descriptors "^1.0.2" + +setprototypeof@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" + integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ== + +setprototypeof@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" + integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== + +shallow-clone@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-3.0.1.tgz#8f2981ad92531f55035b01fb230769a40e02efa3" + integrity sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA== + dependencies: + kind-of "^6.0.2" + +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== + dependencies: + shebang-regex "^3.0.0" + +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + +shell-quote@^1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.8.1.tgz#6dbf4db75515ad5bac63b4f1894c3a154c766680" + integrity sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA== + +side-channel@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.6.tgz#abd25fb7cd24baf45466406b1096b7831c9215f2" + integrity sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA== + dependencies: + call-bind "^1.0.7" + es-errors "^1.3.0" + get-intrinsic "^1.2.4" + object-inspect "^1.13.1" + +signal-exit@^3.0.3: + version "3.0.7" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" + integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== + +signal-exit@^4.0.1: + version "4.1.0" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" + integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== + +socket.io-adapter@~2.5.2: + version "2.5.5" + resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-2.5.5.tgz#c7a1f9c703d7756844751b6ff9abfc1780664082" + integrity sha512-eLDQas5dzPgOWCk9GuuJC2lBqItuhKI4uxGgo9aIV7MYbk2h9Q6uULEh8WBzThoI7l+qU9Ast9fVUmkqPP9wYg== + dependencies: + debug "~4.3.4" + ws "~8.17.1" + +socket.io-parser@~4.2.4: + version "4.2.4" + resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-4.2.4.tgz#c806966cf7270601e47469ddeec30fbdfda44c83" + integrity sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew== + dependencies: + "@socket.io/component-emitter" "~3.1.0" + debug "~4.3.1" + +socket.io@^4.7.2: + version "4.7.5" + resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-4.7.5.tgz#56eb2d976aef9d1445f373a62d781a41c7add8f8" + integrity sha512-DmeAkF6cwM9jSfmp6Dr/5/mfMwb5Z5qRrSXLpo3Fq5SqyU8CMF15jIN4ZhfSwu35ksM1qmHZDQ/DK5XTccSTvA== + dependencies: + accepts "~1.3.4" + base64id "~2.0.0" + cors "~2.8.5" + debug "~4.3.2" + engine.io "~6.5.2" + socket.io-adapter "~2.5.2" + socket.io-parser "~4.2.4" + +sockjs@^0.3.24: + version "0.3.24" + resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.24.tgz#c9bc8995f33a111bea0395ec30aa3206bdb5ccce" + integrity sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ== + dependencies: + faye-websocket "^0.11.3" + uuid "^8.3.2" + websocket-driver "^0.7.4" + +source-map-js@^1.0.2, source-map-js@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.2.0.tgz#16b809c162517b5b8c3e7dcd315a2a5c2612b2af" + integrity sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg== + +source-map-loader@5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/source-map-loader/-/source-map-loader-5.0.0.tgz#f593a916e1cc54471cfc8851b905c8a845fc7e38" + integrity sha512-k2Dur7CbSLcAH73sBcIkV5xjPV4SzqO1NJ7+XaQl8if3VODDUj3FNchNGpqgJSKbvUfJuhVdv8K2Eu8/TNl2eA== + dependencies: + iconv-lite "^0.6.3" + source-map-js "^1.0.2" + +source-map-support@~0.5.20: + version "0.5.21" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" + integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + +source-map@^0.6.0, source-map@^0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +spdy-transport@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/spdy-transport/-/spdy-transport-3.0.0.tgz#00d4863a6400ad75df93361a1608605e5dcdcf31" + integrity sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw== + dependencies: + debug "^4.1.0" + detect-node "^2.0.4" + hpack.js "^2.1.6" + obuf "^1.1.2" + readable-stream "^3.0.6" + wbuf "^1.7.3" + +spdy@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/spdy/-/spdy-4.0.2.tgz#b74f466203a3eda452c02492b91fb9e84a27677b" + integrity sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA== + dependencies: + debug "^4.1.0" + handle-thing "^2.0.0" + http-deceiver "^1.2.7" + select-hose "^2.0.0" + spdy-transport "^3.0.0" + +statuses@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" + integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== + +"statuses@>= 1.4.0 < 2", statuses@~1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" + integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA== + +streamroller@^3.1.5: + version "3.1.5" + resolved "https://registry.yarnpkg.com/streamroller/-/streamroller-3.1.5.tgz#1263182329a45def1ffaef58d31b15d13d2ee7ff" + integrity sha512-KFxaM7XT+irxvdqSP1LGLgNWbYN7ay5owZ3r/8t77p+EtSUAfUgtl7be3xtqtOmGUl9K9YPO2ca8133RlTjvKw== + dependencies: + date-format "^4.0.14" + debug "^4.3.4" + fs-extra "^8.1.0" + +"string-width-cjs@npm:string-width@^4.2.0", string-width@^4.1.0, string-width@^4.2.0: + version "4.2.3" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + +string-width@^5.0.1, string-width@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" + integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== + dependencies: + eastasianwidth "^0.2.0" + emoji-regex "^9.2.2" + strip-ansi "^7.0.1" + +string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + +string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== + dependencies: + safe-buffer "~5.1.0" + +"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + +strip-ansi@^7.0.1: + version "7.1.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45" + integrity sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ== + dependencies: + ansi-regex "^6.0.1" + +strip-final-newline@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" + integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== + +strip-json-comments@3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" + integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== + +style-loader@3.3.4: + version "3.3.4" + resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-3.3.4.tgz#f30f786c36db03a45cbd55b6a70d930c479090e7" + integrity sha512-0WqXzrsMTyb8yjZJHDqwmnwRJvhALK9LfRtRc6B4UTWe8AijYLZYZ9thuJTZc2VfQWINADW/j+LiJnfy2RoC1w== + +supports-color@8.1.1, supports-color@^8.0.0: + version "8.1.1" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" + integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== + dependencies: + has-flag "^4.0.0" + +supports-color@^7.1.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== + dependencies: + has-flag "^4.0.0" + +supports-preserve-symlinks-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" + integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== + +tapable@^2.1.1, tapable@^2.2.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0" + integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== + +terser-webpack-plugin@^5.3.10: + version "5.3.10" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz#904f4c9193c6fd2a03f693a2150c62a92f40d199" + integrity sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w== + dependencies: + "@jridgewell/trace-mapping" "^0.3.20" + jest-worker "^27.4.5" + schema-utils "^3.1.1" + serialize-javascript "^6.0.1" + terser "^5.26.0" + +terser@^5.26.0: + version "5.31.2" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.31.2.tgz#b5ca188107b706084dca82f988089fa6102eba11" + integrity sha512-LGyRZVFm/QElZHy/CPr/O4eNZOZIzsrQ92y4v9UJe/pFJjypje2yI3C2FmPtvUEnhadlSbmG2nXtdcjHOjCfxw== + dependencies: + "@jridgewell/source-map" "^0.3.3" + acorn "^8.8.2" + commander "^2.20.0" + source-map-support "~0.5.20" + +thingies@^1.20.0: + version "1.21.0" + resolved "https://registry.yarnpkg.com/thingies/-/thingies-1.21.0.tgz#e80fbe58fd6fdaaab8fad9b67bd0a5c943c445c1" + integrity sha512-hsqsJsFMsV+aD4s3CWKk85ep/3I9XzYV/IXaSouJMYIoDlgyi11cBhsqYe9/geRfB0YIikBQg6raRaM+nIMP9g== + +three@^0.128.0: + version "0.128.0" + resolved "https://registry.yarnpkg.com/three/-/three-0.128.0.tgz#884dacca6a330e45600a09ec5439283f50b76aa6" + integrity sha512-i0ap/E+OaSfzw7bD1TtYnPo3VEplkl70WX5fZqZnfZsE3k3aSFudqrrC9ldFZfYFkn1zwDmBcdGfiIm/hnbyZA== + +thunky@^1.0.2: + version "1.1.0" + resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.1.0.tgz#5abaf714a9405db0504732bbccd2cedd9ef9537d" + integrity sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA== + +tmp@^0.2.1: + version "0.2.3" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.3.tgz#eb783cc22bc1e8bebd0671476d46ea4eb32a79ae" + integrity sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w== + +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + +toidentifier@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" + integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== + +tr46@~0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" + integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== + +tree-dump@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/tree-dump/-/tree-dump-1.0.2.tgz#c460d5921caeb197bde71d0e9a7b479848c5b8ac" + integrity sha512-dpev9ABuLWdEubk+cIaI9cHwRNNDjkBBLXTwI4UCUFdQ5xXKqNXoK4FEciw/vxf+NQ7Cb7sGUyeUtORvHIdRXQ== + +tslib@^2.0.0: + version "2.6.3" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.3.tgz#0438f810ad7a9edcde7a241c3d80db693c8cbfe0" + integrity sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ== + +type-is@~1.6.18: + version "1.6.18" + resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" + integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== + dependencies: + media-typer "0.3.0" + mime-types "~2.1.24" + +typescript@5.4.3: + version "5.4.3" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.4.3.tgz#5c6fedd4c87bee01cd7a528a30145521f8e0feff" + integrity sha512-KrPd3PKaCLr78MalgiwJnA25Nm8HAmdwN3mYUYZgG/wizIo9EainNVQI9/yDavtVFRN2h3k8uf3GLHuhDMgEHg== + +ua-parser-js@^0.7.30: + version "0.7.38" + resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.38.tgz#f497d8a4dc1fec6e854e5caa4b2f9913422ef054" + integrity sha512-fYmIy7fKTSFAhG3fuPlubeGaMoAd6r0rSnfEsO5nEY55i26KSLt9EH7PLQiiqPUhNqYIJvSkTy1oArIcXAbPbA== + +undici-types@~5.26.4: + version "5.26.5" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617" + integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== + +universalify@^0.1.0: + version "0.1.2" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" + integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== + +unpipe@1.0.0, unpipe@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" + integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== + +update-browserslist-db@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.1.0.tgz#7ca61c0d8650766090728046e416a8cde682859e" + integrity sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ== + dependencies: + escalade "^3.1.2" + picocolors "^1.0.1" + +uri-js@^4.2.2: + version "4.4.1" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" + integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== + dependencies: + punycode "^2.1.0" + +util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== + +utils-merge@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" + integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== + +uuid@^8.3.2: + version "8.3.2" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" + integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== + +vary@^1, vary@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" + integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== + +void-elements@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/void-elements/-/void-elements-2.0.1.tgz#c066afb582bb1cb4128d60ea92392e94d5e9dbec" + integrity sha512-qZKX4RnBzH2ugr8Lxa7x+0V6XD9Sb/ouARtiasEQCHB1EVU4NXtmHsDDrx1dO4ne5fc3J6EW05BP1Dl0z0iung== + +watchpack@^2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.4.1.tgz#29308f2cac150fa8e4c92f90e0ec954a9fed7fff" + integrity sha512-8wrBCMtVhqcXP2Sup1ctSkga6uc2Bx0IIvKyT7yTFier5AXHooSI+QyQQAtTb7+E0IUCCKyTFmXqdqgum2XWGg== + dependencies: + glob-to-regexp "^0.4.1" + graceful-fs "^4.1.2" + +wbuf@^1.1.0, wbuf@^1.7.3: + version "1.7.3" + resolved "https://registry.yarnpkg.com/wbuf/-/wbuf-1.7.3.tgz#c1d8d149316d3ea852848895cb6a0bfe887b87df" + integrity sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA== + dependencies: + minimalistic-assert "^1.0.0" + +webidl-conversions@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" + integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== + +webpack-cli@5.1.4: + version "5.1.4" + resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-5.1.4.tgz#c8e046ba7eaae4911d7e71e2b25b776fcc35759b" + integrity sha512-pIDJHIEI9LR0yxHXQ+Qh95k2EvXpWzZ5l+d+jIo+RdSm9MiHfzazIxwwni/p7+x4eJZuvG1AJwgC4TNQ7NRgsg== + dependencies: + "@discoveryjs/json-ext" "^0.5.0" + "@webpack-cli/configtest" "^2.1.1" + "@webpack-cli/info" "^2.0.2" + "@webpack-cli/serve" "^2.0.5" + colorette "^2.0.14" + commander "^10.0.1" + cross-spawn "^7.0.3" + envinfo "^7.7.3" + fastest-levenshtein "^1.0.12" + import-local "^3.0.2" + interpret "^3.1.1" + rechoir "^0.8.0" + webpack-merge "^5.7.3" + +webpack-dev-middleware@^7.1.0: + version "7.2.1" + resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-7.2.1.tgz#2af00538b6e4eda05f5afdd5d711dbebc05958f7" + integrity sha512-hRLz+jPQXo999Nx9fXVdKlg/aehsw1ajA9skAneGmT03xwmyuhvF93p6HUKKbWhXdcERtGTzUCtIQr+2IQegrA== + dependencies: + colorette "^2.0.10" + memfs "^4.6.0" + mime-types "^2.1.31" + on-finished "^2.4.1" + range-parser "^1.2.1" + schema-utils "^4.0.0" + +webpack-dev-server@5.0.4: + version "5.0.4" + resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-5.0.4.tgz#cb6ea47ff796b9251ec49a94f24a425e12e3c9b8" + integrity sha512-dljXhUgx3HqKP2d8J/fUMvhxGhzjeNVarDLcbO/EWMSgRizDkxHQDZQaLFL5VJY9tRBj2Gz+rvCEYYvhbqPHNA== + dependencies: + "@types/bonjour" "^3.5.13" + "@types/connect-history-api-fallback" "^1.5.4" + "@types/express" "^4.17.21" + "@types/serve-index" "^1.9.4" + "@types/serve-static" "^1.15.5" + "@types/sockjs" "^0.3.36" + "@types/ws" "^8.5.10" + ansi-html-community "^0.0.8" + bonjour-service "^1.2.1" + chokidar "^3.6.0" + colorette "^2.0.10" + compression "^1.7.4" + connect-history-api-fallback "^2.0.0" + default-gateway "^6.0.3" + express "^4.17.3" + graceful-fs "^4.2.6" + html-entities "^2.4.0" + http-proxy-middleware "^2.0.3" + ipaddr.js "^2.1.0" + launch-editor "^2.6.1" + open "^10.0.3" + p-retry "^6.2.0" + rimraf "^5.0.5" + schema-utils "^4.2.0" + selfsigned "^2.4.1" + serve-index "^1.9.1" + sockjs "^0.3.24" + spdy "^4.0.2" + webpack-dev-middleware "^7.1.0" + ws "^8.16.0" + +webpack-merge@^4.1.5: + version "4.2.2" + resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-4.2.2.tgz#a27c52ea783d1398afd2087f547d7b9d2f43634d" + integrity sha512-TUE1UGoTX2Cd42j3krGYqObZbOD+xF7u28WB7tfUordytSjbWTIjK/8V0amkBfTYN4/pB/GIDlJZZ657BGG19g== + dependencies: + lodash "^4.17.15" + +webpack-merge@^5.7.3: + version "5.10.0" + resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-5.10.0.tgz#a3ad5d773241e9c682803abf628d4cd62b8a4177" + integrity sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA== + dependencies: + clone-deep "^4.0.1" + flat "^5.0.2" + wildcard "^2.0.0" + +webpack-sources@^3.2.3: + version "3.2.3" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.2.3.tgz#2d4daab8451fd4b240cc27055ff6a0c2ccea0cde" + integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w== + +webpack@5.91.0: + version "5.91.0" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.91.0.tgz#ffa92c1c618d18c878f06892bbdc3373c71a01d9" + integrity sha512-rzVwlLeBWHJbmgTC/8TvAcu5vpJNII+MelQpylD4jNERPwpBJOE2lEcko1zJX3QJeLjTTAnQxn/OJ8bjDzVQaw== + dependencies: + "@types/eslint-scope" "^3.7.3" + "@types/estree" "^1.0.5" + "@webassemblyjs/ast" "^1.12.1" + "@webassemblyjs/wasm-edit" "^1.12.1" + "@webassemblyjs/wasm-parser" "^1.12.1" + acorn "^8.7.1" + acorn-import-assertions "^1.9.0" + browserslist "^4.21.10" + chrome-trace-event "^1.0.2" + enhanced-resolve "^5.16.0" + es-module-lexer "^1.2.1" + eslint-scope "5.1.1" + events "^3.2.0" + glob-to-regexp "^0.4.1" + graceful-fs "^4.2.11" + json-parse-even-better-errors "^2.3.1" + loader-runner "^4.2.0" + mime-types "^2.1.27" + neo-async "^2.6.2" + schema-utils "^3.2.0" + tapable "^2.1.1" + terser-webpack-plugin "^5.3.10" + watchpack "^2.4.1" + webpack-sources "^3.2.3" + +websocket-driver@>=0.5.1, websocket-driver@^0.7.4: + version "0.7.4" + resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.4.tgz#89ad5295bbf64b480abcba31e4953aca706f5760" + integrity sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg== + dependencies: + http-parser-js ">=0.5.1" + safe-buffer ">=5.1.0" + websocket-extensions ">=0.1.1" + +websocket-extensions@>=0.1.1: + version "0.1.4" + resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz#7f8473bc839dfd87608adb95d7eb075211578a42" + integrity sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg== + +whatwg-url@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" + integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== + dependencies: + tr46 "~0.0.3" + webidl-conversions "^3.0.0" + +which@^1.2.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" + integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== + dependencies: + isexe "^2.0.0" + +which@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" + +wildcard@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/wildcard/-/wildcard-2.0.1.tgz#5ab10d02487198954836b6349f74fff961e10f67" + integrity sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ== + +workerpool@6.2.1: + version "6.2.1" + resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.2.1.tgz#46fc150c17d826b86a008e5a4508656777e9c343" + integrity sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw== + +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrap-ansi@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214" + integrity sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ== + dependencies: + ansi-styles "^6.1.0" + string-width "^5.0.1" + strip-ansi "^7.0.1" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== + +ws@8.5.0: + version "8.5.0" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.5.0.tgz#bfb4be96600757fe5382de12c670dab984a1ed4f" + integrity sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg== + +ws@^8.16.0: + version "8.18.0" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.18.0.tgz#0d7505a6eafe2b0e712d232b42279f53bc289bbc" + integrity sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw== + +ws@~8.17.1: + version "8.17.1" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.17.1.tgz#9293da530bb548febc95371d90f9c878727d919b" + integrity sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ== + +y18n@^5.0.5: + version "5.0.8" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" + integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== + +yargs-parser@20.2.4: + version "20.2.4" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.4.tgz#b42890f14566796f85ae8e3a25290d205f154a54" + integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA== + +yargs-parser@^20.2.2: + version "20.2.9" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" + integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== + +yargs-unparser@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/yargs-unparser/-/yargs-unparser-2.0.0.tgz#f131f9226911ae5d9ad38c432fe809366c2325eb" + integrity sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA== + dependencies: + camelcase "^6.0.0" + decamelize "^4.0.0" + flat "^5.0.2" + is-plain-obj "^2.1.0" + +yargs@16.2.0, yargs@^16.1.1: + version "16.2.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" + integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== + dependencies: + cliui "^7.0.2" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.0" + y18n "^5.0.5" + yargs-parser "^20.2.2" + +yocto-queue@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" + integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== diff --git a/psolib/build.gradle.kts b/psolib/build.gradle.kts index ac6c7544..473423ac 100644 --- a/psolib/build.gradle.kts +++ b/psolib/build.gradle.kts @@ -15,7 +15,8 @@ buildscript { } /** Source code generated by the build script goes here. */ -val generatedCommonSrc = File(buildDir, "generated-src/commonMain/kotlin") +val generatedCommonSrc = + layout.buildDirectory.get().asFile.resolve("generated-src/commonMain/kotlin") val serializationVersion: String by project.extra @@ -46,7 +47,7 @@ val generateOpcodes = tasks.register("generateOpcodes") { val packageName = "world.phantasmal.psolib.asm" val opcodesFile = file("srcGeneration/asm/opcodes.yml") - val outputFile = File(generatedCommonSrc, "${packageName.replace('.', '/')}/Opcodes.kt") + val outputFile = generatedCommonSrc.resolve("${packageName.replace('.', '/')}/Opcodes.kt") inputs.file(opcodesFile) outputs.file(outputFile) @@ -75,8 +76,8 @@ val generateOpcodes = tasks.register("generateOpcodes") { fun opcodeToCode(writer: PrintWriter, opcode: Map) { val code = (opcode["code"] as String).drop(2).toInt(16) - val codeStr = code.toString(16).toUpperCase().padStart(2, '0') - val mnemonic = opcode["mnemonic"] as String? ?: "unknown_${codeStr.toLowerCase()}" + val codeStr = code.toString(16).uppercase().padStart(2, '0') + val mnemonic = opcode["mnemonic"] as String? ?: "unknown_${codeStr.lowercase()}" val doc = (opcode["doc"] as String?)?.let { "\"${it.replace("\n", "\\n")}\"" } @@ -87,7 +88,7 @@ fun opcodeToCode(writer: PrintWriter, opcode: Map) { .replace("=", "e") .replace("<", "l") .replace(">", "g") - .toUpperCase() + .uppercase() val stackInteraction = when (stack) { "push" -> "StackInteraction.Push" @@ -114,7 +115,7 @@ fun opcodeToCode(writer: PrintWriter, opcode: Map) { in 0xF900..0xF9FF -> "OPCODES_F9" else -> error("Invalid opcode $codeStr ($mnemonic).") } - val indexStr = (code and 0xFF).toString(16).toUpperCase().padStart(2, '0') + val indexStr = (code and 0xFF).toString(16).uppercase().padStart(2, '0') writer.println( """ @@ -155,6 +156,7 @@ fun paramsToCode(params: List>, indent: Int): String { paramsToCode(it, indent + 4) } ?: "null" })""" + "reg_var" -> "RegVarType" "pointer" -> "PointerType" else -> error("Type ${param["type"]} not implemented.") diff --git a/psolib/src/commonMain/kotlin/world/phantasmal/psolib/fileFormats/quest/Bytecode.kt b/psolib/src/commonMain/kotlin/world/phantasmal/psolib/fileFormats/quest/Bytecode.kt index 861271a1..9ed43f6e 100644 --- a/psolib/src/commonMain/kotlin/world/phantasmal/psolib/fileFormats/quest/Bytecode.kt +++ b/psolib/src/commonMain/kotlin/world/phantasmal/psolib/fileFormats/quest/Bytecode.kt @@ -300,6 +300,8 @@ private fun findAndParseSegments( } } } + + else -> {} } i++ @@ -819,16 +821,20 @@ fun writeBytecode(bytecodeIr: BytecodeIr, dcGcFormat: Boolean): BytecodeAndLabel cursor.writeShort(a.coerceInt().toShort()) } } + is LabelType -> cursor.writeShort(arg.coerceInt().toShort()) + StringType -> { val str = arg.coerceString() if (dcGcFormat) cursor.writeStringAscii(str, str.length + 1) else cursor.writeStringUtf16(str, 2 * str.length + 2) } + is RegType -> { cursor.writeByte(arg.coerceInt().toByte()) } + RegVarType -> { cursor.writeByte(args.size.toByte()) @@ -836,6 +842,7 @@ fun writeBytecode(bytecodeIr: BytecodeIr, dcGcFormat: Boolean): BytecodeAndLabel cursor.writeByte(a.coerceInt().toByte()) } } + else -> error( "Parameter type ${param.type::class.simpleName} not supported." ) diff --git a/psolib/src/commonMain/kotlin/world/phantasmal/psolib/fileFormats/quest/QuestNpcDefaultData.kt b/psolib/src/commonMain/kotlin/world/phantasmal/psolib/fileFormats/quest/QuestNpcDefaultData.kt index ee2eb724..839dd153 100644 --- a/psolib/src/commonMain/kotlin/world/phantasmal/psolib/fileFormats/quest/QuestNpcDefaultData.kt +++ b/psolib/src/commonMain/kotlin/world/phantasmal/psolib/fileFormats/quest/QuestNpcDefaultData.kt @@ -4,7 +4,6 @@ import world.phantasmal.psolib.buffer.Buffer // TODO: set properties of friendly NPCs based on episode. internal fun setNpcDefaultData(type: NpcType, view: Buffer) { - @Suppress("NON_EXHAUSTIVE_WHEN") when (type) { NpcType.FemaleFat -> { view.setShort(2, 2) @@ -13,6 +12,7 @@ internal fun setNpcDefaultData(type: NpcType, view: Buffer) { view.setShort(68, -16432) view.setShort(70, 1834) } + NpcType.FemaleMacho -> { view.setShort(2, 2) view.setShort(4, 1876) @@ -20,12 +20,14 @@ internal fun setNpcDefaultData(type: NpcType, view: Buffer) { view.setShort(68, -12528) view.setShort(70, 1834) } + NpcType.FemaleTall -> { view.setShort(2, 2) view.setShort(4, 1883) view.setShort(68, -5504) view.setShort(70, 1834) } + NpcType.MaleDwarf -> { view.setShort(2, 2) view.setShort(4, 1873) @@ -33,6 +35,7 @@ internal fun setNpcDefaultData(type: NpcType, view: Buffer) { view.setShort(68, -15456) view.setShort(70, 1834) } + NpcType.MaleFat -> { view.setShort(2, 2) view.setShort(4, 1882) @@ -40,6 +43,7 @@ internal fun setNpcDefaultData(type: NpcType, view: Buffer) { view.setShort(68, -6528) view.setShort(70, 1834) } + NpcType.MaleMacho -> { view.setShort(2, 2) view.setShort(4, 1880) @@ -47,6 +51,7 @@ internal fun setNpcDefaultData(type: NpcType, view: Buffer) { view.setShort(68, -8576) view.setShort(70, 1834) } + NpcType.MaleOld -> { view.setShort(2, 2) view.setShort(4, 1878) @@ -54,6 +59,7 @@ internal fun setNpcDefaultData(type: NpcType, view: Buffer) { view.setShort(68, -10576) view.setShort(70, 1834) } + NpcType.BlueSoldier -> { view.setShort(2, 2) view.setShort(4, 1875) @@ -61,6 +67,7 @@ internal fun setNpcDefaultData(type: NpcType, view: Buffer) { view.setShort(68, -13504) view.setShort(70, 1834) } + NpcType.RedSoldier -> { view.setShort(2, 2) view.setShort(4, 1874) @@ -68,12 +75,14 @@ internal fun setNpcDefaultData(type: NpcType, view: Buffer) { view.setShort(68, -14480) view.setShort(70, 1834) } + NpcType.Principal -> { view.setShort(4, 1888) view.setShort(10, 5985) view.setShort(68, -384) view.setShort(70, 1834) } + NpcType.Tekker -> { view.setShort(2, 2) view.setShort(4, 1879) @@ -81,6 +90,7 @@ internal fun setNpcDefaultData(type: NpcType, view: Buffer) { view.setShort(68, -9600) view.setShort(70, 1834) } + NpcType.GuildLady -> { view.setShort(2, 2) view.setShort(4, 1891) @@ -88,6 +98,7 @@ internal fun setNpcDefaultData(type: NpcType, view: Buffer) { view.setShort(68, 11584) view.setShort(70, 1835) } + NpcType.Scientist -> { view.setShort(2, 2) view.setShort(4, 1877) @@ -95,6 +106,7 @@ internal fun setNpcDefaultData(type: NpcType, view: Buffer) { view.setShort(68, -11552) view.setShort(70, 1834) } + NpcType.Nurse -> { view.setShort(2, 2) view.setShort(4, 1884) @@ -102,24 +114,28 @@ internal fun setNpcDefaultData(type: NpcType, view: Buffer) { view.setShort(68, -4480) view.setShort(70, 1834) } + NpcType.Irene -> { view.setShort(4, 1889) view.setShort(10, 5986) view.setShort(68, 640) view.setShort(70, 1835) } + NpcType.ItemShop -> { view.setShort(4, 8) view.setShort(10, 6453) view.setShort(68, 16560) view.setShort(70, 1176) } + NpcType.Nurse2 -> { view.setShort(4, 2330) view.setShort(10, 6496) view.setShort(68, -13280) view.setShort(70, 1200) } + NpcType.Hildebear -> { view.setShort(4, -1) view.setShort(8, 2) @@ -128,16 +144,19 @@ internal fun setNpcDefaultData(type: NpcType, view: Buffer) { view.setShort(68, 29968) view.setShort(70, -29446) } + NpcType.RagRappy -> { view.setShort(8, 1) view.setShort(10, -1) view.setShort(68, 1072) view.setShort(70, -29444) } + NpcType.Monest -> { view.setFloat(48, 5.000000953674316f) // Start number view.setFloat(52, 10.000004768371582f) // Total number } + NpcType.BarbarousWolf -> { view.setShort(4, -1) view.setShort(8, 1) @@ -145,10 +164,12 @@ internal fun setNpcDefaultData(type: NpcType, view: Buffer) { view.setShort(68, 8576) view.setShort(70, -29445) } + NpcType.Booma -> { view.setFloat(44, 0.30000001192092896f) // Scale x view.setFloat(48, 40.00001907348633f) // Idle distance } + NpcType.Gobooma -> { view.setShort(8, 1) view.setShort(10, -1) @@ -157,6 +178,7 @@ internal fun setNpcDefaultData(type: NpcType, view: Buffer) { view.setShort(68, 11600) view.setShort(70, -29444) } + NpcType.Gigobooma -> { view.setShort(4, -1) view.setShort(8, 1) @@ -164,6 +186,7 @@ internal fun setNpcDefaultData(type: NpcType, view: Buffer) { view.setShort(68, -4000) view.setShort(70, -29446) } + NpcType.Dragon -> { view.setShort(4, 1173) view.setShort(8, 11) @@ -171,6 +194,7 @@ internal fun setNpcDefaultData(type: NpcType, view: Buffer) { view.setShort(68, 24624) view.setShort(70, -29446) } + NpcType.GrassAssassin -> view.setShort(8, 4) NpcType.PoisonLily -> view.setShort(8, 4) NpcType.NanoDragon -> view.setShort(8, 3) @@ -187,6 +211,7 @@ internal fun setNpcDefaultData(type: NpcType, view: Buffer) { view.setShort(68, -11088) view.setShort(70, -29445) } + NpcType.Dubchic -> { view.setShort(4, 2626) view.setShort(8, 7) @@ -194,6 +219,7 @@ internal fun setNpcDefaultData(type: NpcType, view: Buffer) { view.setShort(68, -25504) view.setShort(70, 561) } + NpcType.Gilchic -> { view.setShort(4, -1) view.setShort(8, 6) @@ -202,6 +228,7 @@ internal fun setNpcDefaultData(type: NpcType, view: Buffer) { view.setShort(68, 5968) view.setShort(70, -29444) } + NpcType.Garanz -> { view.setShort(4, -1) view.setShort(8, 7) @@ -209,6 +236,7 @@ internal fun setNpcDefaultData(type: NpcType, view: Buffer) { view.setShort(68, -26128) view.setShort(70, 561) } + NpcType.SinowBeat -> { view.setShort(4, -1) view.setShort(8, 6) @@ -216,6 +244,7 @@ internal fun setNpcDefaultData(type: NpcType, view: Buffer) { view.setShort(68, 6288) view.setShort(70, -29444) } + NpcType.SinowGold -> { view.setShort(4, -1) view.setShort(8, 6) @@ -224,6 +253,7 @@ internal fun setNpcDefaultData(type: NpcType, view: Buffer) { view.setShort(68, 8048) view.setShort(70, -29444) } + NpcType.Canadine -> { view.setShort(4, -1) view.setShort(8, 6) @@ -231,6 +261,7 @@ internal fun setNpcDefaultData(type: NpcType, view: Buffer) { view.setShort(68, 8496) view.setShort(70, -29444) } + NpcType.Canane -> { view.setShort(4, -1) view.setShort(8, 6) @@ -238,6 +269,7 @@ internal fun setNpcDefaultData(type: NpcType, view: Buffer) { view.setShort(68, 7264) view.setShort(70, -29444) } + NpcType.Dubswitch -> { view.setShort(4, 2626) view.setShort(8, 7) @@ -245,6 +277,7 @@ internal fun setNpcDefaultData(type: NpcType, view: Buffer) { view.setShort(68, -16736) view.setShort(70, 561) } + NpcType.VolOptPart1 -> view.setShort(6, 35) // Clone count NpcType.VolOptPart2 -> view.setShort(8, 13) NpcType.DarkFalz -> { @@ -254,6 +287,7 @@ internal fun setNpcDefaultData(type: NpcType, view: Buffer) { view.setShort(68, 25008) view.setShort(70, -29446) } + NpcType.Hildebear2 -> { view.setShort(4, -1) view.setShort(8, 1) @@ -262,6 +296,7 @@ internal fun setNpcDefaultData(type: NpcType, view: Buffer) { view.setShort(68, -7296) view.setShort(70, -32759) } + NpcType.RagRappy2 -> { view.setShort(4, -1) view.setShort(8, 1) @@ -269,6 +304,7 @@ internal fun setNpcDefaultData(type: NpcType, view: Buffer) { view.setShort(68, -7296) view.setShort(70, 8201) } + NpcType.Monest2 -> { view.setShort(4, -1) view.setShort(8, 1) @@ -278,6 +314,7 @@ internal fun setNpcDefaultData(type: NpcType, view: Buffer) { view.setShort(68, -7296) view.setShort(70, -12252) } + NpcType.PoisonLily2 -> { view.setShort(4, -1) view.setShort(8, 1) @@ -285,6 +322,7 @@ internal fun setNpcDefaultData(type: NpcType, view: Buffer) { view.setShort(68, -7296) view.setShort(70, 8230) } + NpcType.GrassAssassin2 -> { view.setShort(4, -1) view.setShort(8, 1) @@ -292,6 +330,7 @@ internal fun setNpcDefaultData(type: NpcType, view: Buffer) { view.setShort(68, -7296) view.setShort(70, 24595) } + NpcType.Dimenian2 -> { view.setShort(4, -1) view.setShort(8, 1) @@ -299,6 +338,7 @@ internal fun setNpcDefaultData(type: NpcType, view: Buffer) { view.setShort(68, -7296) view.setShort(70, -4086) } + NpcType.LaDimenian2 -> { view.setShort(4, -1) view.setShort(8, 1) @@ -306,6 +346,7 @@ internal fun setNpcDefaultData(type: NpcType, view: Buffer) { view.setShort(68, -7296) view.setShort(70, -16367) } + NpcType.SoDimenian2 -> { view.setShort(4, -1) view.setShort(8, 1) @@ -314,6 +355,7 @@ internal fun setNpcDefaultData(type: NpcType, view: Buffer) { view.setShort(68, -7040) view.setShort(70, 8372) } + NpcType.DarkBelra2 -> { view.setShort(4, -1) view.setShort(8, 1) @@ -321,6 +363,7 @@ internal fun setNpcDefaultData(type: NpcType, view: Buffer) { view.setShort(68, -7040) view.setShort(70, -32642) } + NpcType.BarbaRay -> { view.setShort(4, -1) view.setShort(8, 14) @@ -328,6 +371,7 @@ internal fun setNpcDefaultData(type: NpcType, view: Buffer) { view.setShort(68, -2688) view.setShort(70, 24576) } + NpcType.SavageWolf2 -> { view.setShort(4, 11785) view.setShort(8, 3) @@ -335,6 +379,7 @@ internal fun setNpcDefaultData(type: NpcType, view: Buffer) { view.setShort(68, -7552) view.setShort(70, 8250) } + NpcType.BarbarousWolf2 -> { view.setShort(4, -1) view.setShort(8, 3) @@ -342,6 +387,7 @@ internal fun setNpcDefaultData(type: NpcType, view: Buffer) { view.setShort(68, -7552) view.setShort(70, -32650) } + NpcType.PanArms2 -> { view.setShort(4, -1) view.setShort(8, 3) @@ -349,6 +395,7 @@ internal fun setNpcDefaultData(type: NpcType, view: Buffer) { view.setShort(68, -7552) view.setShort(70, -16251) } + NpcType.Dubchic2 -> { view.setShort(4, -1) view.setShort(8, 3) @@ -356,6 +403,7 @@ internal fun setNpcDefaultData(type: NpcType, view: Buffer) { view.setShort(68, -7552) view.setShort(70, 16513) } + NpcType.Gilchic2 -> { view.setShort(4, -1) view.setShort(8, 3) @@ -363,6 +411,7 @@ internal fun setNpcDefaultData(type: NpcType, view: Buffer) { view.setShort(68, -7552) view.setShort(70, -32654) } + NpcType.Garanz2 -> { view.setShort(4, 27144) view.setShort(8, 3) @@ -370,6 +419,7 @@ internal fun setNpcDefaultData(type: NpcType, view: Buffer) { view.setShort(68, -7552) view.setShort(70, 24683) } + NpcType.Dubswitch2 -> { view.setShort(4, -1) view.setShort(8, 3) @@ -377,6 +427,7 @@ internal fun setNpcDefaultData(type: NpcType, view: Buffer) { view.setShort(68, -7552) view.setShort(70, -20363) } + NpcType.Delsaber2 -> { view.setShort(4, -1) view.setShort(8, 3) @@ -384,6 +435,7 @@ internal fun setNpcDefaultData(type: NpcType, view: Buffer) { view.setShort(68, -7552) view.setShort(70, 16513) } + NpcType.ChaosSorcerer2 -> { view.setShort(4, -1) view.setShort(8, 4) @@ -391,6 +443,7 @@ internal fun setNpcDefaultData(type: NpcType, view: Buffer) { view.setShort(68, -7296) view.setShort(70, -7963) } + NpcType.GolDragon -> { view.setShort(4, -19963) view.setShort(8, 15) @@ -398,6 +451,7 @@ internal fun setNpcDefaultData(type: NpcType, view: Buffer) { view.setShort(68, -3712) view.setShort(70, 16555) } + NpcType.SinowBerill -> { view.setShort(4, -1) view.setShort(8, 5) @@ -407,6 +461,7 @@ internal fun setNpcDefaultData(type: NpcType, view: Buffer) { view.setShort(68, -7552) view.setShort(70, 47) } + NpcType.SinowSpigell -> { view.setShort(4, 880) view.setShort(8, 5) @@ -414,6 +469,7 @@ internal fun setNpcDefaultData(type: NpcType, view: Buffer) { view.setShort(68, -11584) view.setShort(70, 1163) } + NpcType.Merillia -> { view.setShort(4, -1) view.setShort(8, 6) @@ -423,6 +479,7 @@ internal fun setNpcDefaultData(type: NpcType, view: Buffer) { view.setShort(68, -7552) view.setShort(70, 16456) } + NpcType.Meriltas -> { view.setShort(4, -1) view.setShort(8, 6) @@ -432,6 +489,7 @@ internal fun setNpcDefaultData(type: NpcType, view: Buffer) { view.setShort(68, -7552) view.setShort(70, 16456) } + NpcType.Mericarol -> { view.setShort(4, -1) view.setShort(8, 17) @@ -441,6 +499,7 @@ internal fun setNpcDefaultData(type: NpcType, view: Buffer) { view.setShort(68, -7552) view.setShort(70, -4016) } + NpcType.Mericus -> { view.setShort(4, 32010) view.setShort(8, 17) @@ -450,6 +509,7 @@ internal fun setNpcDefaultData(type: NpcType, view: Buffer) { view.setShort(68, -7552) view.setShort(70, 28762) } + NpcType.Merikle -> { view.setShort(4, 32010) view.setShort(8, 17) @@ -459,6 +519,7 @@ internal fun setNpcDefaultData(type: NpcType, view: Buffer) { view.setShort(68, -7552) view.setShort(70, -3997) } + NpcType.UlGibbon -> { view.setShort(4, -1) view.setShort(8, 6) @@ -467,6 +528,7 @@ internal fun setNpcDefaultData(type: NpcType, view: Buffer) { view.setShort(68, -7552) view.setShort(70, 20554) } + NpcType.ZolGibbon -> { view.setShort(4, -1) view.setShort(8, 5) @@ -474,6 +536,7 @@ internal fun setNpcDefaultData(type: NpcType, view: Buffer) { view.setShort(68, -26688) view.setShort(70, 565) } + NpcType.Gibbles -> { view.setShort(4, -1) view.setShort(8, 17) @@ -483,6 +546,7 @@ internal fun setNpcDefaultData(type: NpcType, view: Buffer) { view.setShort(68, -7552) view.setShort(70, -12210) } + NpcType.Gee -> { view.setShort(4, -1) view.setShort(8, 6) @@ -490,6 +554,7 @@ internal fun setNpcDefaultData(type: NpcType, view: Buffer) { view.setShort(68, -7552) view.setShort(70, -4024) } + NpcType.GiGue -> { view.setShort(4, 32010) view.setShort(8, 17) @@ -499,6 +564,7 @@ internal fun setNpcDefaultData(type: NpcType, view: Buffer) { view.setShort(68, -7552) view.setShort(70, 12374) } + NpcType.IllGill -> { view.setShort(4, 4104) view.setShort(8, 17) @@ -506,6 +572,7 @@ internal fun setNpcDefaultData(type: NpcType, view: Buffer) { view.setShort(68, -7552) view.setShort(70, 24639) } + NpcType.DelLily -> { view.setShort(4, -1) view.setShort(8, 17) @@ -513,6 +580,7 @@ internal fun setNpcDefaultData(type: NpcType, view: Buffer) { view.setShort(68, -26576) view.setShort(70, 564) } + NpcType.Epsilon -> { view.setShort(4, -1) view.setShort(8, 17) @@ -520,6 +588,7 @@ internal fun setNpcDefaultData(type: NpcType, view: Buffer) { view.setShort(68, -4224) view.setShort(70, -16379) } + NpcType.GalGryphon -> { view.setShort(4, 1173) view.setShort(8, 11) @@ -527,6 +596,7 @@ internal fun setNpcDefaultData(type: NpcType, view: Buffer) { view.setShort(68, 24624) view.setShort(70, -29446) } + NpcType.Deldepth -> { view.setShort(4, 2095) view.setShort(8, 11) @@ -534,6 +604,7 @@ internal fun setNpcDefaultData(type: NpcType, view: Buffer) { view.setShort(68, -26352) view.setShort(70, 665) } + NpcType.Delbiter -> { view.setShort(4, -1) view.setShort(8, 11) @@ -545,6 +616,7 @@ internal fun setNpcDefaultData(type: NpcType, view: Buffer) { view.setShort(68, -7552) view.setShort(70, 24639) } + NpcType.Dolmolm -> { view.setShort(4, -1) view.setShort(8, 11) @@ -553,6 +625,7 @@ internal fun setNpcDefaultData(type: NpcType, view: Buffer) { view.setShort(68, -7552) view.setShort(70, 12370) } + NpcType.Dolmdarl -> { view.setShort(4, -1) view.setShort(8, 11) @@ -561,6 +634,7 @@ internal fun setNpcDefaultData(type: NpcType, view: Buffer) { view.setShort(68, -7552) view.setShort(70, -4001) } + NpcType.Morfos -> { view.setShort(4, 1993) view.setShort(8, 11) @@ -568,6 +642,7 @@ internal fun setNpcDefaultData(type: NpcType, view: Buffer) { view.setShort(68, -25424) view.setShort(70, 561) } + NpcType.Recobox -> { view.setShort(4, -1) view.setShort(8, 11) @@ -575,6 +650,7 @@ internal fun setNpcDefaultData(type: NpcType, view: Buffer) { view.setShort(68, -26160) view.setShort(70, 686) } + NpcType.SinowZoa -> { view.setShort(4, 2634) view.setShort(8, 11) @@ -583,6 +659,7 @@ internal fun setNpcDefaultData(type: NpcType, view: Buffer) { view.setShort(68, -19488) view.setShort(70, 665) } + NpcType.SinowZele -> { view.setShort(4, 2634) view.setShort(8, 11) @@ -590,6 +667,7 @@ internal fun setNpcDefaultData(type: NpcType, view: Buffer) { view.setShort(68, -25152) view.setShort(70, 665) } + NpcType.OlgaFlow -> { view.setShort(4, -1) view.setShort(8, 13) @@ -597,6 +675,7 @@ internal fun setNpcDefaultData(type: NpcType, view: Buffer) { view.setShort(68, -4480) view.setShort(70, -28572) } + NpcType.SandRappy -> { view.setShort(4, -1) view.setShort(8, 5) @@ -604,6 +683,7 @@ internal fun setNpcDefaultData(type: NpcType, view: Buffer) { view.setShort(68, -27344) view.setShort(70, 616) } + NpcType.DelRappy -> { view.setShort(4, -1) view.setShort(8, 3) @@ -611,6 +691,7 @@ internal fun setNpcDefaultData(type: NpcType, view: Buffer) { view.setShort(68, -17168) view.setShort(70, 410) } + NpcType.Astark -> { view.setShort(4, -1) view.setShort(8, 5) @@ -618,6 +699,7 @@ internal fun setNpcDefaultData(type: NpcType, view: Buffer) { view.setShort(68, -26896) view.setShort(70, 616) } + NpcType.SatelliteLizard -> { view.setShort(4, -1) view.setShort(8, 5) @@ -625,6 +707,7 @@ internal fun setNpcDefaultData(type: NpcType, view: Buffer) { view.setShort(68, -27088) view.setShort(70, 616) } + NpcType.Yowie -> { view.setShort(4, -1) view.setShort(8, 5) @@ -633,6 +716,7 @@ internal fun setNpcDefaultData(type: NpcType, view: Buffer) { view.setShort(68, -25872) view.setShort(70, 616) } + NpcType.MerissaA -> { view.setShort(4, -1) view.setShort(8, 7) @@ -640,6 +724,7 @@ internal fun setNpcDefaultData(type: NpcType, view: Buffer) { view.setShort(68, -16512) view.setShort(70, 542) } + NpcType.MerissaAA -> { view.setShort(4, -1) view.setShort(8, 8) @@ -647,6 +732,7 @@ internal fun setNpcDefaultData(type: NpcType, view: Buffer) { view.setShort(68, -27328) view.setShort(70, 1230) } + NpcType.Girtablulu -> { view.setShort(4, -1) view.setShort(8, 7) @@ -654,6 +740,7 @@ internal fun setNpcDefaultData(type: NpcType, view: Buffer) { view.setShort(68, -26256) view.setShort(70, 459) } + NpcType.Zu -> { view.setShort(4, -1) view.setShort(8, 5) @@ -661,6 +748,7 @@ internal fun setNpcDefaultData(type: NpcType, view: Buffer) { view.setShort(68, -28304) view.setShort(70, 616) } + NpcType.Pazuzu -> { view.setShort(4, 937) view.setShort(8, 3) @@ -668,6 +756,7 @@ internal fun setNpcDefaultData(type: NpcType, view: Buffer) { view.setShort(68, -15216) view.setShort(70, 410) } + NpcType.Boota -> { view.setShort(4, -1) view.setShort(8, 5) @@ -675,6 +764,7 @@ internal fun setNpcDefaultData(type: NpcType, view: Buffer) { view.setShort(68, -27216) view.setShort(70, 616) } + NpcType.ZeBoota -> { view.setShort(4, -1) view.setShort(8, 5) @@ -682,6 +772,7 @@ internal fun setNpcDefaultData(type: NpcType, view: Buffer) { view.setShort(68, -20304) view.setShort(70, 616) } + NpcType.BaBoota -> { view.setShort(4, -1) view.setShort(8, 5) @@ -689,6 +780,7 @@ internal fun setNpcDefaultData(type: NpcType, view: Buffer) { view.setShort(68, -14800) view.setShort(70, 616) } + NpcType.Dorphon -> { view.setShort(4, 2308) view.setShort(8, 5) @@ -696,6 +788,7 @@ internal fun setNpcDefaultData(type: NpcType, view: Buffer) { view.setShort(68, -26480) view.setShort(70, 616) } + NpcType.DorphonEclair -> { view.setShort(4, 951) view.setShort(8, 3) @@ -703,6 +796,7 @@ internal fun setNpcDefaultData(type: NpcType, view: Buffer) { view.setShort(68, -30064) view.setShort(70, 410) } + NpcType.Goran -> { view.setShort(4, -1) view.setShort(8, 8) @@ -710,6 +804,7 @@ internal fun setNpcDefaultData(type: NpcType, view: Buffer) { view.setShort(68, -27216) view.setShort(70, 610) } + NpcType.PyroGoran -> { view.setShort(4, -1) view.setShort(8, 7) @@ -717,6 +812,7 @@ internal fun setNpcDefaultData(type: NpcType, view: Buffer) { view.setShort(68, -16384) view.setShort(70, 542) } + NpcType.GoranDetonator -> { view.setShort(4, -1) view.setShort(8, 7) @@ -724,6 +820,7 @@ internal fun setNpcDefaultData(type: NpcType, view: Buffer) { view.setShort(68, -16384) view.setShort(70, 542) } + NpcType.SaintMilion -> { view.setShort(4, 1297) view.setShort(6, 24) // Clone count @@ -732,6 +829,7 @@ internal fun setNpcDefaultData(type: NpcType, view: Buffer) { view.setShort(68, 28144) view.setShort(70, 673) } + NpcType.Shambertin -> { view.setShort(4, 1362) view.setShort(6, 24) // Clone count @@ -741,5 +839,7 @@ internal fun setNpcDefaultData(type: NpcType, view: Buffer) { view.setShort(68, 31280) view.setShort(70, 491) } + + else -> {} } } diff --git a/psolib/src/commonMain/kotlin/world/phantasmal/psolib/fileFormats/quest/QuestObjectDefaultData.kt b/psolib/src/commonMain/kotlin/world/phantasmal/psolib/fileFormats/quest/QuestObjectDefaultData.kt index d39f59e3..12dcd996 100644 --- a/psolib/src/commonMain/kotlin/world/phantasmal/psolib/fileFormats/quest/QuestObjectDefaultData.kt +++ b/psolib/src/commonMain/kotlin/world/phantasmal/psolib/fileFormats/quest/QuestObjectDefaultData.kt @@ -7,7 +7,6 @@ internal fun setObjectDefaultData(type: ObjectType, data: Buffer) { data.setFloat(44, 1f) // Scale y data.setFloat(48, 1f) // Scale z - @Suppress("NON_EXHAUSTIVE_WHEN") when (type) { ObjectType.PlayerSet -> { data.setShort(2, 2) @@ -15,18 +14,21 @@ internal fun setObjectDefaultData(type: ObjectType, data: Buffer) { data.setFloat(40, 0f) // Slot ID data.setInt(64, -1929687552) } + ObjectType.Particle -> { data.setShort(4, 5639) data.setShort(6, 10) data.setFloat(40, 38f) // Scale x data.setInt(64, 1351475840) } + ObjectType.Teleporter -> { data.setShort(2, 2) data.setShort(4, 90) data.setShort(6, 1) data.setInt(64, -1929650432) } + ObjectType.Warp -> { data.setShort(4, 1332) data.setShort(6, 4) @@ -36,11 +38,13 @@ internal fun setObjectDefaultData(type: ObjectType, data: Buffer) { data.setInt(52, 0) // Dst. rotation y data.setInt(64, -1929729040) } + ObjectType.LightCollision -> { data.setFloat(48, 0.5f) // Scale z data.setInt(56, 26112) data.setInt(64, -802624128) } + ObjectType.FogCollision -> { data.setShort(4, 2019) data.setShort(6, 10) @@ -48,12 +52,14 @@ internal fun setObjectDefaultData(type: ObjectType, data: Buffer) { data.setInt(52, 17) // Fog index no. data.setInt(64, 36780240) } + ObjectType.EventCollision -> { data.setShort(4, 2131) data.setShort(6, 8) data.setFloat(40, 30f) // Radius data.setInt(64, 71359776) } + ObjectType.ElementalTrap -> { data.setFloat(40, 0f) // Radius data.setFloat(44, 0f) // Scale y @@ -61,6 +67,7 @@ internal fun setObjectDefaultData(type: ObjectType, data: Buffer) { data.setInt(52, 100) // Damage data.setInt(60, 20) // Delay } + ObjectType.StatusTrap -> { data.setFloat(40, 0f) // Radius data.setFloat(44, 0f) // Scale y @@ -68,6 +75,7 @@ internal fun setObjectDefaultData(type: ObjectType, data: Buffer) { data.setInt(56, 17) // Subtype data.setInt(60, 20) // Delay } + ObjectType.HealTrap -> { data.setShort(4, 1566) data.setShort(6, 4) @@ -78,6 +86,7 @@ internal fun setObjectDefaultData(type: ObjectType, data: Buffer) { data.setInt(60, 60) // Delay data.setInt(64, -1929453936) } + ObjectType.LargeElementalTrap -> { data.setFloat(40, 0f) // Radus data.setFloat(44, 0f) // Scale y @@ -85,6 +94,7 @@ internal fun setObjectDefaultData(type: ObjectType, data: Buffer) { data.setInt(52, 200) // Damage data.setInt(60, 50) // Delay } + ObjectType.ObjRoomID -> { data.setShort(4, 1545) data.setShort(6, 1) @@ -94,23 +104,27 @@ internal fun setObjectDefaultData(type: ObjectType, data: Buffer) { data.setInt(56, 16384) data.setInt(64, -1929753600) } + ObjectType.ScriptCollision -> { data.setShort(4, 1771) data.setShort(6, 14) data.setFloat(40, 250.00009155273438f) // Radius data.setInt(64, -1929714224) } + ObjectType.HealRing -> { data.setFloat(40, 0f) // Scale x data.setFloat(44, 0f) // Scale y data.setFloat(48, 0f) // Scale z } + ObjectType.ItemLight -> { data.setShort(4, 1990) data.setShort(6, 8) data.setFloat(40, 3f) // Subtype data.setInt(64, 39205168) } + ObjectType.FogCollisionSW -> { data.setShort(4, 1550) data.setShort(6, 3) @@ -119,12 +133,14 @@ internal fun setObjectDefaultData(type: ObjectType, data: Buffer) { data.setInt(52, 17) // Fog index no. data.setInt(64, -1929715680) } + ObjectType.BossTeleporter -> { data.setShort(4, 1555) data.setShort(6, 2) data.setInt(56, 31) data.setInt(64, -1929731696) } + ObjectType.ImageBoard -> { data.setShort(4, 384) data.setFloat(40, 0.5f) // Scale x @@ -132,12 +148,14 @@ internal fun setObjectDefaultData(type: ObjectType, data: Buffer) { data.setFloat(48, 1.000000238418579f) // Scale z data.setInt(64, 72261968) } + ObjectType.QuestWarp -> { data.setShort(4, 1555) data.setShort(6, 2) data.setInt(60, 1) data.setInt(64, -1929711344) } + ObjectType.BoxDetectObject -> { data.setShort(4, 1776) data.setShort(6, 5) @@ -146,6 +164,7 @@ internal fun setObjectDefaultData(type: ObjectType, data: Buffer) { data.setInt(60, 3) data.setInt(64, -1929661840) } + ObjectType.SymbolChatObject -> { data.setShort(4, 1792) data.setShort(6, 5) @@ -154,6 +173,7 @@ internal fun setObjectDefaultData(type: ObjectType, data: Buffer) { data.setInt(60, 30) data.setInt(64, -1929667104) } + ObjectType.TouchPlateObject -> { data.setShort(4, 26119) data.setShort(6, 11) @@ -161,6 +181,7 @@ internal fun setObjectDefaultData(type: ObjectType, data: Buffer) { data.setInt(56, -1) data.setInt(64, -259264640) } + ObjectType.TargetableObject -> { data.setShort(4, -23032) data.setShort(6, 2) @@ -169,6 +190,7 @@ internal fun setObjectDefaultData(type: ObjectType, data: Buffer) { data.setInt(52, 2) // HP data.setInt(64, -2144604032) } + ObjectType.EffectObject -> { data.setShort(4, 25863) data.setShort(6, 11) @@ -177,41 +199,49 @@ internal fun setObjectDefaultData(type: ObjectType, data: Buffer) { data.setInt(60, 1) data.setInt(64, -259199104) } + ObjectType.CountDownObject -> { data.setShort(4, -31992) data.setShort(6, 1) data.setInt(64, -252124544) } + ObjectType.UnknownItem39 -> { data.setShort(4, 30728) data.setShort(6, 1) data.setInt(56, 65641) data.setInt(64, 821944960) } + ObjectType.MenuActivation -> { data.setShort(2, 2) data.setInt(64, -1929688192) } + ObjectType.TelepipeLocation -> { data.setShort(2, 2) data.setShort(4, 13) data.setInt(64, -1929685680) } + ObjectType.BGMCollision -> { data.setShort(2, 512) data.setShort(4, 11520) data.setFloat(40, 500f) // Scale x data.setInt(64, -265293952) } + ObjectType.MainRagolTeleporter -> { data.setShort(4, 1879) data.setFloat(40, 1.000000238418579f) // Scale x data.setInt(64, -1929740080) } + ObjectType.LobbyTeleporter -> { data.setShort(2, 512) data.setInt(64, -1073221760) } + ObjectType.PrincipalWarp -> { data.setShort(2, 2) data.setShort(4, 9) @@ -222,54 +252,64 @@ internal fun setObjectDefaultData(type: ObjectType, data: Buffer) { data.setInt(56, 65536) data.setInt(64, -1929686608) } + ObjectType.ShopDoor -> { data.setShort(2, 2) data.setShort(4, 18) data.setFloat(40, 3.0000007152557373f) // Scale x data.setInt(64, -1929684656) } + ObjectType.HuntersGuildDoor -> { data.setShort(2, 2) data.setShort(4, 20) data.setFloat(40, 3.0000007152557373f) // Scale x data.setInt(64, -1929684240) } + ObjectType.TeleporterDoor -> { data.setShort(2, 2) data.setShort(4, 21) data.setFloat(40, 3.0000007152557373f) // Scale x data.setInt(64, -1929683984) } + ObjectType.MedicalCenterDoor -> { data.setShort(2, 2) data.setShort(4, 17) data.setFloat(40, 3.0000007152557373f) // Scale x data.setInt(64, -1929684912) } + ObjectType.Sonic -> { data.setShort(2, 2) data.setInt(52, 1) // Model data.setInt(64, 79126144) } + ObjectType.WelcomeBoard -> { data.setShort(4, 23304) data.setInt(64, -1864965504) } + ObjectType.LobbyScreenDoor -> { data.setShort(2, 2) data.setShort(4, 25) data.setInt(64, 118136448) } + ObjectType.LabTeleporterDoor -> { data.setShort(4, 16904) data.setInt(64, -266145920) } + ObjectType.Pioneer2InvisibleTouchplate -> { data.setShort(2, 2) data.setShort(4, 27) data.setFloat(40, 150f) // Radius data.setInt(64, 70133216) } + ObjectType.ForestDoor -> { data.setShort(4, 1581) data.setShort(6, 1) @@ -278,6 +318,7 @@ internal fun setObjectDefaultData(type: ObjectType, data: Buffer) { data.setFloat(48, 0.9999954700469971f) // Scale z data.setInt(64, -1929757168) } + ObjectType.ForestSwitch -> { data.setShort(4, 1543) data.setShort(6, 1) @@ -287,6 +328,7 @@ internal fun setObjectDefaultData(type: ObjectType, data: Buffer) { data.setInt(60, 7) // Color data.setInt(64, -1929750128) } + ObjectType.LaserFence -> { data.setShort(4, 1542) data.setShort(6, 1) @@ -295,6 +337,7 @@ internal fun setObjectDefaultData(type: ObjectType, data: Buffer) { data.setFloat(48, 0.9999961853027344f) // Scale z data.setInt(64, -1929756272) } + ObjectType.LaserSquareFence -> { data.setShort(4, 1468) data.setShort(6, 3) @@ -302,6 +345,7 @@ internal fun setObjectDefaultData(type: ObjectType, data: Buffer) { data.setInt(60, 1) // Model data.setInt(64, -1929753744) } + ObjectType.ForestLaserFenceSwitch -> { data.setShort(4, 1478) data.setShort(6, 3) @@ -309,6 +353,7 @@ internal fun setObjectDefaultData(type: ObjectType, data: Buffer) { data.setInt(60, 3) // Color data.setInt(64, -1929696640) } + ObjectType.LightRays -> { data.setShort(4, 2369) data.setShort(6, 8) @@ -316,11 +361,13 @@ internal fun setObjectDefaultData(type: ObjectType, data: Buffer) { data.setFloat(48, 20f) // Scale z data.setInt(64, 74962176) } + ObjectType.BlueButterfly -> { data.setShort(4, 2048) data.setShort(6, 2) data.setInt(64, -1929720176) } + ObjectType.Probe -> { data.setShort(2, 2) data.setShort(4, 80) @@ -330,6 +377,7 @@ internal fun setObjectDefaultData(type: ObjectType, data: Buffer) { data.setFloat(48, 0f) // Scale z data.setInt(64, -1929746928) } + ObjectType.RandomTypeBox1 -> { data.setShort(4, 1635) data.setShort(6, 2) @@ -339,6 +387,7 @@ internal fun setObjectDefaultData(type: ObjectType, data: Buffer) { data.setInt(56, 57344) data.setInt(64, -1929730096) } + ObjectType.ForestWeatherStation -> { data.setShort(2, 2) data.setShort(4, 147) @@ -349,6 +398,7 @@ internal fun setObjectDefaultData(type: ObjectType, data: Buffer) { data.setInt(56, 2816) data.setInt(64, -1929753232) } + ObjectType.ForestConsole -> { data.setShort(4, 1331) data.setShort(6, 2) @@ -356,6 +406,7 @@ internal fun setObjectDefaultData(type: ObjectType, data: Buffer) { data.setInt(52, 1050) // Script label data.setInt(64, -1929750848) } + ObjectType.BlackSlidingDoor -> { data.setShort(4, 1625) data.setShort(6, 1) @@ -364,12 +415,14 @@ internal fun setObjectDefaultData(type: ObjectType, data: Buffer) { data.setInt(52, 101) // Switch no. data.setInt(64, -1929721536) } + ObjectType.RicoMessagePod -> { data.setShort(4, 1654) data.setShort(6, 13) data.setInt(60, 259) data.setInt(64, -1929755408) } + ObjectType.EnergyBarrier -> { data.setShort(4, 1342) data.setShort(6, 1) @@ -379,6 +432,7 @@ internal fun setObjectDefaultData(type: ObjectType, data: Buffer) { data.setInt(52, -1) // Door ID data.setInt(64, -1929730384) } + ObjectType.ForestRisingBridge -> { data.setShort(2, 2) data.setShort(4, 145) @@ -390,27 +444,32 @@ internal fun setObjectDefaultData(type: ObjectType, data: Buffer) { data.setInt(56, 2816) data.setInt(64, -1929751104) } + ObjectType.SwitchNoneDoor -> { data.setShort(4, 1495) data.setShort(6, 2) data.setFloat(40, 0f) // Scale x data.setInt(64, -1929748688) } + ObjectType.EnemyBoxGrey -> { data.setShort(4, 1525) data.setShort(6, 5) data.setInt(64, -1929732576) } + ObjectType.FixedTypeBox -> { data.setFloat(40, 0f) // Full random data.setFloat(48, 0f) // Fixed item } + ObjectType.EmptyTypeBox -> { data.setShort(2, 512) data.setShort(4, 32001) data.setShort(6, 6) data.setInt(64, -1862737024) } + ObjectType.LaserFenceEx -> { data.setShort(4, 28167) data.setShort(6, 11) @@ -419,6 +478,7 @@ internal fun setObjectDefaultData(type: ObjectType, data: Buffer) { data.setFloat(48, 25f) // Collision depth data.setInt(64, -526061696) } + ObjectType.FloorPanel1 -> { data.setShort(4, 1556) data.setShort(6, 4) @@ -427,6 +487,7 @@ internal fun setObjectDefaultData(type: ObjectType, data: Buffer) { data.setFloat(48, 0.9990062713623047f) // Scale z data.setInt(64, -1929651776) } + ObjectType.Caves4ButtonDoor -> { data.setShort(2, 2) data.setShort(4, 542) @@ -434,6 +495,7 @@ internal fun setObjectDefaultData(type: ObjectType, data: Buffer) { data.setInt(52, -1) // Door ID data.setInt(64, -1929625056) } + ObjectType.CavesNormalDoor -> { data.setShort(4, 1464) data.setShort(6, 4) @@ -444,46 +506,54 @@ internal fun setObjectDefaultData(type: ObjectType, data: Buffer) { data.setInt(56, 3) data.setInt(64, -1929741968) } + ObjectType.CavesSmashingPillar -> { data.setShort(4, 1559) data.setShort(6, 3) data.setInt(64, -1929691696) } + ObjectType.CavesSign1 -> { data.setShort(2, 512) data.setShort(4, -23552) data.setShort(6, 5) data.setInt(64, 814801792) } + ObjectType.CavesSign2 -> { data.setShort(2, 512) data.setShort(4, 26624) data.setShort(6, 5) data.setInt(64, 1884021632) } + ObjectType.CavesSign3 -> { data.setShort(2, 512) data.setShort(4, -18944) data.setShort(6, 5) data.setInt(64, 280945536) } + ObjectType.HexagonalTank -> { data.setShort(2, 2) data.setShort(4, 740) data.setShort(6, 5) data.setInt(64, -1334188928) } + ObjectType.BrownPlatform -> { data.setShort(2, 2) data.setShort(4, 559) data.setShort(6, 5) data.setInt(64, 276292480) } + ObjectType.FloatingDragonfly -> { data.setShort(4, 1517) data.setShort(6, 6) data.setInt(64, 37198656) } + ObjectType.CavesSwitchDoor -> { data.setShort(4, 1450) data.setShort(6, 3) @@ -491,32 +561,38 @@ internal fun setObjectDefaultData(type: ObjectType, data: Buffer) { data.setInt(56, 3) data.setInt(64, -1929685552) } + ObjectType.RobotRechargeStation -> { data.setShort(2, 512) data.setShort(4, -29952) data.setShort(6, 5) data.setInt(64, 275440512) } + ObjectType.CavesCakeShop -> { data.setShort(4, -6905) data.setShort(6, 5) data.setInt(64, -1067911552) } + ObjectType.Caves1SmallRedRock -> { data.setShort(4, 1965) data.setShort(6, 3) data.setInt(64, -1929677200) } + ObjectType.Caves1MediumRedRock -> { data.setShort(4, 1968) data.setShort(6, 3) data.setInt(64, -1929811824) } + ObjectType.Caves1LargeRedRock -> { data.setShort(4, 1552) data.setShort(6, 3) data.setInt(64, -1929724048) } + ObjectType.Caves2SmallRock1 -> { data.setShort(4, 1563) data.setShort(6, 4) @@ -524,6 +600,7 @@ internal fun setObjectDefaultData(type: ObjectType, data: Buffer) { data.setFloat(44, 1.000000238418579f) // Scale y data.setInt(64, -1929710640) } + ObjectType.Caves2MediumRock1 -> { data.setShort(2, 2) data.setShort(4, 569) @@ -534,16 +611,19 @@ internal fun setObjectDefaultData(type: ObjectType, data: Buffer) { data.setInt(60, 40) data.setInt(64, -1929628992) } + ObjectType.Caves2LargeRock1 -> { data.setShort(4, 2051) data.setShort(6, 4) data.setInt(64, -1929711328) } + ObjectType.Caves2SmallRock2 -> { data.setShort(4, 1961) data.setShort(6, 4) data.setInt(64, -1929702432) } + ObjectType.Caves2MediumRock2 -> { data.setShort(4, 1550) data.setShort(6, 4) @@ -552,48 +632,57 @@ internal fun setObjectDefaultData(type: ObjectType, data: Buffer) { data.setFloat(48, 0.9990062713623047f) // Scale z data.setInt(64, -1929604016) } + ObjectType.Caves2LargeRock2 -> { data.setShort(4, 1517) data.setShort(6, 4) data.setInt(64, -1929749872) } + ObjectType.Caves3SmallRock -> { data.setShort(4, 1722) data.setShort(6, 5) data.setInt(64, -1929727392) } + ObjectType.Caves3MediumRock -> { data.setShort(4, 1580) data.setShort(6, 5) data.setInt(64, -1929674160) } + ObjectType.Caves3LargeRock -> { data.setShort(4, -18425) data.setShort(6, 5) data.setInt(64, 279115136) } + ObjectType.FloorPanel2 -> { data.setShort(4, 23560) data.setShort(6, 1) data.setInt(60, 65537) data.setInt(64, 16310912) } + ObjectType.DestructableRockCaves1 -> { data.setShort(2, 512) data.setShort(4, 23553) data.setShort(6, 3) data.setInt(64, 10347136) } + ObjectType.DestructableRockCaves2 -> { data.setShort(4, 2006) data.setShort(6, 4) data.setInt(64, -1929719824) } + ObjectType.DestructableRockCaves3 -> { data.setShort(4, 1617) data.setShort(6, 5) data.setInt(64, -1929688384) } + ObjectType.MinesDoor -> { data.setShort(2, 2) data.setShort(4, 715) @@ -602,35 +691,41 @@ internal fun setObjectDefaultData(type: ObjectType, data: Buffer) { data.setInt(56, 3) // Switch total data.setInt(64, -1929747520) } + ObjectType.FloorPanel3 -> { data.setShort(4, 23304) data.setShort(6, 3) data.setInt(56, -1) // Stay active data.setInt(64, 1889001856) } + ObjectType.MinesSwitchDoor -> { data.setShort(4, 1887) data.setShort(6, 6) data.setInt(52, -1) // Door ID data.setInt(64, -1929658608) } + ObjectType.LargeCryoTube -> { data.setShort(2, 512) data.setShort(4, 28161) data.setShort(6, 6) data.setInt(64, -1329536128) } + ObjectType.ComputerLikeCalus -> { data.setShort(4, 2006) data.setShort(6, 6) data.setFloat(44, 0f) // Scale y data.setInt(64, -1929695952) } + ObjectType.GreenScreenOpeningAndClosing -> { data.setShort(4, 4866) data.setShort(6, 6) data.setInt(64, 281469568) } + ObjectType.FloatingRobot -> { data.setShort(4, 1533) data.setShort(6, 6) @@ -638,6 +733,7 @@ internal fun setObjectDefaultData(type: ObjectType, data: Buffer) { data.setFloat(44, 20.000011444091797f) // Scale y data.setInt(64, -1929732496) } + ObjectType.MinesLargeFlashingCrate -> { data.setShort(4, 1546) data.setShort(6, 6) @@ -645,16 +741,19 @@ internal fun setObjectDefaultData(type: ObjectType, data: Buffer) { data.setFloat(44, 0f) // Scale y data.setInt(64, -1929727328) } + ObjectType.RuinsSeal -> { data.setShort(4, 1550) data.setShort(6, 13) data.setInt(64, -1929755808) } + ObjectType.RuinsTeleporter -> { data.setShort(4, 1483) data.setShort(6, 8) data.setInt(64, -1929759760) } + ObjectType.RuinsWarpSiteToSite -> { data.setShort(4, 2017) data.setShort(6, 8) @@ -663,11 +762,13 @@ internal fun setObjectDefaultData(type: ObjectType, data: Buffer) { data.setFloat(48, 0f) // Destination z data.setInt(64, 39228864) } + ObjectType.RuinsSwitch -> { data.setShort(4, 1910) data.setShort(6, 8) data.setInt(64, -1929687952) } + ObjectType.FloorPanel4 -> { data.setShort(4, 1660) data.setShort(6, 9) @@ -676,27 +777,32 @@ internal fun setObjectDefaultData(type: ObjectType, data: Buffer) { data.setFloat(48, 0f) // Scale z data.setInt(64, -1929749648) } + ObjectType.Ruins1Door -> { data.setFloat(44, 0f) // Scale y data.setFloat(48, 0f) // Scale z data.setInt(52, -1) // Door ID } + ObjectType.Ruins3Door -> { data.setFloat(44, 0f) // Scale y data.setFloat(48, 0f) // Scale z data.setInt(52, -1) // Door ID } + ObjectType.Ruins2Door -> { data.setFloat(44, 0f) // Scale y data.setFloat(48, 0f) // Scale z data.setInt(52, -1) // Door ID } + ObjectType.Ruins11ButtonDoor -> { data.setShort(4, 31751) data.setShort(6, 8) data.setInt(52, -1) // Door ID data.setInt(64, -1874992256) } + ObjectType.Ruins21ButtonDoor -> { data.setShort(2, 2) data.setShort(4, 1371) @@ -704,6 +810,7 @@ internal fun setObjectDefaultData(type: ObjectType, data: Buffer) { data.setInt(52, -1) // Door ID data.setInt(64, -1929663984) } + ObjectType.Ruins4ButtonDoor -> { data.setShort(4, 1480) data.setShort(6, 8) @@ -711,42 +818,49 @@ internal fun setObjectDefaultData(type: ObjectType, data: Buffer) { data.setInt(60, -1) // Stay active data.setInt(64, -1929730336) } + ObjectType.Ruins2ButtonDoor -> { data.setShort(4, 1909) data.setShort(6, 8) data.setInt(52, -1) // Door ID data.setInt(64, -1929493856) } + ObjectType.RuinsFenceSwitch -> { data.setShort(4, 1899) data.setShort(6, 8) data.setInt(56, 1) // Color data.setInt(64, -1929707856) } + ObjectType.RuinsLaserFence4x2 -> { data.setFloat(40, 0f) // Scale x data.setFloat(44, 0f) // Scale y data.setFloat(48, 0f) // Scale z data.setInt(56, 1) // Color } + ObjectType.RuinsLaserFence6x2 -> { data.setFloat(40, 0f) // Scale x data.setFloat(44, 0f) // Scale y data.setFloat(48, 0f) // Scale z data.setInt(56, 1) // Color } + ObjectType.RuinsLaserFence4x4 -> { data.setShort(4, 2064) data.setShort(6, 9) data.setInt(56, 1) // Color data.setInt(64, -1929548960) } + ObjectType.RuinsPillarTrap -> { data.setFloat(40, -25f) // Scale x data.setFloat(44, 100f) // Scale y data.setFloat(48, 15f) // Scale z data.setInt(60, 60) } + ObjectType.PopupTrapNoTech -> { data.setShort(2, 2) data.setShort(4, 1432) @@ -754,11 +868,13 @@ internal fun setObjectDefaultData(type: ObjectType, data: Buffer) { data.setFloat(40, 1.000000238418579f) // Radius data.setInt(64, -1929630640) } + ObjectType.RuinsCrystal -> { data.setFloat(40, 0f) // Scale x data.setFloat(44, 0f) // Scale y data.setFloat(48, 0f) // Scale z } + ObjectType.Monument -> { data.setShort(4, 1557) data.setShort(6, 4) @@ -767,68 +883,81 @@ internal fun setObjectDefaultData(type: ObjectType, data: Buffer) { data.setFloat(48, 1.000000238418579f) // Scale z data.setInt(64, -1929727536) } + ObjectType.RuinsRock1 -> { data.setFloat(40, 0f) // Scale x data.setFloat(44, 0f) // Scale y data.setFloat(48, 0f) // Scale z } + ObjectType.RuinsRock2 -> { data.setFloat(40, 0f) // Scale x data.setFloat(44, 0f) // Scale y data.setFloat(48, 0f) // Scale z } + ObjectType.RuinsRock3 -> { data.setFloat(40, 0f) // Scale x data.setFloat(44, 0f) // Scale y data.setFloat(48, 0f) // Scale z } + ObjectType.RuinsRock4 -> { data.setFloat(40, 0f) // Scale x data.setFloat(44, 0f) // Scale y data.setFloat(48, 0f) // Scale z } + ObjectType.RuinsRock5 -> { data.setFloat(40, 0f) // Scale x data.setFloat(44, 0f) // Scale y data.setFloat(48, 0f) // Scale z } + ObjectType.RuinsRock6 -> { data.setFloat(40, 0f) // Scale x data.setFloat(44, 0f) // Scale y data.setFloat(48, 0f) // Scale z } + ObjectType.RuinsRock7 -> { data.setShort(4, 1548) data.setShort(6, 8) data.setInt(64, -1929795888) } + ObjectType.Poison -> { data.setShort(4, 1983) data.setShort(6, 13) data.setInt(52, 8) // Switch mode data.setInt(64, -1929757344) } + ObjectType.FixedBoxTypeRuins -> { data.setFloat(40, 0f) // Full random data.setFloat(44, 0f) // Random item data.setFloat(48, 0f) // Fixed item } + ObjectType.RandomBoxTypeRuins -> { data.setFloat(40, 0f) // Scale x data.setFloat(44, 0f) // Scale y data.setFloat(48, 0f) // Scale z } + ObjectType.EnemyTypeBoxYellow -> { data.setShort(4, 2043) data.setShort(6, 10) data.setInt(64, 39241584) } + ObjectType.DestructableRock -> { data.setShort(2, 2) data.setShort(4, 1517) data.setShort(6, 9) data.setInt(64, -1929579040) } + ObjectType.PopupTrapsTechs -> { data.setFloat(40, 50f) // Radius data.setFloat(44, 0f) // HP @@ -836,67 +965,80 @@ internal fun setObjectDefaultData(type: ObjectType, data: Buffer) { data.setInt(56, -1) // Action data.setInt(60, 2) // Tech } + ObjectType.GreyWallLow -> { data.setShort(4, 2095) data.setShort(6, 17) data.setInt(64, 206220336) } + ObjectType.SpaceshipDoor -> { data.setShort(4, -18681) data.setShort(6, 18) data.setInt(64, -254418560) } + ObjectType.GreyWallHigh -> { data.setShort(4, 28424) data.setShort(6, 3) data.setInt(64, 548332416) } + ObjectType.TempleNormalDoor -> { data.setShort(4, 1638) data.setShort(6, 17) data.setInt(64, 1356460160) } + ObjectType.BreakableWallWallButUnbreakable -> { data.setShort(4, 21505) data.setShort(6, 2) data.setInt(64, -521801600) } + ObjectType.BrokenCylinderAndRubble -> { data.setShort(4, 30984) data.setShort(6, 1) data.setInt(64, 1077601152) } + ObjectType.ThreeBrokenWallPiecesOnFloor -> { data.setShort(4, -28409) data.setShort(6, 1) data.setInt(64, -255991424) } + ObjectType.HighBrickCylinder -> { data.setShort(4, -19448) data.setShort(6, 1) data.setInt(64, -1597054592) } + ObjectType.LyingCylinder -> { data.setShort(4, 16136) data.setShort(6, 2) data.setInt(64, -1069292672) } + ObjectType.BrickConeWithFlatTop -> { data.setShort(4, 4361) data.setShort(6, 1) data.setInt(64, -1864506752) } + ObjectType.BreakableTempleWall -> { data.setShort(4, -18936) data.setShort(6, 1) data.setInt(64, -1873157504) } + ObjectType.TempleMapDetect -> { data.setShort(4, 17416) data.setShort(6, 14) data.setFloat(40, 0f) // Scale x data.setInt(64, -262672512) } + ObjectType.SmallBrownBrickRisingBridge -> { data.setShort(4, -24824) data.setShort(6, 1) @@ -904,6 +1046,7 @@ internal fun setObjectDefaultData(type: ObjectType, data: Buffer) { data.setFloat(44, 0.5f) // Scale y data.setInt(64, -1601638272) } + ObjectType.LongRisingBridgeWithPinkHighEdges -> { data.setShort(4, 32264) data.setShort(6, 1) @@ -911,12 +1054,14 @@ internal fun setObjectDefaultData(type: ObjectType, data: Buffer) { data.setFloat(44, 0.29999998211860657f) // Scale y data.setInt(64, -265231488) } + ObjectType.FourSwitchTempleDoor -> { data.setShort(4, 1289) data.setShort(6, 1) data.setInt(56, 1) data.setInt(64, -254680448) } + ObjectType.FourButtonSpaceshipDoor -> { data.setShort(4, 23048) data.setShort(6, 3) @@ -924,18 +1069,21 @@ internal fun setObjectDefaultData(type: ObjectType, data: Buffer) { data.setInt(60, -1) data.setInt(64, 1620500864) } + ObjectType.ItemBoxCca -> { data.setShort(2, 512) data.setShort(4, 22019) data.setShort(6, 5) data.setInt(64, -1599409280) } + ObjectType.TeleporterEp2 -> { data.setShort(4, 2110) data.setShort(6, 16) data.setInt(60, 1) data.setInt(64, 71221728) } + ObjectType.CcaDoor -> { data.setShort(2, 512) data.setShort(4, 21763) @@ -943,6 +1091,7 @@ internal fun setObjectDefaultData(type: ObjectType, data: Buffer) { data.setInt(56, 1) // Switch amount data.setInt(64, -2136345728) } + ObjectType.SpecialBoxCca -> { data.setShort(2, 512) data.setShort(4, -15612) @@ -951,41 +1100,49 @@ internal fun setObjectDefaultData(type: ObjectType, data: Buffer) { data.setFloat(48, 0f) // Scale z data.setInt(64, -1871846784) } + ObjectType.BigCcaDoor -> { data.setShort(4, 2118) data.setShort(6, 5) data.setInt(64, 70753104) } + ObjectType.BigCcaDoorSwitch -> { data.setShort(4, 2111) data.setShort(6, 6) data.setInt(64, 71229312) } + ObjectType.LittleRock -> { data.setShort(4, 2126) data.setShort(6, 16) data.setInt(64, 71221728) } + ObjectType.Little3StoneWall -> { data.setShort(4, 2129) data.setShort(6, 16) data.setInt(64, 71227424) } + ObjectType.Medium3StoneWall -> { data.setShort(4, 2129) data.setShort(6, 8) data.setInt(64, 71259376) } + ObjectType.SpiderPlant -> { data.setShort(4, 2129) data.setShort(6, 16) data.setInt(64, 71231904) } + ObjectType.OrangeBird -> { data.setShort(4, 2086) data.setShort(6, 9) data.setInt(64, 70881472) } + ObjectType.Saw -> { data.setShort(4, 29959) data.setShort(6, 11) @@ -994,6 +1151,7 @@ internal fun setObjectDefaultData(type: ObjectType, data: Buffer) { data.setInt(60, 1) // Switch flag data.setInt(64, 547417984) } + ObjectType.LaserDetect -> { data.setShort(4, 32519) data.setShort(6, 11) @@ -1001,21 +1159,25 @@ internal fun setObjectDefaultData(type: ObjectType, data: Buffer) { data.setInt(60, 2) data.setInt(64, 1082650496) } + ObjectType.UnknownItem529 -> { data.setShort(4, 2139) data.setShort(6, 6) data.setInt(64, 71348128) } + ObjectType.UnknownItem530 -> { data.setShort(4, 2046) data.setShort(6, 9) data.setInt(64, 206357088) } + ObjectType.Seagull -> { data.setShort(4, 2120) data.setShort(6, 8) data.setInt(64, 71256080) } + ObjectType.Fish -> { data.setShort(4, -29432) data.setShort(6, 9) @@ -1024,22 +1186,26 @@ internal fun setObjectDefaultData(type: ObjectType, data: Buffer) { data.setFloat(48, 11f) // Scale z data.setInt(64, 73579344) } + ObjectType.SeabedDoorWithBlueEdges -> { data.setShort(4, 29959) data.setShort(6, 11) data.setInt(56, 1) // Switch amount data.setInt(64, 1611984768) } + ObjectType.SeabedDoorAlwaysOpenNonTriggerable -> { data.setShort(4, 1884) data.setShort(6, 11) data.setInt(64, 45365632) } + ObjectType.LittleCryotube -> { data.setShort(4, 2093) data.setShort(6, 17) data.setInt(64, 206221408) } + ObjectType.WideGlassWallBreakable -> { data.setShort(2, 2048) data.setShort(4, 25863) @@ -1047,6 +1213,7 @@ internal fun setObjectDefaultData(type: ObjectType, data: Buffer) { data.setInt(56, 1) data.setInt(64, 8712064) } + ObjectType.CaptureTrap -> { data.setShort(4, 2123) data.setShort(6, 5) @@ -1055,62 +1222,74 @@ internal fun setObjectDefaultData(type: ObjectType, data: Buffer) { data.setInt(60, 3) data.setInt(64, 37000640) } + ObjectType.VRLink -> { data.setShort(4, 21256) data.setShort(6, 3) data.setInt(64, -1068113280) } + ObjectType.WarpInBarbaRayRoom -> { data.setShort(4, 17416) data.setShort(6, 14) data.setInt(60, 1) data.setInt(64, -266342528) } + ObjectType.GeeNest -> { data.setShort(4, 28169) data.setShort(6, 6) data.setInt(60, -2) data.setInt(64, 8053376) } + ObjectType.LabComputerConsole -> { data.setShort(4, 14600) data.setInt(64, 1075834752) } + ObjectType.LabComputerConsoleGreenScreen -> { data.setShort(2, 512) data.setShort(4, 11776) data.setInt(64, -1334123904) } + ObjectType.ChairYellowPillow -> { data.setShort(2, 512) data.setShort(4, 13312) data.setInt(64, -253697408) } + ObjectType.OrangeWallWithHoleInMiddle -> { data.setShort(2, 512) data.setShort(4, 13056) data.setInt(64, -1327635840) } + ObjectType.GreyWallWithHoleInMiddle -> { data.setShort(2, 512) data.setShort(4, 8192) data.setInt(64, 1080287872) } + ObjectType.LongTable -> { data.setShort(2, 2) data.setShort(4, 45) data.setInt(64, 78812400) } + ObjectType.GBAStation -> { data.setShort(4, -31232) data.setInt(64, -532547200) } + ObjectType.TalkLinkToSupport -> { data.setShort(4, 21768) data.setShort(6, 3) data.setFloat(40, 22f) // Scale x data.setInt(64, -1067195776) } + ObjectType.InstaWarp -> { data.setShort(4, 2085) data.setShort(6, 17) @@ -1119,6 +1298,7 @@ internal fun setObjectDefaultData(type: ObjectType, data: Buffer) { data.setInt(56, 4) data.setInt(64, 206217872) } + ObjectType.LabInvisibleObject -> { data.setShort(2, 512) data.setShort(4, 1536) @@ -1126,10 +1306,12 @@ internal fun setObjectDefaultData(type: ObjectType, data: Buffer) { data.setInt(56, 1) data.setInt(64, 1611394944) } + ObjectType.LabGlassWindowDoor -> { data.setShort(4, 23048) data.setInt(64, 272035712) } + ObjectType.LabCeilingWarp -> { data.setShort(2, 2) data.setShort(4, 24) @@ -1138,6 +1320,7 @@ internal fun setObjectDefaultData(type: ObjectType, data: Buffer) { data.setInt(60, 2) data.setInt(64, 79130448) } + ObjectType.Cactus -> { data.setShort(4, 1495) data.setShort(6, 1) @@ -1145,63 +1328,75 @@ internal fun setObjectDefaultData(type: ObjectType, data: Buffer) { data.setFloat(44, 0.5f) // Scale y data.setInt(64, 75997776) } + ObjectType.BigBrownRock -> { data.setShort(4, 1480) data.setShort(6, 1) data.setInt(52, 2) // Model data.setInt(64, 77443856) } + ObjectType.BreakableBrownRock -> { data.setShort(4, 1486) data.setShort(6, 2) data.setInt(64, 77425824) } + ObjectType.PoisonPlant -> { data.setShort(4, 1412) data.setShort(6, 6) data.setInt(64, 37198464) } + ObjectType.OozingDesertPlant -> { data.setShort(4, 1409) data.setShort(6, 6) data.setInt(64, 37197792) } + ObjectType.UnknownItem901 -> { data.setShort(4, 1476) data.setShort(6, 6) data.setInt(64, 125843920) } + ObjectType.BigBlackRocks -> { data.setShort(4, 1488) data.setShort(6, 5) data.setInt(52, 1) // Model data.setInt(64, 53452336) } + ObjectType.FallingRock -> { data.setShort(4, 1579) data.setShort(6, 8) data.setInt(64, 36923424) } + ObjectType.DesertPlantHasCollision -> { data.setShort(4, 1278) data.setShort(6, 7) data.setInt(64, 42538928) } + ObjectType.DesertFixedTypeBoxBreakableCrystals -> { data.setShort(2, 2) data.setShort(4, 1308) data.setShort(6, 8) data.setInt(64, 36805664) } + ObjectType.UnknownItem910 -> { data.setShort(4, 1309) data.setShort(6, 6) } + ObjectType.BeeHive -> { data.setShort(4, 1269) data.setShort(6, 7) data.setInt(64, 42531632) } + ObjectType.Heat -> { data.setShort(4, 1246) data.setShort(6, 6) @@ -1213,10 +1408,13 @@ internal fun setObjectDefaultData(type: ObjectType, data: Buffer) { data.setInt(60, 5) data.setInt(64, 26818944) } + ObjectType.UnknownItem961 -> { data.setShort(4, 1322) data.setShort(6, 9) data.setInt(64, 207524384) } + + else -> {} } } diff --git a/psoserv/build.gradle.kts b/psoserv/build.gradle.kts index c760a964..c6e8a84a 100644 --- a/psoserv/build.gradle.kts +++ b/psoserv/build.gradle.kts @@ -11,7 +11,7 @@ plugins { version = "0.0.1" /** Source code generated by the build script goes here. */ -val generatedSrc = File(buildDir, "generated-src/main/kotlin") +val generatedSrc = layout.buildDirectory.get().asFile.resolve("generated-src/main/kotlin") kotlin { sourceSets { @@ -25,19 +25,21 @@ val generateVersionInfo by tasks.registering { group = "code generation" val packageName = "world.phantasmal.psoserv" - val outputFile = File(generatedSrc, "${packageName.replace('.', '/')}/VersionInfo.kt") + val outputFile = generatedSrc.resolve("${packageName.replace('.', '/')}/VersionInfo.kt") inputs.property("version", version) outputs.file(outputFile) doLast { - outputFile.writeText(""" + outputFile.writeText( + """ package $packageName object VersionInfo { val version: String = "$version" } - """.trimIndent()) + """.trimIndent() + ) } } @@ -46,7 +48,7 @@ tasks.withType().configureEach { } val mainClassFqn = "world.phantasmal.psoserv.MainKt" -val nativeAgentOutputDir = File(buildDir, "agent-output") +val nativeAgentOutputDir = layout.buildDirectory.get().asFile.resolve("agent-output") application { mainClass.set(mainClassFqn) diff --git a/settings.gradle.kts b/settings.gradle.kts index 28069460..b55c16ee 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -1,3 +1,7 @@ +plugins { + id("org.gradle.toolchains.foojay-resolver-convention") version "0.8.0" +} + rootProject.name = "phantasmal-world" include( diff --git a/test-utils/src/jsMain/kotlin/world/phantasmal/testUtils/TestUtils.kt b/test-utils/src/jsMain/kotlin/world/phantasmal/testUtils/TestUtils.kt index f60ce819..4b8dd22f 100644 --- a/test-utils/src/jsMain/kotlin/world/phantasmal/testUtils/TestUtils.kt +++ b/test-utils/src/jsMain/kotlin/world/phantasmal/testUtils/TestUtils.kt @@ -4,8 +4,14 @@ import kotlinx.coroutines.DelicateCoroutinesApi import kotlinx.coroutines.GlobalScope import kotlinx.coroutines.promise -internal actual fun testAsync(block: suspend () -> Unit): dynamic = +// We need to return the promise here while still letting the type checker think we're not returning +// anything, i.e. returning Unit. The Mocha JS test framework needs this promise to be able to wait +// for test completion. This is a giant hack, and at this point we should probably switch to using +// the kotlinx-coroutines-test library. +internal actual fun testAsync(block: suspend () -> Unit): Unit = + @Suppress("UnsafeCastFromDynamic") @OptIn(DelicateCoroutinesApi::class) - GlobalScope.promise { block() } + GlobalScope.promise { block() }.asDynamic() +// KJS is relatively slow, so we don't execute the slow tests on KJS. internal actual fun canExecuteSlowTests(): Boolean = false diff --git a/web/assembly-worker/build.gradle.kts b/web/assembly-worker/build.gradle.kts index ffc66c2b..cdc58b83 100644 --- a/web/assembly-worker/build.gradle.kts +++ b/web/assembly-worker/build.gradle.kts @@ -4,16 +4,20 @@ plugins { kotlin { js { - compilations.configureEach { - languageSettings.optIn("kotlinx.serialization.ExperimentalSerializationApi") - } - binaries.executable() } -} -dependencies { - api(project(":web:shared")) + sourceSets { + getByName("jsMain") { + dependencies { + api(project(":web:shared")) + } + } - testImplementation(project(":test-utils")) + getByName("jsTest") { + dependencies { + implementation(project(":test-utils")) + } + } + } } diff --git a/web/assembly-worker/src/main/kotlin/world/phantasmal/web/assemblyWorker/AsmAnalyser.kt b/web/assembly-worker/src/jsMain/kotlin/world/phantasmal/web/assemblyWorker/AsmAnalyser.kt similarity index 99% rename from web/assembly-worker/src/main/kotlin/world/phantasmal/web/assemblyWorker/AsmAnalyser.kt rename to web/assembly-worker/src/jsMain/kotlin/world/phantasmal/web/assemblyWorker/AsmAnalyser.kt index e3ccfe5c..9638f560 100644 --- a/web/assembly-worker/src/main/kotlin/world/phantasmal/web/assemblyWorker/AsmAnalyser.kt +++ b/web/assembly-worker/src/jsMain/kotlin/world/phantasmal/web/assemblyWorker/AsmAnalyser.kt @@ -379,6 +379,8 @@ class AsmAnalyser { ) } } + + else -> {} } return Response.GetHighlights(requestId, results) diff --git a/web/assembly-worker/src/main/kotlin/world/phantasmal/web/assemblyWorker/AsmServer.kt b/web/assembly-worker/src/jsMain/kotlin/world/phantasmal/web/assemblyWorker/AsmServer.kt similarity index 100% rename from web/assembly-worker/src/main/kotlin/world/phantasmal/web/assemblyWorker/AsmServer.kt rename to web/assembly-worker/src/jsMain/kotlin/world/phantasmal/web/assemblyWorker/AsmServer.kt diff --git a/web/assembly-worker/src/main/kotlin/world/phantasmal/web/assemblyWorker/Main.kt b/web/assembly-worker/src/jsMain/kotlin/world/phantasmal/web/assemblyWorker/Main.kt similarity index 100% rename from web/assembly-worker/src/main/kotlin/world/phantasmal/web/assemblyWorker/Main.kt rename to web/assembly-worker/src/jsMain/kotlin/world/phantasmal/web/assemblyWorker/Main.kt diff --git a/web/assembly-worker/src/test/kotlin/world/phantasmal/web/assemblyWorker/AsmAnalyserTests.kt b/web/assembly-worker/src/jsTest/kotlin/world/phantasmal/web/assemblyWorker/AsmAnalyserTests.kt similarity index 100% rename from web/assembly-worker/src/test/kotlin/world/phantasmal/web/assemblyWorker/AsmAnalyserTests.kt rename to web/assembly-worker/src/jsTest/kotlin/world/phantasmal/web/assemblyWorker/AsmAnalyserTests.kt diff --git a/web/assembly-worker/src/test/kotlin/world/phantasmal/web/assemblyWorker/test/AssemblyWorkerTestSuite.kt b/web/assembly-worker/src/jsTest/kotlin/world/phantasmal/web/assemblyWorker/test/AssemblyWorkerTestSuite.kt similarity index 100% rename from web/assembly-worker/src/test/kotlin/world/phantasmal/web/assemblyWorker/test/AssemblyWorkerTestSuite.kt rename to web/assembly-worker/src/jsTest/kotlin/world/phantasmal/web/assemblyWorker/test/AssemblyWorkerTestSuite.kt diff --git a/web/assembly-worker/src/test/kotlin/world/phantasmal/web/assemblyWorker/test/MessagesAssertions.kt b/web/assembly-worker/src/jsTest/kotlin/world/phantasmal/web/assemblyWorker/test/MessagesAssertions.kt similarity index 100% rename from web/assembly-worker/src/test/kotlin/world/phantasmal/web/assemblyWorker/test/MessagesAssertions.kt rename to web/assembly-worker/src/jsTest/kotlin/world/phantasmal/web/assemblyWorker/test/MessagesAssertions.kt diff --git a/web/assets-generation/build.gradle.kts b/web/assets-generation/build.gradle.kts index 407ae4ef..3bc7688a 100644 --- a/web/assets-generation/build.gradle.kts +++ b/web/assets-generation/build.gradle.kts @@ -15,7 +15,7 @@ dependencies { } tasks.register("generateAssets") { - val outputFile = File(buildDir, "generatedAssets") + val outputFile = layout.buildDirectory.get().asFile.resolve("generatedAssets") outputs.dir(outputFile) classpath = sourceSets.main.get().runtimeClasspath diff --git a/web/build.gradle.kts b/web/build.gradle.kts index 007108f7..83fe885d 100644 --- a/web/build.gradle.kts +++ b/web/build.gradle.kts @@ -1,62 +1,70 @@ plugins { id("world.phantasmal.js") - kotlin("plugin.serialization") -} - -kotlin { - js { - compilations.configureEach { - languageSettings.optIn("kotlinx.serialization.ExperimentalSerializationApi") - } - browser { - commonWebpackConfig { - cssSupport.enabled = true - } - runTask { - devServer = devServer!!.copy( - open = false, - port = 1623, - ) - } - } - binaries.executable() - } } val ktorVersion: String by project.extra val serializationVersion: String by project.extra -dependencies { - implementation(project(":psolib")) - implementation(project(":webui")) - implementation(project(":web:shared")) +kotlin { + js { + browser { + commonWebpackConfig { + cssSupport { enabled.set(true) } + } + runTask { + devServerProperty.set( + devServerProperty.get().copy( + open = false, + port = 1623, + ) + ) + } + } + binaries.executable() + } - implementation("io.ktor:ktor-client-core:$ktorVersion") - implementation("io.ktor:ktor-client-serialization:$ktorVersion") - implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:$serializationVersion") - implementation("org.jetbrains.kotlinx:kotlinx-datetime:0.2.1") - implementation(npm("golden-layout", "^1.5.9")) - implementation(npm("monaco-editor", "0.26.1")) - implementation(npm("three", "^0.128.0")) - implementation(npm("javascript-lp-solver", "0.4.17")) + sourceSets { + getByName("jsMain") { + dependencies { + implementation(project(":psolib")) + implementation(project(":webui")) + implementation(project(":web:shared")) - implementation(devNpm("file-loader", "^6.2.0")) - implementation(devNpm("monaco-editor-webpack-plugin", "4.1.1")) + implementation("io.ktor:ktor-client-core:$ktorVersion") + implementation("io.ktor:ktor-client-content-negotiation:$ktorVersion") + implementation("io.ktor:ktor-serialization-kotlinx-json:$ktorVersion") + implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:$serializationVersion") + implementation("org.jetbrains.kotlinx:kotlinx-datetime:0.6.0") + implementation(npm("golden-layout", "^1.5.9")) + implementation(npm("monaco-editor", "0.26.1")) + implementation(npm("three", "^0.128.0")) + implementation(npm("javascript-lp-solver", "0.4.17")) - testImplementation(project(":test-utils")) + implementation(devNpm("file-loader", "^6.2.0")) + implementation(devNpm("monaco-editor-webpack-plugin", "4.1.1")) + } + } + + getByName("jsTest") { + dependencies { + implementation(project(":test-utils")) + } + } + } } val copyAssemblyWorkerJsTask = tasks.register("copyAssemblyWorkerJs") { dependsOn(":web:assembly-worker:build") - val workerDist = project(":web:assembly-worker").buildDir.resolve("distributions") + val workerDist = + project(":web:assembly-worker").layout.buildDirectory.get().asFile.resolve("dist/js/productionExecutable") from(workerDist.resolve("assembly-worker.js"), workerDist.resolve("assembly-worker.js.map")) - into(buildDir.resolve("processedResources/js/main")) + into(layout.buildDirectory.get().asFile.resolve("processedResources/js/main")) } // TODO: Figure out how to make this work with --continuous. -tasks.named("processResources").configure { dependsOn(copyAssemblyWorkerJsTask) } +tasks.named("jsProcessResources").configure { dependsOn(copyAssemblyWorkerJsTask) } tasks.register("generateAssets") { dependsOn(":web:assets-generation:generateAssets") diff --git a/web/src/main/kotlin/world/phantasmal/web/Main.kt b/web/src/jsMain/kotlin/world/phantasmal/web/Main.kt similarity index 94% rename from web/src/main/kotlin/world/phantasmal/web/Main.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/Main.kt index 84e57cc7..7a827ede 100644 --- a/web/src/main/kotlin/world/phantasmal/web/Main.kt +++ b/web/src/jsMain/kotlin/world/phantasmal/web/Main.kt @@ -1,8 +1,9 @@ package world.phantasmal.web import io.ktor.client.* -import io.ktor.client.features.json.* -import io.ktor.client.features.json.serializer.* +import io.ktor.client.plugins.contentnegotiation.* +import io.ktor.http.* +import io.ktor.serialization.kotlinx.* import kotlinx.browser.document import kotlinx.browser.window import kotlinx.coroutines.cancel @@ -49,8 +50,8 @@ private fun init(): Disposable { val rootElement = document.body!!.root() val httpClient = HttpClient { - install(JsonFeature) { - serializer = KotlinxSerializer(JSON_FORMAT) + install(ContentNegotiation) { + serialization(ContentType.Application.Json, JSON_FORMAT) } } disposer.add(disposable { httpClient.cancel() }) diff --git a/web/src/main/kotlin/world/phantasmal/web/application/Application.kt b/web/src/jsMain/kotlin/world/phantasmal/web/application/Application.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/application/Application.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/application/Application.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/application/controllers/MainContentController.kt b/web/src/jsMain/kotlin/world/phantasmal/web/application/controllers/MainContentController.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/application/controllers/MainContentController.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/application/controllers/MainContentController.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/application/controllers/NavigationController.kt b/web/src/jsMain/kotlin/world/phantasmal/web/application/controllers/NavigationController.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/application/controllers/NavigationController.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/application/controllers/NavigationController.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/application/widgets/ApplicationWidget.kt b/web/src/jsMain/kotlin/world/phantasmal/web/application/widgets/ApplicationWidget.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/application/widgets/ApplicationWidget.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/application/widgets/ApplicationWidget.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/application/widgets/MainContentWidget.kt b/web/src/jsMain/kotlin/world/phantasmal/web/application/widgets/MainContentWidget.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/application/widgets/MainContentWidget.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/application/widgets/MainContentWidget.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/application/widgets/NavigationWidget.kt b/web/src/jsMain/kotlin/world/phantasmal/web/application/widgets/NavigationWidget.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/application/widgets/NavigationWidget.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/application/widgets/NavigationWidget.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/application/widgets/PwToolButton.kt b/web/src/jsMain/kotlin/world/phantasmal/web/application/widgets/PwToolButton.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/application/widgets/PwToolButton.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/application/widgets/PwToolButton.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/core/PwTool.kt b/web/src/jsMain/kotlin/world/phantasmal/web/core/PwTool.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/core/PwTool.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/core/PwTool.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/core/PwToolType.kt b/web/src/jsMain/kotlin/world/phantasmal/web/core/PwToolType.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/core/PwToolType.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/core/PwToolType.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/core/ThreeExtensions.kt b/web/src/jsMain/kotlin/world/phantasmal/web/core/ThreeExtensions.kt similarity index 96% rename from web/src/main/kotlin/world/phantasmal/web/core/ThreeExtensions.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/core/ThreeExtensions.kt index 98e944cb..a0b479e6 100644 --- a/web/src/main/kotlin/world/phantasmal/web/core/ThreeExtensions.kt +++ b/web/src/jsMain/kotlin/world/phantasmal/web/core/ThreeExtensions.kt @@ -58,7 +58,7 @@ fun euler(x: Double, y: Double, z: Double): Euler = fun Euler.toQuaternion(): Quaternion = Quaternion().setFromEuler(this) -@OptIn(ExperimentalContracts::class) +@Suppress("NOTHING_TO_INLINE") inline fun Object3D.isMesh(): Boolean { contract { returns(true) implies (this@isMesh is Mesh) @@ -67,7 +67,7 @@ inline fun Object3D.isMesh(): Boolean { return unsafeCast().isMesh } -@OptIn(ExperimentalContracts::class) +@Suppress("NOTHING_TO_INLINE") inline fun Object3D.isSkinnedMesh(): Boolean { contract { returns(true) implies (this@isSkinnedMesh is SkinnedMesh) diff --git a/web/src/main/kotlin/world/phantasmal/web/core/commands/Command.kt b/web/src/jsMain/kotlin/world/phantasmal/web/core/commands/Command.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/core/commands/Command.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/core/commands/Command.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/core/controllers/DockController.kt b/web/src/jsMain/kotlin/world/phantasmal/web/core/controllers/DockController.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/core/controllers/DockController.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/core/controllers/DockController.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/core/controllers/PathAwareTabContainerController.kt b/web/src/jsMain/kotlin/world/phantasmal/web/core/controllers/PathAwareTabContainerController.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/core/controllers/PathAwareTabContainerController.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/core/controllers/PathAwareTabContainerController.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/core/dom/Dom.kt b/web/src/jsMain/kotlin/world/phantasmal/web/core/dom/Dom.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/core/dom/Dom.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/core/dom/Dom.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/core/files/FilesExtensions.kt b/web/src/jsMain/kotlin/world/phantasmal/web/core/files/FilesExtensions.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/core/files/FilesExtensions.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/core/files/FilesExtensions.kt diff --git a/web/src/jsMain/kotlin/world/phantasmal/web/core/loading/AssetLoader.kt b/web/src/jsMain/kotlin/world/phantasmal/web/core/loading/AssetLoader.kt new file mode 100644 index 00000000..404f3493 --- /dev/null +++ b/web/src/jsMain/kotlin/world/phantasmal/web/core/loading/AssetLoader.kt @@ -0,0 +1,43 @@ +package world.phantasmal.web.core.loading + +import io.ktor.client.* +import io.ktor.client.call.* +import io.ktor.client.request.* +import io.ktor.client.statement.* +import io.ktor.util.reflect.* +import io.ktor.utils.io.js.* +import kotlinx.browser.window +import org.khronos.webgl.ArrayBuffer + +class AssetLoader( + private val httpClient: HttpClient, + private val origin: String = window.location.origin, + private val basePath: String = defaultBasePath(), +) { + suspend inline fun load(path: String): T = + load(path, typeInfo()) + + suspend fun load(path: String, typeInfo: TypeInfo): T = + get(path).body(typeInfo) + + suspend fun loadArrayBuffer(path: String): ArrayBuffer = + get(path).bodyAsChannel().readRemaining().readArrayBuffer() + + private suspend fun get(path: String): HttpResponse = + httpClient.get("$origin$basePath$path") + + companion object { + fun defaultBasePath(): String { + val pathname = window.location.pathname + + val appPath = + if (pathname.endsWith(".html")) { + pathname.substring(0, pathname.lastIndexOf('/')) + } else { + pathname.removeSuffix("/") + } + + return "$appPath/assets" + } + } +} diff --git a/web/src/main/kotlin/world/phantasmal/web/questEditor/loading/LoadingCache.kt b/web/src/jsMain/kotlin/world/phantasmal/web/core/loading/LoadingCache.kt similarity index 95% rename from web/src/main/kotlin/world/phantasmal/web/questEditor/loading/LoadingCache.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/core/loading/LoadingCache.kt index c6910951..2be5ce82 100644 --- a/web/src/main/kotlin/world/phantasmal/web/questEditor/loading/LoadingCache.kt +++ b/web/src/jsMain/kotlin/world/phantasmal/web/core/loading/LoadingCache.kt @@ -1,4 +1,4 @@ -package world.phantasmal.web.questEditor.loading +package world.phantasmal.web.core.loading import kotlinx.coroutines.* import world.phantasmal.core.disposable.TrackedDisposable diff --git a/web/src/main/kotlin/world/phantasmal/web/core/models/Server.kt b/web/src/jsMain/kotlin/world/phantasmal/web/core/models/Server.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/core/models/Server.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/core/models/Server.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/core/observable/Emitter.kt b/web/src/jsMain/kotlin/world/phantasmal/web/core/observable/Emitter.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/core/observable/Emitter.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/core/observable/Emitter.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/core/observable/Observable.kt b/web/src/jsMain/kotlin/world/phantasmal/web/core/observable/Observable.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/core/observable/Observable.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/core/observable/Observable.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/core/observable/ObservableUtils.kt b/web/src/jsMain/kotlin/world/phantasmal/web/core/observable/ObservableUtils.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/core/observable/ObservableUtils.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/core/observable/ObservableUtils.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/core/persistence/KeyValueStore.kt b/web/src/jsMain/kotlin/world/phantasmal/web/core/persistence/KeyValueStore.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/core/persistence/KeyValueStore.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/core/persistence/KeyValueStore.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/core/persistence/Persister.kt b/web/src/jsMain/kotlin/world/phantasmal/web/core/persistence/Persister.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/core/persistence/Persister.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/core/persistence/Persister.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/core/rendering/DisposableThreeRenderer.kt b/web/src/jsMain/kotlin/world/phantasmal/web/core/rendering/DisposableThreeRenderer.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/core/rendering/DisposableThreeRenderer.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/core/rendering/DisposableThreeRenderer.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/core/rendering/DisposeObject3DResources.kt b/web/src/jsMain/kotlin/world/phantasmal/web/core/rendering/DisposeObject3DResources.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/core/rendering/DisposeObject3DResources.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/core/rendering/DisposeObject3DResources.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/core/rendering/InputManager.kt b/web/src/jsMain/kotlin/world/phantasmal/web/core/rendering/InputManager.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/core/rendering/InputManager.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/core/rendering/InputManager.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/core/rendering/OrbitalCameraInputManager.kt b/web/src/jsMain/kotlin/world/phantasmal/web/core/rendering/OrbitalCameraInputManager.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/core/rendering/OrbitalCameraInputManager.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/core/rendering/OrbitalCameraInputManager.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/core/rendering/RenderContext.kt b/web/src/jsMain/kotlin/world/phantasmal/web/core/rendering/RenderContext.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/core/rendering/RenderContext.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/core/rendering/RenderContext.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/core/rendering/Renderer.kt b/web/src/jsMain/kotlin/world/phantasmal/web/core/rendering/Renderer.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/core/rendering/Renderer.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/core/rendering/Renderer.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/core/rendering/conversion/Conversion.kt b/web/src/jsMain/kotlin/world/phantasmal/web/core/rendering/conversion/Conversion.kt similarity index 83% rename from web/src/main/kotlin/world/phantasmal/web/core/rendering/conversion/Conversion.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/core/rendering/conversion/Conversion.kt index d267bd96..3f0a6524 100644 --- a/web/src/main/kotlin/world/phantasmal/web/core/rendering/conversion/Conversion.kt +++ b/web/src/jsMain/kotlin/world/phantasmal/web/core/rendering/conversion/Conversion.kt @@ -11,10 +11,14 @@ fun vec2ToThree(v: Vec2): Vector2 = Vector2(v.x.toDouble(), v.y.toDouble()) fun vec3ToThree(v: Vec3): Vector3 = Vector3(v.x.toDouble(), v.y.toDouble(), v.z.toDouble()) +// Inline to generate easier to understand JS. +@Suppress("NOTHING_TO_INLINE") inline fun Vector3.setFromVec3(v: Vec3) { set(v.x.toDouble(), v.y.toDouble(), v.z.toDouble()) } +// Inline to generate easier to understand JS. +@Suppress("NOTHING_TO_INLINE") inline fun Euler.setFromVec3(v: Vec3) { set(v.x.toDouble(), v.y.toDouble(), v.z.toDouble()) } diff --git a/web/src/main/kotlin/world/phantasmal/web/core/rendering/conversion/MeshBuilder.kt b/web/src/jsMain/kotlin/world/phantasmal/web/core/rendering/conversion/MeshBuilder.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/core/rendering/conversion/MeshBuilder.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/core/rendering/conversion/MeshBuilder.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/core/rendering/conversion/NinjaAnimation.kt b/web/src/jsMain/kotlin/world/phantasmal/web/core/rendering/conversion/NinjaAnimation.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/core/rendering/conversion/NinjaAnimation.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/core/rendering/conversion/NinjaAnimation.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/core/rendering/conversion/NinjaGeometryConversion.kt b/web/src/jsMain/kotlin/world/phantasmal/web/core/rendering/conversion/NinjaGeometryConversion.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/core/rendering/conversion/NinjaGeometryConversion.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/core/rendering/conversion/NinjaGeometryConversion.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/core/rendering/conversion/XvrTextureConversion.kt b/web/src/jsMain/kotlin/world/phantasmal/web/core/rendering/conversion/XvrTextureConversion.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/core/rendering/conversion/XvrTextureConversion.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/core/rendering/conversion/XvrTextureConversion.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/core/stores/ItemDropStore.kt b/web/src/jsMain/kotlin/world/phantasmal/web/core/stores/ItemDropStore.kt similarity index 97% rename from web/src/main/kotlin/world/phantasmal/web/core/stores/ItemDropStore.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/core/stores/ItemDropStore.kt index 6201f5d3..291e9f68 100644 --- a/web/src/main/kotlin/world/phantasmal/web/core/stores/ItemDropStore.kt +++ b/web/src/jsMain/kotlin/world/phantasmal/web/core/stores/ItemDropStore.kt @@ -4,7 +4,7 @@ import world.phantasmal.core.unsafe.UnsafeMap import world.phantasmal.psolib.fileFormats.quest.NpcType import world.phantasmal.web.core.loading.AssetLoader import world.phantasmal.web.core.models.Server -import world.phantasmal.web.questEditor.loading.LoadingCache +import world.phantasmal.web.core.loading.LoadingCache import world.phantasmal.web.shared.dto.Difficulty import world.phantasmal.web.shared.dto.EnemyDrop import world.phantasmal.web.shared.dto.ItemType diff --git a/web/src/main/kotlin/world/phantasmal/web/core/stores/ItemTypeStore.kt b/web/src/jsMain/kotlin/world/phantasmal/web/core/stores/ItemTypeStore.kt similarity index 94% rename from web/src/main/kotlin/world/phantasmal/web/core/stores/ItemTypeStore.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/core/stores/ItemTypeStore.kt index 4a9f4cbb..b91ee656 100644 --- a/web/src/main/kotlin/world/phantasmal/web/core/stores/ItemTypeStore.kt +++ b/web/src/jsMain/kotlin/world/phantasmal/web/core/stores/ItemTypeStore.kt @@ -2,7 +2,7 @@ package world.phantasmal.web.core.stores import world.phantasmal.web.core.loading.AssetLoader import world.phantasmal.web.core.models.Server -import world.phantasmal.web.questEditor.loading.LoadingCache +import world.phantasmal.web.core.loading.LoadingCache import world.phantasmal.web.shared.dto.ItemType import world.phantasmal.webui.stores.Store diff --git a/web/src/main/kotlin/world/phantasmal/web/core/stores/UiStore.kt b/web/src/jsMain/kotlin/world/phantasmal/web/core/stores/UiStore.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/core/stores/UiStore.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/core/stores/UiStore.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/core/undo/Undo.kt b/web/src/jsMain/kotlin/world/phantasmal/web/core/undo/Undo.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/core/undo/Undo.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/core/undo/Undo.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/core/undo/UndoManager.kt b/web/src/jsMain/kotlin/world/phantasmal/web/core/undo/UndoManager.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/core/undo/UndoManager.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/core/undo/UndoManager.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/core/undo/UndoStack.kt b/web/src/jsMain/kotlin/world/phantasmal/web/core/undo/UndoStack.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/core/undo/UndoStack.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/core/undo/UndoStack.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/core/widgets/DockWidget.kt b/web/src/jsMain/kotlin/world/phantasmal/web/core/widgets/DockWidget.kt similarity index 97% rename from web/src/main/kotlin/world/phantasmal/web/core/widgets/DockWidget.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/core/widgets/DockWidget.kt index fc659c1c..4cd2bf1a 100644 --- a/web/src/main/kotlin/world/phantasmal/web/core/widgets/DockWidget.kt +++ b/web/src/jsMain/kotlin/world/phantasmal/web/core/widgets/DockWidget.kt @@ -91,9 +91,11 @@ class DockWidget( } catch (e: Exception) { logger.error(e) { """Couldn't instantiate widget with ID "$id".""" } - node.addChild(UnavailableWidget( - message = "Something went wrong while initializing this tab.", - )) + node.addChild( + UnavailableWidget( + message = "Something went wrong while initializing this tab.", + ) + ) } idToChildWidget[id] = widget @@ -239,7 +241,7 @@ class DockWidget( "component" -> { val id = - (item.unsafeCast()).componentName as String? + (item.unsafeCast()).componentName val title = item.title if (id == null || title == null) { @@ -257,7 +259,8 @@ class DockWidget( // Use #pw-root for higher specificity than the default GoldenLayout CSS. @Suppress("CssUnusedSymbol", "CssUnresolvedCustomProperty", "CssInvalidPropertyValue") // language=css - style(""" + style( + """ .pw-core-dock { overflow: hidden; } @@ -348,7 +351,8 @@ class DockWidget( box-sizing: border-box; background-color: hsla(0, 0%, 50%, 0.2); } - """.trimIndent()) + """.trimIndent() + ) } } } diff --git a/web/src/main/kotlin/world/phantasmal/web/core/widgets/RendererWidget.kt b/web/src/jsMain/kotlin/world/phantasmal/web/core/widgets/RendererWidget.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/core/widgets/RendererWidget.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/core/widgets/RendererWidget.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/core/widgets/UnavailableWidget.kt b/web/src/jsMain/kotlin/world/phantasmal/web/core/widgets/UnavailableWidget.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/core/widgets/UnavailableWidget.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/core/widgets/UnavailableWidget.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/externals/goldenLayout/goldenLayout.kt b/web/src/jsMain/kotlin/world/phantasmal/web/externals/goldenLayout/goldenLayout.kt similarity index 99% rename from web/src/main/kotlin/world/phantasmal/web/externals/goldenLayout/goldenLayout.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/externals/goldenLayout/goldenLayout.kt index 23436a21..bce2847b 100644 --- a/web/src/main/kotlin/world/phantasmal/web/externals/goldenLayout/goldenLayout.kt +++ b/web/src/jsMain/kotlin/world/phantasmal/web/externals/goldenLayout/goldenLayout.kt @@ -55,7 +55,7 @@ external class GoldenLayout(configuration: Config, container: Element = definedE } interface ComponentConfig : ItemConfig { - var componentName: String + var componentName: String? var componentState: Any? } diff --git a/web/src/main/kotlin/world/phantasmal/web/externals/javascriptLpSolver/javascriptLpSolver.kt b/web/src/jsMain/kotlin/world/phantasmal/web/externals/javascriptLpSolver/javascriptLpSolver.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/externals/javascriptLpSolver/javascriptLpSolver.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/externals/javascriptLpSolver/javascriptLpSolver.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/externals/monacoEditor/editor.kt b/web/src/jsMain/kotlin/world/phantasmal/web/externals/monacoEditor/editor.kt similarity index 88% rename from web/src/main/kotlin/world/phantasmal/web/externals/monacoEditor/editor.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/externals/monacoEditor/editor.kt index ad44a72e..cd6349bf 100644 --- a/web/src/main/kotlin/world/phantasmal/web/externals/monacoEditor/editor.kt +++ b/web/src/jsMain/kotlin/world/phantasmal/web/externals/monacoEditor/editor.kt @@ -45,9 +45,9 @@ external interface ITokenThemeRule { var fontStyle: String? } -external enum class ScrollType { - Smooth /* = 0 */, - Immediate /* = 1 */ +sealed external class ScrollType { + object Smooth : ScrollType /* = 0 */ + object Immediate : ScrollType /* = 1 */ } external interface IDimension { @@ -134,21 +134,21 @@ external interface IEditor { fun setModel(model: ITextModel?) } -external enum class MouseTargetType { - UNKNOWN /* = 0 */, - TEXTAREA /* = 1 */, - GUTTER_GLYPH_MARGIN /* = 2 */, - GUTTER_LINE_NUMBERS /* = 3 */, - GUTTER_LINE_DECORATIONS /* = 4 */, - GUTTER_VIEW_ZONE /* = 5 */, - CONTENT_TEXT /* = 6 */, - CONTENT_EMPTY /* = 7 */, - CONTENT_VIEW_ZONE /* = 8 */, - CONTENT_WIDGET /* = 9 */, - OVERVIEW_RULER /* = 10 */, - SCROLLBAR /* = 11 */, - OVERLAY_WIDGET /* = 12 */, - OUTSIDE_EDITOR /* = 13 */, +sealed external class MouseTargetType { + object UNKNOWN : MouseTargetType /* = 0 */ + object TEXTAREA : MouseTargetType /* = 1 */ + object GUTTER_GLYPH_MARGIN : MouseTargetType /* = 2 */ + object GUTTER_LINE_NUMBERS : MouseTargetType /* = 3 */ + object GUTTER_LINE_DECORATIONS : MouseTargetType /* = 4 */ + object GUTTER_VIEW_ZONE : MouseTargetType /* = 5 */ + object CONTENT_TEXT : MouseTargetType /* = 6 */ + object CONTENT_EMPTY : MouseTargetType /* = 7 */ + object CONTENT_VIEW_ZONE : MouseTargetType /* = 8 */ + object CONTENT_WIDGET : MouseTargetType /* = 9 */ + object OVERVIEW_RULER : MouseTargetType /* = 10 */ + object SCROLLBAR : MouseTargetType /* = 11 */ + object OVERLAY_WIDGET : MouseTargetType /* = 12 */ + object OUTSIDE_EDITOR : MouseTargetType /* = 13 */ } external interface IMouseTarget { @@ -460,26 +460,26 @@ external interface IColorizerElementOptions : IColorizerOptions { var mimeType: String? } -external enum class ScrollbarVisibility { - Auto /* = 1 */, - Hidden /* = 2 */, - Visible /* = 3 */ +sealed external class ScrollbarVisibility { + object Auto : ScrollbarVisibility /* = 1 */ + object Hidden : ScrollbarVisibility /* = 2 */ + object Visible : ScrollbarVisibility /* = 3 */ } external interface ThemeColor { var id: String } -external enum class OverviewRulerLane { - Left /* = 1 */, - Center /* = 2 */, - Right /* = 4 */, - Full /* = 7 */ +sealed external class OverviewRulerLane { + object Left : OverviewRulerLane /* = 1 */ + object Center : OverviewRulerLane /* = 2 */ + object Right : OverviewRulerLane /* = 4 */ + object Full : OverviewRulerLane /* = 7 */ } -external enum class MinimapPosition { - Inline /* = 1 */, - Gutter /* = 2 */ +sealed external class MinimapPosition { + object Inline : MinimapPosition /* = 1 */ + object Gutter : MinimapPosition /* = 2 */ } external interface IDecorationOptions { @@ -532,20 +532,20 @@ external interface IWordAtPosition { var endColumn: Number } -external enum class EndOfLinePreference { - TextDefined /* = 0 */, - LF /* = 1 */, - CRLF /* = 2 */ +sealed external class EndOfLinePreference { + object TextDefined : EndOfLinePreference /* = 0 */ + object LF : EndOfLinePreference /* = 1 */ + object CRLF : EndOfLinePreference /* = 2 */ } -external enum class DefaultEndOfLine { - LF /* = 1 */, - CRLF /* = 2 */ +sealed external class DefaultEndOfLine { + object LF : DefaultEndOfLine /* = 1 */ + object CRLF : DefaultEndOfLine /* = 2 */ } -external enum class EndOfLineSequence { - LF /* = 0 */, - CRLF /* = 1 */ +sealed external class EndOfLineSequence { + object LF : EndOfLineSequence /* = 0 */ + object CRLF : EndOfLineSequence /* = 1 */ } external interface ISingleEditOperation { @@ -589,11 +589,11 @@ open external class FindMatch { open var matches: Array? } -external enum class TrackedRangeStickiness { - AlwaysGrowsWhenTypingAtEdges /* = 0 */, - NeverGrowsWhenTypingAtEdges /* = 1 */, - GrowsOnlyWhenTypingBefore /* = 2 */, - GrowsOnlyWhenTypingAfter /* = 3 */ +sealed external class TrackedRangeStickiness { + object AlwaysGrowsWhenTypingAtEdges : TrackedRangeStickiness /* = 0 */ + object NeverGrowsWhenTypingAtEdges : TrackedRangeStickiness /* = 1 */ + object GrowsOnlyWhenTypingBefore : TrackedRangeStickiness /* = 2 */ + object GrowsOnlyWhenTypingAfter : TrackedRangeStickiness /* = 3 */ } external interface ITextModel { @@ -787,14 +787,14 @@ external interface IModelOptionsChangedEvent { var trimAutoWhitespace: Boolean } -external enum class CursorChangeReason { - NotSet /* = 0 */, - ContentFlush /* = 1 */, - RecoverFromMarkers /* = 2 */, - Explicit /* = 3 */, - Paste /* = 4 */, - Undo /* = 5 */, - Redo /* = 6 */ +sealed external class CursorChangeReason { + object NotSet : CursorChangeReason /* = 0 */ + object ContentFlush : CursorChangeReason /* = 1 */ + object RecoverFromMarkers : CursorChangeReason /* = 2 */ + object Explicit : CursorChangeReason /* = 3 */ + object Paste : CursorChangeReason /* = 4 */ + object Undo : CursorChangeReason /* = 5 */ + object Redo : CursorChangeReason /* = 6 */ } external interface ICursorPositionChangedEvent { @@ -814,16 +814,16 @@ external interface ICursorSelectionChangedEvent { var reason: CursorChangeReason } -external enum class AccessibilitySupport { - Unknown /* = 0 */, - Disabled /* = 1 */, - Enabled /* = 2 */ +sealed external class AccessibilitySupport { + object Unknown : AccessibilitySupport /* = 0 */ + object Disabled : AccessibilitySupport /* = 1 */ + object Enabled : AccessibilitySupport /* = 2 */ } -external enum class EditorAutoIndentStrategy { - None /* = 0 */, - Keep /* = 1 */, - Brackets /* = 2 */, - Advanced /* = 3 */, - Full /* = 4 */ +sealed external class EditorAutoIndentStrategy { + object None : EditorAutoIndentStrategy /* = 0 */ + object Keep : EditorAutoIndentStrategy /* = 1 */ + object Brackets : EditorAutoIndentStrategy /* = 2 */ + object Advanced : EditorAutoIndentStrategy /* = 3 */ + object Full : EditorAutoIndentStrategy /* = 4 */ } diff --git a/web/src/main/kotlin/world/phantasmal/web/externals/monacoEditor/editorExtensions.kt b/web/src/jsMain/kotlin/world/phantasmal/web/externals/monacoEditor/editorExtensions.kt similarity index 61% rename from web/src/main/kotlin/world/phantasmal/web/externals/monacoEditor/editorExtensions.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/externals/monacoEditor/editorExtensions.kt index 766bc7fd..e200643c 100644 --- a/web/src/main/kotlin/world/phantasmal/web/externals/monacoEditor/editorExtensions.kt +++ b/web/src/jsMain/kotlin/world/phantasmal/web/externals/monacoEditor/editorExtensions.kt @@ -1,8 +1,12 @@ package world.phantasmal.web.externals.monacoEditor +// Inline to generate easier to understand JS. +@Suppress("NOTHING_TO_INLINE") inline operator fun IColors.get(name: String): String = asDynamic()[name].unsafeCast() +// Inline to generate easier to understand JS. +@Suppress("NOTHING_TO_INLINE") inline operator fun IColors.set(name: String, value: String) { asDynamic()[name] = value } diff --git a/web/src/main/kotlin/world/phantasmal/web/externals/monacoEditor/languages.kt b/web/src/jsMain/kotlin/world/phantasmal/web/externals/monacoEditor/languages.kt similarity index 84% rename from web/src/main/kotlin/world/phantasmal/web/externals/monacoEditor/languages.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/externals/monacoEditor/languages.kt index 82f91bb6..bcb6746c 100644 --- a/web/src/main/kotlin/world/phantasmal/web/externals/monacoEditor/languages.kt +++ b/web/src/jsMain/kotlin/world/phantasmal/web/externals/monacoEditor/languages.kt @@ -152,11 +152,11 @@ external interface IAutoClosingPairConditional : IAutoClosingPair { set(value) = definedExternally } -external enum class IndentAction { - None /* = 0 */, - Indent /* = 1 */, - IndentOutdent /* = 2 */, - Outdent /* = 3 */ +sealed external class IndentAction { + object None : IndentAction /* = 0 */ + object Indent : IndentAction /* = 1 */ + object IndentOutdent : IndentAction /* = 2 */ + object Outdent : IndentAction /* = 3 */ } external interface EnterAction { @@ -271,50 +271,51 @@ external interface CompletionItemRanges { var replace: IRange } -external enum class CompletionItemKind { - Method /* = 0 */, - Function /* = 1 */, - Constructor /* = 2 */, - Field /* = 3 */, - Variable /* = 4 */, - Class /* = 5 */, - Struct /* = 6 */, - Interface /* = 7 */, - Module /* = 8 */, - Property /* = 9 */, - Event /* = 10 */, - Operator /* = 11 */, - Unit /* = 12 */, - Value /* = 13 */, - Constant /* = 14 */, - Enum /* = 15 */, - EnumMember /* = 16 */, - Keyword /* = 17 */, - Text /* = 18 */, - Color /* = 19 */, - File /* = 20 */, - Reference /* = 21 */, - Customcolor /* = 22 */, - Folder /* = 23 */, - TypeParameter /* = 24 */, - Snippet /* = 25 */, +sealed external class CompletionItemKind { + object Method : CompletionItemKind /* = 0 */ + object Function : CompletionItemKind /* = 1 */ + object Constructor : CompletionItemKind /* = 2 */ + object Field : CompletionItemKind /* = 3 */ + object Variable : CompletionItemKind /* = 4 */ + object Class : CompletionItemKind /* = 5 */ + object Struct : CompletionItemKind /* = 6 */ + object Interface : CompletionItemKind /* = 7 */ + object Module : CompletionItemKind /* = 8 */ + object Property : CompletionItemKind /* = 9 */ + object Event : CompletionItemKind /* = 10 */ + object Operator : CompletionItemKind /* = 11 */ + object Unit : CompletionItemKind /* = 12 */ + object Value : CompletionItemKind /* = 13 */ + object Constant : CompletionItemKind /* = 14 */ + object Enum : CompletionItemKind /* = 15 */ + object EnumMember : CompletionItemKind /* = 16 */ + object Keyword : CompletionItemKind /* = 17 */ + object Text : CompletionItemKind /* = 18 */ + object Color : CompletionItemKind /* = 19 */ + object File : CompletionItemKind /* = 20 */ + object Reference : CompletionItemKind /* = 21 */ + object Customcolor : CompletionItemKind /* = 22 */ + object Folder : CompletionItemKind /* = 23 */ + object TypeParameter : CompletionItemKind /* = 24 */ + object Snippet : CompletionItemKind /* = 25 */ } -external enum class CompletionItemTag { - Deprecated /* = 1 */, +sealed external class CompletionItemTag { + object Deprecated : CompletionItemTag } -external enum class CompletionItemInsertTextRule { +sealed external class CompletionItemInsertTextRule { + /** * Adjust whitespace/indentation of multiline insert texts to * match the current line indentation. */ - KeepWhitespace /* = 1 */, + object KeepWhitespace : CompletionItemInsertTextRule /** * `insertText` is a snippet. */ - InsertAsSnippet /* = 4 */, + object InsertAsSnippet : CompletionItemInsertTextRule } external interface Command { @@ -434,10 +435,10 @@ external interface CompletionList { /** * How a suggest provider was triggered. */ -external enum class CompletionTriggerKind { - Invoke /* = 0 */, - TriggerCharacter /* = 1 */, - TriggerForIncompleteCompletions /* = 2 */, +sealed external class CompletionTriggerKind { + object Invoke : CompletionTriggerKind + object TriggerCharacter : CompletionTriggerKind + object TriggerForIncompleteCompletions : CompletionTriggerKind } /** @@ -548,10 +549,10 @@ external interface SignatureHelp { var activeParameter: Int } -external enum class SignatureHelpTriggerKind { - Invoke /* = 1 */, - TriggerCharacter /* = 2 */, - ContentChange /* = 3 */, +sealed external class SignatureHelpTriggerKind { + object Invoke : SignatureHelpTriggerKind + object TriggerCharacter : SignatureHelpTriggerKind + object ContentChange : SignatureHelpTriggerKind } external interface SignatureHelpContext { @@ -658,37 +659,37 @@ external interface DefinitionProvider { ): Promise?> } -external enum class SymbolKind { - File /* = 0 */, - Module /* = 1 */, - Namespace /* = 2 */, - Package /* = 3 */, - Class /* = 4 */, - Method /* = 5 */, - Property /* = 6 */, - Field /* = 7 */, - Constructor /* = 8 */, - Enum /* = 9 */, - Interface /* = 10 */, - Function /* = 11 */, - Variable /* = 12 */, - Constant /* = 13 */, - String /* = 14 */, - Number /* = 15 */, - Boolean /* = 16 */, - Array /* = 17 */, - Object /* = 18 */, - Key /* = 19 */, - Null /* = 20 */, - EnumMember /* = 21 */, - Struct /* = 22 */, - Event /* = 23 */, - Operator /* = 24 */, - TypeParameter /* = 25 */ +sealed external class SymbolKind { + object File : SymbolKind + object Module : SymbolKind + object Namespace : SymbolKind + object Package : SymbolKind + object Class : SymbolKind + object Method : SymbolKind + object Property : SymbolKind + object Field : SymbolKind + object Constructor : SymbolKind + object Enum : SymbolKind + object Interface : SymbolKind + object Function : SymbolKind + object Variable : SymbolKind + object Constant : SymbolKind + object String : SymbolKind + object Number : SymbolKind + object Boolean : SymbolKind + object Array : SymbolKind + object Object : SymbolKind + object Key : SymbolKind + object Null : SymbolKind + object EnumMember : SymbolKind + object Struct : SymbolKind + object Event : SymbolKind + object Operator : SymbolKind + object TypeParameter : SymbolKind /* = 25 */ } -external enum class SymbolTag { - Deprecated /* = 1 */ +sealed external class SymbolTag { + object Deprecated : SymbolTag /* = 1 */ } external interface DocumentSymbol { @@ -711,10 +712,10 @@ external interface DocumentSymbolProvider { ): Promise> } -external enum class DocumentHighlightKind { - Text /* = 0 */, - Read /* = 1 */, - Write /* = 2 */ +sealed external class DocumentHighlightKind { + object Text : DocumentHighlightKind + object Read : DocumentHighlightKind + object Write : DocumentHighlightKind /* = 2 */ } external interface DocumentHighlight { diff --git a/web/src/main/kotlin/world/phantasmal/web/externals/monacoEditor/languagesExtensions.kt b/web/src/jsMain/kotlin/world/phantasmal/web/externals/monacoEditor/languagesExtensions.kt similarity index 67% rename from web/src/main/kotlin/world/phantasmal/web/externals/monacoEditor/languagesExtensions.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/externals/monacoEditor/languagesExtensions.kt index 305c297f..f04107bf 100644 --- a/web/src/main/kotlin/world/phantasmal/web/externals/monacoEditor/languagesExtensions.kt +++ b/web/src/jsMain/kotlin/world/phantasmal/web/externals/monacoEditor/languagesExtensions.kt @@ -2,9 +2,13 @@ package world.phantasmal.web.externals.monacoEditor typealias IMonarchLanguageRule = IExpandedMonarchLanguageRule +// Inline to generate easier to understand JS. +@Suppress("NOTHING_TO_INLINE") inline operator fun IMonarchLanguageTokenizer.get(name: String): Array = asDynamic()[name].unsafeCast>() +// Inline to generate easier to understand JS. +@Suppress("NOTHING_TO_INLINE") inline operator fun IMonarchLanguageTokenizer.set( name: String, value: Array, @@ -12,9 +16,13 @@ inline operator fun IMonarchLanguageTokenizer.set( asDynamic()[name] = value } +// Inline to generate easier to understand JS. +@Suppress("NOTHING_TO_INLINE") inline operator fun IMarkdownStringUris.get(name: String): UriComponents = asDynamic()[name].unsafeCast() +// Inline to generate easier to understand JS. +@Suppress("NOTHING_TO_INLINE") inline operator fun IMarkdownStringUris.set(name: String, value: UriComponents) { asDynamic()[name] = value } diff --git a/web/src/main/kotlin/world/phantasmal/web/externals/monacoEditor/monacoEditor.kt b/web/src/jsMain/kotlin/world/phantasmal/web/externals/monacoEditor/monacoEditor.kt similarity index 96% rename from web/src/main/kotlin/world/phantasmal/web/externals/monacoEditor/monacoEditor.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/externals/monacoEditor/monacoEditor.kt index 8f5e7b5e..9b720d06 100644 --- a/web/src/main/kotlin/world/phantasmal/web/externals/monacoEditor/monacoEditor.kt +++ b/web/src/jsMain/kotlin/world/phantasmal/web/externals/monacoEditor/monacoEditor.kt @@ -20,16 +20,16 @@ external interface CancellationToken { ): IDisposable } -external enum class MarkerTag { - Unnecessary /* = 1 */, - Deprecated /* = 2 */ +sealed external class MarkerTag { + object Unnecessary : MarkerTag /* = 1 */ + object Deprecated : MarkerTag /* = 2 */ } -external enum class MarkerSeverity { - Hint /* = 1 */, - Info /* = 2 */, - Warning /* = 4 */, - Error /* = 8 */ +sealed external class MarkerSeverity { + object Hint : MarkerSeverity /* = 1 */ + object Info : MarkerSeverity /* = 2 */ + object Warning : MarkerSeverity /* = 4 */ + object Error : MarkerSeverity /* = 8 */ } external interface IRange { @@ -126,9 +126,9 @@ open external class Selection( } } -external enum class SelectionDirection { - LTR /* = 0 */, - RTL /* = 1 */ +sealed external class SelectionDirection { + object LTR : SelectionDirection /* = 0 */ + object RTL : SelectionDirection /* = 1 */ } external interface IPosition { diff --git a/web/src/main/kotlin/world/phantasmal/web/externals/three/BufferGeometryUtils.kt b/web/src/jsMain/kotlin/world/phantasmal/web/externals/three/BufferGeometryUtils.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/externals/three/BufferGeometryUtils.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/externals/three/BufferGeometryUtils.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/externals/three/OrbitControls.kt b/web/src/jsMain/kotlin/world/phantasmal/web/externals/three/OrbitControls.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/externals/three/OrbitControls.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/externals/three/OrbitControls.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/externals/three/three.kt b/web/src/jsMain/kotlin/world/phantasmal/web/externals/three/three.kt similarity index 98% rename from web/src/main/kotlin/world/phantasmal/web/externals/three/three.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/externals/three/three.kt index 7559615c..a3656fe7 100644 --- a/web/src/main/kotlin/world/phantasmal/web/externals/three/three.kt +++ b/web/src/jsMain/kotlin/world/phantasmal/web/externals/three/three.kt @@ -786,20 +786,20 @@ external interface Mipmap { var height: Int } -external enum class MOUSE { - LEFT, - MIDDLE, - RIGHT, - ROTATE, - DOLLY, - PAN, +sealed external class MOUSE { + object LEFT : MOUSE + object MIDDLE : MOUSE + object RIGHT : MOUSE + object ROTATE : MOUSE + object DOLLY : MOUSE + object PAN : MOUSE } -external enum class TOUCH { - ROTATE, - PAN, - DOLLY_PAN, - DOLLY_ROTATE, +sealed external class TOUCH { + object ROTATE : TOUCH + object PAN : TOUCH + object DOLLY_PAN : TOUCH + object DOLLY_ROTATE : TOUCH } external class Raycaster( diff --git a/web/src/main/kotlin/world/phantasmal/web/huntOptimizer/HuntOptimizer.kt b/web/src/jsMain/kotlin/world/phantasmal/web/huntOptimizer/HuntOptimizer.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/huntOptimizer/HuntOptimizer.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/huntOptimizer/HuntOptimizer.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/huntOptimizer/HuntOptimizerUrls.kt b/web/src/jsMain/kotlin/world/phantasmal/web/huntOptimizer/HuntOptimizerUrls.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/huntOptimizer/HuntOptimizerUrls.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/huntOptimizer/HuntOptimizerUrls.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/huntOptimizer/controllers/HuntOptimizerController.kt b/web/src/jsMain/kotlin/world/phantasmal/web/huntOptimizer/controllers/HuntOptimizerController.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/huntOptimizer/controllers/HuntOptimizerController.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/huntOptimizer/controllers/HuntOptimizerController.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/huntOptimizer/controllers/MethodsController.kt b/web/src/jsMain/kotlin/world/phantasmal/web/huntOptimizer/controllers/MethodsController.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/huntOptimizer/controllers/MethodsController.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/huntOptimizer/controllers/MethodsController.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/huntOptimizer/controllers/MethodsForEpisodeController.kt b/web/src/jsMain/kotlin/world/phantasmal/web/huntOptimizer/controllers/MethodsForEpisodeController.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/huntOptimizer/controllers/MethodsForEpisodeController.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/huntOptimizer/controllers/MethodsForEpisodeController.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/huntOptimizer/controllers/OptimizationResultController.kt b/web/src/jsMain/kotlin/world/phantasmal/web/huntOptimizer/controllers/OptimizationResultController.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/huntOptimizer/controllers/OptimizationResultController.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/huntOptimizer/controllers/OptimizationResultController.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/huntOptimizer/controllers/WantedItemsController.kt b/web/src/jsMain/kotlin/world/phantasmal/web/huntOptimizer/controllers/WantedItemsController.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/huntOptimizer/controllers/WantedItemsController.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/huntOptimizer/controllers/WantedItemsController.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/huntOptimizer/models/HuntMethodModel.kt b/web/src/jsMain/kotlin/world/phantasmal/web/huntOptimizer/models/HuntMethodModel.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/huntOptimizer/models/HuntMethodModel.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/huntOptimizer/models/HuntMethodModel.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/huntOptimizer/models/OptimalMethodModel.kt b/web/src/jsMain/kotlin/world/phantasmal/web/huntOptimizer/models/OptimalMethodModel.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/huntOptimizer/models/OptimalMethodModel.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/huntOptimizer/models/OptimalMethodModel.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/huntOptimizer/models/OptimizationResultModel.kt b/web/src/jsMain/kotlin/world/phantasmal/web/huntOptimizer/models/OptimizationResultModel.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/huntOptimizer/models/OptimizationResultModel.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/huntOptimizer/models/OptimizationResultModel.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/huntOptimizer/models/SimpleQuestModel.kt b/web/src/jsMain/kotlin/world/phantasmal/web/huntOptimizer/models/SimpleQuestModel.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/huntOptimizer/models/SimpleQuestModel.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/huntOptimizer/models/SimpleQuestModel.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/huntOptimizer/models/WantedItemModel.kt b/web/src/jsMain/kotlin/world/phantasmal/web/huntOptimizer/models/WantedItemModel.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/huntOptimizer/models/WantedItemModel.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/huntOptimizer/models/WantedItemModel.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/huntOptimizer/persistence/HuntMethodPersister.kt b/web/src/jsMain/kotlin/world/phantasmal/web/huntOptimizer/persistence/HuntMethodPersister.kt similarity index 92% rename from web/src/main/kotlin/world/phantasmal/web/huntOptimizer/persistence/HuntMethodPersister.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/huntOptimizer/persistence/HuntMethodPersister.kt index 6f732b29..96319603 100644 --- a/web/src/main/kotlin/world/phantasmal/web/huntOptimizer/persistence/HuntMethodPersister.kt +++ b/web/src/jsMain/kotlin/world/phantasmal/web/huntOptimizer/persistence/HuntMethodPersister.kt @@ -4,7 +4,7 @@ import world.phantasmal.web.core.models.Server import world.phantasmal.web.core.persistence.KeyValueStore import world.phantasmal.web.core.persistence.Persister import world.phantasmal.web.huntOptimizer.models.HuntMethodModel -import kotlin.time.Duration +import kotlin.time.Duration.Companion.hours import kotlin.time.DurationUnit.HOURS class HuntMethodPersister(keyValueStore: KeyValueStore) : Persister(keyValueStore) { @@ -24,7 +24,7 @@ class HuntMethodPersister(keyValueStore: KeyValueStore) : Persister(keyValueStor loadForServer>(server, METHOD_USER_TIMES_KEY)?.let { userTimes -> for (method in huntMethods) { userTimes[method.id]?.let { userTime -> - method.setUserTime(Duration.hours(userTime)) + method.setUserTime(userTime.hours) } } } diff --git a/web/src/main/kotlin/world/phantasmal/web/huntOptimizer/persistence/WantedItemPersister.kt b/web/src/jsMain/kotlin/world/phantasmal/web/huntOptimizer/persistence/WantedItemPersister.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/huntOptimizer/persistence/WantedItemPersister.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/huntOptimizer/persistence/WantedItemPersister.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/huntOptimizer/stores/HuntMethodStore.kt b/web/src/jsMain/kotlin/world/phantasmal/web/huntOptimizer/stores/HuntMethodStore.kt similarity index 94% rename from web/src/main/kotlin/world/phantasmal/web/huntOptimizer/stores/HuntMethodStore.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/huntOptimizer/stores/HuntMethodStore.kt index 60204523..c1abd7e6 100644 --- a/web/src/main/kotlin/world/phantasmal/web/huntOptimizer/stores/HuntMethodStore.kt +++ b/web/src/jsMain/kotlin/world/phantasmal/web/huntOptimizer/stores/HuntMethodStore.kt @@ -20,6 +20,7 @@ import kotlin.collections.component1 import kotlin.collections.component2 import kotlin.collections.set import kotlin.time.Duration +import kotlin.time.Duration.Companion.minutes class HuntMethodStore( private val uiStore: UiStore, @@ -118,8 +119,8 @@ class HuntMethodStore( companion object { private val GOVERNMENT_QUEST_NAME_REGEX = Regex("""^\d-\d.*""") - private val DEFAULT_DURATION = Duration.minutes(30) - private val DEFAULT_GOVERNMENT_TEST_DURATION = Duration.minutes(45) - private val DEFAULT_LARGE_ENEMY_COUNT_DURATION = Duration.minutes(45) + private val DEFAULT_DURATION: Duration = 30.minutes + private val DEFAULT_GOVERNMENT_TEST_DURATION: Duration = 45.minutes + private val DEFAULT_LARGE_ENEMY_COUNT_DURATION: Duration = 45.minutes } } diff --git a/web/src/main/kotlin/world/phantasmal/web/huntOptimizer/stores/HuntOptimizerStore.kt b/web/src/jsMain/kotlin/world/phantasmal/web/huntOptimizer/stores/HuntOptimizerStore.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/huntOptimizer/stores/HuntOptimizerStore.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/huntOptimizer/stores/HuntOptimizerStore.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/huntOptimizer/widgets/HelpWidget.kt b/web/src/jsMain/kotlin/world/phantasmal/web/huntOptimizer/widgets/HelpWidget.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/huntOptimizer/widgets/HelpWidget.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/huntOptimizer/widgets/HelpWidget.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/huntOptimizer/widgets/HuntOptimizerWidget.kt b/web/src/jsMain/kotlin/world/phantasmal/web/huntOptimizer/widgets/HuntOptimizerWidget.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/huntOptimizer/widgets/HuntOptimizerWidget.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/huntOptimizer/widgets/HuntOptimizerWidget.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/huntOptimizer/widgets/MethodsForEpisodeWidget.kt b/web/src/jsMain/kotlin/world/phantasmal/web/huntOptimizer/widgets/MethodsForEpisodeWidget.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/huntOptimizer/widgets/MethodsForEpisodeWidget.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/huntOptimizer/widgets/MethodsForEpisodeWidget.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/huntOptimizer/widgets/MethodsWidget.kt b/web/src/jsMain/kotlin/world/phantasmal/web/huntOptimizer/widgets/MethodsWidget.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/huntOptimizer/widgets/MethodsWidget.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/huntOptimizer/widgets/MethodsWidget.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/huntOptimizer/widgets/OptimizationResultWidget.kt b/web/src/jsMain/kotlin/world/phantasmal/web/huntOptimizer/widgets/OptimizationResultWidget.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/huntOptimizer/widgets/OptimizationResultWidget.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/huntOptimizer/widgets/OptimizationResultWidget.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/huntOptimizer/widgets/OptimizerWidget.kt b/web/src/jsMain/kotlin/world/phantasmal/web/huntOptimizer/widgets/OptimizerWidget.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/huntOptimizer/widgets/OptimizerWidget.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/huntOptimizer/widgets/OptimizerWidget.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/huntOptimizer/widgets/WantedItemsWidget.kt b/web/src/jsMain/kotlin/world/phantasmal/web/huntOptimizer/widgets/WantedItemsWidget.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/huntOptimizer/widgets/WantedItemsWidget.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/huntOptimizer/widgets/WantedItemsWidget.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/questEditor/QuestEditor.kt b/web/src/jsMain/kotlin/world/phantasmal/web/questEditor/QuestEditor.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/questEditor/QuestEditor.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/questEditor/QuestEditor.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/questEditor/QuestRunner.kt b/web/src/jsMain/kotlin/world/phantasmal/web/questEditor/QuestRunner.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/questEditor/QuestRunner.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/questEditor/QuestRunner.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/questEditor/asm/AsmAnalyser.kt b/web/src/jsMain/kotlin/world/phantasmal/web/questEditor/asm/AsmAnalyser.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/questEditor/asm/AsmAnalyser.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/questEditor/asm/AsmAnalyser.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/questEditor/asm/monaco/AsmCompletionItemProvider.kt b/web/src/jsMain/kotlin/world/phantasmal/web/questEditor/asm/monaco/AsmCompletionItemProvider.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/questEditor/asm/monaco/AsmCompletionItemProvider.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/questEditor/asm/monaco/AsmCompletionItemProvider.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/questEditor/asm/monaco/AsmDefinitionProvider.kt b/web/src/jsMain/kotlin/world/phantasmal/web/questEditor/asm/monaco/AsmDefinitionProvider.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/questEditor/asm/monaco/AsmDefinitionProvider.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/questEditor/asm/monaco/AsmDefinitionProvider.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/questEditor/asm/monaco/AsmDocumentHighlightProvider.kt b/web/src/jsMain/kotlin/world/phantasmal/web/questEditor/asm/monaco/AsmDocumentHighlightProvider.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/questEditor/asm/monaco/AsmDocumentHighlightProvider.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/questEditor/asm/monaco/AsmDocumentHighlightProvider.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/questEditor/asm/monaco/AsmDocumentSymbolProvider.kt b/web/src/jsMain/kotlin/world/phantasmal/web/questEditor/asm/monaco/AsmDocumentSymbolProvider.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/questEditor/asm/monaco/AsmDocumentSymbolProvider.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/questEditor/asm/monaco/AsmDocumentSymbolProvider.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/questEditor/asm/monaco/AsmHoverProvider.kt b/web/src/jsMain/kotlin/world/phantasmal/web/questEditor/asm/monaco/AsmHoverProvider.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/questEditor/asm/monaco/AsmHoverProvider.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/questEditor/asm/monaco/AsmHoverProvider.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/questEditor/asm/monaco/AsmLanguageConfiguration.kt b/web/src/jsMain/kotlin/world/phantasmal/web/questEditor/asm/monaco/AsmLanguageConfiguration.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/questEditor/asm/monaco/AsmLanguageConfiguration.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/questEditor/asm/monaco/AsmLanguageConfiguration.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/questEditor/asm/monaco/AsmMonarchLanguage.kt b/web/src/jsMain/kotlin/world/phantasmal/web/questEditor/asm/monaco/AsmMonarchLanguage.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/questEditor/asm/monaco/AsmMonarchLanguage.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/questEditor/asm/monaco/AsmMonarchLanguage.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/questEditor/asm/monaco/AsmSignatureHelpProvider.kt b/web/src/jsMain/kotlin/world/phantasmal/web/questEditor/asm/monaco/AsmSignatureHelpProvider.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/questEditor/asm/monaco/AsmSignatureHelpProvider.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/questEditor/asm/monaco/AsmSignatureHelpProvider.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/questEditor/asm/monaco/EditorHistory.kt b/web/src/jsMain/kotlin/world/phantasmal/web/questEditor/asm/monaco/EditorHistory.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/questEditor/asm/monaco/EditorHistory.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/questEditor/asm/monaco/EditorHistory.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/questEditor/asm/monaco/MonacoProvider.kt b/web/src/jsMain/kotlin/world/phantasmal/web/questEditor/asm/monaco/MonacoProvider.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/questEditor/asm/monaco/MonacoProvider.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/questEditor/asm/monaco/MonacoProvider.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/questEditor/asm/monaco/MonacoUtils.kt b/web/src/jsMain/kotlin/world/phantasmal/web/questEditor/asm/monaco/MonacoUtils.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/questEditor/asm/monaco/MonacoUtils.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/questEditor/asm/monaco/MonacoUtils.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/questEditor/commands/CreateEntityCommand.kt b/web/src/jsMain/kotlin/world/phantasmal/web/questEditor/commands/CreateEntityCommand.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/questEditor/commands/CreateEntityCommand.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/questEditor/commands/CreateEntityCommand.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/questEditor/commands/CreateEventActionCommand.kt b/web/src/jsMain/kotlin/world/phantasmal/web/questEditor/commands/CreateEventActionCommand.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/questEditor/commands/CreateEventActionCommand.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/questEditor/commands/CreateEventActionCommand.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/questEditor/commands/CreateEventCommand.kt b/web/src/jsMain/kotlin/world/phantasmal/web/questEditor/commands/CreateEventCommand.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/questEditor/commands/CreateEventCommand.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/questEditor/commands/CreateEventCommand.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/questEditor/commands/DeleteEntityCommand.kt b/web/src/jsMain/kotlin/world/phantasmal/web/questEditor/commands/DeleteEntityCommand.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/questEditor/commands/DeleteEntityCommand.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/questEditor/commands/DeleteEntityCommand.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/questEditor/commands/DeleteEventActionCommand.kt b/web/src/jsMain/kotlin/world/phantasmal/web/questEditor/commands/DeleteEventActionCommand.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/questEditor/commands/DeleteEventActionCommand.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/questEditor/commands/DeleteEventActionCommand.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/questEditor/commands/DeleteEventCommand.kt b/web/src/jsMain/kotlin/world/phantasmal/web/questEditor/commands/DeleteEventCommand.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/questEditor/commands/DeleteEventCommand.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/questEditor/commands/DeleteEventCommand.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/questEditor/commands/EditEntityPropCommand.kt b/web/src/jsMain/kotlin/world/phantasmal/web/questEditor/commands/EditEntityPropCommand.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/questEditor/commands/EditEntityPropCommand.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/questEditor/commands/EditEntityPropCommand.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/questEditor/commands/EditEntityPropertyCommand.kt b/web/src/jsMain/kotlin/world/phantasmal/web/questEditor/commands/EditEntityPropertyCommand.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/questEditor/commands/EditEntityPropertyCommand.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/questEditor/commands/EditEntityPropertyCommand.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/questEditor/commands/EditEntitySectionCommand.kt b/web/src/jsMain/kotlin/world/phantasmal/web/questEditor/commands/EditEntitySectionCommand.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/questEditor/commands/EditEntitySectionCommand.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/questEditor/commands/EditEntitySectionCommand.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/questEditor/commands/EditEventActionPropertyCommand.kt b/web/src/jsMain/kotlin/world/phantasmal/web/questEditor/commands/EditEventActionPropertyCommand.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/questEditor/commands/EditEventActionPropertyCommand.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/questEditor/commands/EditEventActionPropertyCommand.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/questEditor/commands/EditEventPropertyCommand.kt b/web/src/jsMain/kotlin/world/phantasmal/web/questEditor/commands/EditEventPropertyCommand.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/questEditor/commands/EditEventPropertyCommand.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/questEditor/commands/EditEventPropertyCommand.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/questEditor/commands/EditQuestPropertyCommand.kt b/web/src/jsMain/kotlin/world/phantasmal/web/questEditor/commands/EditQuestPropertyCommand.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/questEditor/commands/EditQuestPropertyCommand.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/questEditor/commands/EditQuestPropertyCommand.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/questEditor/commands/RotateEntityCommand.kt b/web/src/jsMain/kotlin/world/phantasmal/web/questEditor/commands/RotateEntityCommand.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/questEditor/commands/RotateEntityCommand.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/questEditor/commands/RotateEntityCommand.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/questEditor/commands/TranslateEntityCommand.kt b/web/src/jsMain/kotlin/world/phantasmal/web/questEditor/commands/TranslateEntityCommand.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/questEditor/commands/TranslateEntityCommand.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/questEditor/commands/TranslateEntityCommand.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/questEditor/controllers/AsmEditorController.kt b/web/src/jsMain/kotlin/world/phantasmal/web/questEditor/controllers/AsmEditorController.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/questEditor/controllers/AsmEditorController.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/questEditor/controllers/AsmEditorController.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/questEditor/controllers/EntityInfoController.kt b/web/src/jsMain/kotlin/world/phantasmal/web/questEditor/controllers/EntityInfoController.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/questEditor/controllers/EntityInfoController.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/questEditor/controllers/EntityInfoController.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/questEditor/controllers/EntityListController.kt b/web/src/jsMain/kotlin/world/phantasmal/web/questEditor/controllers/EntityListController.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/questEditor/controllers/EntityListController.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/questEditor/controllers/EntityListController.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/questEditor/controllers/EventsController.kt b/web/src/jsMain/kotlin/world/phantasmal/web/questEditor/controllers/EventsController.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/questEditor/controllers/EventsController.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/questEditor/controllers/EventsController.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/questEditor/controllers/NpcCountsController.kt b/web/src/jsMain/kotlin/world/phantasmal/web/questEditor/controllers/NpcCountsController.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/questEditor/controllers/NpcCountsController.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/questEditor/controllers/NpcCountsController.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/questEditor/controllers/QuestEditorController.kt b/web/src/jsMain/kotlin/world/phantasmal/web/questEditor/controllers/QuestEditorController.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/questEditor/controllers/QuestEditorController.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/questEditor/controllers/QuestEditorController.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/questEditor/controllers/QuestEditorToolbarController.kt b/web/src/jsMain/kotlin/world/phantasmal/web/questEditor/controllers/QuestEditorToolbarController.kt similarity index 92% rename from web/src/main/kotlin/world/phantasmal/web/questEditor/controllers/QuestEditorToolbarController.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/questEditor/controllers/QuestEditorToolbarController.kt index e82fa167..55895998 100644 --- a/web/src/main/kotlin/world/phantasmal/web/questEditor/controllers/QuestEditorToolbarController.kt +++ b/web/src/jsMain/kotlin/world/phantasmal/web/questEditor/controllers/QuestEditorToolbarController.kt @@ -2,15 +2,8 @@ package world.phantasmal.web.questEditor.controllers import kotlinx.coroutines.await import mu.KotlinLogging +import world.phantasmal.cell.* import world.phantasmal.core.* -import world.phantasmal.cell.Cell -import world.phantasmal.cell.and -import world.phantasmal.cell.cell -import world.phantasmal.cell.flatMap -import world.phantasmal.cell.isNotNull -import world.phantasmal.cell.map -import world.phantasmal.cell.mutableCell -import world.phantasmal.cell.not import world.phantasmal.psolib.Endianness import world.phantasmal.psolib.Episode import world.phantasmal.psolib.fileFormats.quest.* @@ -176,10 +169,16 @@ class QuestEditorToolbarController( val datFile = newFiles.find { it.extension().equals("dat", ignoreCase = true) } if (binFile == null || datFile == null) { - setResult(Failure(listOf(Problem( - Severity.Error, - "Please select a .qst file or one .bin and one .dat file.", - )))) + setResult( + Failure( + listOf( + Problem( + Severity.Error, + "Please select a .qst file or one .bin and one .dat file.", + ) + ) + ) + ) return } @@ -248,6 +247,8 @@ class QuestEditorToolbarController( return } } + + else -> {} } // When there's no existing file that can be saved, default to "Save as...". @@ -298,9 +299,11 @@ class QuestEditorToolbarController( ) if (UserAgentFeatures.fileSystemApi) { - val fileHandle = showSaveFilePicker(listOf( - FileType("Quest file", mapOf("application/pw-quest" to setOf(".qst"))) - )) + val fileHandle = showSaveFilePicker( + listOf( + FileType("Quest file", mapOf("application/pw-quest" to setOf(".qst"))) + ) + ) if (fileHandle != null) { fileHandle.writableStream().use { it.write(buffer.arrayBuffer).await() } @@ -350,16 +353,18 @@ class QuestEditorToolbarController( } private fun setFileHolder(fileHolder: FileHolder?) { - setFilename(when (fileHolder) { - is FileHolder.Qst -> fileHolder.file.basename() ?: fileHolder.file.name + setFilename( + when (fileHolder) { + is FileHolder.Qst -> fileHolder.file.basename() ?: fileHolder.file.name - is FileHolder.BinDat -> - fileHolder.binFile.basename() - ?: fileHolder.datFile.basename() - ?: fileHolder.binFile.name + is FileHolder.BinDat -> + fileHolder.binFile.basename() + ?: fileHolder.datFile.basename() + ?: fileHolder.binFile.name - null -> "" - }) + null -> "" + } + ) this.fileHolder.value = fileHolder } diff --git a/web/src/main/kotlin/world/phantasmal/web/questEditor/controllers/QuestInfoController.kt b/web/src/jsMain/kotlin/world/phantasmal/web/questEditor/controllers/QuestInfoController.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/questEditor/controllers/QuestInfoController.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/questEditor/controllers/QuestInfoController.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/questEditor/loading/AreaAssetLoader.kt b/web/src/jsMain/kotlin/world/phantasmal/web/questEditor/loading/AreaAssetLoader.kt similarity index 99% rename from web/src/main/kotlin/world/phantasmal/web/questEditor/loading/AreaAssetLoader.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/questEditor/loading/AreaAssetLoader.kt index 4e60adce..368ffa14 100644 --- a/web/src/main/kotlin/world/phantasmal/web/questEditor/loading/AreaAssetLoader.kt +++ b/web/src/jsMain/kotlin/world/phantasmal/web/questEditor/loading/AreaAssetLoader.kt @@ -14,6 +14,7 @@ import world.phantasmal.psolib.fileFormats.ninja.XvrTexture import world.phantasmal.psolib.fileFormats.ninja.parseXvm import world.phantasmal.web.core.dot import world.phantasmal.web.core.loading.AssetLoader +import world.phantasmal.web.core.loading.LoadingCache import world.phantasmal.web.core.rendering.conversion.* import world.phantasmal.web.core.rendering.disposeObject3DResources import world.phantasmal.web.externals.three.* diff --git a/web/src/main/kotlin/world/phantasmal/web/questEditor/loading/EntityAssetLoader.kt b/web/src/jsMain/kotlin/world/phantasmal/web/questEditor/loading/EntityAssetLoader.kt similarity index 99% rename from web/src/main/kotlin/world/phantasmal/web/questEditor/loading/EntityAssetLoader.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/questEditor/loading/EntityAssetLoader.kt index 5125d2e9..291a733b 100644 --- a/web/src/main/kotlin/world/phantasmal/web/questEditor/loading/EntityAssetLoader.kt +++ b/web/src/jsMain/kotlin/world/phantasmal/web/questEditor/loading/EntityAssetLoader.kt @@ -16,6 +16,7 @@ import world.phantasmal.psolib.fileFormats.quest.EntityType import world.phantasmal.psolib.fileFormats.quest.NpcType import world.phantasmal.psolib.fileFormats.quest.ObjectType import world.phantasmal.web.core.loading.AssetLoader +import world.phantasmal.web.core.loading.LoadingCache import world.phantasmal.web.core.rendering.conversion.ninjaObjectToInstancedMesh import world.phantasmal.web.core.rendering.disposeObject3DResources import world.phantasmal.web.externals.three.Color diff --git a/web/src/main/kotlin/world/phantasmal/web/questEditor/loading/QuestLoader.kt b/web/src/jsMain/kotlin/world/phantasmal/web/questEditor/loading/QuestLoader.kt similarity index 95% rename from web/src/main/kotlin/world/phantasmal/web/questEditor/loading/QuestLoader.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/questEditor/loading/QuestLoader.kt index 5232da41..3679abb1 100644 --- a/web/src/main/kotlin/world/phantasmal/web/questEditor/loading/QuestLoader.kt +++ b/web/src/jsMain/kotlin/world/phantasmal/web/questEditor/loading/QuestLoader.kt @@ -7,6 +7,7 @@ import world.phantasmal.psolib.Episode import world.phantasmal.psolib.fileFormats.quest.Quest import world.phantasmal.psolib.fileFormats.quest.parseQstToQuest import world.phantasmal.web.core.loading.AssetLoader +import world.phantasmal.web.core.loading.LoadingCache import world.phantasmal.webui.DisposableContainer class QuestLoader(private val assetLoader: AssetLoader) : DisposableContainer() { diff --git a/web/src/main/kotlin/world/phantasmal/web/questEditor/models/AreaModel.kt b/web/src/jsMain/kotlin/world/phantasmal/web/questEditor/models/AreaModel.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/questEditor/models/AreaModel.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/questEditor/models/AreaModel.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/questEditor/models/AreaVariantModel.kt b/web/src/jsMain/kotlin/world/phantasmal/web/questEditor/models/AreaVariantModel.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/questEditor/models/AreaVariantModel.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/questEditor/models/AreaVariantModel.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/questEditor/models/QuestEntityModel.kt b/web/src/jsMain/kotlin/world/phantasmal/web/questEditor/models/QuestEntityModel.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/questEditor/models/QuestEntityModel.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/questEditor/models/QuestEntityModel.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/questEditor/models/QuestEntityPropModel.kt b/web/src/jsMain/kotlin/world/phantasmal/web/questEditor/models/QuestEntityPropModel.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/questEditor/models/QuestEntityPropModel.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/questEditor/models/QuestEntityPropModel.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/questEditor/models/QuestEventActionModel.kt b/web/src/jsMain/kotlin/world/phantasmal/web/questEditor/models/QuestEventActionModel.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/questEditor/models/QuestEventActionModel.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/questEditor/models/QuestEventActionModel.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/questEditor/models/QuestEventModel.kt b/web/src/jsMain/kotlin/world/phantasmal/web/questEditor/models/QuestEventModel.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/questEditor/models/QuestEventModel.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/questEditor/models/QuestEventModel.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/questEditor/models/QuestModel.kt b/web/src/jsMain/kotlin/world/phantasmal/web/questEditor/models/QuestModel.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/questEditor/models/QuestModel.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/questEditor/models/QuestModel.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/questEditor/models/QuestNpcModel.kt b/web/src/jsMain/kotlin/world/phantasmal/web/questEditor/models/QuestNpcModel.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/questEditor/models/QuestNpcModel.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/questEditor/models/QuestNpcModel.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/questEditor/models/QuestObjectModel.kt b/web/src/jsMain/kotlin/world/phantasmal/web/questEditor/models/QuestObjectModel.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/questEditor/models/QuestObjectModel.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/questEditor/models/QuestObjectModel.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/questEditor/models/SectionModel.kt b/web/src/jsMain/kotlin/world/phantasmal/web/questEditor/models/SectionModel.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/questEditor/models/SectionModel.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/questEditor/models/SectionModel.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/questEditor/models/WaveModel.kt b/web/src/jsMain/kotlin/world/phantasmal/web/questEditor/models/WaveModel.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/questEditor/models/WaveModel.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/questEditor/models/WaveModel.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/questEditor/persistence/QuestEditorUiPersister.kt b/web/src/jsMain/kotlin/world/phantasmal/web/questEditor/persistence/QuestEditorUiPersister.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/questEditor/persistence/QuestEditorUiPersister.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/questEditor/persistence/QuestEditorUiPersister.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/questEditor/rendering/AreaMeshManager.kt b/web/src/jsMain/kotlin/world/phantasmal/web/questEditor/rendering/AreaMeshManager.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/questEditor/rendering/AreaMeshManager.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/questEditor/rendering/AreaMeshManager.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/questEditor/rendering/DestinationInstance.kt b/web/src/jsMain/kotlin/world/phantasmal/web/questEditor/rendering/DestinationInstance.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/questEditor/rendering/DestinationInstance.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/questEditor/rendering/DestinationInstance.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/questEditor/rendering/DestinationInstanceContainer.kt b/web/src/jsMain/kotlin/world/phantasmal/web/questEditor/rendering/DestinationInstanceContainer.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/questEditor/rendering/DestinationInstanceContainer.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/questEditor/rendering/DestinationInstanceContainer.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/questEditor/rendering/EntityImageRenderer.kt b/web/src/jsMain/kotlin/world/phantasmal/web/questEditor/rendering/EntityImageRenderer.kt similarity index 98% rename from web/src/main/kotlin/world/phantasmal/web/questEditor/rendering/EntityImageRenderer.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/questEditor/rendering/EntityImageRenderer.kt index c03bce55..d0ea07f9 100644 --- a/web/src/main/kotlin/world/phantasmal/web/questEditor/rendering/EntityImageRenderer.kt +++ b/web/src/jsMain/kotlin/world/phantasmal/web/questEditor/rendering/EntityImageRenderer.kt @@ -10,7 +10,7 @@ import world.phantasmal.web.core.rendering.disposeObject3DResources import world.phantasmal.web.core.timesAssign import world.phantasmal.web.externals.three.* import world.phantasmal.web.questEditor.loading.EntityAssetLoader -import world.phantasmal.web.questEditor.loading.LoadingCache +import world.phantasmal.web.core.loading.LoadingCache import world.phantasmal.webui.DisposableContainer import world.phantasmal.webui.obj import kotlin.math.tan diff --git a/web/src/main/kotlin/world/phantasmal/web/questEditor/rendering/EntityInstance.kt b/web/src/jsMain/kotlin/world/phantasmal/web/questEditor/rendering/EntityInstance.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/questEditor/rendering/EntityInstance.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/questEditor/rendering/EntityInstance.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/questEditor/rendering/EntityInstanceContainer.kt b/web/src/jsMain/kotlin/world/phantasmal/web/questEditor/rendering/EntityInstanceContainer.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/questEditor/rendering/EntityInstanceContainer.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/questEditor/rendering/EntityInstanceContainer.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/questEditor/rendering/EntityMeshManager.kt b/web/src/jsMain/kotlin/world/phantasmal/web/questEditor/rendering/EntityMeshManager.kt similarity index 99% rename from web/src/main/kotlin/world/phantasmal/web/questEditor/rendering/EntityMeshManager.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/questEditor/rendering/EntityMeshManager.kt index b4012790..0c08659e 100644 --- a/web/src/main/kotlin/world/phantasmal/web/questEditor/rendering/EntityMeshManager.kt +++ b/web/src/jsMain/kotlin/world/phantasmal/web/questEditor/rendering/EntityMeshManager.kt @@ -10,7 +10,7 @@ import world.phantasmal.psolib.fileFormats.quest.EntityType import world.phantasmal.web.core.rendering.disposeObject3DResources import world.phantasmal.web.externals.three.* import world.phantasmal.web.questEditor.loading.EntityAssetLoader -import world.phantasmal.web.questEditor.loading.LoadingCache +import world.phantasmal.web.core.loading.LoadingCache import world.phantasmal.web.questEditor.models.QuestEntityModel import world.phantasmal.web.questEditor.models.QuestObjectModel import world.phantasmal.web.questEditor.stores.QuestEditorStore diff --git a/web/src/main/kotlin/world/phantasmal/web/questEditor/rendering/Instance.kt b/web/src/jsMain/kotlin/world/phantasmal/web/questEditor/rendering/Instance.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/questEditor/rendering/Instance.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/questEditor/rendering/Instance.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/questEditor/rendering/InstanceContainer.kt b/web/src/jsMain/kotlin/world/phantasmal/web/questEditor/rendering/InstanceContainer.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/questEditor/rendering/InstanceContainer.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/questEditor/rendering/InstanceContainer.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/questEditor/rendering/QuestEditorMeshManager.kt b/web/src/jsMain/kotlin/world/phantasmal/web/questEditor/rendering/QuestEditorMeshManager.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/questEditor/rendering/QuestEditorMeshManager.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/questEditor/rendering/QuestEditorMeshManager.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/questEditor/rendering/QuestMeshManager.kt b/web/src/jsMain/kotlin/world/phantasmal/web/questEditor/rendering/QuestMeshManager.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/questEditor/rendering/QuestMeshManager.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/questEditor/rendering/QuestMeshManager.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/questEditor/rendering/QuestRenderContext.kt b/web/src/jsMain/kotlin/world/phantasmal/web/questEditor/rendering/QuestRenderContext.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/questEditor/rendering/QuestRenderContext.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/questEditor/rendering/QuestRenderContext.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/questEditor/rendering/QuestRenderer.kt b/web/src/jsMain/kotlin/world/phantasmal/web/questEditor/rendering/QuestRenderer.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/questEditor/rendering/QuestRenderer.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/questEditor/rendering/QuestRenderer.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/questEditor/rendering/input/Evt.kt b/web/src/jsMain/kotlin/world/phantasmal/web/questEditor/rendering/input/Evt.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/questEditor/rendering/input/Evt.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/questEditor/rendering/input/Evt.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/questEditor/rendering/input/QuestInputManager.kt b/web/src/jsMain/kotlin/world/phantasmal/web/questEditor/rendering/input/QuestInputManager.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/questEditor/rendering/input/QuestInputManager.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/questEditor/rendering/input/QuestInputManager.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/questEditor/rendering/input/state/CreationState.kt b/web/src/jsMain/kotlin/world/phantasmal/web/questEditor/rendering/input/state/CreationState.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/questEditor/rendering/input/state/CreationState.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/questEditor/rendering/input/state/CreationState.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/questEditor/rendering/input/state/IdleState.kt b/web/src/jsMain/kotlin/world/phantasmal/web/questEditor/rendering/input/state/IdleState.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/questEditor/rendering/input/state/IdleState.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/questEditor/rendering/input/state/IdleState.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/questEditor/rendering/input/state/RotationState.kt b/web/src/jsMain/kotlin/world/phantasmal/web/questEditor/rendering/input/state/RotationState.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/questEditor/rendering/input/state/RotationState.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/questEditor/rendering/input/state/RotationState.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/questEditor/rendering/input/state/State.kt b/web/src/jsMain/kotlin/world/phantasmal/web/questEditor/rendering/input/state/State.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/questEditor/rendering/input/state/State.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/questEditor/rendering/input/state/State.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/questEditor/rendering/input/state/StateContext.kt b/web/src/jsMain/kotlin/world/phantasmal/web/questEditor/rendering/input/state/StateContext.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/questEditor/rendering/input/state/StateContext.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/questEditor/rendering/input/state/StateContext.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/questEditor/rendering/input/state/TranslationState.kt b/web/src/jsMain/kotlin/world/phantasmal/web/questEditor/rendering/input/state/TranslationState.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/questEditor/rendering/input/state/TranslationState.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/questEditor/rendering/input/state/TranslationState.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/questEditor/stores/AreaStore.kt b/web/src/jsMain/kotlin/world/phantasmal/web/questEditor/stores/AreaStore.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/questEditor/stores/AreaStore.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/questEditor/stores/AreaStore.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/questEditor/stores/AsmStore.kt b/web/src/jsMain/kotlin/world/phantasmal/web/questEditor/stores/AsmStore.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/questEditor/stores/AsmStore.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/questEditor/stores/AsmStore.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/questEditor/stores/ModelConversion.kt b/web/src/jsMain/kotlin/world/phantasmal/web/questEditor/stores/ModelConversion.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/questEditor/stores/ModelConversion.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/questEditor/stores/ModelConversion.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/questEditor/stores/QuestEditorStore.kt b/web/src/jsMain/kotlin/world/phantasmal/web/questEditor/stores/QuestEditorStore.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/questEditor/stores/QuestEditorStore.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/questEditor/stores/QuestEditorStore.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/questEditor/undo/TextModelUndo.kt b/web/src/jsMain/kotlin/world/phantasmal/web/questEditor/undo/TextModelUndo.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/questEditor/undo/TextModelUndo.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/questEditor/undo/TextModelUndo.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/questEditor/widgets/AsmEditorWidget.kt b/web/src/jsMain/kotlin/world/phantasmal/web/questEditor/widgets/AsmEditorWidget.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/questEditor/widgets/AsmEditorWidget.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/questEditor/widgets/AsmEditorWidget.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/questEditor/widgets/AsmToolbarWidget.kt b/web/src/jsMain/kotlin/world/phantasmal/web/questEditor/widgets/AsmToolbarWidget.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/questEditor/widgets/AsmToolbarWidget.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/questEditor/widgets/AsmToolbarWidget.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/questEditor/widgets/AsmWidget.kt b/web/src/jsMain/kotlin/world/phantasmal/web/questEditor/widgets/AsmWidget.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/questEditor/widgets/AsmWidget.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/questEditor/widgets/AsmWidget.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/questEditor/widgets/EntityDnd.kt b/web/src/jsMain/kotlin/world/phantasmal/web/questEditor/widgets/EntityDnd.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/questEditor/widgets/EntityDnd.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/questEditor/widgets/EntityDnd.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/questEditor/widgets/EntityInfoWidget.kt b/web/src/jsMain/kotlin/world/phantasmal/web/questEditor/widgets/EntityInfoWidget.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/questEditor/widgets/EntityInfoWidget.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/questEditor/widgets/EntityInfoWidget.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/questEditor/widgets/EntityListWidget.kt b/web/src/jsMain/kotlin/world/phantasmal/web/questEditor/widgets/EntityListWidget.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/questEditor/widgets/EntityListWidget.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/questEditor/widgets/EntityListWidget.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/questEditor/widgets/EventActionWidget.kt b/web/src/jsMain/kotlin/world/phantasmal/web/questEditor/widgets/EventActionWidget.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/questEditor/widgets/EventActionWidget.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/questEditor/widgets/EventActionWidget.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/questEditor/widgets/EventWidget.kt b/web/src/jsMain/kotlin/world/phantasmal/web/questEditor/widgets/EventWidget.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/questEditor/widgets/EventWidget.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/questEditor/widgets/EventWidget.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/questEditor/widgets/EventsWidget.kt b/web/src/jsMain/kotlin/world/phantasmal/web/questEditor/widgets/EventsWidget.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/questEditor/widgets/EventsWidget.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/questEditor/widgets/EventsWidget.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/questEditor/widgets/NpcCountsWidget.kt b/web/src/jsMain/kotlin/world/phantasmal/web/questEditor/widgets/NpcCountsWidget.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/questEditor/widgets/NpcCountsWidget.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/questEditor/widgets/NpcCountsWidget.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/questEditor/widgets/QuestEditorRendererWidget.kt b/web/src/jsMain/kotlin/world/phantasmal/web/questEditor/widgets/QuestEditorRendererWidget.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/questEditor/widgets/QuestEditorRendererWidget.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/questEditor/widgets/QuestEditorRendererWidget.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/questEditor/widgets/QuestEditorToolbarWidget.kt b/web/src/jsMain/kotlin/world/phantasmal/web/questEditor/widgets/QuestEditorToolbarWidget.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/questEditor/widgets/QuestEditorToolbarWidget.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/questEditor/widgets/QuestEditorToolbarWidget.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/questEditor/widgets/QuestEditorWidget.kt b/web/src/jsMain/kotlin/world/phantasmal/web/questEditor/widgets/QuestEditorWidget.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/questEditor/widgets/QuestEditorWidget.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/questEditor/widgets/QuestEditorWidget.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/questEditor/widgets/QuestInfoWidget.kt b/web/src/jsMain/kotlin/world/phantasmal/web/questEditor/widgets/QuestInfoWidget.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/questEditor/widgets/QuestInfoWidget.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/questEditor/widgets/QuestInfoWidget.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/questEditor/widgets/QuestRendererWidget.kt b/web/src/jsMain/kotlin/world/phantasmal/web/questEditor/widgets/QuestRendererWidget.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/questEditor/widgets/QuestRendererWidget.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/questEditor/widgets/QuestRendererWidget.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/viewer/Viewer.kt b/web/src/jsMain/kotlin/world/phantasmal/web/viewer/Viewer.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/viewer/Viewer.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/viewer/Viewer.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/viewer/ViewerUrls.kt b/web/src/jsMain/kotlin/world/phantasmal/web/viewer/ViewerUrls.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/viewer/ViewerUrls.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/viewer/ViewerUrls.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/viewer/controllers/CharacterClassOptionsController.kt b/web/src/jsMain/kotlin/world/phantasmal/web/viewer/controllers/CharacterClassOptionsController.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/viewer/controllers/CharacterClassOptionsController.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/viewer/controllers/CharacterClassOptionsController.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/viewer/controllers/ViewerController.kt b/web/src/jsMain/kotlin/world/phantasmal/web/viewer/controllers/ViewerController.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/viewer/controllers/ViewerController.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/viewer/controllers/ViewerController.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/viewer/controllers/ViewerToolbarController.kt b/web/src/jsMain/kotlin/world/phantasmal/web/viewer/controllers/ViewerToolbarController.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/viewer/controllers/ViewerToolbarController.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/viewer/controllers/ViewerToolbarController.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/viewer/loading/AnimationAssetLoader.kt b/web/src/jsMain/kotlin/world/phantasmal/web/viewer/loading/AnimationAssetLoader.kt similarity index 93% rename from web/src/main/kotlin/world/phantasmal/web/viewer/loading/AnimationAssetLoader.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/viewer/loading/AnimationAssetLoader.kt index dda14297..413e6226 100644 --- a/web/src/main/kotlin/world/phantasmal/web/viewer/loading/AnimationAssetLoader.kt +++ b/web/src/jsMain/kotlin/world/phantasmal/web/viewer/loading/AnimationAssetLoader.kt @@ -5,7 +5,7 @@ import world.phantasmal.psolib.cursor.cursor import world.phantasmal.psolib.fileFormats.ninja.NjMotion import world.phantasmal.psolib.fileFormats.ninja.parseNjm import world.phantasmal.web.core.loading.AssetLoader -import world.phantasmal.web.questEditor.loading.LoadingCache +import world.phantasmal.web.core.loading.LoadingCache import world.phantasmal.webui.DisposableContainer class AnimationAssetLoader(private val assetLoader: AssetLoader) : DisposableContainer() { diff --git a/web/src/main/kotlin/world/phantasmal/web/viewer/loading/CharacterClassAssetLoader.kt b/web/src/jsMain/kotlin/world/phantasmal/web/viewer/loading/CharacterClassAssetLoader.kt similarity index 99% rename from web/src/main/kotlin/world/phantasmal/web/viewer/loading/CharacterClassAssetLoader.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/viewer/loading/CharacterClassAssetLoader.kt index 51c2aeba..f77ed281 100644 --- a/web/src/main/kotlin/world/phantasmal/web/viewer/loading/CharacterClassAssetLoader.kt +++ b/web/src/jsMain/kotlin/world/phantasmal/web/viewer/loading/CharacterClassAssetLoader.kt @@ -6,7 +6,7 @@ import world.phantasmal.psolib.cursor.cursor import world.phantasmal.psolib.fileFormats.ninja.* import world.phantasmal.psolib.fileFormats.parseAfs import world.phantasmal.web.core.loading.AssetLoader -import world.phantasmal.web.questEditor.loading.LoadingCache +import world.phantasmal.web.core.loading.LoadingCache import world.phantasmal.web.shared.dto.SectionId import world.phantasmal.web.viewer.models.CharacterClass import world.phantasmal.web.viewer.models.CharacterClass.* diff --git a/web/src/main/kotlin/world/phantasmal/web/viewer/models/AnimationModel.kt b/web/src/jsMain/kotlin/world/phantasmal/web/viewer/models/AnimationModel.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/viewer/models/AnimationModel.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/viewer/models/AnimationModel.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/viewer/models/CharacterClass.kt b/web/src/jsMain/kotlin/world/phantasmal/web/viewer/models/CharacterClass.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/viewer/models/CharacterClass.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/viewer/models/CharacterClass.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/viewer/rendering/MeshRenderer.kt b/web/src/jsMain/kotlin/world/phantasmal/web/viewer/rendering/MeshRenderer.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/viewer/rendering/MeshRenderer.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/viewer/rendering/MeshRenderer.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/viewer/rendering/TextureRenderer.kt b/web/src/jsMain/kotlin/world/phantasmal/web/viewer/rendering/TextureRenderer.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/viewer/rendering/TextureRenderer.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/viewer/rendering/TextureRenderer.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/viewer/stores/ViewerStore.kt b/web/src/jsMain/kotlin/world/phantasmal/web/viewer/stores/ViewerStore.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/viewer/stores/ViewerStore.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/viewer/stores/ViewerStore.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/viewer/widgets/CharacterClassOptionsWidget.kt b/web/src/jsMain/kotlin/world/phantasmal/web/viewer/widgets/CharacterClassOptionsWidget.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/viewer/widgets/CharacterClassOptionsWidget.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/viewer/widgets/CharacterClassOptionsWidget.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/viewer/widgets/SelectionWidget.kt b/web/src/jsMain/kotlin/world/phantasmal/web/viewer/widgets/SelectionWidget.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/viewer/widgets/SelectionWidget.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/viewer/widgets/SelectionWidget.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/viewer/widgets/ViewerToolbarWidget.kt b/web/src/jsMain/kotlin/world/phantasmal/web/viewer/widgets/ViewerToolbarWidget.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/viewer/widgets/ViewerToolbarWidget.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/viewer/widgets/ViewerToolbarWidget.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/viewer/widgets/ViewerWidget.kt b/web/src/jsMain/kotlin/world/phantasmal/web/viewer/widgets/ViewerWidget.kt similarity index 100% rename from web/src/main/kotlin/world/phantasmal/web/viewer/widgets/ViewerWidget.kt rename to web/src/jsMain/kotlin/world/phantasmal/web/viewer/widgets/ViewerWidget.kt diff --git a/web/src/main/resources/assets/areas/map_ancient01.xvm b/web/src/jsMain/resources/assets/areas/map_ancient01.xvm similarity index 100% rename from web/src/main/resources/assets/areas/map_ancient01.xvm rename to web/src/jsMain/resources/assets/areas/map_ancient01.xvm diff --git a/web/src/main/resources/assets/areas/map_ancient01_00c.rel b/web/src/jsMain/resources/assets/areas/map_ancient01_00c.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_ancient01_00c.rel rename to web/src/jsMain/resources/assets/areas/map_ancient01_00c.rel diff --git a/web/src/main/resources/assets/areas/map_ancient01_00n.rel b/web/src/jsMain/resources/assets/areas/map_ancient01_00n.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_ancient01_00n.rel rename to web/src/jsMain/resources/assets/areas/map_ancient01_00n.rel diff --git a/web/src/main/resources/assets/areas/map_ancient01_01c.rel b/web/src/jsMain/resources/assets/areas/map_ancient01_01c.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_ancient01_01c.rel rename to web/src/jsMain/resources/assets/areas/map_ancient01_01c.rel diff --git a/web/src/main/resources/assets/areas/map_ancient01_01n.rel b/web/src/jsMain/resources/assets/areas/map_ancient01_01n.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_ancient01_01n.rel rename to web/src/jsMain/resources/assets/areas/map_ancient01_01n.rel diff --git a/web/src/main/resources/assets/areas/map_ancient01_02c.rel b/web/src/jsMain/resources/assets/areas/map_ancient01_02c.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_ancient01_02c.rel rename to web/src/jsMain/resources/assets/areas/map_ancient01_02c.rel diff --git a/web/src/main/resources/assets/areas/map_ancient01_02n.rel b/web/src/jsMain/resources/assets/areas/map_ancient01_02n.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_ancient01_02n.rel rename to web/src/jsMain/resources/assets/areas/map_ancient01_02n.rel diff --git a/web/src/main/resources/assets/areas/map_ancient01_03c.rel b/web/src/jsMain/resources/assets/areas/map_ancient01_03c.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_ancient01_03c.rel rename to web/src/jsMain/resources/assets/areas/map_ancient01_03c.rel diff --git a/web/src/main/resources/assets/areas/map_ancient01_03n.rel b/web/src/jsMain/resources/assets/areas/map_ancient01_03n.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_ancient01_03n.rel rename to web/src/jsMain/resources/assets/areas/map_ancient01_03n.rel diff --git a/web/src/main/resources/assets/areas/map_ancient01_04c.rel b/web/src/jsMain/resources/assets/areas/map_ancient01_04c.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_ancient01_04c.rel rename to web/src/jsMain/resources/assets/areas/map_ancient01_04c.rel diff --git a/web/src/main/resources/assets/areas/map_ancient01_04n.rel b/web/src/jsMain/resources/assets/areas/map_ancient01_04n.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_ancient01_04n.rel rename to web/src/jsMain/resources/assets/areas/map_ancient01_04n.rel diff --git a/web/src/main/resources/assets/areas/map_ancient02.xvm b/web/src/jsMain/resources/assets/areas/map_ancient02.xvm similarity index 100% rename from web/src/main/resources/assets/areas/map_ancient02.xvm rename to web/src/jsMain/resources/assets/areas/map_ancient02.xvm diff --git a/web/src/main/resources/assets/areas/map_ancient02_00c.rel b/web/src/jsMain/resources/assets/areas/map_ancient02_00c.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_ancient02_00c.rel rename to web/src/jsMain/resources/assets/areas/map_ancient02_00c.rel diff --git a/web/src/main/resources/assets/areas/map_ancient02_00n.rel b/web/src/jsMain/resources/assets/areas/map_ancient02_00n.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_ancient02_00n.rel rename to web/src/jsMain/resources/assets/areas/map_ancient02_00n.rel diff --git a/web/src/main/resources/assets/areas/map_ancient02_01c.rel b/web/src/jsMain/resources/assets/areas/map_ancient02_01c.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_ancient02_01c.rel rename to web/src/jsMain/resources/assets/areas/map_ancient02_01c.rel diff --git a/web/src/main/resources/assets/areas/map_ancient02_01n.rel b/web/src/jsMain/resources/assets/areas/map_ancient02_01n.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_ancient02_01n.rel rename to web/src/jsMain/resources/assets/areas/map_ancient02_01n.rel diff --git a/web/src/main/resources/assets/areas/map_ancient02_02c.rel b/web/src/jsMain/resources/assets/areas/map_ancient02_02c.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_ancient02_02c.rel rename to web/src/jsMain/resources/assets/areas/map_ancient02_02c.rel diff --git a/web/src/main/resources/assets/areas/map_ancient02_02n.rel b/web/src/jsMain/resources/assets/areas/map_ancient02_02n.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_ancient02_02n.rel rename to web/src/jsMain/resources/assets/areas/map_ancient02_02n.rel diff --git a/web/src/main/resources/assets/areas/map_ancient02_03c.rel b/web/src/jsMain/resources/assets/areas/map_ancient02_03c.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_ancient02_03c.rel rename to web/src/jsMain/resources/assets/areas/map_ancient02_03c.rel diff --git a/web/src/main/resources/assets/areas/map_ancient02_03n.rel b/web/src/jsMain/resources/assets/areas/map_ancient02_03n.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_ancient02_03n.rel rename to web/src/jsMain/resources/assets/areas/map_ancient02_03n.rel diff --git a/web/src/main/resources/assets/areas/map_ancient02_04c.rel b/web/src/jsMain/resources/assets/areas/map_ancient02_04c.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_ancient02_04c.rel rename to web/src/jsMain/resources/assets/areas/map_ancient02_04c.rel diff --git a/web/src/main/resources/assets/areas/map_ancient02_04n.rel b/web/src/jsMain/resources/assets/areas/map_ancient02_04n.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_ancient02_04n.rel rename to web/src/jsMain/resources/assets/areas/map_ancient02_04n.rel diff --git a/web/src/main/resources/assets/areas/map_ancient03.xvm b/web/src/jsMain/resources/assets/areas/map_ancient03.xvm similarity index 100% rename from web/src/main/resources/assets/areas/map_ancient03.xvm rename to web/src/jsMain/resources/assets/areas/map_ancient03.xvm diff --git a/web/src/main/resources/assets/areas/map_ancient03_00c.rel b/web/src/jsMain/resources/assets/areas/map_ancient03_00c.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_ancient03_00c.rel rename to web/src/jsMain/resources/assets/areas/map_ancient03_00c.rel diff --git a/web/src/main/resources/assets/areas/map_ancient03_00n.rel b/web/src/jsMain/resources/assets/areas/map_ancient03_00n.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_ancient03_00n.rel rename to web/src/jsMain/resources/assets/areas/map_ancient03_00n.rel diff --git a/web/src/main/resources/assets/areas/map_ancient03_01c.rel b/web/src/jsMain/resources/assets/areas/map_ancient03_01c.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_ancient03_01c.rel rename to web/src/jsMain/resources/assets/areas/map_ancient03_01c.rel diff --git a/web/src/main/resources/assets/areas/map_ancient03_01n.rel b/web/src/jsMain/resources/assets/areas/map_ancient03_01n.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_ancient03_01n.rel rename to web/src/jsMain/resources/assets/areas/map_ancient03_01n.rel diff --git a/web/src/main/resources/assets/areas/map_ancient03_02c.rel b/web/src/jsMain/resources/assets/areas/map_ancient03_02c.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_ancient03_02c.rel rename to web/src/jsMain/resources/assets/areas/map_ancient03_02c.rel diff --git a/web/src/main/resources/assets/areas/map_ancient03_02n.rel b/web/src/jsMain/resources/assets/areas/map_ancient03_02n.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_ancient03_02n.rel rename to web/src/jsMain/resources/assets/areas/map_ancient03_02n.rel diff --git a/web/src/main/resources/assets/areas/map_ancient03_03c.rel b/web/src/jsMain/resources/assets/areas/map_ancient03_03c.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_ancient03_03c.rel rename to web/src/jsMain/resources/assets/areas/map_ancient03_03c.rel diff --git a/web/src/main/resources/assets/areas/map_ancient03_03n.rel b/web/src/jsMain/resources/assets/areas/map_ancient03_03n.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_ancient03_03n.rel rename to web/src/jsMain/resources/assets/areas/map_ancient03_03n.rel diff --git a/web/src/main/resources/assets/areas/map_ancient03_04c.rel b/web/src/jsMain/resources/assets/areas/map_ancient03_04c.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_ancient03_04c.rel rename to web/src/jsMain/resources/assets/areas/map_ancient03_04c.rel diff --git a/web/src/main/resources/assets/areas/map_ancient03_04n.rel b/web/src/jsMain/resources/assets/areas/map_ancient03_04n.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_ancient03_04n.rel rename to web/src/jsMain/resources/assets/areas/map_ancient03_04n.rel diff --git a/web/src/main/resources/assets/areas/map_boss01.xvm b/web/src/jsMain/resources/assets/areas/map_boss01.xvm similarity index 100% rename from web/src/main/resources/assets/areas/map_boss01.xvm rename to web/src/jsMain/resources/assets/areas/map_boss01.xvm diff --git a/web/src/main/resources/assets/areas/map_boss01c.rel b/web/src/jsMain/resources/assets/areas/map_boss01c.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_boss01c.rel rename to web/src/jsMain/resources/assets/areas/map_boss01c.rel diff --git a/web/src/main/resources/assets/areas/map_boss01n.rel b/web/src/jsMain/resources/assets/areas/map_boss01n.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_boss01n.rel rename to web/src/jsMain/resources/assets/areas/map_boss01n.rel diff --git a/web/src/main/resources/assets/areas/map_boss02.xvm b/web/src/jsMain/resources/assets/areas/map_boss02.xvm similarity index 100% rename from web/src/main/resources/assets/areas/map_boss02.xvm rename to web/src/jsMain/resources/assets/areas/map_boss02.xvm diff --git a/web/src/main/resources/assets/areas/map_boss02c.rel b/web/src/jsMain/resources/assets/areas/map_boss02c.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_boss02c.rel rename to web/src/jsMain/resources/assets/areas/map_boss02c.rel diff --git a/web/src/main/resources/assets/areas/map_boss02n.rel b/web/src/jsMain/resources/assets/areas/map_boss02n.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_boss02n.rel rename to web/src/jsMain/resources/assets/areas/map_boss02n.rel diff --git a/web/src/main/resources/assets/areas/map_boss03.xvm b/web/src/jsMain/resources/assets/areas/map_boss03.xvm similarity index 100% rename from web/src/main/resources/assets/areas/map_boss03.xvm rename to web/src/jsMain/resources/assets/areas/map_boss03.xvm diff --git a/web/src/main/resources/assets/areas/map_boss03c.rel b/web/src/jsMain/resources/assets/areas/map_boss03c.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_boss03c.rel rename to web/src/jsMain/resources/assets/areas/map_boss03c.rel diff --git a/web/src/main/resources/assets/areas/map_boss03n.rel b/web/src/jsMain/resources/assets/areas/map_boss03n.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_boss03n.rel rename to web/src/jsMain/resources/assets/areas/map_boss03n.rel diff --git a/web/src/main/resources/assets/areas/map_boss05.xvm b/web/src/jsMain/resources/assets/areas/map_boss05.xvm similarity index 100% rename from web/src/main/resources/assets/areas/map_boss05.xvm rename to web/src/jsMain/resources/assets/areas/map_boss05.xvm diff --git a/web/src/main/resources/assets/areas/map_boss05c.rel b/web/src/jsMain/resources/assets/areas/map_boss05c.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_boss05c.rel rename to web/src/jsMain/resources/assets/areas/map_boss05c.rel diff --git a/web/src/main/resources/assets/areas/map_boss05m.xvm b/web/src/jsMain/resources/assets/areas/map_boss05m.xvm similarity index 100% rename from web/src/main/resources/assets/areas/map_boss05m.xvm rename to web/src/jsMain/resources/assets/areas/map_boss05m.xvm diff --git a/web/src/main/resources/assets/areas/map_boss05n.rel b/web/src/jsMain/resources/assets/areas/map_boss05n.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_boss05n.rel rename to web/src/jsMain/resources/assets/areas/map_boss05n.rel diff --git a/web/src/main/resources/assets/areas/map_boss06.xvm b/web/src/jsMain/resources/assets/areas/map_boss06.xvm similarity index 100% rename from web/src/main/resources/assets/areas/map_boss06.xvm rename to web/src/jsMain/resources/assets/areas/map_boss06.xvm diff --git a/web/src/main/resources/assets/areas/map_boss06c.rel b/web/src/jsMain/resources/assets/areas/map_boss06c.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_boss06c.rel rename to web/src/jsMain/resources/assets/areas/map_boss06c.rel diff --git a/web/src/main/resources/assets/areas/map_boss06n.rel b/web/src/jsMain/resources/assets/areas/map_boss06n.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_boss06n.rel rename to web/src/jsMain/resources/assets/areas/map_boss06n.rel diff --git a/web/src/main/resources/assets/areas/map_boss07.xvm b/web/src/jsMain/resources/assets/areas/map_boss07.xvm similarity index 100% rename from web/src/main/resources/assets/areas/map_boss07.xvm rename to web/src/jsMain/resources/assets/areas/map_boss07.xvm diff --git a/web/src/main/resources/assets/areas/map_boss07c.rel b/web/src/jsMain/resources/assets/areas/map_boss07c.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_boss07c.rel rename to web/src/jsMain/resources/assets/areas/map_boss07c.rel diff --git a/web/src/main/resources/assets/areas/map_boss07n.rel b/web/src/jsMain/resources/assets/areas/map_boss07n.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_boss07n.rel rename to web/src/jsMain/resources/assets/areas/map_boss07n.rel diff --git a/web/src/main/resources/assets/areas/map_boss08.xvm b/web/src/jsMain/resources/assets/areas/map_boss08.xvm similarity index 100% rename from web/src/main/resources/assets/areas/map_boss08.xvm rename to web/src/jsMain/resources/assets/areas/map_boss08.xvm diff --git a/web/src/main/resources/assets/areas/map_boss08c.rel b/web/src/jsMain/resources/assets/areas/map_boss08c.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_boss08c.rel rename to web/src/jsMain/resources/assets/areas/map_boss08c.rel diff --git a/web/src/main/resources/assets/areas/map_boss08m.xvm b/web/src/jsMain/resources/assets/areas/map_boss08m.xvm similarity index 100% rename from web/src/main/resources/assets/areas/map_boss08m.xvm rename to web/src/jsMain/resources/assets/areas/map_boss08m.xvm diff --git a/web/src/main/resources/assets/areas/map_boss08n.rel b/web/src/jsMain/resources/assets/areas/map_boss08n.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_boss08n.rel rename to web/src/jsMain/resources/assets/areas/map_boss08n.rel diff --git a/web/src/main/resources/assets/areas/map_boss09.xvm b/web/src/jsMain/resources/assets/areas/map_boss09.xvm similarity index 100% rename from web/src/main/resources/assets/areas/map_boss09.xvm rename to web/src/jsMain/resources/assets/areas/map_boss09.xvm diff --git a/web/src/main/resources/assets/areas/map_boss09_00c.rel b/web/src/jsMain/resources/assets/areas/map_boss09_00c.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_boss09_00c.rel rename to web/src/jsMain/resources/assets/areas/map_boss09_00c.rel diff --git a/web/src/main/resources/assets/areas/map_boss09_00n.rel b/web/src/jsMain/resources/assets/areas/map_boss09_00n.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_boss09_00n.rel rename to web/src/jsMain/resources/assets/areas/map_boss09_00n.rel diff --git a/web/src/main/resources/assets/areas/map_cave01.xvm b/web/src/jsMain/resources/assets/areas/map_cave01.xvm similarity index 100% rename from web/src/main/resources/assets/areas/map_cave01.xvm rename to web/src/jsMain/resources/assets/areas/map_cave01.xvm diff --git a/web/src/main/resources/assets/areas/map_cave01_00c.rel b/web/src/jsMain/resources/assets/areas/map_cave01_00c.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_cave01_00c.rel rename to web/src/jsMain/resources/assets/areas/map_cave01_00c.rel diff --git a/web/src/main/resources/assets/areas/map_cave01_00n.rel b/web/src/jsMain/resources/assets/areas/map_cave01_00n.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_cave01_00n.rel rename to web/src/jsMain/resources/assets/areas/map_cave01_00n.rel diff --git a/web/src/main/resources/assets/areas/map_cave01_01c.rel b/web/src/jsMain/resources/assets/areas/map_cave01_01c.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_cave01_01c.rel rename to web/src/jsMain/resources/assets/areas/map_cave01_01c.rel diff --git a/web/src/main/resources/assets/areas/map_cave01_01n.rel b/web/src/jsMain/resources/assets/areas/map_cave01_01n.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_cave01_01n.rel rename to web/src/jsMain/resources/assets/areas/map_cave01_01n.rel diff --git a/web/src/main/resources/assets/areas/map_cave01_02c.rel b/web/src/jsMain/resources/assets/areas/map_cave01_02c.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_cave01_02c.rel rename to web/src/jsMain/resources/assets/areas/map_cave01_02c.rel diff --git a/web/src/main/resources/assets/areas/map_cave01_02n.rel b/web/src/jsMain/resources/assets/areas/map_cave01_02n.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_cave01_02n.rel rename to web/src/jsMain/resources/assets/areas/map_cave01_02n.rel diff --git a/web/src/main/resources/assets/areas/map_cave01_03c.rel b/web/src/jsMain/resources/assets/areas/map_cave01_03c.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_cave01_03c.rel rename to web/src/jsMain/resources/assets/areas/map_cave01_03c.rel diff --git a/web/src/main/resources/assets/areas/map_cave01_03n.rel b/web/src/jsMain/resources/assets/areas/map_cave01_03n.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_cave01_03n.rel rename to web/src/jsMain/resources/assets/areas/map_cave01_03n.rel diff --git a/web/src/main/resources/assets/areas/map_cave01_04c.rel b/web/src/jsMain/resources/assets/areas/map_cave01_04c.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_cave01_04c.rel rename to web/src/jsMain/resources/assets/areas/map_cave01_04c.rel diff --git a/web/src/main/resources/assets/areas/map_cave01_04n.rel b/web/src/jsMain/resources/assets/areas/map_cave01_04n.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_cave01_04n.rel rename to web/src/jsMain/resources/assets/areas/map_cave01_04n.rel diff --git a/web/src/main/resources/assets/areas/map_cave01_05c.rel b/web/src/jsMain/resources/assets/areas/map_cave01_05c.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_cave01_05c.rel rename to web/src/jsMain/resources/assets/areas/map_cave01_05c.rel diff --git a/web/src/main/resources/assets/areas/map_cave01_05n.rel b/web/src/jsMain/resources/assets/areas/map_cave01_05n.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_cave01_05n.rel rename to web/src/jsMain/resources/assets/areas/map_cave01_05n.rel diff --git a/web/src/main/resources/assets/areas/map_cave02.xvm b/web/src/jsMain/resources/assets/areas/map_cave02.xvm similarity index 100% rename from web/src/main/resources/assets/areas/map_cave02.xvm rename to web/src/jsMain/resources/assets/areas/map_cave02.xvm diff --git a/web/src/main/resources/assets/areas/map_cave02_00c.rel b/web/src/jsMain/resources/assets/areas/map_cave02_00c.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_cave02_00c.rel rename to web/src/jsMain/resources/assets/areas/map_cave02_00c.rel diff --git a/web/src/main/resources/assets/areas/map_cave02_00n.rel b/web/src/jsMain/resources/assets/areas/map_cave02_00n.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_cave02_00n.rel rename to web/src/jsMain/resources/assets/areas/map_cave02_00n.rel diff --git a/web/src/main/resources/assets/areas/map_cave02_01c.rel b/web/src/jsMain/resources/assets/areas/map_cave02_01c.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_cave02_01c.rel rename to web/src/jsMain/resources/assets/areas/map_cave02_01c.rel diff --git a/web/src/main/resources/assets/areas/map_cave02_01n.rel b/web/src/jsMain/resources/assets/areas/map_cave02_01n.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_cave02_01n.rel rename to web/src/jsMain/resources/assets/areas/map_cave02_01n.rel diff --git a/web/src/main/resources/assets/areas/map_cave02_02c.rel b/web/src/jsMain/resources/assets/areas/map_cave02_02c.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_cave02_02c.rel rename to web/src/jsMain/resources/assets/areas/map_cave02_02c.rel diff --git a/web/src/main/resources/assets/areas/map_cave02_02n.rel b/web/src/jsMain/resources/assets/areas/map_cave02_02n.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_cave02_02n.rel rename to web/src/jsMain/resources/assets/areas/map_cave02_02n.rel diff --git a/web/src/main/resources/assets/areas/map_cave02_03c.rel b/web/src/jsMain/resources/assets/areas/map_cave02_03c.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_cave02_03c.rel rename to web/src/jsMain/resources/assets/areas/map_cave02_03c.rel diff --git a/web/src/main/resources/assets/areas/map_cave02_03n.rel b/web/src/jsMain/resources/assets/areas/map_cave02_03n.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_cave02_03n.rel rename to web/src/jsMain/resources/assets/areas/map_cave02_03n.rel diff --git a/web/src/main/resources/assets/areas/map_cave02_04c.rel b/web/src/jsMain/resources/assets/areas/map_cave02_04c.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_cave02_04c.rel rename to web/src/jsMain/resources/assets/areas/map_cave02_04c.rel diff --git a/web/src/main/resources/assets/areas/map_cave02_04n.rel b/web/src/jsMain/resources/assets/areas/map_cave02_04n.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_cave02_04n.rel rename to web/src/jsMain/resources/assets/areas/map_cave02_04n.rel diff --git a/web/src/main/resources/assets/areas/map_cave03.xvm b/web/src/jsMain/resources/assets/areas/map_cave03.xvm similarity index 100% rename from web/src/main/resources/assets/areas/map_cave03.xvm rename to web/src/jsMain/resources/assets/areas/map_cave03.xvm diff --git a/web/src/main/resources/assets/areas/map_cave03_00c.rel b/web/src/jsMain/resources/assets/areas/map_cave03_00c.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_cave03_00c.rel rename to web/src/jsMain/resources/assets/areas/map_cave03_00c.rel diff --git a/web/src/main/resources/assets/areas/map_cave03_00n.rel b/web/src/jsMain/resources/assets/areas/map_cave03_00n.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_cave03_00n.rel rename to web/src/jsMain/resources/assets/areas/map_cave03_00n.rel diff --git a/web/src/main/resources/assets/areas/map_cave03_01c.rel b/web/src/jsMain/resources/assets/areas/map_cave03_01c.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_cave03_01c.rel rename to web/src/jsMain/resources/assets/areas/map_cave03_01c.rel diff --git a/web/src/main/resources/assets/areas/map_cave03_01n.rel b/web/src/jsMain/resources/assets/areas/map_cave03_01n.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_cave03_01n.rel rename to web/src/jsMain/resources/assets/areas/map_cave03_01n.rel diff --git a/web/src/main/resources/assets/areas/map_cave03_02c.rel b/web/src/jsMain/resources/assets/areas/map_cave03_02c.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_cave03_02c.rel rename to web/src/jsMain/resources/assets/areas/map_cave03_02c.rel diff --git a/web/src/main/resources/assets/areas/map_cave03_02n.rel b/web/src/jsMain/resources/assets/areas/map_cave03_02n.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_cave03_02n.rel rename to web/src/jsMain/resources/assets/areas/map_cave03_02n.rel diff --git a/web/src/main/resources/assets/areas/map_cave03_03c.rel b/web/src/jsMain/resources/assets/areas/map_cave03_03c.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_cave03_03c.rel rename to web/src/jsMain/resources/assets/areas/map_cave03_03c.rel diff --git a/web/src/main/resources/assets/areas/map_cave03_03n.rel b/web/src/jsMain/resources/assets/areas/map_cave03_03n.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_cave03_03n.rel rename to web/src/jsMain/resources/assets/areas/map_cave03_03n.rel diff --git a/web/src/main/resources/assets/areas/map_cave03_04c.rel b/web/src/jsMain/resources/assets/areas/map_cave03_04c.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_cave03_04c.rel rename to web/src/jsMain/resources/assets/areas/map_cave03_04c.rel diff --git a/web/src/main/resources/assets/areas/map_cave03_04n.rel b/web/src/jsMain/resources/assets/areas/map_cave03_04n.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_cave03_04n.rel rename to web/src/jsMain/resources/assets/areas/map_cave03_04n.rel diff --git a/web/src/main/resources/assets/areas/map_cave03_05c.rel b/web/src/jsMain/resources/assets/areas/map_cave03_05c.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_cave03_05c.rel rename to web/src/jsMain/resources/assets/areas/map_cave03_05c.rel diff --git a/web/src/main/resources/assets/areas/map_cave03_05n.rel b/web/src/jsMain/resources/assets/areas/map_cave03_05n.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_cave03_05n.rel rename to web/src/jsMain/resources/assets/areas/map_cave03_05n.rel diff --git a/web/src/main/resources/assets/areas/map_city00.xvm b/web/src/jsMain/resources/assets/areas/map_city00.xvm similarity index 100% rename from web/src/main/resources/assets/areas/map_city00.xvm rename to web/src/jsMain/resources/assets/areas/map_city00.xvm diff --git a/web/src/main/resources/assets/areas/map_city00_00c.rel b/web/src/jsMain/resources/assets/areas/map_city00_00c.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_city00_00c.rel rename to web/src/jsMain/resources/assets/areas/map_city00_00c.rel diff --git a/web/src/main/resources/assets/areas/map_city00_00n.rel b/web/src/jsMain/resources/assets/areas/map_city00_00n.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_city00_00n.rel rename to web/src/jsMain/resources/assets/areas/map_city00_00n.rel diff --git a/web/src/main/resources/assets/areas/map_city02.xvm b/web/src/jsMain/resources/assets/areas/map_city02.xvm similarity index 100% rename from web/src/main/resources/assets/areas/map_city02.xvm rename to web/src/jsMain/resources/assets/areas/map_city02.xvm diff --git a/web/src/main/resources/assets/areas/map_city02_00c.rel b/web/src/jsMain/resources/assets/areas/map_city02_00c.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_city02_00c.rel rename to web/src/jsMain/resources/assets/areas/map_city02_00c.rel diff --git a/web/src/main/resources/assets/areas/map_city02_00n.rel b/web/src/jsMain/resources/assets/areas/map_city02_00n.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_city02_00n.rel rename to web/src/jsMain/resources/assets/areas/map_city02_00n.rel diff --git a/web/src/main/resources/assets/areas/map_crater01.xvm b/web/src/jsMain/resources/assets/areas/map_crater01.xvm similarity index 100% rename from web/src/main/resources/assets/areas/map_crater01.xvm rename to web/src/jsMain/resources/assets/areas/map_crater01.xvm diff --git a/web/src/main/resources/assets/areas/map_crater01_00c.rel b/web/src/jsMain/resources/assets/areas/map_crater01_00c.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_crater01_00c.rel rename to web/src/jsMain/resources/assets/areas/map_crater01_00c.rel diff --git a/web/src/main/resources/assets/areas/map_crater01_00n.rel b/web/src/jsMain/resources/assets/areas/map_crater01_00n.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_crater01_00n.rel rename to web/src/jsMain/resources/assets/areas/map_crater01_00n.rel diff --git a/web/src/main/resources/assets/areas/map_darkfalz00.xvm b/web/src/jsMain/resources/assets/areas/map_darkfalz00.xvm similarity index 100% rename from web/src/main/resources/assets/areas/map_darkfalz00.xvm rename to web/src/jsMain/resources/assets/areas/map_darkfalz00.xvm diff --git a/web/src/main/resources/assets/areas/map_darkfalz00c.rel b/web/src/jsMain/resources/assets/areas/map_darkfalz00c.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_darkfalz00c.rel rename to web/src/jsMain/resources/assets/areas/map_darkfalz00c.rel diff --git a/web/src/main/resources/assets/areas/map_darkfalz00n.rel b/web/src/jsMain/resources/assets/areas/map_darkfalz00n.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_darkfalz00n.rel rename to web/src/jsMain/resources/assets/areas/map_darkfalz00n.rel diff --git a/web/src/main/resources/assets/areas/map_desert01.xvm b/web/src/jsMain/resources/assets/areas/map_desert01.xvm similarity index 100% rename from web/src/main/resources/assets/areas/map_desert01.xvm rename to web/src/jsMain/resources/assets/areas/map_desert01.xvm diff --git a/web/src/main/resources/assets/areas/map_desert01_00c.rel b/web/src/jsMain/resources/assets/areas/map_desert01_00c.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_desert01_00c.rel rename to web/src/jsMain/resources/assets/areas/map_desert01_00c.rel diff --git a/web/src/main/resources/assets/areas/map_desert01_00n.rel b/web/src/jsMain/resources/assets/areas/map_desert01_00n.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_desert01_00n.rel rename to web/src/jsMain/resources/assets/areas/map_desert01_00n.rel diff --git a/web/src/main/resources/assets/areas/map_desert01_01c.rel b/web/src/jsMain/resources/assets/areas/map_desert01_01c.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_desert01_01c.rel rename to web/src/jsMain/resources/assets/areas/map_desert01_01c.rel diff --git a/web/src/main/resources/assets/areas/map_desert01_01n.rel b/web/src/jsMain/resources/assets/areas/map_desert01_01n.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_desert01_01n.rel rename to web/src/jsMain/resources/assets/areas/map_desert01_01n.rel diff --git a/web/src/main/resources/assets/areas/map_desert01_02c.rel b/web/src/jsMain/resources/assets/areas/map_desert01_02c.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_desert01_02c.rel rename to web/src/jsMain/resources/assets/areas/map_desert01_02c.rel diff --git a/web/src/main/resources/assets/areas/map_desert01_02n.rel b/web/src/jsMain/resources/assets/areas/map_desert01_02n.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_desert01_02n.rel rename to web/src/jsMain/resources/assets/areas/map_desert01_02n.rel diff --git a/web/src/main/resources/assets/areas/map_desert02.xvm b/web/src/jsMain/resources/assets/areas/map_desert02.xvm similarity index 100% rename from web/src/main/resources/assets/areas/map_desert02.xvm rename to web/src/jsMain/resources/assets/areas/map_desert02.xvm diff --git a/web/src/main/resources/assets/areas/map_desert02_00c.rel b/web/src/jsMain/resources/assets/areas/map_desert02_00c.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_desert02_00c.rel rename to web/src/jsMain/resources/assets/areas/map_desert02_00c.rel diff --git a/web/src/main/resources/assets/areas/map_desert02_00n.rel b/web/src/jsMain/resources/assets/areas/map_desert02_00n.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_desert02_00n.rel rename to web/src/jsMain/resources/assets/areas/map_desert02_00n.rel diff --git a/web/src/main/resources/assets/areas/map_desert02_01c.rel b/web/src/jsMain/resources/assets/areas/map_desert02_01c.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_desert02_01c.rel rename to web/src/jsMain/resources/assets/areas/map_desert02_01c.rel diff --git a/web/src/main/resources/assets/areas/map_desert02_01n.rel b/web/src/jsMain/resources/assets/areas/map_desert02_01n.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_desert02_01n.rel rename to web/src/jsMain/resources/assets/areas/map_desert02_01n.rel diff --git a/web/src/main/resources/assets/areas/map_desert02_02c.rel b/web/src/jsMain/resources/assets/areas/map_desert02_02c.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_desert02_02c.rel rename to web/src/jsMain/resources/assets/areas/map_desert02_02c.rel diff --git a/web/src/main/resources/assets/areas/map_desert02_02n.rel b/web/src/jsMain/resources/assets/areas/map_desert02_02n.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_desert02_02n.rel rename to web/src/jsMain/resources/assets/areas/map_desert02_02n.rel diff --git a/web/src/main/resources/assets/areas/map_desert03.xvm b/web/src/jsMain/resources/assets/areas/map_desert03.xvm similarity index 100% rename from web/src/main/resources/assets/areas/map_desert03.xvm rename to web/src/jsMain/resources/assets/areas/map_desert03.xvm diff --git a/web/src/main/resources/assets/areas/map_desert03_00c.rel b/web/src/jsMain/resources/assets/areas/map_desert03_00c.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_desert03_00c.rel rename to web/src/jsMain/resources/assets/areas/map_desert03_00c.rel diff --git a/web/src/main/resources/assets/areas/map_desert03_00n.rel b/web/src/jsMain/resources/assets/areas/map_desert03_00n.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_desert03_00n.rel rename to web/src/jsMain/resources/assets/areas/map_desert03_00n.rel diff --git a/web/src/main/resources/assets/areas/map_desert03_01c.rel b/web/src/jsMain/resources/assets/areas/map_desert03_01c.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_desert03_01c.rel rename to web/src/jsMain/resources/assets/areas/map_desert03_01c.rel diff --git a/web/src/main/resources/assets/areas/map_desert03_01n.rel b/web/src/jsMain/resources/assets/areas/map_desert03_01n.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_desert03_01n.rel rename to web/src/jsMain/resources/assets/areas/map_desert03_01n.rel diff --git a/web/src/main/resources/assets/areas/map_desert03_02c.rel b/web/src/jsMain/resources/assets/areas/map_desert03_02c.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_desert03_02c.rel rename to web/src/jsMain/resources/assets/areas/map_desert03_02c.rel diff --git a/web/src/main/resources/assets/areas/map_desert03_02n.rel b/web/src/jsMain/resources/assets/areas/map_desert03_02n.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_desert03_02n.rel rename to web/src/jsMain/resources/assets/areas/map_desert03_02n.rel diff --git a/web/src/main/resources/assets/areas/map_forest01.xvm b/web/src/jsMain/resources/assets/areas/map_forest01.xvm similarity index 100% rename from web/src/main/resources/assets/areas/map_forest01.xvm rename to web/src/jsMain/resources/assets/areas/map_forest01.xvm diff --git a/web/src/main/resources/assets/areas/map_forest01c.rel b/web/src/jsMain/resources/assets/areas/map_forest01c.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_forest01c.rel rename to web/src/jsMain/resources/assets/areas/map_forest01c.rel diff --git a/web/src/main/resources/assets/areas/map_forest01n.rel b/web/src/jsMain/resources/assets/areas/map_forest01n.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_forest01n.rel rename to web/src/jsMain/resources/assets/areas/map_forest01n.rel diff --git a/web/src/main/resources/assets/areas/map_forest02.xvm b/web/src/jsMain/resources/assets/areas/map_forest02.xvm similarity index 100% rename from web/src/main/resources/assets/areas/map_forest02.xvm rename to web/src/jsMain/resources/assets/areas/map_forest02.xvm diff --git a/web/src/main/resources/assets/areas/map_forest02c.rel b/web/src/jsMain/resources/assets/areas/map_forest02c.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_forest02c.rel rename to web/src/jsMain/resources/assets/areas/map_forest02c.rel diff --git a/web/src/main/resources/assets/areas/map_forest02n.rel b/web/src/jsMain/resources/assets/areas/map_forest02n.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_forest02n.rel rename to web/src/jsMain/resources/assets/areas/map_forest02n.rel diff --git a/web/src/main/resources/assets/areas/map_jungle01.xvm b/web/src/jsMain/resources/assets/areas/map_jungle01.xvm similarity index 100% rename from web/src/main/resources/assets/areas/map_jungle01.xvm rename to web/src/jsMain/resources/assets/areas/map_jungle01.xvm diff --git a/web/src/main/resources/assets/areas/map_jungle01_00c.rel b/web/src/jsMain/resources/assets/areas/map_jungle01_00c.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_jungle01_00c.rel rename to web/src/jsMain/resources/assets/areas/map_jungle01_00c.rel diff --git a/web/src/main/resources/assets/areas/map_jungle01_00n.rel b/web/src/jsMain/resources/assets/areas/map_jungle01_00n.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_jungle01_00n.rel rename to web/src/jsMain/resources/assets/areas/map_jungle01_00n.rel diff --git a/web/src/main/resources/assets/areas/map_jungle01m.xvm b/web/src/jsMain/resources/assets/areas/map_jungle01m.xvm similarity index 100% rename from web/src/main/resources/assets/areas/map_jungle01m.xvm rename to web/src/jsMain/resources/assets/areas/map_jungle01m.xvm diff --git a/web/src/main/resources/assets/areas/map_jungle02.xvm b/web/src/jsMain/resources/assets/areas/map_jungle02.xvm similarity index 100% rename from web/src/main/resources/assets/areas/map_jungle02.xvm rename to web/src/jsMain/resources/assets/areas/map_jungle02.xvm diff --git a/web/src/main/resources/assets/areas/map_jungle02_00c.rel b/web/src/jsMain/resources/assets/areas/map_jungle02_00c.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_jungle02_00c.rel rename to web/src/jsMain/resources/assets/areas/map_jungle02_00c.rel diff --git a/web/src/main/resources/assets/areas/map_jungle02_00n.rel b/web/src/jsMain/resources/assets/areas/map_jungle02_00n.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_jungle02_00n.rel rename to web/src/jsMain/resources/assets/areas/map_jungle02_00n.rel diff --git a/web/src/main/resources/assets/areas/map_jungle02m.xvm b/web/src/jsMain/resources/assets/areas/map_jungle02m.xvm similarity index 100% rename from web/src/main/resources/assets/areas/map_jungle02m.xvm rename to web/src/jsMain/resources/assets/areas/map_jungle02m.xvm diff --git a/web/src/main/resources/assets/areas/map_jungle03.xvm b/web/src/jsMain/resources/assets/areas/map_jungle03.xvm similarity index 100% rename from web/src/main/resources/assets/areas/map_jungle03.xvm rename to web/src/jsMain/resources/assets/areas/map_jungle03.xvm diff --git a/web/src/main/resources/assets/areas/map_jungle03_00c.rel b/web/src/jsMain/resources/assets/areas/map_jungle03_00c.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_jungle03_00c.rel rename to web/src/jsMain/resources/assets/areas/map_jungle03_00c.rel diff --git a/web/src/main/resources/assets/areas/map_jungle03_00n.rel b/web/src/jsMain/resources/assets/areas/map_jungle03_00n.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_jungle03_00n.rel rename to web/src/jsMain/resources/assets/areas/map_jungle03_00n.rel diff --git a/web/src/main/resources/assets/areas/map_jungle03m.xvm b/web/src/jsMain/resources/assets/areas/map_jungle03m.xvm similarity index 100% rename from web/src/main/resources/assets/areas/map_jungle03m.xvm rename to web/src/jsMain/resources/assets/areas/map_jungle03m.xvm diff --git a/web/src/main/resources/assets/areas/map_jungle04.xvm b/web/src/jsMain/resources/assets/areas/map_jungle04.xvm similarity index 100% rename from web/src/main/resources/assets/areas/map_jungle04.xvm rename to web/src/jsMain/resources/assets/areas/map_jungle04.xvm diff --git a/web/src/main/resources/assets/areas/map_jungle04_00c.rel b/web/src/jsMain/resources/assets/areas/map_jungle04_00c.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_jungle04_00c.rel rename to web/src/jsMain/resources/assets/areas/map_jungle04_00c.rel diff --git a/web/src/main/resources/assets/areas/map_jungle04_00n.rel b/web/src/jsMain/resources/assets/areas/map_jungle04_00n.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_jungle04_00n.rel rename to web/src/jsMain/resources/assets/areas/map_jungle04_00n.rel diff --git a/web/src/main/resources/assets/areas/map_jungle04_01c.rel b/web/src/jsMain/resources/assets/areas/map_jungle04_01c.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_jungle04_01c.rel rename to web/src/jsMain/resources/assets/areas/map_jungle04_01c.rel diff --git a/web/src/main/resources/assets/areas/map_jungle04_01n.rel b/web/src/jsMain/resources/assets/areas/map_jungle04_01n.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_jungle04_01n.rel rename to web/src/jsMain/resources/assets/areas/map_jungle04_01n.rel diff --git a/web/src/main/resources/assets/areas/map_jungle04_02c.rel b/web/src/jsMain/resources/assets/areas/map_jungle04_02c.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_jungle04_02c.rel rename to web/src/jsMain/resources/assets/areas/map_jungle04_02c.rel diff --git a/web/src/main/resources/assets/areas/map_jungle04_02n.rel b/web/src/jsMain/resources/assets/areas/map_jungle04_02n.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_jungle04_02n.rel rename to web/src/jsMain/resources/assets/areas/map_jungle04_02n.rel diff --git a/web/src/main/resources/assets/areas/map_jungle04m.xvm b/web/src/jsMain/resources/assets/areas/map_jungle04m.xvm similarity index 100% rename from web/src/main/resources/assets/areas/map_jungle04m.xvm rename to web/src/jsMain/resources/assets/areas/map_jungle04m.xvm diff --git a/web/src/main/resources/assets/areas/map_jungle05.xvm b/web/src/jsMain/resources/assets/areas/map_jungle05.xvm similarity index 100% rename from web/src/main/resources/assets/areas/map_jungle05.xvm rename to web/src/jsMain/resources/assets/areas/map_jungle05.xvm diff --git a/web/src/main/resources/assets/areas/map_jungle05_00c.rel b/web/src/jsMain/resources/assets/areas/map_jungle05_00c.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_jungle05_00c.rel rename to web/src/jsMain/resources/assets/areas/map_jungle05_00c.rel diff --git a/web/src/main/resources/assets/areas/map_jungle05_00n.rel b/web/src/jsMain/resources/assets/areas/map_jungle05_00n.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_jungle05_00n.rel rename to web/src/jsMain/resources/assets/areas/map_jungle05_00n.rel diff --git a/web/src/main/resources/assets/areas/map_jungle05m.xvm b/web/src/jsMain/resources/assets/areas/map_jungle05m.xvm similarity index 100% rename from web/src/main/resources/assets/areas/map_jungle05m.xvm rename to web/src/jsMain/resources/assets/areas/map_jungle05m.xvm diff --git a/web/src/main/resources/assets/areas/map_jungle06.xvm b/web/src/jsMain/resources/assets/areas/map_jungle06.xvm similarity index 100% rename from web/src/main/resources/assets/areas/map_jungle06.xvm rename to web/src/jsMain/resources/assets/areas/map_jungle06.xvm diff --git a/web/src/main/resources/assets/areas/map_jungle06_00c.rel b/web/src/jsMain/resources/assets/areas/map_jungle06_00c.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_jungle06_00c.rel rename to web/src/jsMain/resources/assets/areas/map_jungle06_00c.rel diff --git a/web/src/main/resources/assets/areas/map_jungle06_00n.rel b/web/src/jsMain/resources/assets/areas/map_jungle06_00n.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_jungle06_00n.rel rename to web/src/jsMain/resources/assets/areas/map_jungle06_00n.rel diff --git a/web/src/main/resources/assets/areas/map_jungle07.xvm b/web/src/jsMain/resources/assets/areas/map_jungle07.xvm similarity index 100% rename from web/src/main/resources/assets/areas/map_jungle07.xvm rename to web/src/jsMain/resources/assets/areas/map_jungle07.xvm diff --git a/web/src/main/resources/assets/areas/map_jungle07_00c.rel b/web/src/jsMain/resources/assets/areas/map_jungle07_00c.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_jungle07_00c.rel rename to web/src/jsMain/resources/assets/areas/map_jungle07_00c.rel diff --git a/web/src/main/resources/assets/areas/map_jungle07_00n.rel b/web/src/jsMain/resources/assets/areas/map_jungle07_00n.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_jungle07_00n.rel rename to web/src/jsMain/resources/assets/areas/map_jungle07_00n.rel diff --git a/web/src/main/resources/assets/areas/map_jungle07_01c.rel b/web/src/jsMain/resources/assets/areas/map_jungle07_01c.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_jungle07_01c.rel rename to web/src/jsMain/resources/assets/areas/map_jungle07_01c.rel diff --git a/web/src/main/resources/assets/areas/map_jungle07_01n.rel b/web/src/jsMain/resources/assets/areas/map_jungle07_01n.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_jungle07_01n.rel rename to web/src/jsMain/resources/assets/areas/map_jungle07_01n.rel diff --git a/web/src/main/resources/assets/areas/map_jungle07_02c.rel b/web/src/jsMain/resources/assets/areas/map_jungle07_02c.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_jungle07_02c.rel rename to web/src/jsMain/resources/assets/areas/map_jungle07_02c.rel diff --git a/web/src/main/resources/assets/areas/map_jungle07_02n.rel b/web/src/jsMain/resources/assets/areas/map_jungle07_02n.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_jungle07_02n.rel rename to web/src/jsMain/resources/assets/areas/map_jungle07_02n.rel diff --git a/web/src/main/resources/assets/areas/map_jungle07_03c.rel b/web/src/jsMain/resources/assets/areas/map_jungle07_03c.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_jungle07_03c.rel rename to web/src/jsMain/resources/assets/areas/map_jungle07_03c.rel diff --git a/web/src/main/resources/assets/areas/map_jungle07_03n.rel b/web/src/jsMain/resources/assets/areas/map_jungle07_03n.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_jungle07_03n.rel rename to web/src/jsMain/resources/assets/areas/map_jungle07_03n.rel diff --git a/web/src/main/resources/assets/areas/map_jungle07_04c.rel b/web/src/jsMain/resources/assets/areas/map_jungle07_04c.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_jungle07_04c.rel rename to web/src/jsMain/resources/assets/areas/map_jungle07_04c.rel diff --git a/web/src/main/resources/assets/areas/map_jungle07_04n.rel b/web/src/jsMain/resources/assets/areas/map_jungle07_04n.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_jungle07_04n.rel rename to web/src/jsMain/resources/assets/areas/map_jungle07_04n.rel diff --git a/web/src/main/resources/assets/areas/map_labo00.xvm b/web/src/jsMain/resources/assets/areas/map_labo00.xvm similarity index 100% rename from web/src/main/resources/assets/areas/map_labo00.xvm rename to web/src/jsMain/resources/assets/areas/map_labo00.xvm diff --git a/web/src/main/resources/assets/areas/map_labo00_00c.rel b/web/src/jsMain/resources/assets/areas/map_labo00_00c.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_labo00_00c.rel rename to web/src/jsMain/resources/assets/areas/map_labo00_00c.rel diff --git a/web/src/main/resources/assets/areas/map_labo00_00n.rel b/web/src/jsMain/resources/assets/areas/map_labo00_00n.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_labo00_00n.rel rename to web/src/jsMain/resources/assets/areas/map_labo00_00n.rel diff --git a/web/src/main/resources/assets/areas/map_labo00m.xvm b/web/src/jsMain/resources/assets/areas/map_labo00m.xvm similarity index 100% rename from web/src/main/resources/assets/areas/map_labo00m.xvm rename to web/src/jsMain/resources/assets/areas/map_labo00m.xvm diff --git a/web/src/main/resources/assets/areas/map_lobby_00c.rel b/web/src/jsMain/resources/assets/areas/map_lobby_00c.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_lobby_00c.rel rename to web/src/jsMain/resources/assets/areas/map_lobby_00c.rel diff --git a/web/src/main/resources/assets/areas/map_lobby_00n.rel b/web/src/jsMain/resources/assets/areas/map_lobby_00n.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_lobby_00n.rel rename to web/src/jsMain/resources/assets/areas/map_lobby_00n.rel diff --git a/web/src/main/resources/assets/areas/map_lobby_01.xvm b/web/src/jsMain/resources/assets/areas/map_lobby_01.xvm similarity index 100% rename from web/src/main/resources/assets/areas/map_lobby_01.xvm rename to web/src/jsMain/resources/assets/areas/map_lobby_01.xvm diff --git a/web/src/main/resources/assets/areas/map_lobby_01c.rel b/web/src/jsMain/resources/assets/areas/map_lobby_01c.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_lobby_01c.rel rename to web/src/jsMain/resources/assets/areas/map_lobby_01c.rel diff --git a/web/src/main/resources/assets/areas/map_lobby_01n.rel b/web/src/jsMain/resources/assets/areas/map_lobby_01n.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_lobby_01n.rel rename to web/src/jsMain/resources/assets/areas/map_lobby_01n.rel diff --git a/web/src/main/resources/assets/areas/map_lobby_02c.rel b/web/src/jsMain/resources/assets/areas/map_lobby_02c.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_lobby_02c.rel rename to web/src/jsMain/resources/assets/areas/map_lobby_02c.rel diff --git a/web/src/main/resources/assets/areas/map_lobby_02n.rel b/web/src/jsMain/resources/assets/areas/map_lobby_02n.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_lobby_02n.rel rename to web/src/jsMain/resources/assets/areas/map_lobby_02n.rel diff --git a/web/src/main/resources/assets/areas/map_lobby_03c.rel b/web/src/jsMain/resources/assets/areas/map_lobby_03c.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_lobby_03c.rel rename to web/src/jsMain/resources/assets/areas/map_lobby_03c.rel diff --git a/web/src/main/resources/assets/areas/map_lobby_03n.rel b/web/src/jsMain/resources/assets/areas/map_lobby_03n.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_lobby_03n.rel rename to web/src/jsMain/resources/assets/areas/map_lobby_03n.rel diff --git a/web/src/main/resources/assets/areas/map_lobby_04c.rel b/web/src/jsMain/resources/assets/areas/map_lobby_04c.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_lobby_04c.rel rename to web/src/jsMain/resources/assets/areas/map_lobby_04c.rel diff --git a/web/src/main/resources/assets/areas/map_lobby_04n.rel b/web/src/jsMain/resources/assets/areas/map_lobby_04n.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_lobby_04n.rel rename to web/src/jsMain/resources/assets/areas/map_lobby_04n.rel diff --git a/web/src/main/resources/assets/areas/map_lobby_05c.rel b/web/src/jsMain/resources/assets/areas/map_lobby_05c.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_lobby_05c.rel rename to web/src/jsMain/resources/assets/areas/map_lobby_05c.rel diff --git a/web/src/main/resources/assets/areas/map_lobby_05n.rel b/web/src/jsMain/resources/assets/areas/map_lobby_05n.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_lobby_05n.rel rename to web/src/jsMain/resources/assets/areas/map_lobby_05n.rel diff --git a/web/src/main/resources/assets/areas/map_lobby_06c.rel b/web/src/jsMain/resources/assets/areas/map_lobby_06c.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_lobby_06c.rel rename to web/src/jsMain/resources/assets/areas/map_lobby_06c.rel diff --git a/web/src/main/resources/assets/areas/map_lobby_06n.rel b/web/src/jsMain/resources/assets/areas/map_lobby_06n.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_lobby_06n.rel rename to web/src/jsMain/resources/assets/areas/map_lobby_06n.rel diff --git a/web/src/main/resources/assets/areas/map_lobby_07c.rel b/web/src/jsMain/resources/assets/areas/map_lobby_07c.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_lobby_07c.rel rename to web/src/jsMain/resources/assets/areas/map_lobby_07c.rel diff --git a/web/src/main/resources/assets/areas/map_lobby_07n.rel b/web/src/jsMain/resources/assets/areas/map_lobby_07n.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_lobby_07n.rel rename to web/src/jsMain/resources/assets/areas/map_lobby_07n.rel diff --git a/web/src/main/resources/assets/areas/map_lobby_08c.rel b/web/src/jsMain/resources/assets/areas/map_lobby_08c.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_lobby_08c.rel rename to web/src/jsMain/resources/assets/areas/map_lobby_08c.rel diff --git a/web/src/main/resources/assets/areas/map_lobby_08n.rel b/web/src/jsMain/resources/assets/areas/map_lobby_08n.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_lobby_08n.rel rename to web/src/jsMain/resources/assets/areas/map_lobby_08n.rel diff --git a/web/src/main/resources/assets/areas/map_lobby_09c.rel b/web/src/jsMain/resources/assets/areas/map_lobby_09c.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_lobby_09c.rel rename to web/src/jsMain/resources/assets/areas/map_lobby_09c.rel diff --git a/web/src/main/resources/assets/areas/map_lobby_09n.rel b/web/src/jsMain/resources/assets/areas/map_lobby_09n.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_lobby_09n.rel rename to web/src/jsMain/resources/assets/areas/map_lobby_09n.rel diff --git a/web/src/main/resources/assets/areas/map_lobby_10c.rel b/web/src/jsMain/resources/assets/areas/map_lobby_10c.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_lobby_10c.rel rename to web/src/jsMain/resources/assets/areas/map_lobby_10c.rel diff --git a/web/src/main/resources/assets/areas/map_lobby_10n.rel b/web/src/jsMain/resources/assets/areas/map_lobby_10n.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_lobby_10n.rel rename to web/src/jsMain/resources/assets/areas/map_lobby_10n.rel diff --git a/web/src/main/resources/assets/areas/map_lobby_green_be00.xvm b/web/src/jsMain/resources/assets/areas/map_lobby_green_be00.xvm similarity index 100% rename from web/src/main/resources/assets/areas/map_lobby_green_be00.xvm rename to web/src/jsMain/resources/assets/areas/map_lobby_green_be00.xvm diff --git a/web/src/main/resources/assets/areas/map_lobby_green_be00c.rel b/web/src/jsMain/resources/assets/areas/map_lobby_green_be00c.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_lobby_green_be00c.rel rename to web/src/jsMain/resources/assets/areas/map_lobby_green_be00c.rel diff --git a/web/src/main/resources/assets/areas/map_lobby_green_be00n.rel b/web/src/jsMain/resources/assets/areas/map_lobby_green_be00n.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_lobby_green_be00n.rel rename to web/src/jsMain/resources/assets/areas/map_lobby_green_be00n.rel diff --git a/web/src/main/resources/assets/areas/map_lobby_red_be00.xvm b/web/src/jsMain/resources/assets/areas/map_lobby_red_be00.xvm similarity index 100% rename from web/src/main/resources/assets/areas/map_lobby_red_be00.xvm rename to web/src/jsMain/resources/assets/areas/map_lobby_red_be00.xvm diff --git a/web/src/main/resources/assets/areas/map_lobby_red_be00c.rel b/web/src/jsMain/resources/assets/areas/map_lobby_red_be00c.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_lobby_red_be00c.rel rename to web/src/jsMain/resources/assets/areas/map_lobby_red_be00c.rel diff --git a/web/src/main/resources/assets/areas/map_lobby_red_be00n.rel b/web/src/jsMain/resources/assets/areas/map_lobby_red_be00n.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_lobby_red_be00n.rel rename to web/src/jsMain/resources/assets/areas/map_lobby_red_be00n.rel diff --git a/web/src/main/resources/assets/areas/map_lobby_yellow_be00.xvm b/web/src/jsMain/resources/assets/areas/map_lobby_yellow_be00.xvm similarity index 100% rename from web/src/main/resources/assets/areas/map_lobby_yellow_be00.xvm rename to web/src/jsMain/resources/assets/areas/map_lobby_yellow_be00.xvm diff --git a/web/src/main/resources/assets/areas/map_lobby_yellow_be00c.rel b/web/src/jsMain/resources/assets/areas/map_lobby_yellow_be00c.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_lobby_yellow_be00c.rel rename to web/src/jsMain/resources/assets/areas/map_lobby_yellow_be00c.rel diff --git a/web/src/main/resources/assets/areas/map_lobby_yellow_be00n.rel b/web/src/jsMain/resources/assets/areas/map_lobby_yellow_be00n.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_lobby_yellow_be00n.rel rename to web/src/jsMain/resources/assets/areas/map_lobby_yellow_be00n.rel diff --git a/web/src/main/resources/assets/areas/map_machine01.xvm b/web/src/jsMain/resources/assets/areas/map_machine01.xvm similarity index 100% rename from web/src/main/resources/assets/areas/map_machine01.xvm rename to web/src/jsMain/resources/assets/areas/map_machine01.xvm diff --git a/web/src/main/resources/assets/areas/map_machine01_00c.rel b/web/src/jsMain/resources/assets/areas/map_machine01_00c.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_machine01_00c.rel rename to web/src/jsMain/resources/assets/areas/map_machine01_00c.rel diff --git a/web/src/main/resources/assets/areas/map_machine01_00n.rel b/web/src/jsMain/resources/assets/areas/map_machine01_00n.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_machine01_00n.rel rename to web/src/jsMain/resources/assets/areas/map_machine01_00n.rel diff --git a/web/src/main/resources/assets/areas/map_machine01_01c.rel b/web/src/jsMain/resources/assets/areas/map_machine01_01c.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_machine01_01c.rel rename to web/src/jsMain/resources/assets/areas/map_machine01_01c.rel diff --git a/web/src/main/resources/assets/areas/map_machine01_01n.rel b/web/src/jsMain/resources/assets/areas/map_machine01_01n.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_machine01_01n.rel rename to web/src/jsMain/resources/assets/areas/map_machine01_01n.rel diff --git a/web/src/main/resources/assets/areas/map_machine01_02c.rel b/web/src/jsMain/resources/assets/areas/map_machine01_02c.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_machine01_02c.rel rename to web/src/jsMain/resources/assets/areas/map_machine01_02c.rel diff --git a/web/src/main/resources/assets/areas/map_machine01_02n.rel b/web/src/jsMain/resources/assets/areas/map_machine01_02n.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_machine01_02n.rel rename to web/src/jsMain/resources/assets/areas/map_machine01_02n.rel diff --git a/web/src/main/resources/assets/areas/map_machine01_03c.rel b/web/src/jsMain/resources/assets/areas/map_machine01_03c.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_machine01_03c.rel rename to web/src/jsMain/resources/assets/areas/map_machine01_03c.rel diff --git a/web/src/main/resources/assets/areas/map_machine01_03n.rel b/web/src/jsMain/resources/assets/areas/map_machine01_03n.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_machine01_03n.rel rename to web/src/jsMain/resources/assets/areas/map_machine01_03n.rel diff --git a/web/src/main/resources/assets/areas/map_machine01_04c.rel b/web/src/jsMain/resources/assets/areas/map_machine01_04c.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_machine01_04c.rel rename to web/src/jsMain/resources/assets/areas/map_machine01_04c.rel diff --git a/web/src/main/resources/assets/areas/map_machine01_04n.rel b/web/src/jsMain/resources/assets/areas/map_machine01_04n.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_machine01_04n.rel rename to web/src/jsMain/resources/assets/areas/map_machine01_04n.rel diff --git a/web/src/main/resources/assets/areas/map_machine01_05c.rel b/web/src/jsMain/resources/assets/areas/map_machine01_05c.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_machine01_05c.rel rename to web/src/jsMain/resources/assets/areas/map_machine01_05c.rel diff --git a/web/src/main/resources/assets/areas/map_machine01_05n.rel b/web/src/jsMain/resources/assets/areas/map_machine01_05n.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_machine01_05n.rel rename to web/src/jsMain/resources/assets/areas/map_machine01_05n.rel diff --git a/web/src/main/resources/assets/areas/map_machine01m.xvm b/web/src/jsMain/resources/assets/areas/map_machine01m.xvm similarity index 100% rename from web/src/main/resources/assets/areas/map_machine01m.xvm rename to web/src/jsMain/resources/assets/areas/map_machine01m.xvm diff --git a/web/src/main/resources/assets/areas/map_machine02.xvm b/web/src/jsMain/resources/assets/areas/map_machine02.xvm similarity index 100% rename from web/src/main/resources/assets/areas/map_machine02.xvm rename to web/src/jsMain/resources/assets/areas/map_machine02.xvm diff --git a/web/src/main/resources/assets/areas/map_machine02_00c.rel b/web/src/jsMain/resources/assets/areas/map_machine02_00c.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_machine02_00c.rel rename to web/src/jsMain/resources/assets/areas/map_machine02_00c.rel diff --git a/web/src/main/resources/assets/areas/map_machine02_00n.rel b/web/src/jsMain/resources/assets/areas/map_machine02_00n.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_machine02_00n.rel rename to web/src/jsMain/resources/assets/areas/map_machine02_00n.rel diff --git a/web/src/main/resources/assets/areas/map_machine02_01c.rel b/web/src/jsMain/resources/assets/areas/map_machine02_01c.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_machine02_01c.rel rename to web/src/jsMain/resources/assets/areas/map_machine02_01c.rel diff --git a/web/src/main/resources/assets/areas/map_machine02_01n.rel b/web/src/jsMain/resources/assets/areas/map_machine02_01n.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_machine02_01n.rel rename to web/src/jsMain/resources/assets/areas/map_machine02_01n.rel diff --git a/web/src/main/resources/assets/areas/map_machine02_02c.rel b/web/src/jsMain/resources/assets/areas/map_machine02_02c.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_machine02_02c.rel rename to web/src/jsMain/resources/assets/areas/map_machine02_02c.rel diff --git a/web/src/main/resources/assets/areas/map_machine02_02n.rel b/web/src/jsMain/resources/assets/areas/map_machine02_02n.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_machine02_02n.rel rename to web/src/jsMain/resources/assets/areas/map_machine02_02n.rel diff --git a/web/src/main/resources/assets/areas/map_machine02_03c.rel b/web/src/jsMain/resources/assets/areas/map_machine02_03c.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_machine02_03c.rel rename to web/src/jsMain/resources/assets/areas/map_machine02_03c.rel diff --git a/web/src/main/resources/assets/areas/map_machine02_03n.rel b/web/src/jsMain/resources/assets/areas/map_machine02_03n.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_machine02_03n.rel rename to web/src/jsMain/resources/assets/areas/map_machine02_03n.rel diff --git a/web/src/main/resources/assets/areas/map_machine02_04c.rel b/web/src/jsMain/resources/assets/areas/map_machine02_04c.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_machine02_04c.rel rename to web/src/jsMain/resources/assets/areas/map_machine02_04c.rel diff --git a/web/src/main/resources/assets/areas/map_machine02_04n.rel b/web/src/jsMain/resources/assets/areas/map_machine02_04n.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_machine02_04n.rel rename to web/src/jsMain/resources/assets/areas/map_machine02_04n.rel diff --git a/web/src/main/resources/assets/areas/map_machine02_05c.rel b/web/src/jsMain/resources/assets/areas/map_machine02_05c.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_machine02_05c.rel rename to web/src/jsMain/resources/assets/areas/map_machine02_05c.rel diff --git a/web/src/main/resources/assets/areas/map_machine02_05n.rel b/web/src/jsMain/resources/assets/areas/map_machine02_05n.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_machine02_05n.rel rename to web/src/jsMain/resources/assets/areas/map_machine02_05n.rel diff --git a/web/src/main/resources/assets/areas/map_machine02m.xvm b/web/src/jsMain/resources/assets/areas/map_machine02m.xvm similarity index 100% rename from web/src/main/resources/assets/areas/map_machine02m.xvm rename to web/src/jsMain/resources/assets/areas/map_machine02m.xvm diff --git a/web/src/main/resources/assets/areas/map_ruins01.xvm b/web/src/jsMain/resources/assets/areas/map_ruins01.xvm similarity index 100% rename from web/src/main/resources/assets/areas/map_ruins01.xvm rename to web/src/jsMain/resources/assets/areas/map_ruins01.xvm diff --git a/web/src/main/resources/assets/areas/map_ruins01_00c.rel b/web/src/jsMain/resources/assets/areas/map_ruins01_00c.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_ruins01_00c.rel rename to web/src/jsMain/resources/assets/areas/map_ruins01_00c.rel diff --git a/web/src/main/resources/assets/areas/map_ruins01_00n.rel b/web/src/jsMain/resources/assets/areas/map_ruins01_00n.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_ruins01_00n.rel rename to web/src/jsMain/resources/assets/areas/map_ruins01_00n.rel diff --git a/web/src/main/resources/assets/areas/map_ruins01_01c.rel b/web/src/jsMain/resources/assets/areas/map_ruins01_01c.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_ruins01_01c.rel rename to web/src/jsMain/resources/assets/areas/map_ruins01_01c.rel diff --git a/web/src/main/resources/assets/areas/map_ruins01_01n.rel b/web/src/jsMain/resources/assets/areas/map_ruins01_01n.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_ruins01_01n.rel rename to web/src/jsMain/resources/assets/areas/map_ruins01_01n.rel diff --git a/web/src/main/resources/assets/areas/map_ruins01_02c.rel b/web/src/jsMain/resources/assets/areas/map_ruins01_02c.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_ruins01_02c.rel rename to web/src/jsMain/resources/assets/areas/map_ruins01_02c.rel diff --git a/web/src/main/resources/assets/areas/map_ruins01_02n.rel b/web/src/jsMain/resources/assets/areas/map_ruins01_02n.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_ruins01_02n.rel rename to web/src/jsMain/resources/assets/areas/map_ruins01_02n.rel diff --git a/web/src/main/resources/assets/areas/map_ruins02.xvm b/web/src/jsMain/resources/assets/areas/map_ruins02.xvm similarity index 100% rename from web/src/main/resources/assets/areas/map_ruins02.xvm rename to web/src/jsMain/resources/assets/areas/map_ruins02.xvm diff --git a/web/src/main/resources/assets/areas/map_ruins02_00c.rel b/web/src/jsMain/resources/assets/areas/map_ruins02_00c.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_ruins02_00c.rel rename to web/src/jsMain/resources/assets/areas/map_ruins02_00c.rel diff --git a/web/src/main/resources/assets/areas/map_ruins02_00n.rel b/web/src/jsMain/resources/assets/areas/map_ruins02_00n.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_ruins02_00n.rel rename to web/src/jsMain/resources/assets/areas/map_ruins02_00n.rel diff --git a/web/src/main/resources/assets/areas/map_ruins02_01c.rel b/web/src/jsMain/resources/assets/areas/map_ruins02_01c.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_ruins02_01c.rel rename to web/src/jsMain/resources/assets/areas/map_ruins02_01c.rel diff --git a/web/src/main/resources/assets/areas/map_ruins02_01n.rel b/web/src/jsMain/resources/assets/areas/map_ruins02_01n.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_ruins02_01n.rel rename to web/src/jsMain/resources/assets/areas/map_ruins02_01n.rel diff --git a/web/src/main/resources/assets/areas/map_ruins02_02c.rel b/web/src/jsMain/resources/assets/areas/map_ruins02_02c.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_ruins02_02c.rel rename to web/src/jsMain/resources/assets/areas/map_ruins02_02c.rel diff --git a/web/src/main/resources/assets/areas/map_ruins02_02n.rel b/web/src/jsMain/resources/assets/areas/map_ruins02_02n.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_ruins02_02n.rel rename to web/src/jsMain/resources/assets/areas/map_ruins02_02n.rel diff --git a/web/src/main/resources/assets/areas/map_seabed01.xvm b/web/src/jsMain/resources/assets/areas/map_seabed01.xvm similarity index 100% rename from web/src/main/resources/assets/areas/map_seabed01.xvm rename to web/src/jsMain/resources/assets/areas/map_seabed01.xvm diff --git a/web/src/main/resources/assets/areas/map_seabed01_00c.rel b/web/src/jsMain/resources/assets/areas/map_seabed01_00c.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_seabed01_00c.rel rename to web/src/jsMain/resources/assets/areas/map_seabed01_00c.rel diff --git a/web/src/main/resources/assets/areas/map_seabed01_00n.rel b/web/src/jsMain/resources/assets/areas/map_seabed01_00n.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_seabed01_00n.rel rename to web/src/jsMain/resources/assets/areas/map_seabed01_00n.rel diff --git a/web/src/main/resources/assets/areas/map_seabed01_01c.rel b/web/src/jsMain/resources/assets/areas/map_seabed01_01c.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_seabed01_01c.rel rename to web/src/jsMain/resources/assets/areas/map_seabed01_01c.rel diff --git a/web/src/main/resources/assets/areas/map_seabed01_01n.rel b/web/src/jsMain/resources/assets/areas/map_seabed01_01n.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_seabed01_01n.rel rename to web/src/jsMain/resources/assets/areas/map_seabed01_01n.rel diff --git a/web/src/main/resources/assets/areas/map_seabed01_02c.rel b/web/src/jsMain/resources/assets/areas/map_seabed01_02c.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_seabed01_02c.rel rename to web/src/jsMain/resources/assets/areas/map_seabed01_02c.rel diff --git a/web/src/main/resources/assets/areas/map_seabed01_02n.rel b/web/src/jsMain/resources/assets/areas/map_seabed01_02n.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_seabed01_02n.rel rename to web/src/jsMain/resources/assets/areas/map_seabed01_02n.rel diff --git a/web/src/main/resources/assets/areas/map_seabed01m.xvm b/web/src/jsMain/resources/assets/areas/map_seabed01m.xvm similarity index 100% rename from web/src/main/resources/assets/areas/map_seabed01m.xvm rename to web/src/jsMain/resources/assets/areas/map_seabed01m.xvm diff --git a/web/src/main/resources/assets/areas/map_seabed02.xvm b/web/src/jsMain/resources/assets/areas/map_seabed02.xvm similarity index 100% rename from web/src/main/resources/assets/areas/map_seabed02.xvm rename to web/src/jsMain/resources/assets/areas/map_seabed02.xvm diff --git a/web/src/main/resources/assets/areas/map_seabed02_00c.rel b/web/src/jsMain/resources/assets/areas/map_seabed02_00c.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_seabed02_00c.rel rename to web/src/jsMain/resources/assets/areas/map_seabed02_00c.rel diff --git a/web/src/main/resources/assets/areas/map_seabed02_00n.rel b/web/src/jsMain/resources/assets/areas/map_seabed02_00n.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_seabed02_00n.rel rename to web/src/jsMain/resources/assets/areas/map_seabed02_00n.rel diff --git a/web/src/main/resources/assets/areas/map_seabed02_01c.rel b/web/src/jsMain/resources/assets/areas/map_seabed02_01c.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_seabed02_01c.rel rename to web/src/jsMain/resources/assets/areas/map_seabed02_01c.rel diff --git a/web/src/main/resources/assets/areas/map_seabed02_01n.rel b/web/src/jsMain/resources/assets/areas/map_seabed02_01n.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_seabed02_01n.rel rename to web/src/jsMain/resources/assets/areas/map_seabed02_01n.rel diff --git a/web/src/main/resources/assets/areas/map_seabed02_02c.rel b/web/src/jsMain/resources/assets/areas/map_seabed02_02c.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_seabed02_02c.rel rename to web/src/jsMain/resources/assets/areas/map_seabed02_02c.rel diff --git a/web/src/main/resources/assets/areas/map_seabed02_02n.rel b/web/src/jsMain/resources/assets/areas/map_seabed02_02n.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_seabed02_02n.rel rename to web/src/jsMain/resources/assets/areas/map_seabed02_02n.rel diff --git a/web/src/main/resources/assets/areas/map_seabed02m.xvm b/web/src/jsMain/resources/assets/areas/map_seabed02m.xvm similarity index 100% rename from web/src/main/resources/assets/areas/map_seabed02m.xvm rename to web/src/jsMain/resources/assets/areas/map_seabed02m.xvm diff --git a/web/src/main/resources/assets/areas/map_soccer11.xvm b/web/src/jsMain/resources/assets/areas/map_soccer11.xvm similarity index 100% rename from web/src/main/resources/assets/areas/map_soccer11.xvm rename to web/src/jsMain/resources/assets/areas/map_soccer11.xvm diff --git a/web/src/main/resources/assets/areas/map_soccer11c.rel b/web/src/jsMain/resources/assets/areas/map_soccer11c.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_soccer11c.rel rename to web/src/jsMain/resources/assets/areas/map_soccer11c.rel diff --git a/web/src/main/resources/assets/areas/map_soccer11n.rel b/web/src/jsMain/resources/assets/areas/map_soccer11n.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_soccer11n.rel rename to web/src/jsMain/resources/assets/areas/map_soccer11n.rel diff --git a/web/src/main/resources/assets/areas/map_soccer12.xvm b/web/src/jsMain/resources/assets/areas/map_soccer12.xvm similarity index 100% rename from web/src/main/resources/assets/areas/map_soccer12.xvm rename to web/src/jsMain/resources/assets/areas/map_soccer12.xvm diff --git a/web/src/main/resources/assets/areas/map_soccer12c.rel b/web/src/jsMain/resources/assets/areas/map_soccer12c.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_soccer12c.rel rename to web/src/jsMain/resources/assets/areas/map_soccer12c.rel diff --git a/web/src/main/resources/assets/areas/map_soccer12n.rel b/web/src/jsMain/resources/assets/areas/map_soccer12n.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_soccer12n.rel rename to web/src/jsMain/resources/assets/areas/map_soccer12n.rel diff --git a/web/src/main/resources/assets/areas/map_space01.xvm b/web/src/jsMain/resources/assets/areas/map_space01.xvm similarity index 100% rename from web/src/main/resources/assets/areas/map_space01.xvm rename to web/src/jsMain/resources/assets/areas/map_space01.xvm diff --git a/web/src/main/resources/assets/areas/map_space01_00c.rel b/web/src/jsMain/resources/assets/areas/map_space01_00c.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_space01_00c.rel rename to web/src/jsMain/resources/assets/areas/map_space01_00c.rel diff --git a/web/src/main/resources/assets/areas/map_space01_00n.rel b/web/src/jsMain/resources/assets/areas/map_space01_00n.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_space01_00n.rel rename to web/src/jsMain/resources/assets/areas/map_space01_00n.rel diff --git a/web/src/main/resources/assets/areas/map_space01_01c.rel b/web/src/jsMain/resources/assets/areas/map_space01_01c.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_space01_01c.rel rename to web/src/jsMain/resources/assets/areas/map_space01_01c.rel diff --git a/web/src/main/resources/assets/areas/map_space01_01n.rel b/web/src/jsMain/resources/assets/areas/map_space01_01n.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_space01_01n.rel rename to web/src/jsMain/resources/assets/areas/map_space01_01n.rel diff --git a/web/src/main/resources/assets/areas/map_space01_02c.rel b/web/src/jsMain/resources/assets/areas/map_space01_02c.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_space01_02c.rel rename to web/src/jsMain/resources/assets/areas/map_space01_02c.rel diff --git a/web/src/main/resources/assets/areas/map_space01_02n.rel b/web/src/jsMain/resources/assets/areas/map_space01_02n.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_space01_02n.rel rename to web/src/jsMain/resources/assets/areas/map_space01_02n.rel diff --git a/web/src/main/resources/assets/areas/map_space02.xvm b/web/src/jsMain/resources/assets/areas/map_space02.xvm similarity index 100% rename from web/src/main/resources/assets/areas/map_space02.xvm rename to web/src/jsMain/resources/assets/areas/map_space02.xvm diff --git a/web/src/main/resources/assets/areas/map_space02_00c.rel b/web/src/jsMain/resources/assets/areas/map_space02_00c.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_space02_00c.rel rename to web/src/jsMain/resources/assets/areas/map_space02_00c.rel diff --git a/web/src/main/resources/assets/areas/map_space02_00n.rel b/web/src/jsMain/resources/assets/areas/map_space02_00n.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_space02_00n.rel rename to web/src/jsMain/resources/assets/areas/map_space02_00n.rel diff --git a/web/src/main/resources/assets/areas/map_space02_01c.rel b/web/src/jsMain/resources/assets/areas/map_space02_01c.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_space02_01c.rel rename to web/src/jsMain/resources/assets/areas/map_space02_01c.rel diff --git a/web/src/main/resources/assets/areas/map_space02_01n.rel b/web/src/jsMain/resources/assets/areas/map_space02_01n.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_space02_01n.rel rename to web/src/jsMain/resources/assets/areas/map_space02_01n.rel diff --git a/web/src/main/resources/assets/areas/map_space02_02c.rel b/web/src/jsMain/resources/assets/areas/map_space02_02c.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_space02_02c.rel rename to web/src/jsMain/resources/assets/areas/map_space02_02c.rel diff --git a/web/src/main/resources/assets/areas/map_space02_02n.rel b/web/src/jsMain/resources/assets/areas/map_space02_02n.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_space02_02n.rel rename to web/src/jsMain/resources/assets/areas/map_space02_02n.rel diff --git a/web/src/main/resources/assets/areas/map_test01.xvm b/web/src/jsMain/resources/assets/areas/map_test01.xvm similarity index 100% rename from web/src/main/resources/assets/areas/map_test01.xvm rename to web/src/jsMain/resources/assets/areas/map_test01.xvm diff --git a/web/src/main/resources/assets/areas/map_test01_00c.rel b/web/src/jsMain/resources/assets/areas/map_test01_00c.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_test01_00c.rel rename to web/src/jsMain/resources/assets/areas/map_test01_00c.rel diff --git a/web/src/main/resources/assets/areas/map_test01_00n.rel b/web/src/jsMain/resources/assets/areas/map_test01_00n.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_test01_00n.rel rename to web/src/jsMain/resources/assets/areas/map_test01_00n.rel diff --git a/web/src/main/resources/assets/areas/map_vs01.xvm b/web/src/jsMain/resources/assets/areas/map_vs01.xvm similarity index 100% rename from web/src/main/resources/assets/areas/map_vs01.xvm rename to web/src/jsMain/resources/assets/areas/map_vs01.xvm diff --git a/web/src/main/resources/assets/areas/map_vs01_00c.rel b/web/src/jsMain/resources/assets/areas/map_vs01_00c.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_vs01_00c.rel rename to web/src/jsMain/resources/assets/areas/map_vs01_00c.rel diff --git a/web/src/main/resources/assets/areas/map_vs01_00n.rel b/web/src/jsMain/resources/assets/areas/map_vs01_00n.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_vs01_00n.rel rename to web/src/jsMain/resources/assets/areas/map_vs01_00n.rel diff --git a/web/src/main/resources/assets/areas/map_vs01_01c.rel b/web/src/jsMain/resources/assets/areas/map_vs01_01c.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_vs01_01c.rel rename to web/src/jsMain/resources/assets/areas/map_vs01_01c.rel diff --git a/web/src/main/resources/assets/areas/map_vs01_01n.rel b/web/src/jsMain/resources/assets/areas/map_vs01_01n.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_vs01_01n.rel rename to web/src/jsMain/resources/assets/areas/map_vs01_01n.rel diff --git a/web/src/main/resources/assets/areas/map_vs01_02c.rel b/web/src/jsMain/resources/assets/areas/map_vs01_02c.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_vs01_02c.rel rename to web/src/jsMain/resources/assets/areas/map_vs01_02c.rel diff --git a/web/src/main/resources/assets/areas/map_vs01_02n.rel b/web/src/jsMain/resources/assets/areas/map_vs01_02n.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_vs01_02n.rel rename to web/src/jsMain/resources/assets/areas/map_vs01_02n.rel diff --git a/web/src/main/resources/assets/areas/map_vs02.xvm b/web/src/jsMain/resources/assets/areas/map_vs02.xvm similarity index 100% rename from web/src/main/resources/assets/areas/map_vs02.xvm rename to web/src/jsMain/resources/assets/areas/map_vs02.xvm diff --git a/web/src/main/resources/assets/areas/map_vs02_00c.rel b/web/src/jsMain/resources/assets/areas/map_vs02_00c.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_vs02_00c.rel rename to web/src/jsMain/resources/assets/areas/map_vs02_00c.rel diff --git a/web/src/main/resources/assets/areas/map_vs02_00n.rel b/web/src/jsMain/resources/assets/areas/map_vs02_00n.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_vs02_00n.rel rename to web/src/jsMain/resources/assets/areas/map_vs02_00n.rel diff --git a/web/src/main/resources/assets/areas/map_vs02_01c.rel b/web/src/jsMain/resources/assets/areas/map_vs02_01c.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_vs02_01c.rel rename to web/src/jsMain/resources/assets/areas/map_vs02_01c.rel diff --git a/web/src/main/resources/assets/areas/map_vs02_01n.rel b/web/src/jsMain/resources/assets/areas/map_vs02_01n.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_vs02_01n.rel rename to web/src/jsMain/resources/assets/areas/map_vs02_01n.rel diff --git a/web/src/main/resources/assets/areas/map_vs02_02c.rel b/web/src/jsMain/resources/assets/areas/map_vs02_02c.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_vs02_02c.rel rename to web/src/jsMain/resources/assets/areas/map_vs02_02c.rel diff --git a/web/src/main/resources/assets/areas/map_vs02_02n.rel b/web/src/jsMain/resources/assets/areas/map_vs02_02n.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_vs02_02n.rel rename to web/src/jsMain/resources/assets/areas/map_vs02_02n.rel diff --git a/web/src/main/resources/assets/areas/map_wilds01.xvm b/web/src/jsMain/resources/assets/areas/map_wilds01.xvm similarity index 100% rename from web/src/main/resources/assets/areas/map_wilds01.xvm rename to web/src/jsMain/resources/assets/areas/map_wilds01.xvm diff --git a/web/src/main/resources/assets/areas/map_wilds01_00c.rel b/web/src/jsMain/resources/assets/areas/map_wilds01_00c.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_wilds01_00c.rel rename to web/src/jsMain/resources/assets/areas/map_wilds01_00c.rel diff --git a/web/src/main/resources/assets/areas/map_wilds01_00n.rel b/web/src/jsMain/resources/assets/areas/map_wilds01_00n.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_wilds01_00n.rel rename to web/src/jsMain/resources/assets/areas/map_wilds01_00n.rel diff --git a/web/src/main/resources/assets/areas/map_wilds01_01c.rel b/web/src/jsMain/resources/assets/areas/map_wilds01_01c.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_wilds01_01c.rel rename to web/src/jsMain/resources/assets/areas/map_wilds01_01c.rel diff --git a/web/src/main/resources/assets/areas/map_wilds01_01n.rel b/web/src/jsMain/resources/assets/areas/map_wilds01_01n.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_wilds01_01n.rel rename to web/src/jsMain/resources/assets/areas/map_wilds01_01n.rel diff --git a/web/src/main/resources/assets/areas/map_wilds01_02c.rel b/web/src/jsMain/resources/assets/areas/map_wilds01_02c.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_wilds01_02c.rel rename to web/src/jsMain/resources/assets/areas/map_wilds01_02c.rel diff --git a/web/src/main/resources/assets/areas/map_wilds01_02n.rel b/web/src/jsMain/resources/assets/areas/map_wilds01_02n.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_wilds01_02n.rel rename to web/src/jsMain/resources/assets/areas/map_wilds01_02n.rel diff --git a/web/src/main/resources/assets/areas/map_wilds01_03c.rel b/web/src/jsMain/resources/assets/areas/map_wilds01_03c.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_wilds01_03c.rel rename to web/src/jsMain/resources/assets/areas/map_wilds01_03c.rel diff --git a/web/src/main/resources/assets/areas/map_wilds01_03n.rel b/web/src/jsMain/resources/assets/areas/map_wilds01_03n.rel similarity index 100% rename from web/src/main/resources/assets/areas/map_wilds01_03n.rel rename to web/src/jsMain/resources/assets/areas/map_wilds01_03n.rel diff --git a/web/src/main/resources/assets/box_drops.ephinea.json b/web/src/jsMain/resources/assets/box_drops.ephinea.json similarity index 100% rename from web/src/main/resources/assets/box_drops.ephinea.json rename to web/src/jsMain/resources/assets/box_drops.ephinea.json diff --git a/web/src/main/resources/assets/enemy_drops.ephinea.json b/web/src/jsMain/resources/assets/enemy_drops.ephinea.json similarity index 100% rename from web/src/main/resources/assets/enemy_drops.ephinea.json rename to web/src/jsMain/resources/assets/enemy_drops.ephinea.json diff --git a/web/src/main/resources/assets/images/sectionids/Bluefull.png b/web/src/jsMain/resources/assets/images/sectionids/Bluefull.png similarity index 100% rename from web/src/main/resources/assets/images/sectionids/Bluefull.png rename to web/src/jsMain/resources/assets/images/sectionids/Bluefull.png diff --git a/web/src/main/resources/assets/images/sectionids/Greenill.png b/web/src/jsMain/resources/assets/images/sectionids/Greenill.png similarity index 100% rename from web/src/main/resources/assets/images/sectionids/Greenill.png rename to web/src/jsMain/resources/assets/images/sectionids/Greenill.png diff --git a/web/src/main/resources/assets/images/sectionids/Oran.png b/web/src/jsMain/resources/assets/images/sectionids/Oran.png similarity index 100% rename from web/src/main/resources/assets/images/sectionids/Oran.png rename to web/src/jsMain/resources/assets/images/sectionids/Oran.png diff --git a/web/src/main/resources/assets/images/sectionids/Pinkal.png b/web/src/jsMain/resources/assets/images/sectionids/Pinkal.png similarity index 100% rename from web/src/main/resources/assets/images/sectionids/Pinkal.png rename to web/src/jsMain/resources/assets/images/sectionids/Pinkal.png diff --git a/web/src/main/resources/assets/images/sectionids/Purplenum.png b/web/src/jsMain/resources/assets/images/sectionids/Purplenum.png similarity index 100% rename from web/src/main/resources/assets/images/sectionids/Purplenum.png rename to web/src/jsMain/resources/assets/images/sectionids/Purplenum.png diff --git a/web/src/main/resources/assets/images/sectionids/Redria.png b/web/src/jsMain/resources/assets/images/sectionids/Redria.png similarity index 100% rename from web/src/main/resources/assets/images/sectionids/Redria.png rename to web/src/jsMain/resources/assets/images/sectionids/Redria.png diff --git a/web/src/main/resources/assets/images/sectionids/Skyly.png b/web/src/jsMain/resources/assets/images/sectionids/Skyly.png similarity index 100% rename from web/src/main/resources/assets/images/sectionids/Skyly.png rename to web/src/jsMain/resources/assets/images/sectionids/Skyly.png diff --git a/web/src/main/resources/assets/images/sectionids/Viridia.png b/web/src/jsMain/resources/assets/images/sectionids/Viridia.png similarity index 100% rename from web/src/main/resources/assets/images/sectionids/Viridia.png rename to web/src/jsMain/resources/assets/images/sectionids/Viridia.png diff --git a/web/src/main/resources/assets/images/sectionids/Whitill.png b/web/src/jsMain/resources/assets/images/sectionids/Whitill.png similarity index 100% rename from web/src/main/resources/assets/images/sectionids/Whitill.png rename to web/src/jsMain/resources/assets/images/sectionids/Whitill.png diff --git a/web/src/main/resources/assets/images/sectionids/Yellowboze.png b/web/src/jsMain/resources/assets/images/sectionids/Yellowboze.png similarity index 100% rename from web/src/main/resources/assets/images/sectionids/Yellowboze.png rename to web/src/jsMain/resources/assets/images/sectionids/Yellowboze.png diff --git a/web/src/main/resources/assets/item_types.ephinea.json b/web/src/jsMain/resources/assets/item_types.ephinea.json similarity index 100% rename from web/src/main/resources/assets/item_types.ephinea.json rename to web/src/jsMain/resources/assets/item_types.ephinea.json diff --git a/web/src/main/resources/assets/npcs/AlRappy.nj b/web/src/jsMain/resources/assets/npcs/AlRappy.nj similarity index 100% rename from web/src/main/resources/assets/npcs/AlRappy.nj rename to web/src/jsMain/resources/assets/npcs/AlRappy.nj diff --git a/web/src/main/resources/assets/npcs/AlRappy.xvm b/web/src/jsMain/resources/assets/npcs/AlRappy.xvm similarity index 100% rename from web/src/main/resources/assets/npcs/AlRappy.xvm rename to web/src/jsMain/resources/assets/npcs/AlRappy.xvm diff --git a/web/src/main/resources/assets/npcs/Astark.nj b/web/src/jsMain/resources/assets/npcs/Astark.nj similarity index 100% rename from web/src/main/resources/assets/npcs/Astark.nj rename to web/src/jsMain/resources/assets/npcs/Astark.nj diff --git a/web/src/main/resources/assets/npcs/Astark.xvm b/web/src/jsMain/resources/assets/npcs/Astark.xvm similarity index 100% rename from web/src/main/resources/assets/npcs/Astark.xvm rename to web/src/jsMain/resources/assets/npcs/Astark.xvm diff --git a/web/src/main/resources/assets/npcs/BaBoota.nj b/web/src/jsMain/resources/assets/npcs/BaBoota.nj similarity index 100% rename from web/src/main/resources/assets/npcs/BaBoota.nj rename to web/src/jsMain/resources/assets/npcs/BaBoota.nj diff --git a/web/src/main/resources/assets/npcs/BaBoota.xvm b/web/src/jsMain/resources/assets/npcs/BaBoota.xvm similarity index 100% rename from web/src/main/resources/assets/npcs/BaBoota.xvm rename to web/src/jsMain/resources/assets/npcs/BaBoota.xvm diff --git a/web/src/main/resources/assets/npcs/BarbaRay.nj b/web/src/jsMain/resources/assets/npcs/BarbaRay.nj similarity index 100% rename from web/src/main/resources/assets/npcs/BarbaRay.nj rename to web/src/jsMain/resources/assets/npcs/BarbaRay.nj diff --git a/web/src/main/resources/assets/npcs/BarbaRay.xvm b/web/src/jsMain/resources/assets/npcs/BarbaRay.xvm similarity index 100% rename from web/src/main/resources/assets/npcs/BarbaRay.xvm rename to web/src/jsMain/resources/assets/npcs/BarbaRay.xvm diff --git a/web/src/main/resources/assets/npcs/BarbarousWolf.nj b/web/src/jsMain/resources/assets/npcs/BarbarousWolf.nj similarity index 100% rename from web/src/main/resources/assets/npcs/BarbarousWolf.nj rename to web/src/jsMain/resources/assets/npcs/BarbarousWolf.nj diff --git a/web/src/main/resources/assets/npcs/BarbarousWolf.xvm b/web/src/jsMain/resources/assets/npcs/BarbarousWolf.xvm similarity index 100% rename from web/src/main/resources/assets/npcs/BarbarousWolf.xvm rename to web/src/jsMain/resources/assets/npcs/BarbarousWolf.xvm diff --git a/web/src/main/resources/assets/npcs/BlueSoldier.nj b/web/src/jsMain/resources/assets/npcs/BlueSoldier.nj similarity index 100% rename from web/src/main/resources/assets/npcs/BlueSoldier.nj rename to web/src/jsMain/resources/assets/npcs/BlueSoldier.nj diff --git a/web/src/main/resources/assets/npcs/BlueSoldier.xvm b/web/src/jsMain/resources/assets/npcs/BlueSoldier.xvm similarity index 100% rename from web/src/main/resources/assets/npcs/BlueSoldier.xvm rename to web/src/jsMain/resources/assets/npcs/BlueSoldier.xvm diff --git a/web/src/main/resources/assets/npcs/Booma.nj b/web/src/jsMain/resources/assets/npcs/Booma.nj similarity index 100% rename from web/src/main/resources/assets/npcs/Booma.nj rename to web/src/jsMain/resources/assets/npcs/Booma.nj diff --git a/web/src/main/resources/assets/npcs/Booma.xvm b/web/src/jsMain/resources/assets/npcs/Booma.xvm similarity index 100% rename from web/src/main/resources/assets/npcs/Booma.xvm rename to web/src/jsMain/resources/assets/npcs/Booma.xvm diff --git a/web/src/main/resources/assets/npcs/Boota.nj b/web/src/jsMain/resources/assets/npcs/Boota.nj similarity index 100% rename from web/src/main/resources/assets/npcs/Boota.nj rename to web/src/jsMain/resources/assets/npcs/Boota.nj diff --git a/web/src/main/resources/assets/npcs/Boota.xvm b/web/src/jsMain/resources/assets/npcs/Boota.xvm similarity index 100% rename from web/src/main/resources/assets/npcs/Boota.xvm rename to web/src/jsMain/resources/assets/npcs/Boota.xvm diff --git a/web/src/main/resources/assets/npcs/Bulclaw.nj b/web/src/jsMain/resources/assets/npcs/Bulclaw.nj similarity index 100% rename from web/src/main/resources/assets/npcs/Bulclaw.nj rename to web/src/jsMain/resources/assets/npcs/Bulclaw.nj diff --git a/web/src/main/resources/assets/npcs/Bulclaw.xvm b/web/src/jsMain/resources/assets/npcs/Bulclaw.xvm similarity index 100% rename from web/src/main/resources/assets/npcs/Bulclaw.xvm rename to web/src/jsMain/resources/assets/npcs/Bulclaw.xvm diff --git a/web/src/main/resources/assets/npcs/Bulk.nj b/web/src/jsMain/resources/assets/npcs/Bulk.nj similarity index 100% rename from web/src/main/resources/assets/npcs/Bulk.nj rename to web/src/jsMain/resources/assets/npcs/Bulk.nj diff --git a/web/src/main/resources/assets/npcs/Bulk.xvm b/web/src/jsMain/resources/assets/npcs/Bulk.xvm similarity index 100% rename from web/src/main/resources/assets/npcs/Bulk.xvm rename to web/src/jsMain/resources/assets/npcs/Bulk.xvm diff --git a/web/src/main/resources/assets/npcs/Canadine.nj b/web/src/jsMain/resources/assets/npcs/Canadine.nj similarity index 100% rename from web/src/main/resources/assets/npcs/Canadine.nj rename to web/src/jsMain/resources/assets/npcs/Canadine.nj diff --git a/web/src/main/resources/assets/npcs/Canadine.xvm b/web/src/jsMain/resources/assets/npcs/Canadine.xvm similarity index 100% rename from web/src/main/resources/assets/npcs/Canadine.xvm rename to web/src/jsMain/resources/assets/npcs/Canadine.xvm diff --git a/web/src/main/resources/assets/npcs/Canane.nj b/web/src/jsMain/resources/assets/npcs/Canane.nj similarity index 100% rename from web/src/main/resources/assets/npcs/Canane.nj rename to web/src/jsMain/resources/assets/npcs/Canane.nj diff --git a/web/src/main/resources/assets/npcs/Canane.xvm b/web/src/jsMain/resources/assets/npcs/Canane.xvm similarity index 100% rename from web/src/main/resources/assets/npcs/Canane.xvm rename to web/src/jsMain/resources/assets/npcs/Canane.xvm diff --git a/web/src/main/resources/assets/npcs/ChaosBringer.nj b/web/src/jsMain/resources/assets/npcs/ChaosBringer.nj similarity index 100% rename from web/src/main/resources/assets/npcs/ChaosBringer.nj rename to web/src/jsMain/resources/assets/npcs/ChaosBringer.nj diff --git a/web/src/main/resources/assets/npcs/ChaosBringer.xvm b/web/src/jsMain/resources/assets/npcs/ChaosBringer.xvm similarity index 100% rename from web/src/main/resources/assets/npcs/ChaosBringer.xvm rename to web/src/jsMain/resources/assets/npcs/ChaosBringer.xvm diff --git a/web/src/main/resources/assets/npcs/ChaosSorcerer.nj b/web/src/jsMain/resources/assets/npcs/ChaosSorcerer.nj similarity index 100% rename from web/src/main/resources/assets/npcs/ChaosSorcerer.nj rename to web/src/jsMain/resources/assets/npcs/ChaosSorcerer.nj diff --git a/web/src/main/resources/assets/npcs/ChaosSorcerer.xvm b/web/src/jsMain/resources/assets/npcs/ChaosSorcerer.xvm similarity index 100% rename from web/src/main/resources/assets/npcs/ChaosSorcerer.xvm rename to web/src/jsMain/resources/assets/npcs/ChaosSorcerer.xvm diff --git a/web/src/main/resources/assets/npcs/Claw.nj b/web/src/jsMain/resources/assets/npcs/Claw.nj similarity index 100% rename from web/src/main/resources/assets/npcs/Claw.nj rename to web/src/jsMain/resources/assets/npcs/Claw.nj diff --git a/web/src/main/resources/assets/npcs/Claw.xvm b/web/src/jsMain/resources/assets/npcs/Claw.xvm similarity index 100% rename from web/src/main/resources/assets/npcs/Claw.xvm rename to web/src/jsMain/resources/assets/npcs/Claw.xvm diff --git a/web/src/main/resources/assets/npcs/DarkBelra.nj b/web/src/jsMain/resources/assets/npcs/DarkBelra.nj similarity index 100% rename from web/src/main/resources/assets/npcs/DarkBelra.nj rename to web/src/jsMain/resources/assets/npcs/DarkBelra.nj diff --git a/web/src/main/resources/assets/npcs/DarkBelra.xvm b/web/src/jsMain/resources/assets/npcs/DarkBelra.xvm similarity index 100% rename from web/src/main/resources/assets/npcs/DarkBelra.xvm rename to web/src/jsMain/resources/assets/npcs/DarkBelra.xvm diff --git a/web/src/main/resources/assets/npcs/DarkFalz.nj b/web/src/jsMain/resources/assets/npcs/DarkFalz.nj similarity index 100% rename from web/src/main/resources/assets/npcs/DarkFalz.nj rename to web/src/jsMain/resources/assets/npcs/DarkFalz.nj diff --git a/web/src/main/resources/assets/npcs/DarkFalz.xvm b/web/src/jsMain/resources/assets/npcs/DarkFalz.xvm similarity index 100% rename from web/src/main/resources/assets/npcs/DarkFalz.xvm rename to web/src/jsMain/resources/assets/npcs/DarkFalz.xvm diff --git a/web/src/main/resources/assets/npcs/DarkGunner.nj b/web/src/jsMain/resources/assets/npcs/DarkGunner.nj similarity index 100% rename from web/src/main/resources/assets/npcs/DarkGunner.nj rename to web/src/jsMain/resources/assets/npcs/DarkGunner.nj diff --git a/web/src/main/resources/assets/npcs/DarkGunner.xvm b/web/src/jsMain/resources/assets/npcs/DarkGunner.xvm similarity index 100% rename from web/src/main/resources/assets/npcs/DarkGunner.xvm rename to web/src/jsMain/resources/assets/npcs/DarkGunner.xvm diff --git a/web/src/main/resources/assets/npcs/DeRolLe.nj b/web/src/jsMain/resources/assets/npcs/DeRolLe.nj similarity index 100% rename from web/src/main/resources/assets/npcs/DeRolLe.nj rename to web/src/jsMain/resources/assets/npcs/DeRolLe.nj diff --git a/web/src/main/resources/assets/npcs/DeRolLe.xvm b/web/src/jsMain/resources/assets/npcs/DeRolLe.xvm similarity index 100% rename from web/src/main/resources/assets/npcs/DeRolLe.xvm rename to web/src/jsMain/resources/assets/npcs/DeRolLe.xvm diff --git a/web/src/main/resources/assets/npcs/DelLily.nj b/web/src/jsMain/resources/assets/npcs/DelLily.nj similarity index 100% rename from web/src/main/resources/assets/npcs/DelLily.nj rename to web/src/jsMain/resources/assets/npcs/DelLily.nj diff --git a/web/src/main/resources/assets/npcs/DelLily.xvm b/web/src/jsMain/resources/assets/npcs/DelLily.xvm similarity index 100% rename from web/src/main/resources/assets/npcs/DelLily.xvm rename to web/src/jsMain/resources/assets/npcs/DelLily.xvm diff --git a/web/src/main/resources/assets/npcs/DelRappy.nj b/web/src/jsMain/resources/assets/npcs/DelRappy.nj similarity index 100% rename from web/src/main/resources/assets/npcs/DelRappy.nj rename to web/src/jsMain/resources/assets/npcs/DelRappy.nj diff --git a/web/src/main/resources/assets/npcs/DelRappy.xvm b/web/src/jsMain/resources/assets/npcs/DelRappy.xvm similarity index 100% rename from web/src/main/resources/assets/npcs/DelRappy.xvm rename to web/src/jsMain/resources/assets/npcs/DelRappy.xvm diff --git a/web/src/main/resources/assets/npcs/Delbiter.nj b/web/src/jsMain/resources/assets/npcs/Delbiter.nj similarity index 100% rename from web/src/main/resources/assets/npcs/Delbiter.nj rename to web/src/jsMain/resources/assets/npcs/Delbiter.nj diff --git a/web/src/main/resources/assets/npcs/Delbiter.xvm b/web/src/jsMain/resources/assets/npcs/Delbiter.xvm similarity index 100% rename from web/src/main/resources/assets/npcs/Delbiter.xvm rename to web/src/jsMain/resources/assets/npcs/Delbiter.xvm diff --git a/web/src/main/resources/assets/npcs/Deldepth.nj b/web/src/jsMain/resources/assets/npcs/Deldepth.nj similarity index 100% rename from web/src/main/resources/assets/npcs/Deldepth.nj rename to web/src/jsMain/resources/assets/npcs/Deldepth.nj diff --git a/web/src/main/resources/assets/npcs/Deldepth.xvm b/web/src/jsMain/resources/assets/npcs/Deldepth.xvm similarity index 100% rename from web/src/main/resources/assets/npcs/Deldepth.xvm rename to web/src/jsMain/resources/assets/npcs/Deldepth.xvm diff --git a/web/src/main/resources/assets/npcs/Delsaber.nj b/web/src/jsMain/resources/assets/npcs/Delsaber.nj similarity index 100% rename from web/src/main/resources/assets/npcs/Delsaber.nj rename to web/src/jsMain/resources/assets/npcs/Delsaber.nj diff --git a/web/src/main/resources/assets/npcs/Delsaber.xvm b/web/src/jsMain/resources/assets/npcs/Delsaber.xvm similarity index 100% rename from web/src/main/resources/assets/npcs/Delsaber.xvm rename to web/src/jsMain/resources/assets/npcs/Delsaber.xvm diff --git a/web/src/main/resources/assets/npcs/Dimenian.nj b/web/src/jsMain/resources/assets/npcs/Dimenian.nj similarity index 100% rename from web/src/main/resources/assets/npcs/Dimenian.nj rename to web/src/jsMain/resources/assets/npcs/Dimenian.nj diff --git a/web/src/main/resources/assets/npcs/Dimenian.xvm b/web/src/jsMain/resources/assets/npcs/Dimenian.xvm similarity index 100% rename from web/src/main/resources/assets/npcs/Dimenian.xvm rename to web/src/jsMain/resources/assets/npcs/Dimenian.xvm diff --git a/web/src/main/resources/assets/npcs/Dolmdarl.nj b/web/src/jsMain/resources/assets/npcs/Dolmdarl.nj similarity index 100% rename from web/src/main/resources/assets/npcs/Dolmdarl.nj rename to web/src/jsMain/resources/assets/npcs/Dolmdarl.nj diff --git a/web/src/main/resources/assets/npcs/Dolmdarl.xvm b/web/src/jsMain/resources/assets/npcs/Dolmdarl.xvm similarity index 100% rename from web/src/main/resources/assets/npcs/Dolmdarl.xvm rename to web/src/jsMain/resources/assets/npcs/Dolmdarl.xvm diff --git a/web/src/main/resources/assets/npcs/Dolmolm.nj b/web/src/jsMain/resources/assets/npcs/Dolmolm.nj similarity index 100% rename from web/src/main/resources/assets/npcs/Dolmolm.nj rename to web/src/jsMain/resources/assets/npcs/Dolmolm.nj diff --git a/web/src/main/resources/assets/npcs/Dolmolm.xvm b/web/src/jsMain/resources/assets/npcs/Dolmolm.xvm similarity index 100% rename from web/src/main/resources/assets/npcs/Dolmolm.xvm rename to web/src/jsMain/resources/assets/npcs/Dolmolm.xvm diff --git a/web/src/main/resources/assets/npcs/Dorphon.nj b/web/src/jsMain/resources/assets/npcs/Dorphon.nj similarity index 100% rename from web/src/main/resources/assets/npcs/Dorphon.nj rename to web/src/jsMain/resources/assets/npcs/Dorphon.nj diff --git a/web/src/main/resources/assets/npcs/Dorphon.xvm b/web/src/jsMain/resources/assets/npcs/Dorphon.xvm similarity index 100% rename from web/src/main/resources/assets/npcs/Dorphon.xvm rename to web/src/jsMain/resources/assets/npcs/Dorphon.xvm diff --git a/web/src/main/resources/assets/npcs/DorphonEclair.nj b/web/src/jsMain/resources/assets/npcs/DorphonEclair.nj similarity index 100% rename from web/src/main/resources/assets/npcs/DorphonEclair.nj rename to web/src/jsMain/resources/assets/npcs/DorphonEclair.nj diff --git a/web/src/main/resources/assets/npcs/DorphonEclair.xvm b/web/src/jsMain/resources/assets/npcs/DorphonEclair.xvm similarity index 100% rename from web/src/main/resources/assets/npcs/DorphonEclair.xvm rename to web/src/jsMain/resources/assets/npcs/DorphonEclair.xvm diff --git a/web/src/main/resources/assets/npcs/Dragon.nj b/web/src/jsMain/resources/assets/npcs/Dragon.nj similarity index 100% rename from web/src/main/resources/assets/npcs/Dragon.nj rename to web/src/jsMain/resources/assets/npcs/Dragon.nj diff --git a/web/src/main/resources/assets/npcs/Dragon.xvm b/web/src/jsMain/resources/assets/npcs/Dragon.xvm similarity index 100% rename from web/src/main/resources/assets/npcs/Dragon.xvm rename to web/src/jsMain/resources/assets/npcs/Dragon.xvm diff --git a/web/src/main/resources/assets/npcs/Dubchic.nj b/web/src/jsMain/resources/assets/npcs/Dubchic.nj similarity index 100% rename from web/src/main/resources/assets/npcs/Dubchic.nj rename to web/src/jsMain/resources/assets/npcs/Dubchic.nj diff --git a/web/src/main/resources/assets/npcs/Dubchic.xvm b/web/src/jsMain/resources/assets/npcs/Dubchic.xvm similarity index 100% rename from web/src/main/resources/assets/npcs/Dubchic.xvm rename to web/src/jsMain/resources/assets/npcs/Dubchic.xvm diff --git a/web/src/main/resources/assets/npcs/Dubswitch.xj b/web/src/jsMain/resources/assets/npcs/Dubswitch.xj similarity index 100% rename from web/src/main/resources/assets/npcs/Dubswitch.xj rename to web/src/jsMain/resources/assets/npcs/Dubswitch.xj diff --git a/web/src/main/resources/assets/npcs/Dubswitch.xvm b/web/src/jsMain/resources/assets/npcs/Dubswitch.xvm similarity index 100% rename from web/src/main/resources/assets/npcs/Dubswitch.xvm rename to web/src/jsMain/resources/assets/npcs/Dubswitch.xvm diff --git a/web/src/main/resources/assets/npcs/Epsilon.nj b/web/src/jsMain/resources/assets/npcs/Epsilon.nj similarity index 100% rename from web/src/main/resources/assets/npcs/Epsilon.nj rename to web/src/jsMain/resources/assets/npcs/Epsilon.nj diff --git a/web/src/main/resources/assets/npcs/Epsilon.xvm b/web/src/jsMain/resources/assets/npcs/Epsilon.xvm similarity index 100% rename from web/src/main/resources/assets/npcs/Epsilon.xvm rename to web/src/jsMain/resources/assets/npcs/Epsilon.xvm diff --git a/web/src/main/resources/assets/npcs/EvilShark.nj b/web/src/jsMain/resources/assets/npcs/EvilShark.nj similarity index 100% rename from web/src/main/resources/assets/npcs/EvilShark.nj rename to web/src/jsMain/resources/assets/npcs/EvilShark.nj diff --git a/web/src/main/resources/assets/npcs/EvilShark.xvm b/web/src/jsMain/resources/assets/npcs/EvilShark.xvm similarity index 100% rename from web/src/main/resources/assets/npcs/EvilShark.xvm rename to web/src/jsMain/resources/assets/npcs/EvilShark.xvm diff --git a/web/src/main/resources/assets/npcs/FemaleFat.nj b/web/src/jsMain/resources/assets/npcs/FemaleFat.nj similarity index 100% rename from web/src/main/resources/assets/npcs/FemaleFat.nj rename to web/src/jsMain/resources/assets/npcs/FemaleFat.nj diff --git a/web/src/main/resources/assets/npcs/FemaleFat.xvm b/web/src/jsMain/resources/assets/npcs/FemaleFat.xvm similarity index 100% rename from web/src/main/resources/assets/npcs/FemaleFat.xvm rename to web/src/jsMain/resources/assets/npcs/FemaleFat.xvm diff --git a/web/src/main/resources/assets/npcs/FemaleMacho.nj b/web/src/jsMain/resources/assets/npcs/FemaleMacho.nj similarity index 100% rename from web/src/main/resources/assets/npcs/FemaleMacho.nj rename to web/src/jsMain/resources/assets/npcs/FemaleMacho.nj diff --git a/web/src/main/resources/assets/npcs/FemaleMacho.xvm b/web/src/jsMain/resources/assets/npcs/FemaleMacho.xvm similarity index 100% rename from web/src/main/resources/assets/npcs/FemaleMacho.xvm rename to web/src/jsMain/resources/assets/npcs/FemaleMacho.xvm diff --git a/web/src/main/resources/assets/npcs/FemaleTall.nj b/web/src/jsMain/resources/assets/npcs/FemaleTall.nj similarity index 100% rename from web/src/main/resources/assets/npcs/FemaleTall.nj rename to web/src/jsMain/resources/assets/npcs/FemaleTall.nj diff --git a/web/src/main/resources/assets/npcs/FemaleTall.xvm b/web/src/jsMain/resources/assets/npcs/FemaleTall.xvm similarity index 100% rename from web/src/main/resources/assets/npcs/FemaleTall.xvm rename to web/src/jsMain/resources/assets/npcs/FemaleTall.xvm diff --git a/web/src/main/resources/assets/npcs/GalGryphon.nj b/web/src/jsMain/resources/assets/npcs/GalGryphon.nj similarity index 100% rename from web/src/main/resources/assets/npcs/GalGryphon.nj rename to web/src/jsMain/resources/assets/npcs/GalGryphon.nj diff --git a/web/src/main/resources/assets/npcs/GalGryphon.xvm b/web/src/jsMain/resources/assets/npcs/GalGryphon.xvm similarity index 100% rename from web/src/main/resources/assets/npcs/GalGryphon.xvm rename to web/src/jsMain/resources/assets/npcs/GalGryphon.xvm diff --git a/web/src/main/resources/assets/npcs/Garanz.nj b/web/src/jsMain/resources/assets/npcs/Garanz.nj similarity index 100% rename from web/src/main/resources/assets/npcs/Garanz.nj rename to web/src/jsMain/resources/assets/npcs/Garanz.nj diff --git a/web/src/main/resources/assets/npcs/Garanz.xvm b/web/src/jsMain/resources/assets/npcs/Garanz.xvm similarity index 100% rename from web/src/main/resources/assets/npcs/Garanz.xvm rename to web/src/jsMain/resources/assets/npcs/Garanz.xvm diff --git a/web/src/main/resources/assets/npcs/Gee.nj b/web/src/jsMain/resources/assets/npcs/Gee.nj similarity index 100% rename from web/src/main/resources/assets/npcs/Gee.nj rename to web/src/jsMain/resources/assets/npcs/Gee.nj diff --git a/web/src/main/resources/assets/npcs/Gee.xvm b/web/src/jsMain/resources/assets/npcs/Gee.xvm similarity index 100% rename from web/src/main/resources/assets/npcs/Gee.xvm rename to web/src/jsMain/resources/assets/npcs/Gee.xvm diff --git a/web/src/main/resources/assets/npcs/GiGue.nj b/web/src/jsMain/resources/assets/npcs/GiGue.nj similarity index 100% rename from web/src/main/resources/assets/npcs/GiGue.nj rename to web/src/jsMain/resources/assets/npcs/GiGue.nj diff --git a/web/src/main/resources/assets/npcs/GiGue.xvm b/web/src/jsMain/resources/assets/npcs/GiGue.xvm similarity index 100% rename from web/src/main/resources/assets/npcs/GiGue.xvm rename to web/src/jsMain/resources/assets/npcs/GiGue.xvm diff --git a/web/src/main/resources/assets/npcs/Gibbles.nj b/web/src/jsMain/resources/assets/npcs/Gibbles.nj similarity index 100% rename from web/src/main/resources/assets/npcs/Gibbles.nj rename to web/src/jsMain/resources/assets/npcs/Gibbles.nj diff --git a/web/src/main/resources/assets/npcs/Gibbles.xvm b/web/src/jsMain/resources/assets/npcs/Gibbles.xvm similarity index 100% rename from web/src/main/resources/assets/npcs/Gibbles.xvm rename to web/src/jsMain/resources/assets/npcs/Gibbles.xvm diff --git a/web/src/main/resources/assets/npcs/Gigobooma.nj b/web/src/jsMain/resources/assets/npcs/Gigobooma.nj similarity index 100% rename from web/src/main/resources/assets/npcs/Gigobooma.nj rename to web/src/jsMain/resources/assets/npcs/Gigobooma.nj diff --git a/web/src/main/resources/assets/npcs/Gigobooma.xvm b/web/src/jsMain/resources/assets/npcs/Gigobooma.xvm similarity index 100% rename from web/src/main/resources/assets/npcs/Gigobooma.xvm rename to web/src/jsMain/resources/assets/npcs/Gigobooma.xvm diff --git a/web/src/main/resources/assets/npcs/Gilchic.nj b/web/src/jsMain/resources/assets/npcs/Gilchic.nj similarity index 100% rename from web/src/main/resources/assets/npcs/Gilchic.nj rename to web/src/jsMain/resources/assets/npcs/Gilchic.nj diff --git a/web/src/main/resources/assets/npcs/Gilchic.xvm b/web/src/jsMain/resources/assets/npcs/Gilchic.xvm similarity index 100% rename from web/src/main/resources/assets/npcs/Gilchic.xvm rename to web/src/jsMain/resources/assets/npcs/Gilchic.xvm diff --git a/web/src/main/resources/assets/npcs/Girtablulu.nj b/web/src/jsMain/resources/assets/npcs/Girtablulu.nj similarity index 100% rename from web/src/main/resources/assets/npcs/Girtablulu.nj rename to web/src/jsMain/resources/assets/npcs/Girtablulu.nj diff --git a/web/src/main/resources/assets/npcs/Girtablulu.xvm b/web/src/jsMain/resources/assets/npcs/Girtablulu.xvm similarity index 100% rename from web/src/main/resources/assets/npcs/Girtablulu.xvm rename to web/src/jsMain/resources/assets/npcs/Girtablulu.xvm diff --git a/web/src/main/resources/assets/npcs/Gobooma.nj b/web/src/jsMain/resources/assets/npcs/Gobooma.nj similarity index 100% rename from web/src/main/resources/assets/npcs/Gobooma.nj rename to web/src/jsMain/resources/assets/npcs/Gobooma.nj diff --git a/web/src/main/resources/assets/npcs/Gobooma.xvm b/web/src/jsMain/resources/assets/npcs/Gobooma.xvm similarity index 100% rename from web/src/main/resources/assets/npcs/Gobooma.xvm rename to web/src/jsMain/resources/assets/npcs/Gobooma.xvm diff --git a/web/src/main/resources/assets/npcs/GolDragon.nj b/web/src/jsMain/resources/assets/npcs/GolDragon.nj similarity index 100% rename from web/src/main/resources/assets/npcs/GolDragon.nj rename to web/src/jsMain/resources/assets/npcs/GolDragon.nj diff --git a/web/src/main/resources/assets/npcs/GolDragon.xvm b/web/src/jsMain/resources/assets/npcs/GolDragon.xvm similarity index 100% rename from web/src/main/resources/assets/npcs/GolDragon.xvm rename to web/src/jsMain/resources/assets/npcs/GolDragon.xvm diff --git a/web/src/main/resources/assets/npcs/Goran.nj b/web/src/jsMain/resources/assets/npcs/Goran.nj similarity index 100% rename from web/src/main/resources/assets/npcs/Goran.nj rename to web/src/jsMain/resources/assets/npcs/Goran.nj diff --git a/web/src/main/resources/assets/npcs/Goran.xvm b/web/src/jsMain/resources/assets/npcs/Goran.xvm similarity index 100% rename from web/src/main/resources/assets/npcs/Goran.xvm rename to web/src/jsMain/resources/assets/npcs/Goran.xvm diff --git a/web/src/main/resources/assets/npcs/GoranDetonator.nj b/web/src/jsMain/resources/assets/npcs/GoranDetonator.nj similarity index 100% rename from web/src/main/resources/assets/npcs/GoranDetonator.nj rename to web/src/jsMain/resources/assets/npcs/GoranDetonator.nj diff --git a/web/src/main/resources/assets/npcs/GoranDetonator.xvm b/web/src/jsMain/resources/assets/npcs/GoranDetonator.xvm similarity index 100% rename from web/src/main/resources/assets/npcs/GoranDetonator.xvm rename to web/src/jsMain/resources/assets/npcs/GoranDetonator.xvm diff --git a/web/src/main/resources/assets/npcs/GrassAssassin.nj b/web/src/jsMain/resources/assets/npcs/GrassAssassin.nj similarity index 100% rename from web/src/main/resources/assets/npcs/GrassAssassin.nj rename to web/src/jsMain/resources/assets/npcs/GrassAssassin.nj diff --git a/web/src/main/resources/assets/npcs/GrassAssassin.xvm b/web/src/jsMain/resources/assets/npcs/GrassAssassin.xvm similarity index 100% rename from web/src/main/resources/assets/npcs/GrassAssassin.xvm rename to web/src/jsMain/resources/assets/npcs/GrassAssassin.xvm diff --git a/web/src/main/resources/assets/npcs/GuilShark.nj b/web/src/jsMain/resources/assets/npcs/GuilShark.nj similarity index 100% rename from web/src/main/resources/assets/npcs/GuilShark.nj rename to web/src/jsMain/resources/assets/npcs/GuilShark.nj diff --git a/web/src/main/resources/assets/npcs/GuilShark.xvm b/web/src/jsMain/resources/assets/npcs/GuilShark.xvm similarity index 100% rename from web/src/main/resources/assets/npcs/GuilShark.xvm rename to web/src/jsMain/resources/assets/npcs/GuilShark.xvm diff --git a/web/src/main/resources/assets/npcs/GuildLady.nj b/web/src/jsMain/resources/assets/npcs/GuildLady.nj similarity index 100% rename from web/src/main/resources/assets/npcs/GuildLady.nj rename to web/src/jsMain/resources/assets/npcs/GuildLady.nj diff --git a/web/src/main/resources/assets/npcs/GuildLady.xvm b/web/src/jsMain/resources/assets/npcs/GuildLady.xvm similarity index 100% rename from web/src/main/resources/assets/npcs/GuildLady.xvm rename to web/src/jsMain/resources/assets/npcs/GuildLady.xvm diff --git a/web/src/main/resources/assets/npcs/Hildebear.nj b/web/src/jsMain/resources/assets/npcs/Hildebear.nj similarity index 100% rename from web/src/main/resources/assets/npcs/Hildebear.nj rename to web/src/jsMain/resources/assets/npcs/Hildebear.nj diff --git a/web/src/main/resources/assets/npcs/Hildebear.xvm b/web/src/jsMain/resources/assets/npcs/Hildebear.xvm similarity index 100% rename from web/src/main/resources/assets/npcs/Hildebear.xvm rename to web/src/jsMain/resources/assets/npcs/Hildebear.xvm diff --git a/web/src/main/resources/assets/npcs/Hildeblue.nj b/web/src/jsMain/resources/assets/npcs/Hildeblue.nj similarity index 100% rename from web/src/main/resources/assets/npcs/Hildeblue.nj rename to web/src/jsMain/resources/assets/npcs/Hildeblue.nj diff --git a/web/src/main/resources/assets/npcs/Hildeblue.xvm b/web/src/jsMain/resources/assets/npcs/Hildeblue.xvm similarity index 100% rename from web/src/main/resources/assets/npcs/Hildeblue.xvm rename to web/src/jsMain/resources/assets/npcs/Hildeblue.xvm diff --git a/web/src/main/resources/assets/npcs/IllGill.nj b/web/src/jsMain/resources/assets/npcs/IllGill.nj similarity index 100% rename from web/src/main/resources/assets/npcs/IllGill.nj rename to web/src/jsMain/resources/assets/npcs/IllGill.nj diff --git a/web/src/main/resources/assets/npcs/IllGill.xvm b/web/src/jsMain/resources/assets/npcs/IllGill.xvm similarity index 100% rename from web/src/main/resources/assets/npcs/IllGill.xvm rename to web/src/jsMain/resources/assets/npcs/IllGill.xvm diff --git a/web/src/main/resources/assets/npcs/Irene.nj b/web/src/jsMain/resources/assets/npcs/Irene.nj similarity index 100% rename from web/src/main/resources/assets/npcs/Irene.nj rename to web/src/jsMain/resources/assets/npcs/Irene.nj diff --git a/web/src/main/resources/assets/npcs/Irene.xvm b/web/src/jsMain/resources/assets/npcs/Irene.xvm similarity index 100% rename from web/src/main/resources/assets/npcs/Irene.xvm rename to web/src/jsMain/resources/assets/npcs/Irene.xvm diff --git a/web/src/main/resources/assets/npcs/ItemShop.nj b/web/src/jsMain/resources/assets/npcs/ItemShop.nj similarity index 100% rename from web/src/main/resources/assets/npcs/ItemShop.nj rename to web/src/jsMain/resources/assets/npcs/ItemShop.nj diff --git a/web/src/main/resources/assets/npcs/ItemShop.xvm b/web/src/jsMain/resources/assets/npcs/ItemShop.xvm similarity index 100% rename from web/src/main/resources/assets/npcs/ItemShop.xvm rename to web/src/jsMain/resources/assets/npcs/ItemShop.xvm diff --git a/web/src/main/resources/assets/npcs/Kondrieu.nj b/web/src/jsMain/resources/assets/npcs/Kondrieu.nj similarity index 100% rename from web/src/main/resources/assets/npcs/Kondrieu.nj rename to web/src/jsMain/resources/assets/npcs/Kondrieu.nj diff --git a/web/src/main/resources/assets/npcs/Kondrieu.xvm b/web/src/jsMain/resources/assets/npcs/Kondrieu.xvm similarity index 100% rename from web/src/main/resources/assets/npcs/Kondrieu.xvm rename to web/src/jsMain/resources/assets/npcs/Kondrieu.xvm diff --git a/web/src/main/resources/assets/npcs/LaDimenian.nj b/web/src/jsMain/resources/assets/npcs/LaDimenian.nj similarity index 100% rename from web/src/main/resources/assets/npcs/LaDimenian.nj rename to web/src/jsMain/resources/assets/npcs/LaDimenian.nj diff --git a/web/src/main/resources/assets/npcs/LaDimenian.xvm b/web/src/jsMain/resources/assets/npcs/LaDimenian.xvm similarity index 100% rename from web/src/main/resources/assets/npcs/LaDimenian.xvm rename to web/src/jsMain/resources/assets/npcs/LaDimenian.xvm diff --git a/web/src/main/resources/assets/npcs/LoveRappy.nj b/web/src/jsMain/resources/assets/npcs/LoveRappy.nj similarity index 100% rename from web/src/main/resources/assets/npcs/LoveRappy.nj rename to web/src/jsMain/resources/assets/npcs/LoveRappy.nj diff --git a/web/src/main/resources/assets/npcs/LoveRappy.xvm b/web/src/jsMain/resources/assets/npcs/LoveRappy.xvm similarity index 100% rename from web/src/main/resources/assets/npcs/LoveRappy.xvm rename to web/src/jsMain/resources/assets/npcs/LoveRappy.xvm diff --git a/web/src/main/resources/assets/npcs/MaleDwarf.nj b/web/src/jsMain/resources/assets/npcs/MaleDwarf.nj similarity index 100% rename from web/src/main/resources/assets/npcs/MaleDwarf.nj rename to web/src/jsMain/resources/assets/npcs/MaleDwarf.nj diff --git a/web/src/main/resources/assets/npcs/MaleDwarf.xvm b/web/src/jsMain/resources/assets/npcs/MaleDwarf.xvm similarity index 100% rename from web/src/main/resources/assets/npcs/MaleDwarf.xvm rename to web/src/jsMain/resources/assets/npcs/MaleDwarf.xvm diff --git a/web/src/main/resources/assets/npcs/MaleFat.nj b/web/src/jsMain/resources/assets/npcs/MaleFat.nj similarity index 100% rename from web/src/main/resources/assets/npcs/MaleFat.nj rename to web/src/jsMain/resources/assets/npcs/MaleFat.nj diff --git a/web/src/main/resources/assets/npcs/MaleFat.xvm b/web/src/jsMain/resources/assets/npcs/MaleFat.xvm similarity index 100% rename from web/src/main/resources/assets/npcs/MaleFat.xvm rename to web/src/jsMain/resources/assets/npcs/MaleFat.xvm diff --git a/web/src/main/resources/assets/npcs/MaleMacho.nj b/web/src/jsMain/resources/assets/npcs/MaleMacho.nj similarity index 100% rename from web/src/main/resources/assets/npcs/MaleMacho.nj rename to web/src/jsMain/resources/assets/npcs/MaleMacho.nj diff --git a/web/src/main/resources/assets/npcs/MaleMacho.xvm b/web/src/jsMain/resources/assets/npcs/MaleMacho.xvm similarity index 100% rename from web/src/main/resources/assets/npcs/MaleMacho.xvm rename to web/src/jsMain/resources/assets/npcs/MaleMacho.xvm diff --git a/web/src/main/resources/assets/npcs/MaleOld.nj b/web/src/jsMain/resources/assets/npcs/MaleOld.nj similarity index 100% rename from web/src/main/resources/assets/npcs/MaleOld.nj rename to web/src/jsMain/resources/assets/npcs/MaleOld.nj diff --git a/web/src/main/resources/assets/npcs/MaleOld.xvm b/web/src/jsMain/resources/assets/npcs/MaleOld.xvm similarity index 100% rename from web/src/main/resources/assets/npcs/MaleOld.xvm rename to web/src/jsMain/resources/assets/npcs/MaleOld.xvm diff --git a/web/src/main/resources/assets/npcs/Mericarol.nj b/web/src/jsMain/resources/assets/npcs/Mericarol.nj similarity index 100% rename from web/src/main/resources/assets/npcs/Mericarol.nj rename to web/src/jsMain/resources/assets/npcs/Mericarol.nj diff --git a/web/src/main/resources/assets/npcs/Mericarol.xvm b/web/src/jsMain/resources/assets/npcs/Mericarol.xvm similarity index 100% rename from web/src/main/resources/assets/npcs/Mericarol.xvm rename to web/src/jsMain/resources/assets/npcs/Mericarol.xvm diff --git a/web/src/main/resources/assets/npcs/Mericus.nj b/web/src/jsMain/resources/assets/npcs/Mericus.nj similarity index 100% rename from web/src/main/resources/assets/npcs/Mericus.nj rename to web/src/jsMain/resources/assets/npcs/Mericus.nj diff --git a/web/src/main/resources/assets/npcs/Mericus.xvm b/web/src/jsMain/resources/assets/npcs/Mericus.xvm similarity index 100% rename from web/src/main/resources/assets/npcs/Mericus.xvm rename to web/src/jsMain/resources/assets/npcs/Mericus.xvm diff --git a/web/src/main/resources/assets/npcs/Merikle.nj b/web/src/jsMain/resources/assets/npcs/Merikle.nj similarity index 100% rename from web/src/main/resources/assets/npcs/Merikle.nj rename to web/src/jsMain/resources/assets/npcs/Merikle.nj diff --git a/web/src/main/resources/assets/npcs/Merikle.xvm b/web/src/jsMain/resources/assets/npcs/Merikle.xvm similarity index 100% rename from web/src/main/resources/assets/npcs/Merikle.xvm rename to web/src/jsMain/resources/assets/npcs/Merikle.xvm diff --git a/web/src/main/resources/assets/npcs/Merillia.nj b/web/src/jsMain/resources/assets/npcs/Merillia.nj similarity index 100% rename from web/src/main/resources/assets/npcs/Merillia.nj rename to web/src/jsMain/resources/assets/npcs/Merillia.nj diff --git a/web/src/main/resources/assets/npcs/Merillia.xvm b/web/src/jsMain/resources/assets/npcs/Merillia.xvm similarity index 100% rename from web/src/main/resources/assets/npcs/Merillia.xvm rename to web/src/jsMain/resources/assets/npcs/Merillia.xvm diff --git a/web/src/main/resources/assets/npcs/Meriltas.nj b/web/src/jsMain/resources/assets/npcs/Meriltas.nj similarity index 100% rename from web/src/main/resources/assets/npcs/Meriltas.nj rename to web/src/jsMain/resources/assets/npcs/Meriltas.nj diff --git a/web/src/main/resources/assets/npcs/Meriltas.xvm b/web/src/jsMain/resources/assets/npcs/Meriltas.xvm similarity index 100% rename from web/src/main/resources/assets/npcs/Meriltas.xvm rename to web/src/jsMain/resources/assets/npcs/Meriltas.xvm diff --git a/web/src/main/resources/assets/npcs/MerissaA.nj b/web/src/jsMain/resources/assets/npcs/MerissaA.nj similarity index 100% rename from web/src/main/resources/assets/npcs/MerissaA.nj rename to web/src/jsMain/resources/assets/npcs/MerissaA.nj diff --git a/web/src/main/resources/assets/npcs/MerissaA.xvm b/web/src/jsMain/resources/assets/npcs/MerissaA.xvm similarity index 100% rename from web/src/main/resources/assets/npcs/MerissaA.xvm rename to web/src/jsMain/resources/assets/npcs/MerissaA.xvm diff --git a/web/src/main/resources/assets/npcs/MerissaAA.nj b/web/src/jsMain/resources/assets/npcs/MerissaAA.nj similarity index 100% rename from web/src/main/resources/assets/npcs/MerissaAA.nj rename to web/src/jsMain/resources/assets/npcs/MerissaAA.nj diff --git a/web/src/main/resources/assets/npcs/MerissaAA.xvm b/web/src/jsMain/resources/assets/npcs/MerissaAA.xvm similarity index 100% rename from web/src/main/resources/assets/npcs/MerissaAA.xvm rename to web/src/jsMain/resources/assets/npcs/MerissaAA.xvm diff --git a/web/src/main/resources/assets/npcs/Monest.nj b/web/src/jsMain/resources/assets/npcs/Monest.nj similarity index 100% rename from web/src/main/resources/assets/npcs/Monest.nj rename to web/src/jsMain/resources/assets/npcs/Monest.nj diff --git a/web/src/main/resources/assets/npcs/Monest.xvm b/web/src/jsMain/resources/assets/npcs/Monest.xvm similarity index 100% rename from web/src/main/resources/assets/npcs/Monest.xvm rename to web/src/jsMain/resources/assets/npcs/Monest.xvm diff --git a/web/src/main/resources/assets/npcs/Morfos.nj b/web/src/jsMain/resources/assets/npcs/Morfos.nj similarity index 100% rename from web/src/main/resources/assets/npcs/Morfos.nj rename to web/src/jsMain/resources/assets/npcs/Morfos.nj diff --git a/web/src/main/resources/assets/npcs/Morfos.xvm b/web/src/jsMain/resources/assets/npcs/Morfos.xvm similarity index 100% rename from web/src/main/resources/assets/npcs/Morfos.xvm rename to web/src/jsMain/resources/assets/npcs/Morfos.xvm diff --git a/web/src/main/resources/assets/npcs/Mothmant.nj b/web/src/jsMain/resources/assets/npcs/Mothmant.nj similarity index 100% rename from web/src/main/resources/assets/npcs/Mothmant.nj rename to web/src/jsMain/resources/assets/npcs/Mothmant.nj diff --git a/web/src/main/resources/assets/npcs/Mothmant.xvm b/web/src/jsMain/resources/assets/npcs/Mothmant.xvm similarity index 100% rename from web/src/main/resources/assets/npcs/Mothmant.xvm rename to web/src/jsMain/resources/assets/npcs/Mothmant.xvm diff --git a/web/src/main/resources/assets/npcs/NanoDragon.nj b/web/src/jsMain/resources/assets/npcs/NanoDragon.nj similarity index 100% rename from web/src/main/resources/assets/npcs/NanoDragon.nj rename to web/src/jsMain/resources/assets/npcs/NanoDragon.nj diff --git a/web/src/main/resources/assets/npcs/NanoDragon.xvm b/web/src/jsMain/resources/assets/npcs/NanoDragon.xvm similarity index 100% rename from web/src/main/resources/assets/npcs/NanoDragon.xvm rename to web/src/jsMain/resources/assets/npcs/NanoDragon.xvm diff --git a/web/src/main/resources/assets/npcs/NarLily.nj b/web/src/jsMain/resources/assets/npcs/NarLily.nj similarity index 100% rename from web/src/main/resources/assets/npcs/NarLily.nj rename to web/src/jsMain/resources/assets/npcs/NarLily.nj diff --git a/web/src/main/resources/assets/npcs/NarLily.xvm b/web/src/jsMain/resources/assets/npcs/NarLily.xvm similarity index 100% rename from web/src/main/resources/assets/npcs/NarLily.xvm rename to web/src/jsMain/resources/assets/npcs/NarLily.xvm diff --git a/web/src/main/resources/assets/npcs/Nurse.nj b/web/src/jsMain/resources/assets/npcs/Nurse.nj similarity index 100% rename from web/src/main/resources/assets/npcs/Nurse.nj rename to web/src/jsMain/resources/assets/npcs/Nurse.nj diff --git a/web/src/main/resources/assets/npcs/Nurse.xvm b/web/src/jsMain/resources/assets/npcs/Nurse.xvm similarity index 100% rename from web/src/main/resources/assets/npcs/Nurse.xvm rename to web/src/jsMain/resources/assets/npcs/Nurse.xvm diff --git a/web/src/main/resources/assets/npcs/Nurse2.nj b/web/src/jsMain/resources/assets/npcs/Nurse2.nj similarity index 100% rename from web/src/main/resources/assets/npcs/Nurse2.nj rename to web/src/jsMain/resources/assets/npcs/Nurse2.nj diff --git a/web/src/main/resources/assets/npcs/Nurse2.xvm b/web/src/jsMain/resources/assets/npcs/Nurse2.xvm similarity index 100% rename from web/src/main/resources/assets/npcs/Nurse2.xvm rename to web/src/jsMain/resources/assets/npcs/Nurse2.xvm diff --git a/web/src/main/resources/assets/npcs/OlgaFlow.nj b/web/src/jsMain/resources/assets/npcs/OlgaFlow.nj similarity index 100% rename from web/src/main/resources/assets/npcs/OlgaFlow.nj rename to web/src/jsMain/resources/assets/npcs/OlgaFlow.nj diff --git a/web/src/main/resources/assets/npcs/OlgaFlow.xvm b/web/src/jsMain/resources/assets/npcs/OlgaFlow.xvm similarity index 100% rename from web/src/main/resources/assets/npcs/OlgaFlow.xvm rename to web/src/jsMain/resources/assets/npcs/OlgaFlow.xvm diff --git a/web/src/main/resources/assets/npcs/PalShark.nj b/web/src/jsMain/resources/assets/npcs/PalShark.nj similarity index 100% rename from web/src/main/resources/assets/npcs/PalShark.nj rename to web/src/jsMain/resources/assets/npcs/PalShark.nj diff --git a/web/src/main/resources/assets/npcs/PalShark.xvm b/web/src/jsMain/resources/assets/npcs/PalShark.xvm similarity index 100% rename from web/src/main/resources/assets/npcs/PalShark.xvm rename to web/src/jsMain/resources/assets/npcs/PalShark.xvm diff --git a/web/src/main/resources/assets/npcs/PanArms.nj b/web/src/jsMain/resources/assets/npcs/PanArms.nj similarity index 100% rename from web/src/main/resources/assets/npcs/PanArms.nj rename to web/src/jsMain/resources/assets/npcs/PanArms.nj diff --git a/web/src/main/resources/assets/npcs/PanArms.xvm b/web/src/jsMain/resources/assets/npcs/PanArms.xvm similarity index 100% rename from web/src/main/resources/assets/npcs/PanArms.xvm rename to web/src/jsMain/resources/assets/npcs/PanArms.xvm diff --git a/web/src/main/resources/assets/npcs/Pazuzu.nj b/web/src/jsMain/resources/assets/npcs/Pazuzu.nj similarity index 100% rename from web/src/main/resources/assets/npcs/Pazuzu.nj rename to web/src/jsMain/resources/assets/npcs/Pazuzu.nj diff --git a/web/src/main/resources/assets/npcs/Pazuzu.xvm b/web/src/jsMain/resources/assets/npcs/Pazuzu.xvm similarity index 100% rename from web/src/main/resources/assets/npcs/Pazuzu.xvm rename to web/src/jsMain/resources/assets/npcs/Pazuzu.xvm diff --git a/web/src/main/resources/assets/npcs/PofuillySlime.nj b/web/src/jsMain/resources/assets/npcs/PofuillySlime.nj similarity index 100% rename from web/src/main/resources/assets/npcs/PofuillySlime.nj rename to web/src/jsMain/resources/assets/npcs/PofuillySlime.nj diff --git a/web/src/main/resources/assets/npcs/PofuillySlime.xvm b/web/src/jsMain/resources/assets/npcs/PofuillySlime.xvm similarity index 100% rename from web/src/main/resources/assets/npcs/PofuillySlime.xvm rename to web/src/jsMain/resources/assets/npcs/PofuillySlime.xvm diff --git a/web/src/main/resources/assets/npcs/PoisonLily.nj b/web/src/jsMain/resources/assets/npcs/PoisonLily.nj similarity index 100% rename from web/src/main/resources/assets/npcs/PoisonLily.nj rename to web/src/jsMain/resources/assets/npcs/PoisonLily.nj diff --git a/web/src/main/resources/assets/npcs/PoisonLily.xvm b/web/src/jsMain/resources/assets/npcs/PoisonLily.xvm similarity index 100% rename from web/src/main/resources/assets/npcs/PoisonLily.xvm rename to web/src/jsMain/resources/assets/npcs/PoisonLily.xvm diff --git a/web/src/main/resources/assets/npcs/PouillySlime.nj b/web/src/jsMain/resources/assets/npcs/PouillySlime.nj similarity index 100% rename from web/src/main/resources/assets/npcs/PouillySlime.nj rename to web/src/jsMain/resources/assets/npcs/PouillySlime.nj diff --git a/web/src/main/resources/assets/npcs/PouillySlime.xvm b/web/src/jsMain/resources/assets/npcs/PouillySlime.xvm similarity index 100% rename from web/src/main/resources/assets/npcs/PouillySlime.xvm rename to web/src/jsMain/resources/assets/npcs/PouillySlime.xvm diff --git a/web/src/main/resources/assets/npcs/Principal.nj b/web/src/jsMain/resources/assets/npcs/Principal.nj similarity index 100% rename from web/src/main/resources/assets/npcs/Principal.nj rename to web/src/jsMain/resources/assets/npcs/Principal.nj diff --git a/web/src/main/resources/assets/npcs/Principal.xvm b/web/src/jsMain/resources/assets/npcs/Principal.xvm similarity index 100% rename from web/src/main/resources/assets/npcs/Principal.xvm rename to web/src/jsMain/resources/assets/npcs/Principal.xvm diff --git a/web/src/main/resources/assets/npcs/PyroGoran.nj b/web/src/jsMain/resources/assets/npcs/PyroGoran.nj similarity index 100% rename from web/src/main/resources/assets/npcs/PyroGoran.nj rename to web/src/jsMain/resources/assets/npcs/PyroGoran.nj diff --git a/web/src/main/resources/assets/npcs/PyroGoran.xvm b/web/src/jsMain/resources/assets/npcs/PyroGoran.xvm similarity index 100% rename from web/src/main/resources/assets/npcs/PyroGoran.xvm rename to web/src/jsMain/resources/assets/npcs/PyroGoran.xvm diff --git a/web/src/main/resources/assets/npcs/RagRappy.nj b/web/src/jsMain/resources/assets/npcs/RagRappy.nj similarity index 100% rename from web/src/main/resources/assets/npcs/RagRappy.nj rename to web/src/jsMain/resources/assets/npcs/RagRappy.nj diff --git a/web/src/main/resources/assets/npcs/RagRappy.xvm b/web/src/jsMain/resources/assets/npcs/RagRappy.xvm similarity index 100% rename from web/src/main/resources/assets/npcs/RagRappy.xvm rename to web/src/jsMain/resources/assets/npcs/RagRappy.xvm diff --git a/web/src/main/resources/assets/npcs/Recobox.nj b/web/src/jsMain/resources/assets/npcs/Recobox.nj similarity index 100% rename from web/src/main/resources/assets/npcs/Recobox.nj rename to web/src/jsMain/resources/assets/npcs/Recobox.nj diff --git a/web/src/main/resources/assets/npcs/Recobox.xvm b/web/src/jsMain/resources/assets/npcs/Recobox.xvm similarity index 100% rename from web/src/main/resources/assets/npcs/Recobox.xvm rename to web/src/jsMain/resources/assets/npcs/Recobox.xvm diff --git a/web/src/main/resources/assets/npcs/RedSoldier.nj b/web/src/jsMain/resources/assets/npcs/RedSoldier.nj similarity index 100% rename from web/src/main/resources/assets/npcs/RedSoldier.nj rename to web/src/jsMain/resources/assets/npcs/RedSoldier.nj diff --git a/web/src/main/resources/assets/npcs/RedSoldier.xvm b/web/src/jsMain/resources/assets/npcs/RedSoldier.xvm similarity index 100% rename from web/src/main/resources/assets/npcs/RedSoldier.xvm rename to web/src/jsMain/resources/assets/npcs/RedSoldier.xvm diff --git a/web/src/main/resources/assets/npcs/SaintMilion.nj b/web/src/jsMain/resources/assets/npcs/SaintMilion.nj similarity index 100% rename from web/src/main/resources/assets/npcs/SaintMilion.nj rename to web/src/jsMain/resources/assets/npcs/SaintMilion.nj diff --git a/web/src/main/resources/assets/npcs/SaintMilion.xvm b/web/src/jsMain/resources/assets/npcs/SaintMilion.xvm similarity index 100% rename from web/src/main/resources/assets/npcs/SaintMilion.xvm rename to web/src/jsMain/resources/assets/npcs/SaintMilion.xvm diff --git a/web/src/main/resources/assets/npcs/SandRappy.nj b/web/src/jsMain/resources/assets/npcs/SandRappy.nj similarity index 100% rename from web/src/main/resources/assets/npcs/SandRappy.nj rename to web/src/jsMain/resources/assets/npcs/SandRappy.nj diff --git a/web/src/main/resources/assets/npcs/SandRappy.xvm b/web/src/jsMain/resources/assets/npcs/SandRappy.xvm similarity index 100% rename from web/src/main/resources/assets/npcs/SandRappy.xvm rename to web/src/jsMain/resources/assets/npcs/SandRappy.xvm diff --git a/web/src/main/resources/assets/npcs/SatelliteLizard.nj b/web/src/jsMain/resources/assets/npcs/SatelliteLizard.nj similarity index 100% rename from web/src/main/resources/assets/npcs/SatelliteLizard.nj rename to web/src/jsMain/resources/assets/npcs/SatelliteLizard.nj diff --git a/web/src/main/resources/assets/npcs/SatelliteLizard.xvm b/web/src/jsMain/resources/assets/npcs/SatelliteLizard.xvm similarity index 100% rename from web/src/main/resources/assets/npcs/SatelliteLizard.xvm rename to web/src/jsMain/resources/assets/npcs/SatelliteLizard.xvm diff --git a/web/src/main/resources/assets/npcs/SavageWolf.nj b/web/src/jsMain/resources/assets/npcs/SavageWolf.nj similarity index 100% rename from web/src/main/resources/assets/npcs/SavageWolf.nj rename to web/src/jsMain/resources/assets/npcs/SavageWolf.nj diff --git a/web/src/main/resources/assets/npcs/SavageWolf.xvm b/web/src/jsMain/resources/assets/npcs/SavageWolf.xvm similarity index 100% rename from web/src/main/resources/assets/npcs/SavageWolf.xvm rename to web/src/jsMain/resources/assets/npcs/SavageWolf.xvm diff --git a/web/src/main/resources/assets/npcs/Scientist.nj b/web/src/jsMain/resources/assets/npcs/Scientist.nj similarity index 100% rename from web/src/main/resources/assets/npcs/Scientist.nj rename to web/src/jsMain/resources/assets/npcs/Scientist.nj diff --git a/web/src/main/resources/assets/npcs/Scientist.xvm b/web/src/jsMain/resources/assets/npcs/Scientist.xvm similarity index 100% rename from web/src/main/resources/assets/npcs/Scientist.xvm rename to web/src/jsMain/resources/assets/npcs/Scientist.xvm diff --git a/web/src/main/resources/assets/npcs/Shambertin.nj b/web/src/jsMain/resources/assets/npcs/Shambertin.nj similarity index 100% rename from web/src/main/resources/assets/npcs/Shambertin.nj rename to web/src/jsMain/resources/assets/npcs/Shambertin.nj diff --git a/web/src/main/resources/assets/npcs/Shambertin.xvm b/web/src/jsMain/resources/assets/npcs/Shambertin.xvm similarity index 100% rename from web/src/main/resources/assets/npcs/Shambertin.xvm rename to web/src/jsMain/resources/assets/npcs/Shambertin.xvm diff --git a/web/src/main/resources/assets/npcs/SinowBeat.nj b/web/src/jsMain/resources/assets/npcs/SinowBeat.nj similarity index 100% rename from web/src/main/resources/assets/npcs/SinowBeat.nj rename to web/src/jsMain/resources/assets/npcs/SinowBeat.nj diff --git a/web/src/main/resources/assets/npcs/SinowBeat.xvm b/web/src/jsMain/resources/assets/npcs/SinowBeat.xvm similarity index 100% rename from web/src/main/resources/assets/npcs/SinowBeat.xvm rename to web/src/jsMain/resources/assets/npcs/SinowBeat.xvm diff --git a/web/src/main/resources/assets/npcs/SinowBerill.nj b/web/src/jsMain/resources/assets/npcs/SinowBerill.nj similarity index 100% rename from web/src/main/resources/assets/npcs/SinowBerill.nj rename to web/src/jsMain/resources/assets/npcs/SinowBerill.nj diff --git a/web/src/main/resources/assets/npcs/SinowBerill.xvm b/web/src/jsMain/resources/assets/npcs/SinowBerill.xvm similarity index 100% rename from web/src/main/resources/assets/npcs/SinowBerill.xvm rename to web/src/jsMain/resources/assets/npcs/SinowBerill.xvm diff --git a/web/src/main/resources/assets/npcs/SinowGold.nj b/web/src/jsMain/resources/assets/npcs/SinowGold.nj similarity index 100% rename from web/src/main/resources/assets/npcs/SinowGold.nj rename to web/src/jsMain/resources/assets/npcs/SinowGold.nj diff --git a/web/src/main/resources/assets/npcs/SinowGold.xvm b/web/src/jsMain/resources/assets/npcs/SinowGold.xvm similarity index 100% rename from web/src/main/resources/assets/npcs/SinowGold.xvm rename to web/src/jsMain/resources/assets/npcs/SinowGold.xvm diff --git a/web/src/main/resources/assets/npcs/SinowSpigell.nj b/web/src/jsMain/resources/assets/npcs/SinowSpigell.nj similarity index 100% rename from web/src/main/resources/assets/npcs/SinowSpigell.nj rename to web/src/jsMain/resources/assets/npcs/SinowSpigell.nj diff --git a/web/src/main/resources/assets/npcs/SinowSpigell.xvm b/web/src/jsMain/resources/assets/npcs/SinowSpigell.xvm similarity index 100% rename from web/src/main/resources/assets/npcs/SinowSpigell.xvm rename to web/src/jsMain/resources/assets/npcs/SinowSpigell.xvm diff --git a/web/src/main/resources/assets/npcs/SinowZele.nj b/web/src/jsMain/resources/assets/npcs/SinowZele.nj similarity index 100% rename from web/src/main/resources/assets/npcs/SinowZele.nj rename to web/src/jsMain/resources/assets/npcs/SinowZele.nj diff --git a/web/src/main/resources/assets/npcs/SinowZele.xvm b/web/src/jsMain/resources/assets/npcs/SinowZele.xvm similarity index 100% rename from web/src/main/resources/assets/npcs/SinowZele.xvm rename to web/src/jsMain/resources/assets/npcs/SinowZele.xvm diff --git a/web/src/main/resources/assets/npcs/SinowZoa.nj b/web/src/jsMain/resources/assets/npcs/SinowZoa.nj similarity index 100% rename from web/src/main/resources/assets/npcs/SinowZoa.nj rename to web/src/jsMain/resources/assets/npcs/SinowZoa.nj diff --git a/web/src/main/resources/assets/npcs/SinowZoa.xvm b/web/src/jsMain/resources/assets/npcs/SinowZoa.xvm similarity index 100% rename from web/src/main/resources/assets/npcs/SinowZoa.xvm rename to web/src/jsMain/resources/assets/npcs/SinowZoa.xvm diff --git a/web/src/main/resources/assets/npcs/SoDimenian.nj b/web/src/jsMain/resources/assets/npcs/SoDimenian.nj similarity index 100% rename from web/src/main/resources/assets/npcs/SoDimenian.nj rename to web/src/jsMain/resources/assets/npcs/SoDimenian.nj diff --git a/web/src/main/resources/assets/npcs/SoDimenian.xvm b/web/src/jsMain/resources/assets/npcs/SoDimenian.xvm similarity index 100% rename from web/src/main/resources/assets/npcs/SoDimenian.xvm rename to web/src/jsMain/resources/assets/npcs/SoDimenian.xvm diff --git a/web/src/main/resources/assets/npcs/Tekker.nj b/web/src/jsMain/resources/assets/npcs/Tekker.nj similarity index 100% rename from web/src/main/resources/assets/npcs/Tekker.nj rename to web/src/jsMain/resources/assets/npcs/Tekker.nj diff --git a/web/src/main/resources/assets/npcs/Tekker.xvm b/web/src/jsMain/resources/assets/npcs/Tekker.xvm similarity index 100% rename from web/src/main/resources/assets/npcs/Tekker.xvm rename to web/src/jsMain/resources/assets/npcs/Tekker.xvm diff --git a/web/src/main/resources/assets/npcs/UlGibbon.nj b/web/src/jsMain/resources/assets/npcs/UlGibbon.nj similarity index 100% rename from web/src/main/resources/assets/npcs/UlGibbon.nj rename to web/src/jsMain/resources/assets/npcs/UlGibbon.nj diff --git a/web/src/main/resources/assets/npcs/UlGibbon.xvm b/web/src/jsMain/resources/assets/npcs/UlGibbon.xvm similarity index 100% rename from web/src/main/resources/assets/npcs/UlGibbon.xvm rename to web/src/jsMain/resources/assets/npcs/UlGibbon.xvm diff --git a/web/src/main/resources/assets/npcs/VolOptPart2.nj b/web/src/jsMain/resources/assets/npcs/VolOptPart2.nj similarity index 100% rename from web/src/main/resources/assets/npcs/VolOptPart2.nj rename to web/src/jsMain/resources/assets/npcs/VolOptPart2.nj diff --git a/web/src/main/resources/assets/npcs/VolOptPart2.xvm b/web/src/jsMain/resources/assets/npcs/VolOptPart2.xvm similarity index 100% rename from web/src/main/resources/assets/npcs/VolOptPart2.xvm rename to web/src/jsMain/resources/assets/npcs/VolOptPart2.xvm diff --git a/web/src/main/resources/assets/npcs/Yowie.nj b/web/src/jsMain/resources/assets/npcs/Yowie.nj similarity index 100% rename from web/src/main/resources/assets/npcs/Yowie.nj rename to web/src/jsMain/resources/assets/npcs/Yowie.nj diff --git a/web/src/main/resources/assets/npcs/Yowie.xvm b/web/src/jsMain/resources/assets/npcs/Yowie.xvm similarity index 100% rename from web/src/main/resources/assets/npcs/Yowie.xvm rename to web/src/jsMain/resources/assets/npcs/Yowie.xvm diff --git a/web/src/main/resources/assets/npcs/ZeBoota.nj b/web/src/jsMain/resources/assets/npcs/ZeBoota.nj similarity index 100% rename from web/src/main/resources/assets/npcs/ZeBoota.nj rename to web/src/jsMain/resources/assets/npcs/ZeBoota.nj diff --git a/web/src/main/resources/assets/npcs/ZeBoota.xvm b/web/src/jsMain/resources/assets/npcs/ZeBoota.xvm similarity index 100% rename from web/src/main/resources/assets/npcs/ZeBoota.xvm rename to web/src/jsMain/resources/assets/npcs/ZeBoota.xvm diff --git a/web/src/main/resources/assets/npcs/ZolGibbon.nj b/web/src/jsMain/resources/assets/npcs/ZolGibbon.nj similarity index 100% rename from web/src/main/resources/assets/npcs/ZolGibbon.nj rename to web/src/jsMain/resources/assets/npcs/ZolGibbon.nj diff --git a/web/src/main/resources/assets/npcs/ZolGibbon.xvm b/web/src/jsMain/resources/assets/npcs/ZolGibbon.xvm similarity index 100% rename from web/src/main/resources/assets/npcs/ZolGibbon.xvm rename to web/src/jsMain/resources/assets/npcs/ZolGibbon.xvm diff --git a/web/src/main/resources/assets/npcs/Zu.nj b/web/src/jsMain/resources/assets/npcs/Zu.nj similarity index 100% rename from web/src/main/resources/assets/npcs/Zu.nj rename to web/src/jsMain/resources/assets/npcs/Zu.nj diff --git a/web/src/main/resources/assets/npcs/Zu.xvm b/web/src/jsMain/resources/assets/npcs/Zu.xvm similarity index 100% rename from web/src/main/resources/assets/npcs/Zu.xvm rename to web/src/jsMain/resources/assets/npcs/Zu.xvm diff --git a/web/src/main/resources/assets/objects/10-2.xj b/web/src/jsMain/resources/assets/objects/10-2.xj similarity index 100% rename from web/src/main/resources/assets/objects/10-2.xj rename to web/src/jsMain/resources/assets/objects/10-2.xj diff --git a/web/src/main/resources/assets/objects/10-2.xvm b/web/src/jsMain/resources/assets/objects/10-2.xvm similarity index 100% rename from web/src/main/resources/assets/objects/10-2.xvm rename to web/src/jsMain/resources/assets/objects/10-2.xvm diff --git a/web/src/main/resources/assets/objects/10.xj b/web/src/jsMain/resources/assets/objects/10.xj similarity index 100% rename from web/src/main/resources/assets/objects/10.xj rename to web/src/jsMain/resources/assets/objects/10.xj diff --git a/web/src/main/resources/assets/objects/10.xvm b/web/src/jsMain/resources/assets/objects/10.xvm similarity index 100% rename from web/src/main/resources/assets/objects/10.xvm rename to web/src/jsMain/resources/assets/objects/10.xvm diff --git a/web/src/main/resources/assets/objects/11-2.xj b/web/src/jsMain/resources/assets/objects/11-2.xj similarity index 100% rename from web/src/main/resources/assets/objects/11-2.xj rename to web/src/jsMain/resources/assets/objects/11-2.xj diff --git a/web/src/main/resources/assets/objects/11-2.xvm b/web/src/jsMain/resources/assets/objects/11-2.xvm similarity index 100% rename from web/src/main/resources/assets/objects/11-2.xvm rename to web/src/jsMain/resources/assets/objects/11-2.xvm diff --git a/web/src/main/resources/assets/objects/11.xj b/web/src/jsMain/resources/assets/objects/11.xj similarity index 100% rename from web/src/main/resources/assets/objects/11.xj rename to web/src/jsMain/resources/assets/objects/11.xj diff --git a/web/src/main/resources/assets/objects/11.xvm b/web/src/jsMain/resources/assets/objects/11.xvm similarity index 100% rename from web/src/main/resources/assets/objects/11.xvm rename to web/src/jsMain/resources/assets/objects/11.xvm diff --git a/web/src/main/resources/assets/objects/12-2.xj b/web/src/jsMain/resources/assets/objects/12-2.xj similarity index 100% rename from web/src/main/resources/assets/objects/12-2.xj rename to web/src/jsMain/resources/assets/objects/12-2.xj diff --git a/web/src/main/resources/assets/objects/12-2.xvm b/web/src/jsMain/resources/assets/objects/12-2.xvm similarity index 100% rename from web/src/main/resources/assets/objects/12-2.xvm rename to web/src/jsMain/resources/assets/objects/12-2.xvm diff --git a/web/src/main/resources/assets/objects/12.xj b/web/src/jsMain/resources/assets/objects/12.xj similarity index 100% rename from web/src/main/resources/assets/objects/12.xj rename to web/src/jsMain/resources/assets/objects/12.xj diff --git a/web/src/main/resources/assets/objects/12.xvm b/web/src/jsMain/resources/assets/objects/12.xvm similarity index 100% rename from web/src/main/resources/assets/objects/12.xvm rename to web/src/jsMain/resources/assets/objects/12.xvm diff --git a/web/src/main/resources/assets/objects/128-2.xj b/web/src/jsMain/resources/assets/objects/128-2.xj similarity index 100% rename from web/src/main/resources/assets/objects/128-2.xj rename to web/src/jsMain/resources/assets/objects/128-2.xj diff --git a/web/src/main/resources/assets/objects/128-3.xj b/web/src/jsMain/resources/assets/objects/128-3.xj similarity index 100% rename from web/src/main/resources/assets/objects/128-3.xj rename to web/src/jsMain/resources/assets/objects/128-3.xj diff --git a/web/src/main/resources/assets/objects/128-4.xj b/web/src/jsMain/resources/assets/objects/128-4.xj similarity index 100% rename from web/src/main/resources/assets/objects/128-4.xj rename to web/src/jsMain/resources/assets/objects/128-4.xj diff --git a/web/src/main/resources/assets/objects/128-5.xj b/web/src/jsMain/resources/assets/objects/128-5.xj similarity index 100% rename from web/src/main/resources/assets/objects/128-5.xj rename to web/src/jsMain/resources/assets/objects/128-5.xj diff --git a/web/src/main/resources/assets/objects/128.xj b/web/src/jsMain/resources/assets/objects/128.xj similarity index 100% rename from web/src/main/resources/assets/objects/128.xj rename to web/src/jsMain/resources/assets/objects/128.xj diff --git a/web/src/main/resources/assets/objects/128.xvm b/web/src/jsMain/resources/assets/objects/128.xvm similarity index 100% rename from web/src/main/resources/assets/objects/128.xvm rename to web/src/jsMain/resources/assets/objects/128.xvm diff --git a/web/src/main/resources/assets/objects/129-2.xj b/web/src/jsMain/resources/assets/objects/129-2.xj similarity index 100% rename from web/src/main/resources/assets/objects/129-2.xj rename to web/src/jsMain/resources/assets/objects/129-2.xj diff --git a/web/src/main/resources/assets/objects/129-3.xj b/web/src/jsMain/resources/assets/objects/129-3.xj similarity index 100% rename from web/src/main/resources/assets/objects/129-3.xj rename to web/src/jsMain/resources/assets/objects/129-3.xj diff --git a/web/src/main/resources/assets/objects/129.xj b/web/src/jsMain/resources/assets/objects/129.xj similarity index 100% rename from web/src/main/resources/assets/objects/129.xj rename to web/src/jsMain/resources/assets/objects/129.xj diff --git a/web/src/main/resources/assets/objects/129.xvm b/web/src/jsMain/resources/assets/objects/129.xvm similarity index 100% rename from web/src/main/resources/assets/objects/129.xvm rename to web/src/jsMain/resources/assets/objects/129.xvm diff --git a/web/src/main/resources/assets/objects/13-2.xj b/web/src/jsMain/resources/assets/objects/13-2.xj similarity index 100% rename from web/src/main/resources/assets/objects/13-2.xj rename to web/src/jsMain/resources/assets/objects/13-2.xj diff --git a/web/src/main/resources/assets/objects/13-2.xvm b/web/src/jsMain/resources/assets/objects/13-2.xvm similarity index 100% rename from web/src/main/resources/assets/objects/13-2.xvm rename to web/src/jsMain/resources/assets/objects/13-2.xvm diff --git a/web/src/main/resources/assets/objects/13.xj b/web/src/jsMain/resources/assets/objects/13.xj similarity index 100% rename from web/src/main/resources/assets/objects/13.xj rename to web/src/jsMain/resources/assets/objects/13.xj diff --git a/web/src/main/resources/assets/objects/13.xvm b/web/src/jsMain/resources/assets/objects/13.xvm similarity index 100% rename from web/src/main/resources/assets/objects/13.xvm rename to web/src/jsMain/resources/assets/objects/13.xvm diff --git a/web/src/main/resources/assets/objects/130-2.xj b/web/src/jsMain/resources/assets/objects/130-2.xj similarity index 100% rename from web/src/main/resources/assets/objects/130-2.xj rename to web/src/jsMain/resources/assets/objects/130-2.xj diff --git a/web/src/main/resources/assets/objects/130.xj b/web/src/jsMain/resources/assets/objects/130.xj similarity index 100% rename from web/src/main/resources/assets/objects/130.xj rename to web/src/jsMain/resources/assets/objects/130.xj diff --git a/web/src/main/resources/assets/objects/130.xvm b/web/src/jsMain/resources/assets/objects/130.xvm similarity index 100% rename from web/src/main/resources/assets/objects/130.xvm rename to web/src/jsMain/resources/assets/objects/130.xvm diff --git a/web/src/main/resources/assets/objects/131-2.xj b/web/src/jsMain/resources/assets/objects/131-2.xj similarity index 100% rename from web/src/main/resources/assets/objects/131-2.xj rename to web/src/jsMain/resources/assets/objects/131-2.xj diff --git a/web/src/main/resources/assets/objects/131.xj b/web/src/jsMain/resources/assets/objects/131.xj similarity index 100% rename from web/src/main/resources/assets/objects/131.xj rename to web/src/jsMain/resources/assets/objects/131.xj diff --git a/web/src/main/resources/assets/objects/131.xvm b/web/src/jsMain/resources/assets/objects/131.xvm similarity index 100% rename from web/src/main/resources/assets/objects/131.xvm rename to web/src/jsMain/resources/assets/objects/131.xvm diff --git a/web/src/main/resources/assets/objects/132-2.xj b/web/src/jsMain/resources/assets/objects/132-2.xj similarity index 100% rename from web/src/main/resources/assets/objects/132-2.xj rename to web/src/jsMain/resources/assets/objects/132-2.xj diff --git a/web/src/main/resources/assets/objects/132-3.xj b/web/src/jsMain/resources/assets/objects/132-3.xj similarity index 100% rename from web/src/main/resources/assets/objects/132-3.xj rename to web/src/jsMain/resources/assets/objects/132-3.xj diff --git a/web/src/main/resources/assets/objects/132.xj b/web/src/jsMain/resources/assets/objects/132.xj similarity index 100% rename from web/src/main/resources/assets/objects/132.xj rename to web/src/jsMain/resources/assets/objects/132.xj diff --git a/web/src/main/resources/assets/objects/132.xvm b/web/src/jsMain/resources/assets/objects/132.xvm similarity index 100% rename from web/src/main/resources/assets/objects/132.xvm rename to web/src/jsMain/resources/assets/objects/132.xvm diff --git a/web/src/main/resources/assets/objects/133.xj b/web/src/jsMain/resources/assets/objects/133.xj similarity index 100% rename from web/src/main/resources/assets/objects/133.xj rename to web/src/jsMain/resources/assets/objects/133.xj diff --git a/web/src/main/resources/assets/objects/133.xvm b/web/src/jsMain/resources/assets/objects/133.xvm similarity index 100% rename from web/src/main/resources/assets/objects/133.xvm rename to web/src/jsMain/resources/assets/objects/133.xvm diff --git a/web/src/main/resources/assets/objects/134.xj b/web/src/jsMain/resources/assets/objects/134.xj similarity index 100% rename from web/src/main/resources/assets/objects/134.xj rename to web/src/jsMain/resources/assets/objects/134.xj diff --git a/web/src/main/resources/assets/objects/134.xvm b/web/src/jsMain/resources/assets/objects/134.xvm similarity index 100% rename from web/src/main/resources/assets/objects/134.xvm rename to web/src/jsMain/resources/assets/objects/134.xvm diff --git a/web/src/main/resources/assets/objects/135-0.xj b/web/src/jsMain/resources/assets/objects/135-0.xj similarity index 100% rename from web/src/main/resources/assets/objects/135-0.xj rename to web/src/jsMain/resources/assets/objects/135-0.xj diff --git a/web/src/main/resources/assets/objects/135-0.xvm b/web/src/jsMain/resources/assets/objects/135-0.xvm similarity index 100% rename from web/src/main/resources/assets/objects/135-0.xvm rename to web/src/jsMain/resources/assets/objects/135-0.xvm diff --git a/web/src/main/resources/assets/objects/135-1.xj b/web/src/jsMain/resources/assets/objects/135-1.xj similarity index 100% rename from web/src/main/resources/assets/objects/135-1.xj rename to web/src/jsMain/resources/assets/objects/135-1.xj diff --git a/web/src/main/resources/assets/objects/135-1.xvm b/web/src/jsMain/resources/assets/objects/135-1.xvm similarity index 100% rename from web/src/main/resources/assets/objects/135-1.xvm rename to web/src/jsMain/resources/assets/objects/135-1.xvm diff --git a/web/src/main/resources/assets/objects/135.xj b/web/src/jsMain/resources/assets/objects/135.xj similarity index 100% rename from web/src/main/resources/assets/objects/135.xj rename to web/src/jsMain/resources/assets/objects/135.xj diff --git a/web/src/main/resources/assets/objects/135.xvm b/web/src/jsMain/resources/assets/objects/135.xvm similarity index 100% rename from web/src/main/resources/assets/objects/135.xvm rename to web/src/jsMain/resources/assets/objects/135.xvm diff --git a/web/src/main/resources/assets/objects/136-2.xj b/web/src/jsMain/resources/assets/objects/136-2.xj similarity index 100% rename from web/src/main/resources/assets/objects/136-2.xj rename to web/src/jsMain/resources/assets/objects/136-2.xj diff --git a/web/src/main/resources/assets/objects/136-3.xj b/web/src/jsMain/resources/assets/objects/136-3.xj similarity index 100% rename from web/src/main/resources/assets/objects/136-3.xj rename to web/src/jsMain/resources/assets/objects/136-3.xj diff --git a/web/src/main/resources/assets/objects/136.xj b/web/src/jsMain/resources/assets/objects/136.xj similarity index 100% rename from web/src/main/resources/assets/objects/136.xj rename to web/src/jsMain/resources/assets/objects/136.xj diff --git a/web/src/main/resources/assets/objects/136.xvm b/web/src/jsMain/resources/assets/objects/136.xvm similarity index 100% rename from web/src/main/resources/assets/objects/136.xvm rename to web/src/jsMain/resources/assets/objects/136.xvm diff --git a/web/src/main/resources/assets/objects/137.xj b/web/src/jsMain/resources/assets/objects/137.xj similarity index 100% rename from web/src/main/resources/assets/objects/137.xj rename to web/src/jsMain/resources/assets/objects/137.xj diff --git a/web/src/main/resources/assets/objects/137.xvm b/web/src/jsMain/resources/assets/objects/137.xvm similarity index 100% rename from web/src/main/resources/assets/objects/137.xvm rename to web/src/jsMain/resources/assets/objects/137.xvm diff --git a/web/src/main/resources/assets/objects/139-0.xj b/web/src/jsMain/resources/assets/objects/139-0.xj similarity index 100% rename from web/src/main/resources/assets/objects/139-0.xj rename to web/src/jsMain/resources/assets/objects/139-0.xj diff --git a/web/src/main/resources/assets/objects/139-0.xvm b/web/src/jsMain/resources/assets/objects/139-0.xvm similarity index 100% rename from web/src/main/resources/assets/objects/139-0.xvm rename to web/src/jsMain/resources/assets/objects/139-0.xvm diff --git a/web/src/main/resources/assets/objects/139-1.xj b/web/src/jsMain/resources/assets/objects/139-1.xj similarity index 100% rename from web/src/main/resources/assets/objects/139-1.xj rename to web/src/jsMain/resources/assets/objects/139-1.xj diff --git a/web/src/main/resources/assets/objects/139-1.xvm b/web/src/jsMain/resources/assets/objects/139-1.xvm similarity index 100% rename from web/src/main/resources/assets/objects/139-1.xvm rename to web/src/jsMain/resources/assets/objects/139-1.xvm diff --git a/web/src/main/resources/assets/objects/139.xj b/web/src/jsMain/resources/assets/objects/139.xj similarity index 100% rename from web/src/main/resources/assets/objects/139.xj rename to web/src/jsMain/resources/assets/objects/139.xj diff --git a/web/src/main/resources/assets/objects/139.xvm b/web/src/jsMain/resources/assets/objects/139.xvm similarity index 100% rename from web/src/main/resources/assets/objects/139.xvm rename to web/src/jsMain/resources/assets/objects/139.xvm diff --git a/web/src/main/resources/assets/objects/140-2.xj b/web/src/jsMain/resources/assets/objects/140-2.xj similarity index 100% rename from web/src/main/resources/assets/objects/140-2.xj rename to web/src/jsMain/resources/assets/objects/140-2.xj diff --git a/web/src/main/resources/assets/objects/140.xj b/web/src/jsMain/resources/assets/objects/140.xj similarity index 100% rename from web/src/main/resources/assets/objects/140.xj rename to web/src/jsMain/resources/assets/objects/140.xj diff --git a/web/src/main/resources/assets/objects/140.xvm b/web/src/jsMain/resources/assets/objects/140.xvm similarity index 100% rename from web/src/main/resources/assets/objects/140.xvm rename to web/src/jsMain/resources/assets/objects/140.xvm diff --git a/web/src/main/resources/assets/objects/141.xj b/web/src/jsMain/resources/assets/objects/141.xj similarity index 100% rename from web/src/main/resources/assets/objects/141.xj rename to web/src/jsMain/resources/assets/objects/141.xj diff --git a/web/src/main/resources/assets/objects/141.xvm b/web/src/jsMain/resources/assets/objects/141.xvm similarity index 100% rename from web/src/main/resources/assets/objects/141.xvm rename to web/src/jsMain/resources/assets/objects/141.xvm diff --git a/web/src/main/resources/assets/objects/142-2.xj b/web/src/jsMain/resources/assets/objects/142-2.xj similarity index 100% rename from web/src/main/resources/assets/objects/142-2.xj rename to web/src/jsMain/resources/assets/objects/142-2.xj diff --git a/web/src/main/resources/assets/objects/142-2.xvm b/web/src/jsMain/resources/assets/objects/142-2.xvm similarity index 100% rename from web/src/main/resources/assets/objects/142-2.xvm rename to web/src/jsMain/resources/assets/objects/142-2.xvm diff --git a/web/src/main/resources/assets/objects/142.xj b/web/src/jsMain/resources/assets/objects/142.xj similarity index 100% rename from web/src/main/resources/assets/objects/142.xj rename to web/src/jsMain/resources/assets/objects/142.xj diff --git a/web/src/main/resources/assets/objects/142.xvm b/web/src/jsMain/resources/assets/objects/142.xvm similarity index 100% rename from web/src/main/resources/assets/objects/142.xvm rename to web/src/jsMain/resources/assets/objects/142.xvm diff --git a/web/src/main/resources/assets/objects/143.xj b/web/src/jsMain/resources/assets/objects/143.xj similarity index 100% rename from web/src/main/resources/assets/objects/143.xj rename to web/src/jsMain/resources/assets/objects/143.xj diff --git a/web/src/main/resources/assets/objects/143.xvm b/web/src/jsMain/resources/assets/objects/143.xvm similarity index 100% rename from web/src/main/resources/assets/objects/143.xvm rename to web/src/jsMain/resources/assets/objects/143.xvm diff --git a/web/src/main/resources/assets/objects/144-2.xj b/web/src/jsMain/resources/assets/objects/144-2.xj similarity index 100% rename from web/src/main/resources/assets/objects/144-2.xj rename to web/src/jsMain/resources/assets/objects/144-2.xj diff --git a/web/src/main/resources/assets/objects/144-a.xj b/web/src/jsMain/resources/assets/objects/144-a.xj similarity index 100% rename from web/src/main/resources/assets/objects/144-a.xj rename to web/src/jsMain/resources/assets/objects/144-a.xj diff --git a/web/src/main/resources/assets/objects/144-a.xvm b/web/src/jsMain/resources/assets/objects/144-a.xvm similarity index 100% rename from web/src/main/resources/assets/objects/144-a.xvm rename to web/src/jsMain/resources/assets/objects/144-a.xvm diff --git a/web/src/main/resources/assets/objects/144.xj b/web/src/jsMain/resources/assets/objects/144.xj similarity index 100% rename from web/src/main/resources/assets/objects/144.xj rename to web/src/jsMain/resources/assets/objects/144.xj diff --git a/web/src/main/resources/assets/objects/144.xvm b/web/src/jsMain/resources/assets/objects/144.xvm similarity index 100% rename from web/src/main/resources/assets/objects/144.xvm rename to web/src/jsMain/resources/assets/objects/144.xvm diff --git a/web/src/main/resources/assets/objects/145-2.xj b/web/src/jsMain/resources/assets/objects/145-2.xj similarity index 100% rename from web/src/main/resources/assets/objects/145-2.xj rename to web/src/jsMain/resources/assets/objects/145-2.xj diff --git a/web/src/main/resources/assets/objects/145-3.xj b/web/src/jsMain/resources/assets/objects/145-3.xj similarity index 100% rename from web/src/main/resources/assets/objects/145-3.xj rename to web/src/jsMain/resources/assets/objects/145-3.xj diff --git a/web/src/main/resources/assets/objects/145.xj b/web/src/jsMain/resources/assets/objects/145.xj similarity index 100% rename from web/src/main/resources/assets/objects/145.xj rename to web/src/jsMain/resources/assets/objects/145.xj diff --git a/web/src/main/resources/assets/objects/145.xvm b/web/src/jsMain/resources/assets/objects/145.xvm similarity index 100% rename from web/src/main/resources/assets/objects/145.xvm rename to web/src/jsMain/resources/assets/objects/145.xvm diff --git a/web/src/main/resources/assets/objects/146-2.xj b/web/src/jsMain/resources/assets/objects/146-2.xj similarity index 100% rename from web/src/main/resources/assets/objects/146-2.xj rename to web/src/jsMain/resources/assets/objects/146-2.xj diff --git a/web/src/main/resources/assets/objects/146-3.xj b/web/src/jsMain/resources/assets/objects/146-3.xj similarity index 100% rename from web/src/main/resources/assets/objects/146-3.xj rename to web/src/jsMain/resources/assets/objects/146-3.xj diff --git a/web/src/main/resources/assets/objects/146-4.xj b/web/src/jsMain/resources/assets/objects/146-4.xj similarity index 100% rename from web/src/main/resources/assets/objects/146-4.xj rename to web/src/jsMain/resources/assets/objects/146-4.xj diff --git a/web/src/main/resources/assets/objects/146.xj b/web/src/jsMain/resources/assets/objects/146.xj similarity index 100% rename from web/src/main/resources/assets/objects/146.xj rename to web/src/jsMain/resources/assets/objects/146.xj diff --git a/web/src/main/resources/assets/objects/146.xvm b/web/src/jsMain/resources/assets/objects/146.xvm similarity index 100% rename from web/src/main/resources/assets/objects/146.xvm rename to web/src/jsMain/resources/assets/objects/146.xvm diff --git a/web/src/main/resources/assets/objects/147-2.xj b/web/src/jsMain/resources/assets/objects/147-2.xj similarity index 100% rename from web/src/main/resources/assets/objects/147-2.xj rename to web/src/jsMain/resources/assets/objects/147-2.xj diff --git a/web/src/main/resources/assets/objects/147-3.xj b/web/src/jsMain/resources/assets/objects/147-3.xj similarity index 100% rename from web/src/main/resources/assets/objects/147-3.xj rename to web/src/jsMain/resources/assets/objects/147-3.xj diff --git a/web/src/main/resources/assets/objects/147-4.xj b/web/src/jsMain/resources/assets/objects/147-4.xj similarity index 100% rename from web/src/main/resources/assets/objects/147-4.xj rename to web/src/jsMain/resources/assets/objects/147-4.xj diff --git a/web/src/main/resources/assets/objects/147.xj b/web/src/jsMain/resources/assets/objects/147.xj similarity index 100% rename from web/src/main/resources/assets/objects/147.xj rename to web/src/jsMain/resources/assets/objects/147.xj diff --git a/web/src/main/resources/assets/objects/147.xvm b/web/src/jsMain/resources/assets/objects/147.xvm similarity index 100% rename from web/src/main/resources/assets/objects/147.xvm rename to web/src/jsMain/resources/assets/objects/147.xvm diff --git a/web/src/main/resources/assets/objects/149.xj b/web/src/jsMain/resources/assets/objects/149.xj similarity index 100% rename from web/src/main/resources/assets/objects/149.xj rename to web/src/jsMain/resources/assets/objects/149.xj diff --git a/web/src/main/resources/assets/objects/149.xvm b/web/src/jsMain/resources/assets/objects/149.xvm similarity index 100% rename from web/src/main/resources/assets/objects/149.xvm rename to web/src/jsMain/resources/assets/objects/149.xvm diff --git a/web/src/main/resources/assets/objects/15.xj b/web/src/jsMain/resources/assets/objects/15.xj similarity index 100% rename from web/src/main/resources/assets/objects/15.xj rename to web/src/jsMain/resources/assets/objects/15.xj diff --git a/web/src/main/resources/assets/objects/15.xvm b/web/src/jsMain/resources/assets/objects/15.xvm similarity index 100% rename from web/src/main/resources/assets/objects/15.xvm rename to web/src/jsMain/resources/assets/objects/15.xvm diff --git a/web/src/main/resources/assets/objects/150-2.xj b/web/src/jsMain/resources/assets/objects/150-2.xj similarity index 100% rename from web/src/main/resources/assets/objects/150-2.xj rename to web/src/jsMain/resources/assets/objects/150-2.xj diff --git a/web/src/main/resources/assets/objects/150.xj b/web/src/jsMain/resources/assets/objects/150.xj similarity index 100% rename from web/src/main/resources/assets/objects/150.xj rename to web/src/jsMain/resources/assets/objects/150.xj diff --git a/web/src/main/resources/assets/objects/150.xvm b/web/src/jsMain/resources/assets/objects/150.xvm similarity index 100% rename from web/src/main/resources/assets/objects/150.xvm rename to web/src/jsMain/resources/assets/objects/150.xvm diff --git a/web/src/main/resources/assets/objects/151-2.xj b/web/src/jsMain/resources/assets/objects/151-2.xj similarity index 100% rename from web/src/main/resources/assets/objects/151-2.xj rename to web/src/jsMain/resources/assets/objects/151-2.xj diff --git a/web/src/main/resources/assets/objects/151.xj b/web/src/jsMain/resources/assets/objects/151.xj similarity index 100% rename from web/src/main/resources/assets/objects/151.xj rename to web/src/jsMain/resources/assets/objects/151.xj diff --git a/web/src/main/resources/assets/objects/151.xvm b/web/src/jsMain/resources/assets/objects/151.xvm similarity index 100% rename from web/src/main/resources/assets/objects/151.xvm rename to web/src/jsMain/resources/assets/objects/151.xvm diff --git a/web/src/main/resources/assets/objects/19.xj b/web/src/jsMain/resources/assets/objects/19.xj similarity index 100% rename from web/src/main/resources/assets/objects/19.xj rename to web/src/jsMain/resources/assets/objects/19.xj diff --git a/web/src/main/resources/assets/objects/19.xvm b/web/src/jsMain/resources/assets/objects/19.xvm similarity index 100% rename from web/src/main/resources/assets/objects/19.xvm rename to web/src/jsMain/resources/assets/objects/19.xvm diff --git a/web/src/main/resources/assets/objects/192.xj b/web/src/jsMain/resources/assets/objects/192.xj similarity index 100% rename from web/src/main/resources/assets/objects/192.xj rename to web/src/jsMain/resources/assets/objects/192.xj diff --git a/web/src/main/resources/assets/objects/192.xvm b/web/src/jsMain/resources/assets/objects/192.xvm similarity index 100% rename from web/src/main/resources/assets/objects/192.xvm rename to web/src/jsMain/resources/assets/objects/192.xvm diff --git a/web/src/main/resources/assets/objects/193.xj b/web/src/jsMain/resources/assets/objects/193.xj similarity index 100% rename from web/src/main/resources/assets/objects/193.xj rename to web/src/jsMain/resources/assets/objects/193.xj diff --git a/web/src/main/resources/assets/objects/193.xvm b/web/src/jsMain/resources/assets/objects/193.xvm similarity index 100% rename from web/src/main/resources/assets/objects/193.xvm rename to web/src/jsMain/resources/assets/objects/193.xvm diff --git a/web/src/main/resources/assets/objects/194.xj b/web/src/jsMain/resources/assets/objects/194.xj similarity index 100% rename from web/src/main/resources/assets/objects/194.xj rename to web/src/jsMain/resources/assets/objects/194.xj diff --git a/web/src/main/resources/assets/objects/194.xvm b/web/src/jsMain/resources/assets/objects/194.xvm similarity index 100% rename from web/src/main/resources/assets/objects/194.xvm rename to web/src/jsMain/resources/assets/objects/194.xvm diff --git a/web/src/main/resources/assets/objects/195-2.xj b/web/src/jsMain/resources/assets/objects/195-2.xj similarity index 100% rename from web/src/main/resources/assets/objects/195-2.xj rename to web/src/jsMain/resources/assets/objects/195-2.xj diff --git a/web/src/main/resources/assets/objects/195-3.xj b/web/src/jsMain/resources/assets/objects/195-3.xj similarity index 100% rename from web/src/main/resources/assets/objects/195-3.xj rename to web/src/jsMain/resources/assets/objects/195-3.xj diff --git a/web/src/main/resources/assets/objects/195.xj b/web/src/jsMain/resources/assets/objects/195.xj similarity index 100% rename from web/src/main/resources/assets/objects/195.xj rename to web/src/jsMain/resources/assets/objects/195.xj diff --git a/web/src/main/resources/assets/objects/195.xvm b/web/src/jsMain/resources/assets/objects/195.xvm similarity index 100% rename from web/src/main/resources/assets/objects/195.xvm rename to web/src/jsMain/resources/assets/objects/195.xvm diff --git a/web/src/main/resources/assets/objects/196.xj b/web/src/jsMain/resources/assets/objects/196.xj similarity index 100% rename from web/src/main/resources/assets/objects/196.xj rename to web/src/jsMain/resources/assets/objects/196.xj diff --git a/web/src/main/resources/assets/objects/196.xvm b/web/src/jsMain/resources/assets/objects/196.xvm similarity index 100% rename from web/src/main/resources/assets/objects/196.xvm rename to web/src/jsMain/resources/assets/objects/196.xvm diff --git a/web/src/main/resources/assets/objects/197.xj b/web/src/jsMain/resources/assets/objects/197.xj similarity index 100% rename from web/src/main/resources/assets/objects/197.xj rename to web/src/jsMain/resources/assets/objects/197.xj diff --git a/web/src/main/resources/assets/objects/197.xvm b/web/src/jsMain/resources/assets/objects/197.xvm similarity index 100% rename from web/src/main/resources/assets/objects/197.xvm rename to web/src/jsMain/resources/assets/objects/197.xvm diff --git a/web/src/main/resources/assets/objects/198.xj b/web/src/jsMain/resources/assets/objects/198.xj similarity index 100% rename from web/src/main/resources/assets/objects/198.xj rename to web/src/jsMain/resources/assets/objects/198.xj diff --git a/web/src/main/resources/assets/objects/198.xvm b/web/src/jsMain/resources/assets/objects/198.xvm similarity index 100% rename from web/src/main/resources/assets/objects/198.xvm rename to web/src/jsMain/resources/assets/objects/198.xvm diff --git a/web/src/main/resources/assets/objects/199.xj b/web/src/jsMain/resources/assets/objects/199.xj similarity index 100% rename from web/src/main/resources/assets/objects/199.xj rename to web/src/jsMain/resources/assets/objects/199.xj diff --git a/web/src/main/resources/assets/objects/199.xvm b/web/src/jsMain/resources/assets/objects/199.xvm similarity index 100% rename from web/src/main/resources/assets/objects/199.xvm rename to web/src/jsMain/resources/assets/objects/199.xvm diff --git a/web/src/main/resources/assets/objects/2-2.xj b/web/src/jsMain/resources/assets/objects/2-2.xj similarity index 100% rename from web/src/main/resources/assets/objects/2-2.xj rename to web/src/jsMain/resources/assets/objects/2-2.xj diff --git a/web/src/main/resources/assets/objects/2.xj b/web/src/jsMain/resources/assets/objects/2.xj similarity index 100% rename from web/src/main/resources/assets/objects/2.xj rename to web/src/jsMain/resources/assets/objects/2.xj diff --git a/web/src/main/resources/assets/objects/2.xvm b/web/src/jsMain/resources/assets/objects/2.xvm similarity index 100% rename from web/src/main/resources/assets/objects/2.xvm rename to web/src/jsMain/resources/assets/objects/2.xvm diff --git a/web/src/main/resources/assets/objects/200.xj b/web/src/jsMain/resources/assets/objects/200.xj similarity index 100% rename from web/src/main/resources/assets/objects/200.xj rename to web/src/jsMain/resources/assets/objects/200.xj diff --git a/web/src/main/resources/assets/objects/200.xvm b/web/src/jsMain/resources/assets/objects/200.xvm similarity index 100% rename from web/src/main/resources/assets/objects/200.xvm rename to web/src/jsMain/resources/assets/objects/200.xvm diff --git a/web/src/main/resources/assets/objects/201.xj b/web/src/jsMain/resources/assets/objects/201.xj similarity index 100% rename from web/src/main/resources/assets/objects/201.xj rename to web/src/jsMain/resources/assets/objects/201.xj diff --git a/web/src/main/resources/assets/objects/201.xvm b/web/src/jsMain/resources/assets/objects/201.xvm similarity index 100% rename from web/src/main/resources/assets/objects/201.xvm rename to web/src/jsMain/resources/assets/objects/201.xvm diff --git a/web/src/main/resources/assets/objects/204.nj b/web/src/jsMain/resources/assets/objects/204.nj similarity index 100% rename from web/src/main/resources/assets/objects/204.nj rename to web/src/jsMain/resources/assets/objects/204.nj diff --git a/web/src/main/resources/assets/objects/204.xvm b/web/src/jsMain/resources/assets/objects/204.xvm similarity index 100% rename from web/src/main/resources/assets/objects/204.xvm rename to web/src/jsMain/resources/assets/objects/204.xvm diff --git a/web/src/main/resources/assets/objects/205.xj b/web/src/jsMain/resources/assets/objects/205.xj similarity index 100% rename from web/src/main/resources/assets/objects/205.xj rename to web/src/jsMain/resources/assets/objects/205.xj diff --git a/web/src/main/resources/assets/objects/205.xvm b/web/src/jsMain/resources/assets/objects/205.xvm similarity index 100% rename from web/src/main/resources/assets/objects/205.xvm rename to web/src/jsMain/resources/assets/objects/205.xvm diff --git a/web/src/main/resources/assets/objects/206.xj b/web/src/jsMain/resources/assets/objects/206.xj similarity index 100% rename from web/src/main/resources/assets/objects/206.xj rename to web/src/jsMain/resources/assets/objects/206.xj diff --git a/web/src/main/resources/assets/objects/206.xvm b/web/src/jsMain/resources/assets/objects/206.xvm similarity index 100% rename from web/src/main/resources/assets/objects/206.xvm rename to web/src/jsMain/resources/assets/objects/206.xvm diff --git a/web/src/main/resources/assets/objects/207-2.xj b/web/src/jsMain/resources/assets/objects/207-2.xj similarity index 100% rename from web/src/main/resources/assets/objects/207-2.xj rename to web/src/jsMain/resources/assets/objects/207-2.xj diff --git a/web/src/main/resources/assets/objects/207.xj b/web/src/jsMain/resources/assets/objects/207.xj similarity index 100% rename from web/src/main/resources/assets/objects/207.xj rename to web/src/jsMain/resources/assets/objects/207.xj diff --git a/web/src/main/resources/assets/objects/207.xvm b/web/src/jsMain/resources/assets/objects/207.xvm similarity index 100% rename from web/src/main/resources/assets/objects/207.xvm rename to web/src/jsMain/resources/assets/objects/207.xvm diff --git a/web/src/main/resources/assets/objects/208.xj b/web/src/jsMain/resources/assets/objects/208.xj similarity index 100% rename from web/src/main/resources/assets/objects/208.xj rename to web/src/jsMain/resources/assets/objects/208.xj diff --git a/web/src/main/resources/assets/objects/208.xvm b/web/src/jsMain/resources/assets/objects/208.xvm similarity index 100% rename from web/src/main/resources/assets/objects/208.xvm rename to web/src/jsMain/resources/assets/objects/208.xvm diff --git a/web/src/main/resources/assets/objects/209.xj b/web/src/jsMain/resources/assets/objects/209.xj similarity index 100% rename from web/src/main/resources/assets/objects/209.xj rename to web/src/jsMain/resources/assets/objects/209.xj diff --git a/web/src/main/resources/assets/objects/209.xvm b/web/src/jsMain/resources/assets/objects/209.xvm similarity index 100% rename from web/src/main/resources/assets/objects/209.xvm rename to web/src/jsMain/resources/assets/objects/209.xvm diff --git a/web/src/main/resources/assets/objects/210.xj b/web/src/jsMain/resources/assets/objects/210.xj similarity index 100% rename from web/src/main/resources/assets/objects/210.xj rename to web/src/jsMain/resources/assets/objects/210.xj diff --git a/web/src/main/resources/assets/objects/210.xvm b/web/src/jsMain/resources/assets/objects/210.xvm similarity index 100% rename from web/src/main/resources/assets/objects/210.xvm rename to web/src/jsMain/resources/assets/objects/210.xvm diff --git a/web/src/main/resources/assets/objects/211.xj b/web/src/jsMain/resources/assets/objects/211.xj similarity index 100% rename from web/src/main/resources/assets/objects/211.xj rename to web/src/jsMain/resources/assets/objects/211.xj diff --git a/web/src/main/resources/assets/objects/211.xvm b/web/src/jsMain/resources/assets/objects/211.xvm similarity index 100% rename from web/src/main/resources/assets/objects/211.xvm rename to web/src/jsMain/resources/assets/objects/211.xvm diff --git a/web/src/main/resources/assets/objects/212.xj b/web/src/jsMain/resources/assets/objects/212.xj similarity index 100% rename from web/src/main/resources/assets/objects/212.xj rename to web/src/jsMain/resources/assets/objects/212.xj diff --git a/web/src/main/resources/assets/objects/212.xvm b/web/src/jsMain/resources/assets/objects/212.xvm similarity index 100% rename from web/src/main/resources/assets/objects/212.xvm rename to web/src/jsMain/resources/assets/objects/212.xvm diff --git a/web/src/main/resources/assets/objects/213.xj b/web/src/jsMain/resources/assets/objects/213.xj similarity index 100% rename from web/src/main/resources/assets/objects/213.xj rename to web/src/jsMain/resources/assets/objects/213.xj diff --git a/web/src/main/resources/assets/objects/213.xvm b/web/src/jsMain/resources/assets/objects/213.xvm similarity index 100% rename from web/src/main/resources/assets/objects/213.xvm rename to web/src/jsMain/resources/assets/objects/213.xvm diff --git a/web/src/main/resources/assets/objects/214.xj b/web/src/jsMain/resources/assets/objects/214.xj similarity index 100% rename from web/src/main/resources/assets/objects/214.xj rename to web/src/jsMain/resources/assets/objects/214.xj diff --git a/web/src/main/resources/assets/objects/214.xvm b/web/src/jsMain/resources/assets/objects/214.xvm similarity index 100% rename from web/src/main/resources/assets/objects/214.xvm rename to web/src/jsMain/resources/assets/objects/214.xvm diff --git a/web/src/main/resources/assets/objects/215.xj b/web/src/jsMain/resources/assets/objects/215.xj similarity index 100% rename from web/src/main/resources/assets/objects/215.xj rename to web/src/jsMain/resources/assets/objects/215.xj diff --git a/web/src/main/resources/assets/objects/215.xvm b/web/src/jsMain/resources/assets/objects/215.xvm similarity index 100% rename from web/src/main/resources/assets/objects/215.xvm rename to web/src/jsMain/resources/assets/objects/215.xvm diff --git a/web/src/main/resources/assets/objects/216.xj b/web/src/jsMain/resources/assets/objects/216.xj similarity index 100% rename from web/src/main/resources/assets/objects/216.xj rename to web/src/jsMain/resources/assets/objects/216.xj diff --git a/web/src/main/resources/assets/objects/216.xvm b/web/src/jsMain/resources/assets/objects/216.xvm similarity index 100% rename from web/src/main/resources/assets/objects/216.xvm rename to web/src/jsMain/resources/assets/objects/216.xvm diff --git a/web/src/main/resources/assets/objects/217.xj b/web/src/jsMain/resources/assets/objects/217.xj similarity index 100% rename from web/src/main/resources/assets/objects/217.xj rename to web/src/jsMain/resources/assets/objects/217.xj diff --git a/web/src/main/resources/assets/objects/217.xvm b/web/src/jsMain/resources/assets/objects/217.xvm similarity index 100% rename from web/src/main/resources/assets/objects/217.xvm rename to web/src/jsMain/resources/assets/objects/217.xvm diff --git a/web/src/main/resources/assets/objects/218.xj b/web/src/jsMain/resources/assets/objects/218.xj similarity index 100% rename from web/src/main/resources/assets/objects/218.xj rename to web/src/jsMain/resources/assets/objects/218.xj diff --git a/web/src/main/resources/assets/objects/218.xvm b/web/src/jsMain/resources/assets/objects/218.xvm similarity index 100% rename from web/src/main/resources/assets/objects/218.xvm rename to web/src/jsMain/resources/assets/objects/218.xvm diff --git a/web/src/main/resources/assets/objects/219.xj b/web/src/jsMain/resources/assets/objects/219.xj similarity index 100% rename from web/src/main/resources/assets/objects/219.xj rename to web/src/jsMain/resources/assets/objects/219.xj diff --git a/web/src/main/resources/assets/objects/219.xvm b/web/src/jsMain/resources/assets/objects/219.xvm similarity index 100% rename from web/src/main/resources/assets/objects/219.xvm rename to web/src/jsMain/resources/assets/objects/219.xvm diff --git a/web/src/main/resources/assets/objects/220.xj b/web/src/jsMain/resources/assets/objects/220.xj similarity index 100% rename from web/src/main/resources/assets/objects/220.xj rename to web/src/jsMain/resources/assets/objects/220.xj diff --git a/web/src/main/resources/assets/objects/220.xvm b/web/src/jsMain/resources/assets/objects/220.xvm similarity index 100% rename from web/src/main/resources/assets/objects/220.xvm rename to web/src/jsMain/resources/assets/objects/220.xvm diff --git a/web/src/main/resources/assets/objects/222.xj b/web/src/jsMain/resources/assets/objects/222.xj similarity index 100% rename from web/src/main/resources/assets/objects/222.xj rename to web/src/jsMain/resources/assets/objects/222.xj diff --git a/web/src/main/resources/assets/objects/222.xvm b/web/src/jsMain/resources/assets/objects/222.xvm similarity index 100% rename from web/src/main/resources/assets/objects/222.xvm rename to web/src/jsMain/resources/assets/objects/222.xvm diff --git a/web/src/main/resources/assets/objects/223.xj b/web/src/jsMain/resources/assets/objects/223.xj similarity index 100% rename from web/src/main/resources/assets/objects/223.xj rename to web/src/jsMain/resources/assets/objects/223.xj diff --git a/web/src/main/resources/assets/objects/223.xvm b/web/src/jsMain/resources/assets/objects/223.xvm similarity index 100% rename from web/src/main/resources/assets/objects/223.xvm rename to web/src/jsMain/resources/assets/objects/223.xvm diff --git a/web/src/main/resources/assets/objects/224.xj b/web/src/jsMain/resources/assets/objects/224.xj similarity index 100% rename from web/src/main/resources/assets/objects/224.xj rename to web/src/jsMain/resources/assets/objects/224.xj diff --git a/web/src/main/resources/assets/objects/224.xvm b/web/src/jsMain/resources/assets/objects/224.xvm similarity index 100% rename from web/src/main/resources/assets/objects/224.xvm rename to web/src/jsMain/resources/assets/objects/224.xvm diff --git a/web/src/main/resources/assets/objects/225.xj b/web/src/jsMain/resources/assets/objects/225.xj similarity index 100% rename from web/src/main/resources/assets/objects/225.xj rename to web/src/jsMain/resources/assets/objects/225.xj diff --git a/web/src/main/resources/assets/objects/225.xvm b/web/src/jsMain/resources/assets/objects/225.xvm similarity index 100% rename from web/src/main/resources/assets/objects/225.xvm rename to web/src/jsMain/resources/assets/objects/225.xvm diff --git a/web/src/main/resources/assets/objects/25-2.xj b/web/src/jsMain/resources/assets/objects/25-2.xj similarity index 100% rename from web/src/main/resources/assets/objects/25-2.xj rename to web/src/jsMain/resources/assets/objects/25-2.xj diff --git a/web/src/main/resources/assets/objects/25.xj b/web/src/jsMain/resources/assets/objects/25.xj similarity index 100% rename from web/src/main/resources/assets/objects/25.xj rename to web/src/jsMain/resources/assets/objects/25.xj diff --git a/web/src/main/resources/assets/objects/25.xvm b/web/src/jsMain/resources/assets/objects/25.xvm similarity index 100% rename from web/src/main/resources/assets/objects/25.xvm rename to web/src/jsMain/resources/assets/objects/25.xvm diff --git a/web/src/main/resources/assets/objects/256.xj b/web/src/jsMain/resources/assets/objects/256.xj similarity index 100% rename from web/src/main/resources/assets/objects/256.xj rename to web/src/jsMain/resources/assets/objects/256.xj diff --git a/web/src/main/resources/assets/objects/256.xvm b/web/src/jsMain/resources/assets/objects/256.xvm similarity index 100% rename from web/src/main/resources/assets/objects/256.xvm rename to web/src/jsMain/resources/assets/objects/256.xvm diff --git a/web/src/main/resources/assets/objects/257.xj b/web/src/jsMain/resources/assets/objects/257.xj similarity index 100% rename from web/src/main/resources/assets/objects/257.xj rename to web/src/jsMain/resources/assets/objects/257.xj diff --git a/web/src/main/resources/assets/objects/257.xvm b/web/src/jsMain/resources/assets/objects/257.xvm similarity index 100% rename from web/src/main/resources/assets/objects/257.xvm rename to web/src/jsMain/resources/assets/objects/257.xvm diff --git a/web/src/main/resources/assets/objects/258.xj b/web/src/jsMain/resources/assets/objects/258.xj similarity index 100% rename from web/src/main/resources/assets/objects/258.xj rename to web/src/jsMain/resources/assets/objects/258.xj diff --git a/web/src/main/resources/assets/objects/258.xvm b/web/src/jsMain/resources/assets/objects/258.xvm similarity index 100% rename from web/src/main/resources/assets/objects/258.xvm rename to web/src/jsMain/resources/assets/objects/258.xvm diff --git a/web/src/main/resources/assets/objects/259.xj b/web/src/jsMain/resources/assets/objects/259.xj similarity index 100% rename from web/src/main/resources/assets/objects/259.xj rename to web/src/jsMain/resources/assets/objects/259.xj diff --git a/web/src/main/resources/assets/objects/259.xvm b/web/src/jsMain/resources/assets/objects/259.xvm similarity index 100% rename from web/src/main/resources/assets/objects/259.xvm rename to web/src/jsMain/resources/assets/objects/259.xvm diff --git a/web/src/main/resources/assets/objects/260.xj b/web/src/jsMain/resources/assets/objects/260.xj similarity index 100% rename from web/src/main/resources/assets/objects/260.xj rename to web/src/jsMain/resources/assets/objects/260.xj diff --git a/web/src/main/resources/assets/objects/260.xvm b/web/src/jsMain/resources/assets/objects/260.xvm similarity index 100% rename from web/src/main/resources/assets/objects/260.xvm rename to web/src/jsMain/resources/assets/objects/260.xvm diff --git a/web/src/main/resources/assets/objects/261.xj b/web/src/jsMain/resources/assets/objects/261.xj similarity index 100% rename from web/src/main/resources/assets/objects/261.xj rename to web/src/jsMain/resources/assets/objects/261.xj diff --git a/web/src/main/resources/assets/objects/261.xvm b/web/src/jsMain/resources/assets/objects/261.xvm similarity index 100% rename from web/src/main/resources/assets/objects/261.xvm rename to web/src/jsMain/resources/assets/objects/261.xvm diff --git a/web/src/main/resources/assets/objects/262.xj b/web/src/jsMain/resources/assets/objects/262.xj similarity index 100% rename from web/src/main/resources/assets/objects/262.xj rename to web/src/jsMain/resources/assets/objects/262.xj diff --git a/web/src/main/resources/assets/objects/262.xvm b/web/src/jsMain/resources/assets/objects/262.xvm similarity index 100% rename from web/src/main/resources/assets/objects/262.xvm rename to web/src/jsMain/resources/assets/objects/262.xvm diff --git a/web/src/main/resources/assets/objects/264-a.xj b/web/src/jsMain/resources/assets/objects/264-a.xj similarity index 100% rename from web/src/main/resources/assets/objects/264-a.xj rename to web/src/jsMain/resources/assets/objects/264-a.xj diff --git a/web/src/main/resources/assets/objects/264-a.xvm b/web/src/jsMain/resources/assets/objects/264-a.xvm similarity index 100% rename from web/src/main/resources/assets/objects/264-a.xvm rename to web/src/jsMain/resources/assets/objects/264-a.xvm diff --git a/web/src/main/resources/assets/objects/264-b.xj b/web/src/jsMain/resources/assets/objects/264-b.xj similarity index 100% rename from web/src/main/resources/assets/objects/264-b.xj rename to web/src/jsMain/resources/assets/objects/264-b.xj diff --git a/web/src/main/resources/assets/objects/264-b.xvm b/web/src/jsMain/resources/assets/objects/264-b.xvm similarity index 100% rename from web/src/main/resources/assets/objects/264-b.xvm rename to web/src/jsMain/resources/assets/objects/264-b.xvm diff --git a/web/src/main/resources/assets/objects/264.xj b/web/src/jsMain/resources/assets/objects/264.xj similarity index 100% rename from web/src/main/resources/assets/objects/264.xj rename to web/src/jsMain/resources/assets/objects/264.xj diff --git a/web/src/main/resources/assets/objects/264.xvm b/web/src/jsMain/resources/assets/objects/264.xvm similarity index 100% rename from web/src/main/resources/assets/objects/264.xvm rename to web/src/jsMain/resources/assets/objects/264.xvm diff --git a/web/src/main/resources/assets/objects/265-a.xj b/web/src/jsMain/resources/assets/objects/265-a.xj similarity index 100% rename from web/src/main/resources/assets/objects/265-a.xj rename to web/src/jsMain/resources/assets/objects/265-a.xj diff --git a/web/src/main/resources/assets/objects/265-a.xvm b/web/src/jsMain/resources/assets/objects/265-a.xvm similarity index 100% rename from web/src/main/resources/assets/objects/265-a.xvm rename to web/src/jsMain/resources/assets/objects/265-a.xvm diff --git a/web/src/main/resources/assets/objects/265-b.xj b/web/src/jsMain/resources/assets/objects/265-b.xj similarity index 100% rename from web/src/main/resources/assets/objects/265-b.xj rename to web/src/jsMain/resources/assets/objects/265-b.xj diff --git a/web/src/main/resources/assets/objects/265-b.xvm b/web/src/jsMain/resources/assets/objects/265-b.xvm similarity index 100% rename from web/src/main/resources/assets/objects/265-b.xvm rename to web/src/jsMain/resources/assets/objects/265-b.xvm diff --git a/web/src/main/resources/assets/objects/265.xj b/web/src/jsMain/resources/assets/objects/265.xj similarity index 100% rename from web/src/main/resources/assets/objects/265.xj rename to web/src/jsMain/resources/assets/objects/265.xj diff --git a/web/src/main/resources/assets/objects/265.xvm b/web/src/jsMain/resources/assets/objects/265.xvm similarity index 100% rename from web/src/main/resources/assets/objects/265.xvm rename to web/src/jsMain/resources/assets/objects/265.xvm diff --git a/web/src/main/resources/assets/objects/266-a.xj b/web/src/jsMain/resources/assets/objects/266-a.xj similarity index 100% rename from web/src/main/resources/assets/objects/266-a.xj rename to web/src/jsMain/resources/assets/objects/266-a.xj diff --git a/web/src/main/resources/assets/objects/266-a.xvm b/web/src/jsMain/resources/assets/objects/266-a.xvm similarity index 100% rename from web/src/main/resources/assets/objects/266-a.xvm rename to web/src/jsMain/resources/assets/objects/266-a.xvm diff --git a/web/src/main/resources/assets/objects/266-b.xj b/web/src/jsMain/resources/assets/objects/266-b.xj similarity index 100% rename from web/src/main/resources/assets/objects/266-b.xj rename to web/src/jsMain/resources/assets/objects/266-b.xj diff --git a/web/src/main/resources/assets/objects/266-b.xvm b/web/src/jsMain/resources/assets/objects/266-b.xvm similarity index 100% rename from web/src/main/resources/assets/objects/266-b.xvm rename to web/src/jsMain/resources/assets/objects/266-b.xvm diff --git a/web/src/main/resources/assets/objects/266.xj b/web/src/jsMain/resources/assets/objects/266.xj similarity index 100% rename from web/src/main/resources/assets/objects/266.xj rename to web/src/jsMain/resources/assets/objects/266.xj diff --git a/web/src/main/resources/assets/objects/266.xvm b/web/src/jsMain/resources/assets/objects/266.xvm similarity index 100% rename from web/src/main/resources/assets/objects/266.xvm rename to web/src/jsMain/resources/assets/objects/266.xvm diff --git a/web/src/main/resources/assets/objects/267.xj b/web/src/jsMain/resources/assets/objects/267.xj similarity index 100% rename from web/src/main/resources/assets/objects/267.xj rename to web/src/jsMain/resources/assets/objects/267.xj diff --git a/web/src/main/resources/assets/objects/267.xvm b/web/src/jsMain/resources/assets/objects/267.xvm similarity index 100% rename from web/src/main/resources/assets/objects/267.xvm rename to web/src/jsMain/resources/assets/objects/267.xvm diff --git a/web/src/main/resources/assets/objects/268.xj b/web/src/jsMain/resources/assets/objects/268.xj similarity index 100% rename from web/src/main/resources/assets/objects/268.xj rename to web/src/jsMain/resources/assets/objects/268.xj diff --git a/web/src/main/resources/assets/objects/268.xvm b/web/src/jsMain/resources/assets/objects/268.xvm similarity index 100% rename from web/src/main/resources/assets/objects/268.xvm rename to web/src/jsMain/resources/assets/objects/268.xvm diff --git a/web/src/main/resources/assets/objects/27-2.xj b/web/src/jsMain/resources/assets/objects/27-2.xj similarity index 100% rename from web/src/main/resources/assets/objects/27-2.xj rename to web/src/jsMain/resources/assets/objects/27-2.xj diff --git a/web/src/main/resources/assets/objects/27.xj b/web/src/jsMain/resources/assets/objects/27.xj similarity index 100% rename from web/src/main/resources/assets/objects/27.xj rename to web/src/jsMain/resources/assets/objects/27.xj diff --git a/web/src/main/resources/assets/objects/27.xvm b/web/src/jsMain/resources/assets/objects/27.xvm similarity index 100% rename from web/src/main/resources/assets/objects/27.xvm rename to web/src/jsMain/resources/assets/objects/27.xvm diff --git a/web/src/main/resources/assets/objects/28-2.xj b/web/src/jsMain/resources/assets/objects/28-2.xj similarity index 100% rename from web/src/main/resources/assets/objects/28-2.xj rename to web/src/jsMain/resources/assets/objects/28-2.xj diff --git a/web/src/main/resources/assets/objects/28.xj b/web/src/jsMain/resources/assets/objects/28.xj similarity index 100% rename from web/src/main/resources/assets/objects/28.xj rename to web/src/jsMain/resources/assets/objects/28.xj diff --git a/web/src/main/resources/assets/objects/28.xvm b/web/src/jsMain/resources/assets/objects/28.xvm similarity index 100% rename from web/src/main/resources/assets/objects/28.xvm rename to web/src/jsMain/resources/assets/objects/28.xvm diff --git a/web/src/main/resources/assets/objects/3-2.xj b/web/src/jsMain/resources/assets/objects/3-2.xj similarity index 100% rename from web/src/main/resources/assets/objects/3-2.xj rename to web/src/jsMain/resources/assets/objects/3-2.xj diff --git a/web/src/main/resources/assets/objects/3.xj b/web/src/jsMain/resources/assets/objects/3.xj similarity index 100% rename from web/src/main/resources/assets/objects/3.xj rename to web/src/jsMain/resources/assets/objects/3.xj diff --git a/web/src/main/resources/assets/objects/3.xvm b/web/src/jsMain/resources/assets/objects/3.xvm similarity index 100% rename from web/src/main/resources/assets/objects/3.xvm rename to web/src/jsMain/resources/assets/objects/3.xvm diff --git a/web/src/main/resources/assets/objects/304.nj b/web/src/jsMain/resources/assets/objects/304.nj similarity index 100% rename from web/src/main/resources/assets/objects/304.nj rename to web/src/jsMain/resources/assets/objects/304.nj diff --git a/web/src/main/resources/assets/objects/304.xvm b/web/src/jsMain/resources/assets/objects/304.xvm similarity index 100% rename from web/src/main/resources/assets/objects/304.xvm rename to web/src/jsMain/resources/assets/objects/304.xvm diff --git a/web/src/main/resources/assets/objects/320-2.xj b/web/src/jsMain/resources/assets/objects/320-2.xj similarity index 100% rename from web/src/main/resources/assets/objects/320-2.xj rename to web/src/jsMain/resources/assets/objects/320-2.xj diff --git a/web/src/main/resources/assets/objects/320-3.xj b/web/src/jsMain/resources/assets/objects/320-3.xj similarity index 100% rename from web/src/main/resources/assets/objects/320-3.xj rename to web/src/jsMain/resources/assets/objects/320-3.xj diff --git a/web/src/main/resources/assets/objects/320-4.xj b/web/src/jsMain/resources/assets/objects/320-4.xj similarity index 100% rename from web/src/main/resources/assets/objects/320-4.xj rename to web/src/jsMain/resources/assets/objects/320-4.xj diff --git a/web/src/main/resources/assets/objects/320-a.xj b/web/src/jsMain/resources/assets/objects/320-a.xj similarity index 100% rename from web/src/main/resources/assets/objects/320-a.xj rename to web/src/jsMain/resources/assets/objects/320-a.xj diff --git a/web/src/main/resources/assets/objects/320-a.xvm b/web/src/jsMain/resources/assets/objects/320-a.xvm similarity index 100% rename from web/src/main/resources/assets/objects/320-a.xvm rename to web/src/jsMain/resources/assets/objects/320-a.xvm diff --git a/web/src/main/resources/assets/objects/320-b.xj b/web/src/jsMain/resources/assets/objects/320-b.xj similarity index 100% rename from web/src/main/resources/assets/objects/320-b.xj rename to web/src/jsMain/resources/assets/objects/320-b.xj diff --git a/web/src/main/resources/assets/objects/320-b.xvm b/web/src/jsMain/resources/assets/objects/320-b.xvm similarity index 100% rename from web/src/main/resources/assets/objects/320-b.xvm rename to web/src/jsMain/resources/assets/objects/320-b.xvm diff --git a/web/src/main/resources/assets/objects/320-c.xj b/web/src/jsMain/resources/assets/objects/320-c.xj similarity index 100% rename from web/src/main/resources/assets/objects/320-c.xj rename to web/src/jsMain/resources/assets/objects/320-c.xj diff --git a/web/src/main/resources/assets/objects/320-c.xvm b/web/src/jsMain/resources/assets/objects/320-c.xvm similarity index 100% rename from web/src/main/resources/assets/objects/320-c.xvm rename to web/src/jsMain/resources/assets/objects/320-c.xvm diff --git a/web/src/main/resources/assets/objects/320.xj b/web/src/jsMain/resources/assets/objects/320.xj similarity index 100% rename from web/src/main/resources/assets/objects/320.xj rename to web/src/jsMain/resources/assets/objects/320.xj diff --git a/web/src/main/resources/assets/objects/320.xvm b/web/src/jsMain/resources/assets/objects/320.xvm similarity index 100% rename from web/src/main/resources/assets/objects/320.xvm rename to web/src/jsMain/resources/assets/objects/320.xvm diff --git a/web/src/main/resources/assets/objects/321-2.xj b/web/src/jsMain/resources/assets/objects/321-2.xj similarity index 100% rename from web/src/main/resources/assets/objects/321-2.xj rename to web/src/jsMain/resources/assets/objects/321-2.xj diff --git a/web/src/main/resources/assets/objects/321-a.xj b/web/src/jsMain/resources/assets/objects/321-a.xj similarity index 100% rename from web/src/main/resources/assets/objects/321-a.xj rename to web/src/jsMain/resources/assets/objects/321-a.xj diff --git a/web/src/main/resources/assets/objects/321-a.xvm b/web/src/jsMain/resources/assets/objects/321-a.xvm similarity index 100% rename from web/src/main/resources/assets/objects/321-a.xvm rename to web/src/jsMain/resources/assets/objects/321-a.xvm diff --git a/web/src/main/resources/assets/objects/321.xj b/web/src/jsMain/resources/assets/objects/321.xj similarity index 100% rename from web/src/main/resources/assets/objects/321.xj rename to web/src/jsMain/resources/assets/objects/321.xj diff --git a/web/src/main/resources/assets/objects/321.xvm b/web/src/jsMain/resources/assets/objects/321.xvm similarity index 100% rename from web/src/main/resources/assets/objects/321.xvm rename to web/src/jsMain/resources/assets/objects/321.xvm diff --git a/web/src/main/resources/assets/objects/322-2.xj b/web/src/jsMain/resources/assets/objects/322-2.xj similarity index 100% rename from web/src/main/resources/assets/objects/322-2.xj rename to web/src/jsMain/resources/assets/objects/322-2.xj diff --git a/web/src/main/resources/assets/objects/322-a.xj b/web/src/jsMain/resources/assets/objects/322-a.xj similarity index 100% rename from web/src/main/resources/assets/objects/322-a.xj rename to web/src/jsMain/resources/assets/objects/322-a.xj diff --git a/web/src/main/resources/assets/objects/322-a.xvm b/web/src/jsMain/resources/assets/objects/322-a.xvm similarity index 100% rename from web/src/main/resources/assets/objects/322-a.xvm rename to web/src/jsMain/resources/assets/objects/322-a.xvm diff --git a/web/src/main/resources/assets/objects/322.xj b/web/src/jsMain/resources/assets/objects/322.xj similarity index 100% rename from web/src/main/resources/assets/objects/322.xj rename to web/src/jsMain/resources/assets/objects/322.xj diff --git a/web/src/main/resources/assets/objects/322.xvm b/web/src/jsMain/resources/assets/objects/322.xvm similarity index 100% rename from web/src/main/resources/assets/objects/322.xvm rename to web/src/jsMain/resources/assets/objects/322.xvm diff --git a/web/src/main/resources/assets/objects/323.xj b/web/src/jsMain/resources/assets/objects/323.xj similarity index 100% rename from web/src/main/resources/assets/objects/323.xj rename to web/src/jsMain/resources/assets/objects/323.xj diff --git a/web/src/main/resources/assets/objects/323.xvm b/web/src/jsMain/resources/assets/objects/323.xvm similarity index 100% rename from web/src/main/resources/assets/objects/323.xvm rename to web/src/jsMain/resources/assets/objects/323.xvm diff --git a/web/src/main/resources/assets/objects/324.xj b/web/src/jsMain/resources/assets/objects/324.xj similarity index 100% rename from web/src/main/resources/assets/objects/324.xj rename to web/src/jsMain/resources/assets/objects/324.xj diff --git a/web/src/main/resources/assets/objects/324.xvm b/web/src/jsMain/resources/assets/objects/324.xvm similarity index 100% rename from web/src/main/resources/assets/objects/324.xvm rename to web/src/jsMain/resources/assets/objects/324.xvm diff --git a/web/src/main/resources/assets/objects/325.xj b/web/src/jsMain/resources/assets/objects/325.xj similarity index 100% rename from web/src/main/resources/assets/objects/325.xj rename to web/src/jsMain/resources/assets/objects/325.xj diff --git a/web/src/main/resources/assets/objects/325.xvm b/web/src/jsMain/resources/assets/objects/325.xvm similarity index 100% rename from web/src/main/resources/assets/objects/325.xvm rename to web/src/jsMain/resources/assets/objects/325.xvm diff --git a/web/src/main/resources/assets/objects/326.xj b/web/src/jsMain/resources/assets/objects/326.xj similarity index 100% rename from web/src/main/resources/assets/objects/326.xj rename to web/src/jsMain/resources/assets/objects/326.xj diff --git a/web/src/main/resources/assets/objects/326.xvm b/web/src/jsMain/resources/assets/objects/326.xvm similarity index 100% rename from web/src/main/resources/assets/objects/326.xvm rename to web/src/jsMain/resources/assets/objects/326.xvm diff --git a/web/src/main/resources/assets/objects/327.xj b/web/src/jsMain/resources/assets/objects/327.xj similarity index 100% rename from web/src/main/resources/assets/objects/327.xj rename to web/src/jsMain/resources/assets/objects/327.xj diff --git a/web/src/main/resources/assets/objects/327.xvm b/web/src/jsMain/resources/assets/objects/327.xvm similarity index 100% rename from web/src/main/resources/assets/objects/327.xvm rename to web/src/jsMain/resources/assets/objects/327.xvm diff --git a/web/src/main/resources/assets/objects/328.xj b/web/src/jsMain/resources/assets/objects/328.xj similarity index 100% rename from web/src/main/resources/assets/objects/328.xj rename to web/src/jsMain/resources/assets/objects/328.xj diff --git a/web/src/main/resources/assets/objects/328.xvm b/web/src/jsMain/resources/assets/objects/328.xvm similarity index 100% rename from web/src/main/resources/assets/objects/328.xvm rename to web/src/jsMain/resources/assets/objects/328.xvm diff --git a/web/src/main/resources/assets/objects/329.xj b/web/src/jsMain/resources/assets/objects/329.xj similarity index 100% rename from web/src/main/resources/assets/objects/329.xj rename to web/src/jsMain/resources/assets/objects/329.xj diff --git a/web/src/main/resources/assets/objects/329.xvm b/web/src/jsMain/resources/assets/objects/329.xvm similarity index 100% rename from web/src/main/resources/assets/objects/329.xvm rename to web/src/jsMain/resources/assets/objects/329.xvm diff --git a/web/src/main/resources/assets/objects/330.xj b/web/src/jsMain/resources/assets/objects/330.xj similarity index 100% rename from web/src/main/resources/assets/objects/330.xj rename to web/src/jsMain/resources/assets/objects/330.xj diff --git a/web/src/main/resources/assets/objects/330.xvm b/web/src/jsMain/resources/assets/objects/330.xvm similarity index 100% rename from web/src/main/resources/assets/objects/330.xvm rename to web/src/jsMain/resources/assets/objects/330.xvm diff --git a/web/src/main/resources/assets/objects/331.xj b/web/src/jsMain/resources/assets/objects/331.xj similarity index 100% rename from web/src/main/resources/assets/objects/331.xj rename to web/src/jsMain/resources/assets/objects/331.xj diff --git a/web/src/main/resources/assets/objects/331.xvm b/web/src/jsMain/resources/assets/objects/331.xvm similarity index 100% rename from web/src/main/resources/assets/objects/331.xvm rename to web/src/jsMain/resources/assets/objects/331.xvm diff --git a/web/src/main/resources/assets/objects/332.xj b/web/src/jsMain/resources/assets/objects/332.xj similarity index 100% rename from web/src/main/resources/assets/objects/332.xj rename to web/src/jsMain/resources/assets/objects/332.xj diff --git a/web/src/main/resources/assets/objects/332.xvm b/web/src/jsMain/resources/assets/objects/332.xvm similarity index 100% rename from web/src/main/resources/assets/objects/332.xvm rename to web/src/jsMain/resources/assets/objects/332.xvm diff --git a/web/src/main/resources/assets/objects/333.xj b/web/src/jsMain/resources/assets/objects/333.xj similarity index 100% rename from web/src/main/resources/assets/objects/333.xj rename to web/src/jsMain/resources/assets/objects/333.xj diff --git a/web/src/main/resources/assets/objects/333.xvm b/web/src/jsMain/resources/assets/objects/333.xvm similarity index 100% rename from web/src/main/resources/assets/objects/333.xvm rename to web/src/jsMain/resources/assets/objects/333.xvm diff --git a/web/src/main/resources/assets/objects/334.xj b/web/src/jsMain/resources/assets/objects/334.xj similarity index 100% rename from web/src/main/resources/assets/objects/334.xj rename to web/src/jsMain/resources/assets/objects/334.xj diff --git a/web/src/main/resources/assets/objects/334.xvm b/web/src/jsMain/resources/assets/objects/334.xvm similarity index 100% rename from web/src/main/resources/assets/objects/334.xvm rename to web/src/jsMain/resources/assets/objects/334.xvm diff --git a/web/src/main/resources/assets/objects/335.xj b/web/src/jsMain/resources/assets/objects/335.xj similarity index 100% rename from web/src/main/resources/assets/objects/335.xj rename to web/src/jsMain/resources/assets/objects/335.xj diff --git a/web/src/main/resources/assets/objects/335.xvm b/web/src/jsMain/resources/assets/objects/335.xvm similarity index 100% rename from web/src/main/resources/assets/objects/335.xvm rename to web/src/jsMain/resources/assets/objects/335.xvm diff --git a/web/src/main/resources/assets/objects/336.xj b/web/src/jsMain/resources/assets/objects/336.xj similarity index 100% rename from web/src/main/resources/assets/objects/336.xj rename to web/src/jsMain/resources/assets/objects/336.xj diff --git a/web/src/main/resources/assets/objects/336.xvm b/web/src/jsMain/resources/assets/objects/336.xvm similarity index 100% rename from web/src/main/resources/assets/objects/336.xvm rename to web/src/jsMain/resources/assets/objects/336.xvm diff --git a/web/src/main/resources/assets/objects/337.xj b/web/src/jsMain/resources/assets/objects/337.xj similarity index 100% rename from web/src/main/resources/assets/objects/337.xj rename to web/src/jsMain/resources/assets/objects/337.xj diff --git a/web/src/main/resources/assets/objects/337.xvm b/web/src/jsMain/resources/assets/objects/337.xvm similarity index 100% rename from web/src/main/resources/assets/objects/337.xvm rename to web/src/jsMain/resources/assets/objects/337.xvm diff --git a/web/src/main/resources/assets/objects/338.xj b/web/src/jsMain/resources/assets/objects/338.xj similarity index 100% rename from web/src/main/resources/assets/objects/338.xj rename to web/src/jsMain/resources/assets/objects/338.xj diff --git a/web/src/main/resources/assets/objects/338.xvm b/web/src/jsMain/resources/assets/objects/338.xvm similarity index 100% rename from web/src/main/resources/assets/objects/338.xvm rename to web/src/jsMain/resources/assets/objects/338.xvm diff --git a/web/src/main/resources/assets/objects/339-2.xj b/web/src/jsMain/resources/assets/objects/339-2.xj similarity index 100% rename from web/src/main/resources/assets/objects/339-2.xj rename to web/src/jsMain/resources/assets/objects/339-2.xj diff --git a/web/src/main/resources/assets/objects/339-3.xj b/web/src/jsMain/resources/assets/objects/339-3.xj similarity index 100% rename from web/src/main/resources/assets/objects/339-3.xj rename to web/src/jsMain/resources/assets/objects/339-3.xj diff --git a/web/src/main/resources/assets/objects/339-4.xj b/web/src/jsMain/resources/assets/objects/339-4.xj similarity index 100% rename from web/src/main/resources/assets/objects/339-4.xj rename to web/src/jsMain/resources/assets/objects/339-4.xj diff --git a/web/src/main/resources/assets/objects/339.xj b/web/src/jsMain/resources/assets/objects/339.xj similarity index 100% rename from web/src/main/resources/assets/objects/339.xj rename to web/src/jsMain/resources/assets/objects/339.xj diff --git a/web/src/main/resources/assets/objects/339.xvm b/web/src/jsMain/resources/assets/objects/339.xvm similarity index 100% rename from web/src/main/resources/assets/objects/339.xvm rename to web/src/jsMain/resources/assets/objects/339.xvm diff --git a/web/src/main/resources/assets/objects/341-2.xj b/web/src/jsMain/resources/assets/objects/341-2.xj similarity index 100% rename from web/src/main/resources/assets/objects/341-2.xj rename to web/src/jsMain/resources/assets/objects/341-2.xj diff --git a/web/src/main/resources/assets/objects/341-3.xj b/web/src/jsMain/resources/assets/objects/341-3.xj similarity index 100% rename from web/src/main/resources/assets/objects/341-3.xj rename to web/src/jsMain/resources/assets/objects/341-3.xj diff --git a/web/src/main/resources/assets/objects/341.xj b/web/src/jsMain/resources/assets/objects/341.xj similarity index 100% rename from web/src/main/resources/assets/objects/341.xj rename to web/src/jsMain/resources/assets/objects/341.xj diff --git a/web/src/main/resources/assets/objects/341.xvm b/web/src/jsMain/resources/assets/objects/341.xvm similarity index 100% rename from web/src/main/resources/assets/objects/341.xvm rename to web/src/jsMain/resources/assets/objects/341.xvm diff --git a/web/src/main/resources/assets/objects/342.xj b/web/src/jsMain/resources/assets/objects/342.xj similarity index 100% rename from web/src/main/resources/assets/objects/342.xj rename to web/src/jsMain/resources/assets/objects/342.xj diff --git a/web/src/main/resources/assets/objects/342.xvm b/web/src/jsMain/resources/assets/objects/342.xvm similarity index 100% rename from web/src/main/resources/assets/objects/342.xvm rename to web/src/jsMain/resources/assets/objects/342.xvm diff --git a/web/src/main/resources/assets/objects/345.xj b/web/src/jsMain/resources/assets/objects/345.xj similarity index 100% rename from web/src/main/resources/assets/objects/345.xj rename to web/src/jsMain/resources/assets/objects/345.xj diff --git a/web/src/main/resources/assets/objects/345.xvm b/web/src/jsMain/resources/assets/objects/345.xvm similarity index 100% rename from web/src/main/resources/assets/objects/345.xvm rename to web/src/jsMain/resources/assets/objects/345.xvm diff --git a/web/src/main/resources/assets/objects/346.xj b/web/src/jsMain/resources/assets/objects/346.xj similarity index 100% rename from web/src/main/resources/assets/objects/346.xj rename to web/src/jsMain/resources/assets/objects/346.xj diff --git a/web/src/main/resources/assets/objects/346.xvm b/web/src/jsMain/resources/assets/objects/346.xvm similarity index 100% rename from web/src/main/resources/assets/objects/346.xvm rename to web/src/jsMain/resources/assets/objects/346.xvm diff --git a/web/src/main/resources/assets/objects/347.xj b/web/src/jsMain/resources/assets/objects/347.xj similarity index 100% rename from web/src/main/resources/assets/objects/347.xj rename to web/src/jsMain/resources/assets/objects/347.xj diff --git a/web/src/main/resources/assets/objects/347.xvm b/web/src/jsMain/resources/assets/objects/347.xvm similarity index 100% rename from web/src/main/resources/assets/objects/347.xvm rename to web/src/jsMain/resources/assets/objects/347.xvm diff --git a/web/src/main/resources/assets/objects/348.xj b/web/src/jsMain/resources/assets/objects/348.xj similarity index 100% rename from web/src/main/resources/assets/objects/348.xj rename to web/src/jsMain/resources/assets/objects/348.xj diff --git a/web/src/main/resources/assets/objects/348.xvm b/web/src/jsMain/resources/assets/objects/348.xvm similarity index 100% rename from web/src/main/resources/assets/objects/348.xvm rename to web/src/jsMain/resources/assets/objects/348.xvm diff --git a/web/src/main/resources/assets/objects/349.xj b/web/src/jsMain/resources/assets/objects/349.xj similarity index 100% rename from web/src/main/resources/assets/objects/349.xj rename to web/src/jsMain/resources/assets/objects/349.xj diff --git a/web/src/main/resources/assets/objects/349.xvm b/web/src/jsMain/resources/assets/objects/349.xvm similarity index 100% rename from web/src/main/resources/assets/objects/349.xvm rename to web/src/jsMain/resources/assets/objects/349.xvm diff --git a/web/src/main/resources/assets/objects/350.xj b/web/src/jsMain/resources/assets/objects/350.xj similarity index 100% rename from web/src/main/resources/assets/objects/350.xj rename to web/src/jsMain/resources/assets/objects/350.xj diff --git a/web/src/main/resources/assets/objects/350.xvm b/web/src/jsMain/resources/assets/objects/350.xvm similarity index 100% rename from web/src/main/resources/assets/objects/350.xvm rename to web/src/jsMain/resources/assets/objects/350.xvm diff --git a/web/src/main/resources/assets/objects/351.xj b/web/src/jsMain/resources/assets/objects/351.xj similarity index 100% rename from web/src/main/resources/assets/objects/351.xj rename to web/src/jsMain/resources/assets/objects/351.xj diff --git a/web/src/main/resources/assets/objects/351.xvm b/web/src/jsMain/resources/assets/objects/351.xvm similarity index 100% rename from web/src/main/resources/assets/objects/351.xvm rename to web/src/jsMain/resources/assets/objects/351.xvm diff --git a/web/src/main/resources/assets/objects/353-2.xj b/web/src/jsMain/resources/assets/objects/353-2.xj similarity index 100% rename from web/src/main/resources/assets/objects/353-2.xj rename to web/src/jsMain/resources/assets/objects/353-2.xj diff --git a/web/src/main/resources/assets/objects/353-3.xj b/web/src/jsMain/resources/assets/objects/353-3.xj similarity index 100% rename from web/src/main/resources/assets/objects/353-3.xj rename to web/src/jsMain/resources/assets/objects/353-3.xj diff --git a/web/src/main/resources/assets/objects/353.xj b/web/src/jsMain/resources/assets/objects/353.xj similarity index 100% rename from web/src/main/resources/assets/objects/353.xj rename to web/src/jsMain/resources/assets/objects/353.xj diff --git a/web/src/main/resources/assets/objects/353.xvm b/web/src/jsMain/resources/assets/objects/353.xvm similarity index 100% rename from web/src/main/resources/assets/objects/353.xvm rename to web/src/jsMain/resources/assets/objects/353.xvm diff --git a/web/src/main/resources/assets/objects/354-2.xj b/web/src/jsMain/resources/assets/objects/354-2.xj similarity index 100% rename from web/src/main/resources/assets/objects/354-2.xj rename to web/src/jsMain/resources/assets/objects/354-2.xj diff --git a/web/src/main/resources/assets/objects/354-3.xj b/web/src/jsMain/resources/assets/objects/354-3.xj similarity index 100% rename from web/src/main/resources/assets/objects/354-3.xj rename to web/src/jsMain/resources/assets/objects/354-3.xj diff --git a/web/src/main/resources/assets/objects/354.xj b/web/src/jsMain/resources/assets/objects/354.xj similarity index 100% rename from web/src/main/resources/assets/objects/354.xj rename to web/src/jsMain/resources/assets/objects/354.xj diff --git a/web/src/main/resources/assets/objects/354.xvm b/web/src/jsMain/resources/assets/objects/354.xvm similarity index 100% rename from web/src/main/resources/assets/objects/354.xvm rename to web/src/jsMain/resources/assets/objects/354.xvm diff --git a/web/src/main/resources/assets/objects/358.xj b/web/src/jsMain/resources/assets/objects/358.xj similarity index 100% rename from web/src/main/resources/assets/objects/358.xj rename to web/src/jsMain/resources/assets/objects/358.xj diff --git a/web/src/main/resources/assets/objects/358.xvm b/web/src/jsMain/resources/assets/objects/358.xvm similarity index 100% rename from web/src/main/resources/assets/objects/358.xvm rename to web/src/jsMain/resources/assets/objects/358.xvm diff --git a/web/src/main/resources/assets/objects/359.xj b/web/src/jsMain/resources/assets/objects/359.xj similarity index 100% rename from web/src/main/resources/assets/objects/359.xj rename to web/src/jsMain/resources/assets/objects/359.xj diff --git a/web/src/main/resources/assets/objects/359.xvm b/web/src/jsMain/resources/assets/objects/359.xvm similarity index 100% rename from web/src/main/resources/assets/objects/359.xvm rename to web/src/jsMain/resources/assets/objects/359.xvm diff --git a/web/src/main/resources/assets/objects/368.xj b/web/src/jsMain/resources/assets/objects/368.xj similarity index 100% rename from web/src/main/resources/assets/objects/368.xj rename to web/src/jsMain/resources/assets/objects/368.xj diff --git a/web/src/main/resources/assets/objects/368.xvm b/web/src/jsMain/resources/assets/objects/368.xvm similarity index 100% rename from web/src/main/resources/assets/objects/368.xvm rename to web/src/jsMain/resources/assets/objects/368.xvm diff --git a/web/src/main/resources/assets/objects/369.xj b/web/src/jsMain/resources/assets/objects/369.xj similarity index 100% rename from web/src/main/resources/assets/objects/369.xj rename to web/src/jsMain/resources/assets/objects/369.xj diff --git a/web/src/main/resources/assets/objects/369.xvm b/web/src/jsMain/resources/assets/objects/369.xvm similarity index 100% rename from web/src/main/resources/assets/objects/369.xvm rename to web/src/jsMain/resources/assets/objects/369.xvm diff --git a/web/src/main/resources/assets/objects/370-0.xj b/web/src/jsMain/resources/assets/objects/370-0.xj similarity index 100% rename from web/src/main/resources/assets/objects/370-0.xj rename to web/src/jsMain/resources/assets/objects/370-0.xj diff --git a/web/src/main/resources/assets/objects/370-0.xvm b/web/src/jsMain/resources/assets/objects/370-0.xvm similarity index 100% rename from web/src/main/resources/assets/objects/370-0.xvm rename to web/src/jsMain/resources/assets/objects/370-0.xvm diff --git a/web/src/main/resources/assets/objects/370-1.xj b/web/src/jsMain/resources/assets/objects/370-1.xj similarity index 100% rename from web/src/main/resources/assets/objects/370-1.xj rename to web/src/jsMain/resources/assets/objects/370-1.xj diff --git a/web/src/main/resources/assets/objects/370-1.xvm b/web/src/jsMain/resources/assets/objects/370-1.xvm similarity index 100% rename from web/src/main/resources/assets/objects/370-1.xvm rename to web/src/jsMain/resources/assets/objects/370-1.xvm diff --git a/web/src/main/resources/assets/objects/370-2.xj b/web/src/jsMain/resources/assets/objects/370-2.xj similarity index 100% rename from web/src/main/resources/assets/objects/370-2.xj rename to web/src/jsMain/resources/assets/objects/370-2.xj diff --git a/web/src/main/resources/assets/objects/370-2.xvm b/web/src/jsMain/resources/assets/objects/370-2.xvm similarity index 100% rename from web/src/main/resources/assets/objects/370-2.xvm rename to web/src/jsMain/resources/assets/objects/370-2.xvm diff --git a/web/src/main/resources/assets/objects/370-3.xj b/web/src/jsMain/resources/assets/objects/370-3.xj similarity index 100% rename from web/src/main/resources/assets/objects/370-3.xj rename to web/src/jsMain/resources/assets/objects/370-3.xj diff --git a/web/src/main/resources/assets/objects/370-3.xvm b/web/src/jsMain/resources/assets/objects/370-3.xvm similarity index 100% rename from web/src/main/resources/assets/objects/370-3.xvm rename to web/src/jsMain/resources/assets/objects/370-3.xvm diff --git a/web/src/main/resources/assets/objects/385.xj b/web/src/jsMain/resources/assets/objects/385.xj similarity index 100% rename from web/src/main/resources/assets/objects/385.xj rename to web/src/jsMain/resources/assets/objects/385.xj diff --git a/web/src/main/resources/assets/objects/385.xvm b/web/src/jsMain/resources/assets/objects/385.xvm similarity index 100% rename from web/src/main/resources/assets/objects/385.xvm rename to web/src/jsMain/resources/assets/objects/385.xvm diff --git a/web/src/main/resources/assets/objects/386.xj b/web/src/jsMain/resources/assets/objects/386.xj similarity index 100% rename from web/src/main/resources/assets/objects/386.xj rename to web/src/jsMain/resources/assets/objects/386.xj diff --git a/web/src/main/resources/assets/objects/386.xvm b/web/src/jsMain/resources/assets/objects/386.xvm similarity index 100% rename from web/src/main/resources/assets/objects/386.xvm rename to web/src/jsMain/resources/assets/objects/386.xvm diff --git a/web/src/main/resources/assets/objects/390.xj b/web/src/jsMain/resources/assets/objects/390.xj similarity index 100% rename from web/src/main/resources/assets/objects/390.xj rename to web/src/jsMain/resources/assets/objects/390.xj diff --git a/web/src/main/resources/assets/objects/390.xvm b/web/src/jsMain/resources/assets/objects/390.xvm similarity index 100% rename from web/src/main/resources/assets/objects/390.xvm rename to web/src/jsMain/resources/assets/objects/390.xvm diff --git a/web/src/main/resources/assets/objects/391.xj b/web/src/jsMain/resources/assets/objects/391.xj similarity index 100% rename from web/src/main/resources/assets/objects/391.xj rename to web/src/jsMain/resources/assets/objects/391.xj diff --git a/web/src/main/resources/assets/objects/391.xvm b/web/src/jsMain/resources/assets/objects/391.xvm similarity index 100% rename from web/src/main/resources/assets/objects/391.xvm rename to web/src/jsMain/resources/assets/objects/391.xvm diff --git a/web/src/main/resources/assets/objects/395.xj b/web/src/jsMain/resources/assets/objects/395.xj similarity index 100% rename from web/src/main/resources/assets/objects/395.xj rename to web/src/jsMain/resources/assets/objects/395.xj diff --git a/web/src/main/resources/assets/objects/395.xvm b/web/src/jsMain/resources/assets/objects/395.xvm similarity index 100% rename from web/src/main/resources/assets/objects/395.xvm rename to web/src/jsMain/resources/assets/objects/395.xvm diff --git a/web/src/main/resources/assets/objects/396.xj b/web/src/jsMain/resources/assets/objects/396.xj similarity index 100% rename from web/src/main/resources/assets/objects/396.xj rename to web/src/jsMain/resources/assets/objects/396.xj diff --git a/web/src/main/resources/assets/objects/396.xvm b/web/src/jsMain/resources/assets/objects/396.xvm similarity index 100% rename from web/src/main/resources/assets/objects/396.xvm rename to web/src/jsMain/resources/assets/objects/396.xvm diff --git a/web/src/main/resources/assets/objects/401.xj b/web/src/jsMain/resources/assets/objects/401.xj similarity index 100% rename from web/src/main/resources/assets/objects/401.xj rename to web/src/jsMain/resources/assets/objects/401.xj diff --git a/web/src/main/resources/assets/objects/401.xvm b/web/src/jsMain/resources/assets/objects/401.xvm similarity index 100% rename from web/src/main/resources/assets/objects/401.xvm rename to web/src/jsMain/resources/assets/objects/401.xvm diff --git a/web/src/main/resources/assets/objects/402.xj b/web/src/jsMain/resources/assets/objects/402.xj similarity index 100% rename from web/src/main/resources/assets/objects/402.xj rename to web/src/jsMain/resources/assets/objects/402.xj diff --git a/web/src/main/resources/assets/objects/402.xvm b/web/src/jsMain/resources/assets/objects/402.xvm similarity index 100% rename from web/src/main/resources/assets/objects/402.xvm rename to web/src/jsMain/resources/assets/objects/402.xvm diff --git a/web/src/main/resources/assets/objects/403.xj b/web/src/jsMain/resources/assets/objects/403.xj similarity index 100% rename from web/src/main/resources/assets/objects/403.xj rename to web/src/jsMain/resources/assets/objects/403.xj diff --git a/web/src/main/resources/assets/objects/403.xvm b/web/src/jsMain/resources/assets/objects/403.xvm similarity index 100% rename from web/src/main/resources/assets/objects/403.xvm rename to web/src/jsMain/resources/assets/objects/403.xvm diff --git a/web/src/main/resources/assets/objects/416.xj b/web/src/jsMain/resources/assets/objects/416.xj similarity index 100% rename from web/src/main/resources/assets/objects/416.xj rename to web/src/jsMain/resources/assets/objects/416.xj diff --git a/web/src/main/resources/assets/objects/416.xvm b/web/src/jsMain/resources/assets/objects/416.xvm similarity index 100% rename from web/src/main/resources/assets/objects/416.xvm rename to web/src/jsMain/resources/assets/objects/416.xvm diff --git a/web/src/main/resources/assets/objects/417.xj b/web/src/jsMain/resources/assets/objects/417.xj similarity index 100% rename from web/src/main/resources/assets/objects/417.xj rename to web/src/jsMain/resources/assets/objects/417.xj diff --git a/web/src/main/resources/assets/objects/417.xvm b/web/src/jsMain/resources/assets/objects/417.xvm similarity index 100% rename from web/src/main/resources/assets/objects/417.xvm rename to web/src/jsMain/resources/assets/objects/417.xvm diff --git a/web/src/main/resources/assets/objects/418.xj b/web/src/jsMain/resources/assets/objects/418.xj similarity index 100% rename from web/src/main/resources/assets/objects/418.xj rename to web/src/jsMain/resources/assets/objects/418.xj diff --git a/web/src/main/resources/assets/objects/418.xvm b/web/src/jsMain/resources/assets/objects/418.xvm similarity index 100% rename from web/src/main/resources/assets/objects/418.xvm rename to web/src/jsMain/resources/assets/objects/418.xvm diff --git a/web/src/main/resources/assets/objects/419.xj b/web/src/jsMain/resources/assets/objects/419.xj similarity index 100% rename from web/src/main/resources/assets/objects/419.xj rename to web/src/jsMain/resources/assets/objects/419.xj diff --git a/web/src/main/resources/assets/objects/419.xvm b/web/src/jsMain/resources/assets/objects/419.xvm similarity index 100% rename from web/src/main/resources/assets/objects/419.xvm rename to web/src/jsMain/resources/assets/objects/419.xvm diff --git a/web/src/main/resources/assets/objects/420.xj b/web/src/jsMain/resources/assets/objects/420.xj similarity index 100% rename from web/src/main/resources/assets/objects/420.xj rename to web/src/jsMain/resources/assets/objects/420.xj diff --git a/web/src/main/resources/assets/objects/420.xvm b/web/src/jsMain/resources/assets/objects/420.xvm similarity index 100% rename from web/src/main/resources/assets/objects/420.xvm rename to web/src/jsMain/resources/assets/objects/420.xvm diff --git a/web/src/main/resources/assets/objects/421.xj b/web/src/jsMain/resources/assets/objects/421.xj similarity index 100% rename from web/src/main/resources/assets/objects/421.xj rename to web/src/jsMain/resources/assets/objects/421.xj diff --git a/web/src/main/resources/assets/objects/421.xvm b/web/src/jsMain/resources/assets/objects/421.xvm similarity index 100% rename from web/src/main/resources/assets/objects/421.xvm rename to web/src/jsMain/resources/assets/objects/421.xvm diff --git a/web/src/main/resources/assets/objects/422.xj b/web/src/jsMain/resources/assets/objects/422.xj similarity index 100% rename from web/src/main/resources/assets/objects/422.xj rename to web/src/jsMain/resources/assets/objects/422.xj diff --git a/web/src/main/resources/assets/objects/422.xvm b/web/src/jsMain/resources/assets/objects/422.xvm similarity index 100% rename from web/src/main/resources/assets/objects/422.xvm rename to web/src/jsMain/resources/assets/objects/422.xvm diff --git a/web/src/main/resources/assets/objects/423.xj b/web/src/jsMain/resources/assets/objects/423.xj similarity index 100% rename from web/src/main/resources/assets/objects/423.xj rename to web/src/jsMain/resources/assets/objects/423.xj diff --git a/web/src/main/resources/assets/objects/423.xvm b/web/src/jsMain/resources/assets/objects/423.xvm similarity index 100% rename from web/src/main/resources/assets/objects/423.xvm rename to web/src/jsMain/resources/assets/objects/423.xvm diff --git a/web/src/main/resources/assets/objects/425.xj b/web/src/jsMain/resources/assets/objects/425.xj similarity index 100% rename from web/src/main/resources/assets/objects/425.xj rename to web/src/jsMain/resources/assets/objects/425.xj diff --git a/web/src/main/resources/assets/objects/425.xvm b/web/src/jsMain/resources/assets/objects/425.xvm similarity index 100% rename from web/src/main/resources/assets/objects/425.xvm rename to web/src/jsMain/resources/assets/objects/425.xvm diff --git a/web/src/main/resources/assets/objects/426.xj b/web/src/jsMain/resources/assets/objects/426.xj similarity index 100% rename from web/src/main/resources/assets/objects/426.xj rename to web/src/jsMain/resources/assets/objects/426.xj diff --git a/web/src/main/resources/assets/objects/426.xvm b/web/src/jsMain/resources/assets/objects/426.xvm similarity index 100% rename from web/src/main/resources/assets/objects/426.xvm rename to web/src/jsMain/resources/assets/objects/426.xvm diff --git a/web/src/main/resources/assets/objects/427.xj b/web/src/jsMain/resources/assets/objects/427.xj similarity index 100% rename from web/src/main/resources/assets/objects/427.xj rename to web/src/jsMain/resources/assets/objects/427.xj diff --git a/web/src/main/resources/assets/objects/427.xvm b/web/src/jsMain/resources/assets/objects/427.xvm similarity index 100% rename from web/src/main/resources/assets/objects/427.xvm rename to web/src/jsMain/resources/assets/objects/427.xvm diff --git a/web/src/main/resources/assets/objects/448.xj b/web/src/jsMain/resources/assets/objects/448.xj similarity index 100% rename from web/src/main/resources/assets/objects/448.xj rename to web/src/jsMain/resources/assets/objects/448.xj diff --git a/web/src/main/resources/assets/objects/448.xvm b/web/src/jsMain/resources/assets/objects/448.xvm similarity index 100% rename from web/src/main/resources/assets/objects/448.xvm rename to web/src/jsMain/resources/assets/objects/448.xvm diff --git a/web/src/main/resources/assets/objects/512-2.xj b/web/src/jsMain/resources/assets/objects/512-2.xj similarity index 100% rename from web/src/main/resources/assets/objects/512-2.xj rename to web/src/jsMain/resources/assets/objects/512-2.xj diff --git a/web/src/main/resources/assets/objects/512-3.xj b/web/src/jsMain/resources/assets/objects/512-3.xj similarity index 100% rename from web/src/main/resources/assets/objects/512-3.xj rename to web/src/jsMain/resources/assets/objects/512-3.xj diff --git a/web/src/main/resources/assets/objects/512-4.xj b/web/src/jsMain/resources/assets/objects/512-4.xj similarity index 100% rename from web/src/main/resources/assets/objects/512-4.xj rename to web/src/jsMain/resources/assets/objects/512-4.xj diff --git a/web/src/main/resources/assets/objects/512.xj b/web/src/jsMain/resources/assets/objects/512.xj similarity index 100% rename from web/src/main/resources/assets/objects/512.xj rename to web/src/jsMain/resources/assets/objects/512.xj diff --git a/web/src/main/resources/assets/objects/512.xvm b/web/src/jsMain/resources/assets/objects/512.xvm similarity index 100% rename from web/src/main/resources/assets/objects/512.xvm rename to web/src/jsMain/resources/assets/objects/512.xvm diff --git a/web/src/main/resources/assets/objects/513-2.xj b/web/src/jsMain/resources/assets/objects/513-2.xj similarity index 100% rename from web/src/main/resources/assets/objects/513-2.xj rename to web/src/jsMain/resources/assets/objects/513-2.xj diff --git a/web/src/main/resources/assets/objects/513.xj b/web/src/jsMain/resources/assets/objects/513.xj similarity index 100% rename from web/src/main/resources/assets/objects/513.xj rename to web/src/jsMain/resources/assets/objects/513.xj diff --git a/web/src/main/resources/assets/objects/513.xvm b/web/src/jsMain/resources/assets/objects/513.xvm similarity index 100% rename from web/src/main/resources/assets/objects/513.xvm rename to web/src/jsMain/resources/assets/objects/513.xvm diff --git a/web/src/main/resources/assets/objects/514-2.xj b/web/src/jsMain/resources/assets/objects/514-2.xj similarity index 100% rename from web/src/main/resources/assets/objects/514-2.xj rename to web/src/jsMain/resources/assets/objects/514-2.xj diff --git a/web/src/main/resources/assets/objects/514.xj b/web/src/jsMain/resources/assets/objects/514.xj similarity index 100% rename from web/src/main/resources/assets/objects/514.xj rename to web/src/jsMain/resources/assets/objects/514.xj diff --git a/web/src/main/resources/assets/objects/514.xvm b/web/src/jsMain/resources/assets/objects/514.xvm similarity index 100% rename from web/src/main/resources/assets/objects/514.xvm rename to web/src/jsMain/resources/assets/objects/514.xvm diff --git a/web/src/main/resources/assets/objects/515-2.xj b/web/src/jsMain/resources/assets/objects/515-2.xj similarity index 100% rename from web/src/main/resources/assets/objects/515-2.xj rename to web/src/jsMain/resources/assets/objects/515-2.xj diff --git a/web/src/main/resources/assets/objects/515-3.xj b/web/src/jsMain/resources/assets/objects/515-3.xj similarity index 100% rename from web/src/main/resources/assets/objects/515-3.xj rename to web/src/jsMain/resources/assets/objects/515-3.xj diff --git a/web/src/main/resources/assets/objects/515-4.xj b/web/src/jsMain/resources/assets/objects/515-4.xj similarity index 100% rename from web/src/main/resources/assets/objects/515-4.xj rename to web/src/jsMain/resources/assets/objects/515-4.xj diff --git a/web/src/main/resources/assets/objects/515.xj b/web/src/jsMain/resources/assets/objects/515.xj similarity index 100% rename from web/src/main/resources/assets/objects/515.xj rename to web/src/jsMain/resources/assets/objects/515.xj diff --git a/web/src/main/resources/assets/objects/515.xvm b/web/src/jsMain/resources/assets/objects/515.xvm similarity index 100% rename from web/src/main/resources/assets/objects/515.xvm rename to web/src/jsMain/resources/assets/objects/515.xvm diff --git a/web/src/main/resources/assets/objects/516-2.xj b/web/src/jsMain/resources/assets/objects/516-2.xj similarity index 100% rename from web/src/main/resources/assets/objects/516-2.xj rename to web/src/jsMain/resources/assets/objects/516-2.xj diff --git a/web/src/main/resources/assets/objects/516-3.xj b/web/src/jsMain/resources/assets/objects/516-3.xj similarity index 100% rename from web/src/main/resources/assets/objects/516-3.xj rename to web/src/jsMain/resources/assets/objects/516-3.xj diff --git a/web/src/main/resources/assets/objects/516-4.xj b/web/src/jsMain/resources/assets/objects/516-4.xj similarity index 100% rename from web/src/main/resources/assets/objects/516-4.xj rename to web/src/jsMain/resources/assets/objects/516-4.xj diff --git a/web/src/main/resources/assets/objects/516.xj b/web/src/jsMain/resources/assets/objects/516.xj similarity index 100% rename from web/src/main/resources/assets/objects/516.xj rename to web/src/jsMain/resources/assets/objects/516.xj diff --git a/web/src/main/resources/assets/objects/516.xvm b/web/src/jsMain/resources/assets/objects/516.xvm similarity index 100% rename from web/src/main/resources/assets/objects/516.xvm rename to web/src/jsMain/resources/assets/objects/516.xvm diff --git a/web/src/main/resources/assets/objects/517-2.xj b/web/src/jsMain/resources/assets/objects/517-2.xj similarity index 100% rename from web/src/main/resources/assets/objects/517-2.xj rename to web/src/jsMain/resources/assets/objects/517-2.xj diff --git a/web/src/main/resources/assets/objects/517.xj b/web/src/jsMain/resources/assets/objects/517.xj similarity index 100% rename from web/src/main/resources/assets/objects/517.xj rename to web/src/jsMain/resources/assets/objects/517.xj diff --git a/web/src/main/resources/assets/objects/517.xvm b/web/src/jsMain/resources/assets/objects/517.xvm similarity index 100% rename from web/src/main/resources/assets/objects/517.xvm rename to web/src/jsMain/resources/assets/objects/517.xvm diff --git a/web/src/main/resources/assets/objects/518.xj b/web/src/jsMain/resources/assets/objects/518.xj similarity index 100% rename from web/src/main/resources/assets/objects/518.xj rename to web/src/jsMain/resources/assets/objects/518.xj diff --git a/web/src/main/resources/assets/objects/518.xvm b/web/src/jsMain/resources/assets/objects/518.xvm similarity index 100% rename from web/src/main/resources/assets/objects/518.xvm rename to web/src/jsMain/resources/assets/objects/518.xvm diff --git a/web/src/main/resources/assets/objects/519.xj b/web/src/jsMain/resources/assets/objects/519.xj similarity index 100% rename from web/src/main/resources/assets/objects/519.xj rename to web/src/jsMain/resources/assets/objects/519.xj diff --git a/web/src/main/resources/assets/objects/519.xvm b/web/src/jsMain/resources/assets/objects/519.xvm similarity index 100% rename from web/src/main/resources/assets/objects/519.xvm rename to web/src/jsMain/resources/assets/objects/519.xvm diff --git a/web/src/main/resources/assets/objects/520.xj b/web/src/jsMain/resources/assets/objects/520.xj similarity index 100% rename from web/src/main/resources/assets/objects/520.xj rename to web/src/jsMain/resources/assets/objects/520.xj diff --git a/web/src/main/resources/assets/objects/520.xvm b/web/src/jsMain/resources/assets/objects/520.xvm similarity index 100% rename from web/src/main/resources/assets/objects/520.xvm rename to web/src/jsMain/resources/assets/objects/520.xvm diff --git a/web/src/main/resources/assets/objects/521.xj b/web/src/jsMain/resources/assets/objects/521.xj similarity index 100% rename from web/src/main/resources/assets/objects/521.xj rename to web/src/jsMain/resources/assets/objects/521.xj diff --git a/web/src/main/resources/assets/objects/521.xvm b/web/src/jsMain/resources/assets/objects/521.xvm similarity index 100% rename from web/src/main/resources/assets/objects/521.xvm rename to web/src/jsMain/resources/assets/objects/521.xvm diff --git a/web/src/main/resources/assets/objects/527-0.xj b/web/src/jsMain/resources/assets/objects/527-0.xj similarity index 100% rename from web/src/main/resources/assets/objects/527-0.xj rename to web/src/jsMain/resources/assets/objects/527-0.xj diff --git a/web/src/main/resources/assets/objects/527-0.xvm b/web/src/jsMain/resources/assets/objects/527-0.xvm similarity index 100% rename from web/src/main/resources/assets/objects/527-0.xvm rename to web/src/jsMain/resources/assets/objects/527-0.xvm diff --git a/web/src/main/resources/assets/objects/527-1.xj b/web/src/jsMain/resources/assets/objects/527-1.xj similarity index 100% rename from web/src/main/resources/assets/objects/527-1.xj rename to web/src/jsMain/resources/assets/objects/527-1.xj diff --git a/web/src/main/resources/assets/objects/527-1.xvm b/web/src/jsMain/resources/assets/objects/527-1.xvm similarity index 100% rename from web/src/main/resources/assets/objects/527-1.xvm rename to web/src/jsMain/resources/assets/objects/527-1.xvm diff --git a/web/src/main/resources/assets/objects/527.xj b/web/src/jsMain/resources/assets/objects/527.xj similarity index 100% rename from web/src/main/resources/assets/objects/527.xj rename to web/src/jsMain/resources/assets/objects/527.xj diff --git a/web/src/main/resources/assets/objects/527.xvm b/web/src/jsMain/resources/assets/objects/527.xvm similarity index 100% rename from web/src/main/resources/assets/objects/527.xvm rename to web/src/jsMain/resources/assets/objects/527.xvm diff --git a/web/src/main/resources/assets/objects/528-0.xj b/web/src/jsMain/resources/assets/objects/528-0.xj similarity index 100% rename from web/src/main/resources/assets/objects/528-0.xj rename to web/src/jsMain/resources/assets/objects/528-0.xj diff --git a/web/src/main/resources/assets/objects/528-0.xvm b/web/src/jsMain/resources/assets/objects/528-0.xvm similarity index 100% rename from web/src/main/resources/assets/objects/528-0.xvm rename to web/src/jsMain/resources/assets/objects/528-0.xvm diff --git a/web/src/main/resources/assets/objects/528-1.xj b/web/src/jsMain/resources/assets/objects/528-1.xj similarity index 100% rename from web/src/main/resources/assets/objects/528-1.xj rename to web/src/jsMain/resources/assets/objects/528-1.xj diff --git a/web/src/main/resources/assets/objects/528-1.xvm b/web/src/jsMain/resources/assets/objects/528-1.xvm similarity index 100% rename from web/src/main/resources/assets/objects/528-1.xvm rename to web/src/jsMain/resources/assets/objects/528-1.xvm diff --git a/web/src/main/resources/assets/objects/528-2.xj b/web/src/jsMain/resources/assets/objects/528-2.xj similarity index 100% rename from web/src/main/resources/assets/objects/528-2.xj rename to web/src/jsMain/resources/assets/objects/528-2.xj diff --git a/web/src/main/resources/assets/objects/528.xj b/web/src/jsMain/resources/assets/objects/528.xj similarity index 100% rename from web/src/main/resources/assets/objects/528.xj rename to web/src/jsMain/resources/assets/objects/528.xj diff --git a/web/src/main/resources/assets/objects/528.xvm b/web/src/jsMain/resources/assets/objects/528.xvm similarity index 100% rename from web/src/main/resources/assets/objects/528.xvm rename to web/src/jsMain/resources/assets/objects/528.xvm diff --git a/web/src/main/resources/assets/objects/544.xj b/web/src/jsMain/resources/assets/objects/544.xj similarity index 100% rename from web/src/main/resources/assets/objects/544.xj rename to web/src/jsMain/resources/assets/objects/544.xj diff --git a/web/src/main/resources/assets/objects/544.xvm b/web/src/jsMain/resources/assets/objects/544.xvm similarity index 100% rename from web/src/main/resources/assets/objects/544.xvm rename to web/src/jsMain/resources/assets/objects/544.xvm diff --git a/web/src/main/resources/assets/objects/545.xj b/web/src/jsMain/resources/assets/objects/545.xj similarity index 100% rename from web/src/main/resources/assets/objects/545.xj rename to web/src/jsMain/resources/assets/objects/545.xj diff --git a/web/src/main/resources/assets/objects/545.xvm b/web/src/jsMain/resources/assets/objects/545.xvm similarity index 100% rename from web/src/main/resources/assets/objects/545.xvm rename to web/src/jsMain/resources/assets/objects/545.xvm diff --git a/web/src/main/resources/assets/objects/546.xj b/web/src/jsMain/resources/assets/objects/546.xj similarity index 100% rename from web/src/main/resources/assets/objects/546.xj rename to web/src/jsMain/resources/assets/objects/546.xj diff --git a/web/src/main/resources/assets/objects/546.xvm b/web/src/jsMain/resources/assets/objects/546.xvm similarity index 100% rename from web/src/main/resources/assets/objects/546.xvm rename to web/src/jsMain/resources/assets/objects/546.xvm diff --git a/web/src/main/resources/assets/objects/547-0.xj b/web/src/jsMain/resources/assets/objects/547-0.xj similarity index 100% rename from web/src/main/resources/assets/objects/547-0.xj rename to web/src/jsMain/resources/assets/objects/547-0.xj diff --git a/web/src/main/resources/assets/objects/547-0.xvm b/web/src/jsMain/resources/assets/objects/547-0.xvm similarity index 100% rename from web/src/main/resources/assets/objects/547-0.xvm rename to web/src/jsMain/resources/assets/objects/547-0.xvm diff --git a/web/src/main/resources/assets/objects/547-1.xj b/web/src/jsMain/resources/assets/objects/547-1.xj similarity index 100% rename from web/src/main/resources/assets/objects/547-1.xj rename to web/src/jsMain/resources/assets/objects/547-1.xj diff --git a/web/src/main/resources/assets/objects/547-1.xvm b/web/src/jsMain/resources/assets/objects/547-1.xvm similarity index 100% rename from web/src/main/resources/assets/objects/547-1.xvm rename to web/src/jsMain/resources/assets/objects/547-1.xvm diff --git a/web/src/main/resources/assets/objects/547.xj b/web/src/jsMain/resources/assets/objects/547.xj similarity index 100% rename from web/src/main/resources/assets/objects/547.xj rename to web/src/jsMain/resources/assets/objects/547.xj diff --git a/web/src/main/resources/assets/objects/547.xvm b/web/src/jsMain/resources/assets/objects/547.xvm similarity index 100% rename from web/src/main/resources/assets/objects/547.xvm rename to web/src/jsMain/resources/assets/objects/547.xvm diff --git a/web/src/main/resources/assets/objects/548.xj b/web/src/jsMain/resources/assets/objects/548.xj similarity index 100% rename from web/src/main/resources/assets/objects/548.xj rename to web/src/jsMain/resources/assets/objects/548.xj diff --git a/web/src/main/resources/assets/objects/548.xvm b/web/src/jsMain/resources/assets/objects/548.xvm similarity index 100% rename from web/src/main/resources/assets/objects/548.xvm rename to web/src/jsMain/resources/assets/objects/548.xvm diff --git a/web/src/main/resources/assets/objects/549.xj b/web/src/jsMain/resources/assets/objects/549.xj similarity index 100% rename from web/src/main/resources/assets/objects/549.xj rename to web/src/jsMain/resources/assets/objects/549.xj diff --git a/web/src/main/resources/assets/objects/549.xvm b/web/src/jsMain/resources/assets/objects/549.xvm similarity index 100% rename from web/src/main/resources/assets/objects/549.xvm rename to web/src/jsMain/resources/assets/objects/549.xvm diff --git a/web/src/main/resources/assets/objects/550.xj b/web/src/jsMain/resources/assets/objects/550.xj similarity index 100% rename from web/src/main/resources/assets/objects/550.xj rename to web/src/jsMain/resources/assets/objects/550.xj diff --git a/web/src/main/resources/assets/objects/550.xvm b/web/src/jsMain/resources/assets/objects/550.xvm similarity index 100% rename from web/src/main/resources/assets/objects/550.xvm rename to web/src/jsMain/resources/assets/objects/550.xvm diff --git a/web/src/main/resources/assets/objects/551.nj b/web/src/jsMain/resources/assets/objects/551.nj similarity index 100% rename from web/src/main/resources/assets/objects/551.nj rename to web/src/jsMain/resources/assets/objects/551.nj diff --git a/web/src/main/resources/assets/objects/551.xvm b/web/src/jsMain/resources/assets/objects/551.xvm similarity index 100% rename from web/src/main/resources/assets/objects/551.xvm rename to web/src/jsMain/resources/assets/objects/551.xvm diff --git a/web/src/main/resources/assets/objects/552-2.xj b/web/src/jsMain/resources/assets/objects/552-2.xj similarity index 100% rename from web/src/main/resources/assets/objects/552-2.xj rename to web/src/jsMain/resources/assets/objects/552-2.xj diff --git a/web/src/main/resources/assets/objects/552-3.xj b/web/src/jsMain/resources/assets/objects/552-3.xj similarity index 100% rename from web/src/main/resources/assets/objects/552-3.xj rename to web/src/jsMain/resources/assets/objects/552-3.xj diff --git a/web/src/main/resources/assets/objects/552.xj b/web/src/jsMain/resources/assets/objects/552.xj similarity index 100% rename from web/src/main/resources/assets/objects/552.xj rename to web/src/jsMain/resources/assets/objects/552.xj diff --git a/web/src/main/resources/assets/objects/552.xvm b/web/src/jsMain/resources/assets/objects/552.xvm similarity index 100% rename from web/src/main/resources/assets/objects/552.xvm rename to web/src/jsMain/resources/assets/objects/552.xvm diff --git a/web/src/main/resources/assets/objects/553.xj b/web/src/jsMain/resources/assets/objects/553.xj similarity index 100% rename from web/src/main/resources/assets/objects/553.xj rename to web/src/jsMain/resources/assets/objects/553.xj diff --git a/web/src/main/resources/assets/objects/553.xvm b/web/src/jsMain/resources/assets/objects/553.xvm similarity index 100% rename from web/src/main/resources/assets/objects/553.xvm rename to web/src/jsMain/resources/assets/objects/553.xvm diff --git a/web/src/main/resources/assets/objects/67-2.xj b/web/src/jsMain/resources/assets/objects/67-2.xj similarity index 100% rename from web/src/main/resources/assets/objects/67-2.xj rename to web/src/jsMain/resources/assets/objects/67-2.xj diff --git a/web/src/main/resources/assets/objects/67.xj b/web/src/jsMain/resources/assets/objects/67.xj similarity index 100% rename from web/src/main/resources/assets/objects/67.xj rename to web/src/jsMain/resources/assets/objects/67.xj diff --git a/web/src/main/resources/assets/objects/67.xvm b/web/src/jsMain/resources/assets/objects/67.xvm similarity index 100% rename from web/src/main/resources/assets/objects/67.xvm rename to web/src/jsMain/resources/assets/objects/67.xvm diff --git a/web/src/main/resources/assets/objects/68.xj b/web/src/jsMain/resources/assets/objects/68.xj similarity index 100% rename from web/src/main/resources/assets/objects/68.xj rename to web/src/jsMain/resources/assets/objects/68.xj diff --git a/web/src/main/resources/assets/objects/68.xvm b/web/src/jsMain/resources/assets/objects/68.xvm similarity index 100% rename from web/src/main/resources/assets/objects/68.xvm rename to web/src/jsMain/resources/assets/objects/68.xvm diff --git a/web/src/main/resources/assets/objects/688.xj b/web/src/jsMain/resources/assets/objects/688.xj similarity index 100% rename from web/src/main/resources/assets/objects/688.xj rename to web/src/jsMain/resources/assets/objects/688.xj diff --git a/web/src/main/resources/assets/objects/688.xvm b/web/src/jsMain/resources/assets/objects/688.xvm similarity index 100% rename from web/src/main/resources/assets/objects/688.xvm rename to web/src/jsMain/resources/assets/objects/688.xvm diff --git a/web/src/main/resources/assets/objects/689.xj b/web/src/jsMain/resources/assets/objects/689.xj similarity index 100% rename from web/src/main/resources/assets/objects/689.xj rename to web/src/jsMain/resources/assets/objects/689.xj diff --git a/web/src/main/resources/assets/objects/689.xvm b/web/src/jsMain/resources/assets/objects/689.xvm similarity index 100% rename from web/src/main/resources/assets/objects/689.xvm rename to web/src/jsMain/resources/assets/objects/689.xvm diff --git a/web/src/main/resources/assets/objects/69-0.xj b/web/src/jsMain/resources/assets/objects/69-0.xj similarity index 100% rename from web/src/main/resources/assets/objects/69-0.xj rename to web/src/jsMain/resources/assets/objects/69-0.xj diff --git a/web/src/main/resources/assets/objects/69-0.xvm b/web/src/jsMain/resources/assets/objects/69-0.xvm similarity index 100% rename from web/src/main/resources/assets/objects/69-0.xvm rename to web/src/jsMain/resources/assets/objects/69-0.xvm diff --git a/web/src/main/resources/assets/objects/69-1.xj b/web/src/jsMain/resources/assets/objects/69-1.xj similarity index 100% rename from web/src/main/resources/assets/objects/69-1.xj rename to web/src/jsMain/resources/assets/objects/69-1.xj diff --git a/web/src/main/resources/assets/objects/69-1.xvm b/web/src/jsMain/resources/assets/objects/69-1.xvm similarity index 100% rename from web/src/main/resources/assets/objects/69-1.xvm rename to web/src/jsMain/resources/assets/objects/69-1.xvm diff --git a/web/src/main/resources/assets/objects/69-2.xj b/web/src/jsMain/resources/assets/objects/69-2.xj similarity index 100% rename from web/src/main/resources/assets/objects/69-2.xj rename to web/src/jsMain/resources/assets/objects/69-2.xj diff --git a/web/src/main/resources/assets/objects/69-a.xj b/web/src/jsMain/resources/assets/objects/69-a.xj similarity index 100% rename from web/src/main/resources/assets/objects/69-a.xj rename to web/src/jsMain/resources/assets/objects/69-a.xj diff --git a/web/src/main/resources/assets/objects/69.xj b/web/src/jsMain/resources/assets/objects/69.xj similarity index 100% rename from web/src/main/resources/assets/objects/69.xj rename to web/src/jsMain/resources/assets/objects/69.xj diff --git a/web/src/main/resources/assets/objects/69.xvm b/web/src/jsMain/resources/assets/objects/69.xvm similarity index 100% rename from web/src/main/resources/assets/objects/69.xvm rename to web/src/jsMain/resources/assets/objects/69.xvm diff --git a/web/src/main/resources/assets/objects/690.xj b/web/src/jsMain/resources/assets/objects/690.xj similarity index 100% rename from web/src/main/resources/assets/objects/690.xj rename to web/src/jsMain/resources/assets/objects/690.xj diff --git a/web/src/main/resources/assets/objects/690.xvm b/web/src/jsMain/resources/assets/objects/690.xvm similarity index 100% rename from web/src/main/resources/assets/objects/690.xvm rename to web/src/jsMain/resources/assets/objects/690.xvm diff --git a/web/src/main/resources/assets/objects/691.xj b/web/src/jsMain/resources/assets/objects/691.xj similarity index 100% rename from web/src/main/resources/assets/objects/691.xj rename to web/src/jsMain/resources/assets/objects/691.xj diff --git a/web/src/main/resources/assets/objects/691.xvm b/web/src/jsMain/resources/assets/objects/691.xvm similarity index 100% rename from web/src/main/resources/assets/objects/691.xvm rename to web/src/jsMain/resources/assets/objects/691.xvm diff --git a/web/src/main/resources/assets/objects/692.xj b/web/src/jsMain/resources/assets/objects/692.xj similarity index 100% rename from web/src/main/resources/assets/objects/692.xj rename to web/src/jsMain/resources/assets/objects/692.xj diff --git a/web/src/main/resources/assets/objects/692.xvm b/web/src/jsMain/resources/assets/objects/692.xvm similarity index 100% rename from web/src/main/resources/assets/objects/692.xvm rename to web/src/jsMain/resources/assets/objects/692.xvm diff --git a/web/src/main/resources/assets/objects/693.xj b/web/src/jsMain/resources/assets/objects/693.xj similarity index 100% rename from web/src/main/resources/assets/objects/693.xj rename to web/src/jsMain/resources/assets/objects/693.xj diff --git a/web/src/main/resources/assets/objects/693.xvm b/web/src/jsMain/resources/assets/objects/693.xvm similarity index 100% rename from web/src/main/resources/assets/objects/693.xvm rename to web/src/jsMain/resources/assets/objects/693.xvm diff --git a/web/src/main/resources/assets/objects/694.xj b/web/src/jsMain/resources/assets/objects/694.xj similarity index 100% rename from web/src/main/resources/assets/objects/694.xj rename to web/src/jsMain/resources/assets/objects/694.xj diff --git a/web/src/main/resources/assets/objects/694.xvm b/web/src/jsMain/resources/assets/objects/694.xvm similarity index 100% rename from web/src/main/resources/assets/objects/694.xvm rename to web/src/jsMain/resources/assets/objects/694.xvm diff --git a/web/src/main/resources/assets/objects/696.xj b/web/src/jsMain/resources/assets/objects/696.xj similarity index 100% rename from web/src/main/resources/assets/objects/696.xj rename to web/src/jsMain/resources/assets/objects/696.xj diff --git a/web/src/main/resources/assets/objects/696.xvm b/web/src/jsMain/resources/assets/objects/696.xvm similarity index 100% rename from web/src/main/resources/assets/objects/696.xvm rename to web/src/jsMain/resources/assets/objects/696.xvm diff --git a/web/src/main/resources/assets/objects/699.xj b/web/src/jsMain/resources/assets/objects/699.xj similarity index 100% rename from web/src/main/resources/assets/objects/699.xj rename to web/src/jsMain/resources/assets/objects/699.xj diff --git a/web/src/main/resources/assets/objects/699.xvm b/web/src/jsMain/resources/assets/objects/699.xvm similarity index 100% rename from web/src/main/resources/assets/objects/699.xvm rename to web/src/jsMain/resources/assets/objects/699.xvm diff --git a/web/src/main/resources/assets/objects/70.xj b/web/src/jsMain/resources/assets/objects/70.xj similarity index 100% rename from web/src/main/resources/assets/objects/70.xj rename to web/src/jsMain/resources/assets/objects/70.xj diff --git a/web/src/main/resources/assets/objects/70.xvm b/web/src/jsMain/resources/assets/objects/70.xvm similarity index 100% rename from web/src/main/resources/assets/objects/70.xvm rename to web/src/jsMain/resources/assets/objects/70.xvm diff --git a/web/src/main/resources/assets/objects/701-2.xj b/web/src/jsMain/resources/assets/objects/701-2.xj similarity index 100% rename from web/src/main/resources/assets/objects/701-2.xj rename to web/src/jsMain/resources/assets/objects/701-2.xj diff --git a/web/src/main/resources/assets/objects/701.xj b/web/src/jsMain/resources/assets/objects/701.xj similarity index 100% rename from web/src/main/resources/assets/objects/701.xj rename to web/src/jsMain/resources/assets/objects/701.xj diff --git a/web/src/main/resources/assets/objects/701.xvm b/web/src/jsMain/resources/assets/objects/701.xvm similarity index 100% rename from web/src/main/resources/assets/objects/701.xvm rename to web/src/jsMain/resources/assets/objects/701.xvm diff --git a/web/src/main/resources/assets/objects/71.xj b/web/src/jsMain/resources/assets/objects/71.xj similarity index 100% rename from web/src/main/resources/assets/objects/71.xj rename to web/src/jsMain/resources/assets/objects/71.xj diff --git a/web/src/main/resources/assets/objects/71.xvm b/web/src/jsMain/resources/assets/objects/71.xvm similarity index 100% rename from web/src/main/resources/assets/objects/71.xvm rename to web/src/jsMain/resources/assets/objects/71.xvm diff --git a/web/src/main/resources/assets/objects/72-2.xj b/web/src/jsMain/resources/assets/objects/72-2.xj similarity index 100% rename from web/src/main/resources/assets/objects/72-2.xj rename to web/src/jsMain/resources/assets/objects/72-2.xj diff --git a/web/src/main/resources/assets/objects/72.xj b/web/src/jsMain/resources/assets/objects/72.xj similarity index 100% rename from web/src/main/resources/assets/objects/72.xj rename to web/src/jsMain/resources/assets/objects/72.xj diff --git a/web/src/main/resources/assets/objects/72.xvm b/web/src/jsMain/resources/assets/objects/72.xvm similarity index 100% rename from web/src/main/resources/assets/objects/72.xvm rename to web/src/jsMain/resources/assets/objects/72.xvm diff --git a/web/src/main/resources/assets/objects/73.xj b/web/src/jsMain/resources/assets/objects/73.xj similarity index 100% rename from web/src/main/resources/assets/objects/73.xj rename to web/src/jsMain/resources/assets/objects/73.xj diff --git a/web/src/main/resources/assets/objects/73.xvm b/web/src/jsMain/resources/assets/objects/73.xvm similarity index 100% rename from web/src/main/resources/assets/objects/73.xvm rename to web/src/jsMain/resources/assets/objects/73.xvm diff --git a/web/src/main/resources/assets/objects/74.xj b/web/src/jsMain/resources/assets/objects/74.xj similarity index 100% rename from web/src/main/resources/assets/objects/74.xj rename to web/src/jsMain/resources/assets/objects/74.xj diff --git a/web/src/main/resources/assets/objects/74.xvm b/web/src/jsMain/resources/assets/objects/74.xvm similarity index 100% rename from web/src/main/resources/assets/objects/74.xvm rename to web/src/jsMain/resources/assets/objects/74.xvm diff --git a/web/src/main/resources/assets/objects/75-2.nj b/web/src/jsMain/resources/assets/objects/75-2.nj similarity index 100% rename from web/src/main/resources/assets/objects/75-2.nj rename to web/src/jsMain/resources/assets/objects/75-2.nj diff --git a/web/src/main/resources/assets/objects/75.nj b/web/src/jsMain/resources/assets/objects/75.nj similarity index 100% rename from web/src/main/resources/assets/objects/75.nj rename to web/src/jsMain/resources/assets/objects/75.nj diff --git a/web/src/main/resources/assets/objects/75.xvm b/web/src/jsMain/resources/assets/objects/75.xvm similarity index 100% rename from web/src/main/resources/assets/objects/75.xvm rename to web/src/jsMain/resources/assets/objects/75.xvm diff --git a/web/src/main/resources/assets/objects/76-2.xj b/web/src/jsMain/resources/assets/objects/76-2.xj similarity index 100% rename from web/src/main/resources/assets/objects/76-2.xj rename to web/src/jsMain/resources/assets/objects/76-2.xj diff --git a/web/src/main/resources/assets/objects/76-3.xj b/web/src/jsMain/resources/assets/objects/76-3.xj similarity index 100% rename from web/src/main/resources/assets/objects/76-3.xj rename to web/src/jsMain/resources/assets/objects/76-3.xj diff --git a/web/src/main/resources/assets/objects/76.xj b/web/src/jsMain/resources/assets/objects/76.xj similarity index 100% rename from web/src/main/resources/assets/objects/76.xj rename to web/src/jsMain/resources/assets/objects/76.xj diff --git a/web/src/main/resources/assets/objects/76.xvm b/web/src/jsMain/resources/assets/objects/76.xvm similarity index 100% rename from web/src/main/resources/assets/objects/76.xvm rename to web/src/jsMain/resources/assets/objects/76.xvm diff --git a/web/src/main/resources/assets/objects/769-0.nj b/web/src/jsMain/resources/assets/objects/769-0.nj similarity index 100% rename from web/src/main/resources/assets/objects/769-0.nj rename to web/src/jsMain/resources/assets/objects/769-0.nj diff --git a/web/src/main/resources/assets/objects/769-0.xvm b/web/src/jsMain/resources/assets/objects/769-0.xvm similarity index 100% rename from web/src/main/resources/assets/objects/769-0.xvm rename to web/src/jsMain/resources/assets/objects/769-0.xvm diff --git a/web/src/main/resources/assets/objects/769-1.nj b/web/src/jsMain/resources/assets/objects/769-1.nj similarity index 100% rename from web/src/main/resources/assets/objects/769-1.nj rename to web/src/jsMain/resources/assets/objects/769-1.nj diff --git a/web/src/main/resources/assets/objects/769-1.xvm b/web/src/jsMain/resources/assets/objects/769-1.xvm similarity index 100% rename from web/src/main/resources/assets/objects/769-1.xvm rename to web/src/jsMain/resources/assets/objects/769-1.xvm diff --git a/web/src/main/resources/assets/objects/769-2.nj b/web/src/jsMain/resources/assets/objects/769-2.nj similarity index 100% rename from web/src/main/resources/assets/objects/769-2.nj rename to web/src/jsMain/resources/assets/objects/769-2.nj diff --git a/web/src/main/resources/assets/objects/769-2.xvm b/web/src/jsMain/resources/assets/objects/769-2.xvm similarity index 100% rename from web/src/main/resources/assets/objects/769-2.xvm rename to web/src/jsMain/resources/assets/objects/769-2.xvm diff --git a/web/src/main/resources/assets/objects/769.nj b/web/src/jsMain/resources/assets/objects/769.nj similarity index 100% rename from web/src/main/resources/assets/objects/769.nj rename to web/src/jsMain/resources/assets/objects/769.nj diff --git a/web/src/main/resources/assets/objects/769.xvm b/web/src/jsMain/resources/assets/objects/769.xvm similarity index 100% rename from web/src/main/resources/assets/objects/769.xvm rename to web/src/jsMain/resources/assets/objects/769.xvm diff --git a/web/src/main/resources/assets/objects/77-2.nj b/web/src/jsMain/resources/assets/objects/77-2.nj similarity index 100% rename from web/src/main/resources/assets/objects/77-2.nj rename to web/src/jsMain/resources/assets/objects/77-2.nj diff --git a/web/src/main/resources/assets/objects/77-3.nj b/web/src/jsMain/resources/assets/objects/77-3.nj similarity index 100% rename from web/src/main/resources/assets/objects/77-3.nj rename to web/src/jsMain/resources/assets/objects/77-3.nj diff --git a/web/src/main/resources/assets/objects/77-4.nj b/web/src/jsMain/resources/assets/objects/77-4.nj similarity index 100% rename from web/src/main/resources/assets/objects/77-4.nj rename to web/src/jsMain/resources/assets/objects/77-4.nj diff --git a/web/src/main/resources/assets/objects/77.nj b/web/src/jsMain/resources/assets/objects/77.nj similarity index 100% rename from web/src/main/resources/assets/objects/77.nj rename to web/src/jsMain/resources/assets/objects/77.nj diff --git a/web/src/main/resources/assets/objects/77.xvm b/web/src/jsMain/resources/assets/objects/77.xvm similarity index 100% rename from web/src/main/resources/assets/objects/77.xvm rename to web/src/jsMain/resources/assets/objects/77.xvm diff --git a/web/src/main/resources/assets/objects/770-0.nj b/web/src/jsMain/resources/assets/objects/770-0.nj similarity index 100% rename from web/src/main/resources/assets/objects/770-0.nj rename to web/src/jsMain/resources/assets/objects/770-0.nj diff --git a/web/src/main/resources/assets/objects/770-0.xvm b/web/src/jsMain/resources/assets/objects/770-0.xvm similarity index 100% rename from web/src/main/resources/assets/objects/770-0.xvm rename to web/src/jsMain/resources/assets/objects/770-0.xvm diff --git a/web/src/main/resources/assets/objects/770-1.nj b/web/src/jsMain/resources/assets/objects/770-1.nj similarity index 100% rename from web/src/main/resources/assets/objects/770-1.nj rename to web/src/jsMain/resources/assets/objects/770-1.nj diff --git a/web/src/main/resources/assets/objects/770-1.xvm b/web/src/jsMain/resources/assets/objects/770-1.xvm similarity index 100% rename from web/src/main/resources/assets/objects/770-1.xvm rename to web/src/jsMain/resources/assets/objects/770-1.xvm diff --git a/web/src/main/resources/assets/objects/770-2.nj b/web/src/jsMain/resources/assets/objects/770-2.nj similarity index 100% rename from web/src/main/resources/assets/objects/770-2.nj rename to web/src/jsMain/resources/assets/objects/770-2.nj diff --git a/web/src/main/resources/assets/objects/770-2.xvm b/web/src/jsMain/resources/assets/objects/770-2.xvm similarity index 100% rename from web/src/main/resources/assets/objects/770-2.xvm rename to web/src/jsMain/resources/assets/objects/770-2.xvm diff --git a/web/src/main/resources/assets/objects/78.nj b/web/src/jsMain/resources/assets/objects/78.nj similarity index 100% rename from web/src/main/resources/assets/objects/78.nj rename to web/src/jsMain/resources/assets/objects/78.nj diff --git a/web/src/main/resources/assets/objects/78.xvm b/web/src/jsMain/resources/assets/objects/78.xvm similarity index 100% rename from web/src/main/resources/assets/objects/78.xvm rename to web/src/jsMain/resources/assets/objects/78.xvm diff --git a/web/src/main/resources/assets/objects/79.xj b/web/src/jsMain/resources/assets/objects/79.xj similarity index 100% rename from web/src/main/resources/assets/objects/79.xj rename to web/src/jsMain/resources/assets/objects/79.xj diff --git a/web/src/main/resources/assets/objects/79.xvm b/web/src/jsMain/resources/assets/objects/79.xvm similarity index 100% rename from web/src/main/resources/assets/objects/79.xvm rename to web/src/jsMain/resources/assets/objects/79.xvm diff --git a/web/src/main/resources/assets/objects/80-2.nj b/web/src/jsMain/resources/assets/objects/80-2.nj similarity index 100% rename from web/src/main/resources/assets/objects/80-2.nj rename to web/src/jsMain/resources/assets/objects/80-2.nj diff --git a/web/src/main/resources/assets/objects/80.nj b/web/src/jsMain/resources/assets/objects/80.nj similarity index 100% rename from web/src/main/resources/assets/objects/80.nj rename to web/src/jsMain/resources/assets/objects/80.nj diff --git a/web/src/main/resources/assets/objects/80.xvm b/web/src/jsMain/resources/assets/objects/80.xvm similarity index 100% rename from web/src/main/resources/assets/objects/80.xvm rename to web/src/jsMain/resources/assets/objects/80.xvm diff --git a/web/src/main/resources/assets/objects/81-0.nj b/web/src/jsMain/resources/assets/objects/81-0.nj similarity index 100% rename from web/src/main/resources/assets/objects/81-0.nj rename to web/src/jsMain/resources/assets/objects/81-0.nj diff --git a/web/src/main/resources/assets/objects/81-0.xvm b/web/src/jsMain/resources/assets/objects/81-0.xvm similarity index 100% rename from web/src/main/resources/assets/objects/81-0.xvm rename to web/src/jsMain/resources/assets/objects/81-0.xvm diff --git a/web/src/main/resources/assets/objects/81-1.nj b/web/src/jsMain/resources/assets/objects/81-1.nj similarity index 100% rename from web/src/main/resources/assets/objects/81-1.nj rename to web/src/jsMain/resources/assets/objects/81-1.nj diff --git a/web/src/main/resources/assets/objects/81-1.xvm b/web/src/jsMain/resources/assets/objects/81-1.xvm similarity index 100% rename from web/src/main/resources/assets/objects/81-1.xvm rename to web/src/jsMain/resources/assets/objects/81-1.xvm diff --git a/web/src/main/resources/assets/objects/81-2.nj b/web/src/jsMain/resources/assets/objects/81-2.nj similarity index 100% rename from web/src/main/resources/assets/objects/81-2.nj rename to web/src/jsMain/resources/assets/objects/81-2.nj diff --git a/web/src/main/resources/assets/objects/81-2.xvm b/web/src/jsMain/resources/assets/objects/81-2.xvm similarity index 100% rename from web/src/main/resources/assets/objects/81-2.xvm rename to web/src/jsMain/resources/assets/objects/81-2.xvm diff --git a/web/src/main/resources/assets/objects/81-3.nj b/web/src/jsMain/resources/assets/objects/81-3.nj similarity index 100% rename from web/src/main/resources/assets/objects/81-3.nj rename to web/src/jsMain/resources/assets/objects/81-3.nj diff --git a/web/src/main/resources/assets/objects/81-3.xvm b/web/src/jsMain/resources/assets/objects/81-3.xvm similarity index 100% rename from web/src/main/resources/assets/objects/81-3.xvm rename to web/src/jsMain/resources/assets/objects/81-3.xvm diff --git a/web/src/main/resources/assets/objects/81.nj b/web/src/jsMain/resources/assets/objects/81.nj similarity index 100% rename from web/src/main/resources/assets/objects/81.nj rename to web/src/jsMain/resources/assets/objects/81.nj diff --git a/web/src/main/resources/assets/objects/81.xvm b/web/src/jsMain/resources/assets/objects/81.xvm similarity index 100% rename from web/src/main/resources/assets/objects/81.xvm rename to web/src/jsMain/resources/assets/objects/81.xvm diff --git a/web/src/main/resources/assets/objects/82-2.nj b/web/src/jsMain/resources/assets/objects/82-2.nj similarity index 100% rename from web/src/main/resources/assets/objects/82-2.nj rename to web/src/jsMain/resources/assets/objects/82-2.nj diff --git a/web/src/main/resources/assets/objects/82.nj b/web/src/jsMain/resources/assets/objects/82.nj similarity index 100% rename from web/src/main/resources/assets/objects/82.nj rename to web/src/jsMain/resources/assets/objects/82.nj diff --git a/web/src/main/resources/assets/objects/82.xvm b/web/src/jsMain/resources/assets/objects/82.xvm similarity index 100% rename from web/src/main/resources/assets/objects/82.xvm rename to web/src/jsMain/resources/assets/objects/82.xvm diff --git a/web/src/main/resources/assets/objects/84.xj b/web/src/jsMain/resources/assets/objects/84.xj similarity index 100% rename from web/src/main/resources/assets/objects/84.xj rename to web/src/jsMain/resources/assets/objects/84.xj diff --git a/web/src/main/resources/assets/objects/84.xvm b/web/src/jsMain/resources/assets/objects/84.xvm similarity index 100% rename from web/src/main/resources/assets/objects/84.xvm rename to web/src/jsMain/resources/assets/objects/84.xvm diff --git a/web/src/main/resources/assets/objects/86.xj b/web/src/jsMain/resources/assets/objects/86.xj similarity index 100% rename from web/src/main/resources/assets/objects/86.xj rename to web/src/jsMain/resources/assets/objects/86.xj diff --git a/web/src/main/resources/assets/objects/86.xvm b/web/src/jsMain/resources/assets/objects/86.xvm similarity index 100% rename from web/src/main/resources/assets/objects/86.xvm rename to web/src/jsMain/resources/assets/objects/86.xvm diff --git a/web/src/main/resources/assets/objects/896.nj b/web/src/jsMain/resources/assets/objects/896.nj similarity index 100% rename from web/src/main/resources/assets/objects/896.nj rename to web/src/jsMain/resources/assets/objects/896.nj diff --git a/web/src/main/resources/assets/objects/896.xvm b/web/src/jsMain/resources/assets/objects/896.xvm similarity index 100% rename from web/src/main/resources/assets/objects/896.xvm rename to web/src/jsMain/resources/assets/objects/896.xvm diff --git a/web/src/main/resources/assets/objects/902-0.nj b/web/src/jsMain/resources/assets/objects/902-0.nj similarity index 100% rename from web/src/main/resources/assets/objects/902-0.nj rename to web/src/jsMain/resources/assets/objects/902-0.nj diff --git a/web/src/main/resources/assets/objects/902-0.xvm b/web/src/jsMain/resources/assets/objects/902-0.xvm similarity index 100% rename from web/src/main/resources/assets/objects/902-0.xvm rename to web/src/jsMain/resources/assets/objects/902-0.xvm diff --git a/web/src/main/resources/assets/objects/902-1.nj b/web/src/jsMain/resources/assets/objects/902-1.nj similarity index 100% rename from web/src/main/resources/assets/objects/902-1.nj rename to web/src/jsMain/resources/assets/objects/902-1.nj diff --git a/web/src/main/resources/assets/objects/902-1.xvm b/web/src/jsMain/resources/assets/objects/902-1.xvm similarity index 100% rename from web/src/main/resources/assets/objects/902-1.xvm rename to web/src/jsMain/resources/assets/objects/902-1.xvm diff --git a/web/src/main/resources/assets/objects/902-2.nj b/web/src/jsMain/resources/assets/objects/902-2.nj similarity index 100% rename from web/src/main/resources/assets/objects/902-2.nj rename to web/src/jsMain/resources/assets/objects/902-2.nj diff --git a/web/src/main/resources/assets/objects/902-2.xvm b/web/src/jsMain/resources/assets/objects/902-2.xvm similarity index 100% rename from web/src/main/resources/assets/objects/902-2.xvm rename to web/src/jsMain/resources/assets/objects/902-2.xvm diff --git a/web/src/main/resources/assets/objects/902.nj b/web/src/jsMain/resources/assets/objects/902.nj similarity index 100% rename from web/src/main/resources/assets/objects/902.nj rename to web/src/jsMain/resources/assets/objects/902.nj diff --git a/web/src/main/resources/assets/objects/902.xvm b/web/src/jsMain/resources/assets/objects/902.xvm similarity index 100% rename from web/src/main/resources/assets/objects/902.xvm rename to web/src/jsMain/resources/assets/objects/902.xvm diff --git a/web/src/main/resources/assets/objects/907.nj b/web/src/jsMain/resources/assets/objects/907.nj similarity index 100% rename from web/src/main/resources/assets/objects/907.nj rename to web/src/jsMain/resources/assets/objects/907.nj diff --git a/web/src/main/resources/assets/objects/907.xvm b/web/src/jsMain/resources/assets/objects/907.xvm similarity index 100% rename from web/src/main/resources/assets/objects/907.xvm rename to web/src/jsMain/resources/assets/objects/907.xvm diff --git a/web/src/main/resources/assets/objects/909.nj b/web/src/jsMain/resources/assets/objects/909.nj similarity index 100% rename from web/src/main/resources/assets/objects/909.nj rename to web/src/jsMain/resources/assets/objects/909.nj diff --git a/web/src/main/resources/assets/objects/909.xvm b/web/src/jsMain/resources/assets/objects/909.xvm similarity index 100% rename from web/src/main/resources/assets/objects/909.xvm rename to web/src/jsMain/resources/assets/objects/909.xvm diff --git a/web/src/main/resources/assets/objects/911-0.nj b/web/src/jsMain/resources/assets/objects/911-0.nj similarity index 100% rename from web/src/main/resources/assets/objects/911-0.nj rename to web/src/jsMain/resources/assets/objects/911-0.nj diff --git a/web/src/main/resources/assets/objects/911-0.xvm b/web/src/jsMain/resources/assets/objects/911-0.xvm similarity index 100% rename from web/src/main/resources/assets/objects/911-0.xvm rename to web/src/jsMain/resources/assets/objects/911-0.xvm diff --git a/web/src/main/resources/assets/objects/911-1.nj b/web/src/jsMain/resources/assets/objects/911-1.nj similarity index 100% rename from web/src/main/resources/assets/objects/911-1.nj rename to web/src/jsMain/resources/assets/objects/911-1.nj diff --git a/web/src/main/resources/assets/objects/911-1.xvm b/web/src/jsMain/resources/assets/objects/911-1.xvm similarity index 100% rename from web/src/main/resources/assets/objects/911-1.xvm rename to web/src/jsMain/resources/assets/objects/911-1.xvm diff --git a/web/src/main/resources/assets/objects/911.nj b/web/src/jsMain/resources/assets/objects/911.nj similarity index 100% rename from web/src/main/resources/assets/objects/911.nj rename to web/src/jsMain/resources/assets/objects/911.nj diff --git a/web/src/main/resources/assets/objects/911.xvm b/web/src/jsMain/resources/assets/objects/911.xvm similarity index 100% rename from web/src/main/resources/assets/objects/911.xvm rename to web/src/jsMain/resources/assets/objects/911.xvm diff --git a/web/src/main/resources/assets/player/FOmarAccessory0.nj b/web/src/jsMain/resources/assets/player/FOmarAccessory0.nj similarity index 100% rename from web/src/main/resources/assets/player/FOmarAccessory0.nj rename to web/src/jsMain/resources/assets/player/FOmarAccessory0.nj diff --git a/web/src/main/resources/assets/player/FOmarAccessory1.nj b/web/src/jsMain/resources/assets/player/FOmarAccessory1.nj similarity index 100% rename from web/src/main/resources/assets/player/FOmarAccessory1.nj rename to web/src/jsMain/resources/assets/player/FOmarAccessory1.nj diff --git a/web/src/main/resources/assets/player/FOmarAccessory2.nj b/web/src/jsMain/resources/assets/player/FOmarAccessory2.nj similarity index 100% rename from web/src/main/resources/assets/player/FOmarAccessory2.nj rename to web/src/jsMain/resources/assets/player/FOmarAccessory2.nj diff --git a/web/src/main/resources/assets/player/FOmarAccessory3.nj b/web/src/jsMain/resources/assets/player/FOmarAccessory3.nj similarity index 100% rename from web/src/main/resources/assets/player/FOmarAccessory3.nj rename to web/src/jsMain/resources/assets/player/FOmarAccessory3.nj diff --git a/web/src/main/resources/assets/player/FOmarAccessory4.nj b/web/src/jsMain/resources/assets/player/FOmarAccessory4.nj similarity index 100% rename from web/src/main/resources/assets/player/FOmarAccessory4.nj rename to web/src/jsMain/resources/assets/player/FOmarAccessory4.nj diff --git a/web/src/main/resources/assets/player/FOmarAccessory5.nj b/web/src/jsMain/resources/assets/player/FOmarAccessory5.nj similarity index 100% rename from web/src/main/resources/assets/player/FOmarAccessory5.nj rename to web/src/jsMain/resources/assets/player/FOmarAccessory5.nj diff --git a/web/src/main/resources/assets/player/FOmarAccessory6.nj b/web/src/jsMain/resources/assets/player/FOmarAccessory6.nj similarity index 100% rename from web/src/main/resources/assets/player/FOmarAccessory6.nj rename to web/src/jsMain/resources/assets/player/FOmarAccessory6.nj diff --git a/web/src/main/resources/assets/player/FOmarAccessory7.nj b/web/src/jsMain/resources/assets/player/FOmarAccessory7.nj similarity index 100% rename from web/src/main/resources/assets/player/FOmarAccessory7.nj rename to web/src/jsMain/resources/assets/player/FOmarAccessory7.nj diff --git a/web/src/main/resources/assets/player/FOmarAccessory8.nj b/web/src/jsMain/resources/assets/player/FOmarAccessory8.nj similarity index 100% rename from web/src/main/resources/assets/player/FOmarAccessory8.nj rename to web/src/jsMain/resources/assets/player/FOmarAccessory8.nj diff --git a/web/src/main/resources/assets/player/FOmarAccessory9.nj b/web/src/jsMain/resources/assets/player/FOmarAccessory9.nj similarity index 100% rename from web/src/main/resources/assets/player/FOmarAccessory9.nj rename to web/src/jsMain/resources/assets/player/FOmarAccessory9.nj diff --git a/web/src/main/resources/assets/player/FOmarBody.nj b/web/src/jsMain/resources/assets/player/FOmarBody.nj similarity index 100% rename from web/src/main/resources/assets/player/FOmarBody.nj rename to web/src/jsMain/resources/assets/player/FOmarBody.nj diff --git a/web/src/main/resources/assets/player/FOmarHair0.nj b/web/src/jsMain/resources/assets/player/FOmarHair0.nj similarity index 100% rename from web/src/main/resources/assets/player/FOmarHair0.nj rename to web/src/jsMain/resources/assets/player/FOmarHair0.nj diff --git a/web/src/main/resources/assets/player/FOmarHair1.nj b/web/src/jsMain/resources/assets/player/FOmarHair1.nj similarity index 100% rename from web/src/main/resources/assets/player/FOmarHair1.nj rename to web/src/jsMain/resources/assets/player/FOmarHair1.nj diff --git a/web/src/main/resources/assets/player/FOmarHair2.nj b/web/src/jsMain/resources/assets/player/FOmarHair2.nj similarity index 100% rename from web/src/main/resources/assets/player/FOmarHair2.nj rename to web/src/jsMain/resources/assets/player/FOmarHair2.nj diff --git a/web/src/main/resources/assets/player/FOmarHair3.nj b/web/src/jsMain/resources/assets/player/FOmarHair3.nj similarity index 100% rename from web/src/main/resources/assets/player/FOmarHair3.nj rename to web/src/jsMain/resources/assets/player/FOmarHair3.nj diff --git a/web/src/main/resources/assets/player/FOmarHair4.nj b/web/src/jsMain/resources/assets/player/FOmarHair4.nj similarity index 100% rename from web/src/main/resources/assets/player/FOmarHair4.nj rename to web/src/jsMain/resources/assets/player/FOmarHair4.nj diff --git a/web/src/main/resources/assets/player/FOmarHair5.nj b/web/src/jsMain/resources/assets/player/FOmarHair5.nj similarity index 100% rename from web/src/main/resources/assets/player/FOmarHair5.nj rename to web/src/jsMain/resources/assets/player/FOmarHair5.nj diff --git a/web/src/main/resources/assets/player/FOmarHair6.nj b/web/src/jsMain/resources/assets/player/FOmarHair6.nj similarity index 100% rename from web/src/main/resources/assets/player/FOmarHair6.nj rename to web/src/jsMain/resources/assets/player/FOmarHair6.nj diff --git a/web/src/main/resources/assets/player/FOmarHair7.nj b/web/src/jsMain/resources/assets/player/FOmarHair7.nj similarity index 100% rename from web/src/main/resources/assets/player/FOmarHair7.nj rename to web/src/jsMain/resources/assets/player/FOmarHair7.nj diff --git a/web/src/main/resources/assets/player/FOmarHair8.nj b/web/src/jsMain/resources/assets/player/FOmarHair8.nj similarity index 100% rename from web/src/main/resources/assets/player/FOmarHair8.nj rename to web/src/jsMain/resources/assets/player/FOmarHair8.nj diff --git a/web/src/main/resources/assets/player/FOmarHair9.nj b/web/src/jsMain/resources/assets/player/FOmarHair9.nj similarity index 100% rename from web/src/main/resources/assets/player/FOmarHair9.nj rename to web/src/jsMain/resources/assets/player/FOmarHair9.nj diff --git a/web/src/main/resources/assets/player/FOmarHead0.nj b/web/src/jsMain/resources/assets/player/FOmarHead0.nj similarity index 100% rename from web/src/main/resources/assets/player/FOmarHead0.nj rename to web/src/jsMain/resources/assets/player/FOmarHead0.nj diff --git a/web/src/main/resources/assets/player/FOmarTex.afs b/web/src/jsMain/resources/assets/player/FOmarTex.afs similarity index 100% rename from web/src/main/resources/assets/player/FOmarTex.afs rename to web/src/jsMain/resources/assets/player/FOmarTex.afs diff --git a/web/src/main/resources/assets/player/FOmarlAccessory0.nj b/web/src/jsMain/resources/assets/player/FOmarlAccessory0.nj similarity index 100% rename from web/src/main/resources/assets/player/FOmarlAccessory0.nj rename to web/src/jsMain/resources/assets/player/FOmarlAccessory0.nj diff --git a/web/src/main/resources/assets/player/FOmarlAccessory1.nj b/web/src/jsMain/resources/assets/player/FOmarlAccessory1.nj similarity index 100% rename from web/src/main/resources/assets/player/FOmarlAccessory1.nj rename to web/src/jsMain/resources/assets/player/FOmarlAccessory1.nj diff --git a/web/src/main/resources/assets/player/FOmarlAccessory2.nj b/web/src/jsMain/resources/assets/player/FOmarlAccessory2.nj similarity index 100% rename from web/src/main/resources/assets/player/FOmarlAccessory2.nj rename to web/src/jsMain/resources/assets/player/FOmarlAccessory2.nj diff --git a/web/src/main/resources/assets/player/FOmarlAccessory3.nj b/web/src/jsMain/resources/assets/player/FOmarlAccessory3.nj similarity index 100% rename from web/src/main/resources/assets/player/FOmarlAccessory3.nj rename to web/src/jsMain/resources/assets/player/FOmarlAccessory3.nj diff --git a/web/src/main/resources/assets/player/FOmarlAccessory4.nj b/web/src/jsMain/resources/assets/player/FOmarlAccessory4.nj similarity index 100% rename from web/src/main/resources/assets/player/FOmarlAccessory4.nj rename to web/src/jsMain/resources/assets/player/FOmarlAccessory4.nj diff --git a/web/src/main/resources/assets/player/FOmarlAccessory5.nj b/web/src/jsMain/resources/assets/player/FOmarlAccessory5.nj similarity index 100% rename from web/src/main/resources/assets/player/FOmarlAccessory5.nj rename to web/src/jsMain/resources/assets/player/FOmarlAccessory5.nj diff --git a/web/src/main/resources/assets/player/FOmarlAccessory6.nj b/web/src/jsMain/resources/assets/player/FOmarlAccessory6.nj similarity index 100% rename from web/src/main/resources/assets/player/FOmarlAccessory6.nj rename to web/src/jsMain/resources/assets/player/FOmarlAccessory6.nj diff --git a/web/src/main/resources/assets/player/FOmarlAccessory7.nj b/web/src/jsMain/resources/assets/player/FOmarlAccessory7.nj similarity index 100% rename from web/src/main/resources/assets/player/FOmarlAccessory7.nj rename to web/src/jsMain/resources/assets/player/FOmarlAccessory7.nj diff --git a/web/src/main/resources/assets/player/FOmarlAccessory8.nj b/web/src/jsMain/resources/assets/player/FOmarlAccessory8.nj similarity index 100% rename from web/src/main/resources/assets/player/FOmarlAccessory8.nj rename to web/src/jsMain/resources/assets/player/FOmarlAccessory8.nj diff --git a/web/src/main/resources/assets/player/FOmarlAccessory9.nj b/web/src/jsMain/resources/assets/player/FOmarlAccessory9.nj similarity index 100% rename from web/src/main/resources/assets/player/FOmarlAccessory9.nj rename to web/src/jsMain/resources/assets/player/FOmarlAccessory9.nj diff --git a/web/src/main/resources/assets/player/FOmarlBody.nj b/web/src/jsMain/resources/assets/player/FOmarlBody.nj similarity index 100% rename from web/src/main/resources/assets/player/FOmarlBody.nj rename to web/src/jsMain/resources/assets/player/FOmarlBody.nj diff --git a/web/src/main/resources/assets/player/FOmarlHair0.nj b/web/src/jsMain/resources/assets/player/FOmarlHair0.nj similarity index 100% rename from web/src/main/resources/assets/player/FOmarlHair0.nj rename to web/src/jsMain/resources/assets/player/FOmarlHair0.nj diff --git a/web/src/main/resources/assets/player/FOmarlHair1.nj b/web/src/jsMain/resources/assets/player/FOmarlHair1.nj similarity index 100% rename from web/src/main/resources/assets/player/FOmarlHair1.nj rename to web/src/jsMain/resources/assets/player/FOmarlHair1.nj diff --git a/web/src/main/resources/assets/player/FOmarlHair2.nj b/web/src/jsMain/resources/assets/player/FOmarlHair2.nj similarity index 100% rename from web/src/main/resources/assets/player/FOmarlHair2.nj rename to web/src/jsMain/resources/assets/player/FOmarlHair2.nj diff --git a/web/src/main/resources/assets/player/FOmarlHair3.nj b/web/src/jsMain/resources/assets/player/FOmarlHair3.nj similarity index 100% rename from web/src/main/resources/assets/player/FOmarlHair3.nj rename to web/src/jsMain/resources/assets/player/FOmarlHair3.nj diff --git a/web/src/main/resources/assets/player/FOmarlHair4.nj b/web/src/jsMain/resources/assets/player/FOmarlHair4.nj similarity index 100% rename from web/src/main/resources/assets/player/FOmarlHair4.nj rename to web/src/jsMain/resources/assets/player/FOmarlHair4.nj diff --git a/web/src/main/resources/assets/player/FOmarlHair5.nj b/web/src/jsMain/resources/assets/player/FOmarlHair5.nj similarity index 100% rename from web/src/main/resources/assets/player/FOmarlHair5.nj rename to web/src/jsMain/resources/assets/player/FOmarlHair5.nj diff --git a/web/src/main/resources/assets/player/FOmarlHair6.nj b/web/src/jsMain/resources/assets/player/FOmarlHair6.nj similarity index 100% rename from web/src/main/resources/assets/player/FOmarlHair6.nj rename to web/src/jsMain/resources/assets/player/FOmarlHair6.nj diff --git a/web/src/main/resources/assets/player/FOmarlHair7.nj b/web/src/jsMain/resources/assets/player/FOmarlHair7.nj similarity index 100% rename from web/src/main/resources/assets/player/FOmarlHair7.nj rename to web/src/jsMain/resources/assets/player/FOmarlHair7.nj diff --git a/web/src/main/resources/assets/player/FOmarlHair8.nj b/web/src/jsMain/resources/assets/player/FOmarlHair8.nj similarity index 100% rename from web/src/main/resources/assets/player/FOmarlHair8.nj rename to web/src/jsMain/resources/assets/player/FOmarlHair8.nj diff --git a/web/src/main/resources/assets/player/FOmarlHair9.nj b/web/src/jsMain/resources/assets/player/FOmarlHair9.nj similarity index 100% rename from web/src/main/resources/assets/player/FOmarlHair9.nj rename to web/src/jsMain/resources/assets/player/FOmarlHair9.nj diff --git a/web/src/main/resources/assets/player/FOmarlHead0.nj b/web/src/jsMain/resources/assets/player/FOmarlHead0.nj similarity index 100% rename from web/src/main/resources/assets/player/FOmarlHead0.nj rename to web/src/jsMain/resources/assets/player/FOmarlHead0.nj diff --git a/web/src/main/resources/assets/player/FOmarlTex.afs b/web/src/jsMain/resources/assets/player/FOmarlTex.afs similarity index 100% rename from web/src/main/resources/assets/player/FOmarlTex.afs rename to web/src/jsMain/resources/assets/player/FOmarlTex.afs diff --git a/web/src/main/resources/assets/player/FOnewearlAccessory0.nj b/web/src/jsMain/resources/assets/player/FOnewearlAccessory0.nj similarity index 100% rename from web/src/main/resources/assets/player/FOnewearlAccessory0.nj rename to web/src/jsMain/resources/assets/player/FOnewearlAccessory0.nj diff --git a/web/src/main/resources/assets/player/FOnewearlAccessory1.nj b/web/src/jsMain/resources/assets/player/FOnewearlAccessory1.nj similarity index 100% rename from web/src/main/resources/assets/player/FOnewearlAccessory1.nj rename to web/src/jsMain/resources/assets/player/FOnewearlAccessory1.nj diff --git a/web/src/main/resources/assets/player/FOnewearlAccessory2.nj b/web/src/jsMain/resources/assets/player/FOnewearlAccessory2.nj similarity index 100% rename from web/src/main/resources/assets/player/FOnewearlAccessory2.nj rename to web/src/jsMain/resources/assets/player/FOnewearlAccessory2.nj diff --git a/web/src/main/resources/assets/player/FOnewearlAccessory3.nj b/web/src/jsMain/resources/assets/player/FOnewearlAccessory3.nj similarity index 100% rename from web/src/main/resources/assets/player/FOnewearlAccessory3.nj rename to web/src/jsMain/resources/assets/player/FOnewearlAccessory3.nj diff --git a/web/src/main/resources/assets/player/FOnewearlAccessory4.nj b/web/src/jsMain/resources/assets/player/FOnewearlAccessory4.nj similarity index 100% rename from web/src/main/resources/assets/player/FOnewearlAccessory4.nj rename to web/src/jsMain/resources/assets/player/FOnewearlAccessory4.nj diff --git a/web/src/main/resources/assets/player/FOnewearlAccessory5.nj b/web/src/jsMain/resources/assets/player/FOnewearlAccessory5.nj similarity index 100% rename from web/src/main/resources/assets/player/FOnewearlAccessory5.nj rename to web/src/jsMain/resources/assets/player/FOnewearlAccessory5.nj diff --git a/web/src/main/resources/assets/player/FOnewearlAccessory6.nj b/web/src/jsMain/resources/assets/player/FOnewearlAccessory6.nj similarity index 100% rename from web/src/main/resources/assets/player/FOnewearlAccessory6.nj rename to web/src/jsMain/resources/assets/player/FOnewearlAccessory6.nj diff --git a/web/src/main/resources/assets/player/FOnewearlAccessory7.nj b/web/src/jsMain/resources/assets/player/FOnewearlAccessory7.nj similarity index 100% rename from web/src/main/resources/assets/player/FOnewearlAccessory7.nj rename to web/src/jsMain/resources/assets/player/FOnewearlAccessory7.nj diff --git a/web/src/main/resources/assets/player/FOnewearlAccessory8.nj b/web/src/jsMain/resources/assets/player/FOnewearlAccessory8.nj similarity index 100% rename from web/src/main/resources/assets/player/FOnewearlAccessory8.nj rename to web/src/jsMain/resources/assets/player/FOnewearlAccessory8.nj diff --git a/web/src/main/resources/assets/player/FOnewearlAccessory9.nj b/web/src/jsMain/resources/assets/player/FOnewearlAccessory9.nj similarity index 100% rename from web/src/main/resources/assets/player/FOnewearlAccessory9.nj rename to web/src/jsMain/resources/assets/player/FOnewearlAccessory9.nj diff --git a/web/src/main/resources/assets/player/FOnewearlBody.nj b/web/src/jsMain/resources/assets/player/FOnewearlBody.nj similarity index 100% rename from web/src/main/resources/assets/player/FOnewearlBody.nj rename to web/src/jsMain/resources/assets/player/FOnewearlBody.nj diff --git a/web/src/main/resources/assets/player/FOnewearlHair0.nj b/web/src/jsMain/resources/assets/player/FOnewearlHair0.nj similarity index 100% rename from web/src/main/resources/assets/player/FOnewearlHair0.nj rename to web/src/jsMain/resources/assets/player/FOnewearlHair0.nj diff --git a/web/src/main/resources/assets/player/FOnewearlHair1.nj b/web/src/jsMain/resources/assets/player/FOnewearlHair1.nj similarity index 100% rename from web/src/main/resources/assets/player/FOnewearlHair1.nj rename to web/src/jsMain/resources/assets/player/FOnewearlHair1.nj diff --git a/web/src/main/resources/assets/player/FOnewearlHair2.nj b/web/src/jsMain/resources/assets/player/FOnewearlHair2.nj similarity index 100% rename from web/src/main/resources/assets/player/FOnewearlHair2.nj rename to web/src/jsMain/resources/assets/player/FOnewearlHair2.nj diff --git a/web/src/main/resources/assets/player/FOnewearlHair3.nj b/web/src/jsMain/resources/assets/player/FOnewearlHair3.nj similarity index 100% rename from web/src/main/resources/assets/player/FOnewearlHair3.nj rename to web/src/jsMain/resources/assets/player/FOnewearlHair3.nj diff --git a/web/src/main/resources/assets/player/FOnewearlHair4.nj b/web/src/jsMain/resources/assets/player/FOnewearlHair4.nj similarity index 100% rename from web/src/main/resources/assets/player/FOnewearlHair4.nj rename to web/src/jsMain/resources/assets/player/FOnewearlHair4.nj diff --git a/web/src/main/resources/assets/player/FOnewearlHair5.nj b/web/src/jsMain/resources/assets/player/FOnewearlHair5.nj similarity index 100% rename from web/src/main/resources/assets/player/FOnewearlHair5.nj rename to web/src/jsMain/resources/assets/player/FOnewearlHair5.nj diff --git a/web/src/main/resources/assets/player/FOnewearlHair6.nj b/web/src/jsMain/resources/assets/player/FOnewearlHair6.nj similarity index 100% rename from web/src/main/resources/assets/player/FOnewearlHair6.nj rename to web/src/jsMain/resources/assets/player/FOnewearlHair6.nj diff --git a/web/src/main/resources/assets/player/FOnewearlHair7.nj b/web/src/jsMain/resources/assets/player/FOnewearlHair7.nj similarity index 100% rename from web/src/main/resources/assets/player/FOnewearlHair7.nj rename to web/src/jsMain/resources/assets/player/FOnewearlHair7.nj diff --git a/web/src/main/resources/assets/player/FOnewearlHair8.nj b/web/src/jsMain/resources/assets/player/FOnewearlHair8.nj similarity index 100% rename from web/src/main/resources/assets/player/FOnewearlHair8.nj rename to web/src/jsMain/resources/assets/player/FOnewearlHair8.nj diff --git a/web/src/main/resources/assets/player/FOnewearlHair9.nj b/web/src/jsMain/resources/assets/player/FOnewearlHair9.nj similarity index 100% rename from web/src/main/resources/assets/player/FOnewearlHair9.nj rename to web/src/jsMain/resources/assets/player/FOnewearlHair9.nj diff --git a/web/src/main/resources/assets/player/FOnewearlHead0.nj b/web/src/jsMain/resources/assets/player/FOnewearlHead0.nj similarity index 100% rename from web/src/main/resources/assets/player/FOnewearlHead0.nj rename to web/src/jsMain/resources/assets/player/FOnewearlHead0.nj diff --git a/web/src/main/resources/assets/player/FOnewearlTex.afs b/web/src/jsMain/resources/assets/player/FOnewearlTex.afs similarity index 100% rename from web/src/main/resources/assets/player/FOnewearlTex.afs rename to web/src/jsMain/resources/assets/player/FOnewearlTex.afs diff --git a/web/src/main/resources/assets/player/FOnewmAccessory0.nj b/web/src/jsMain/resources/assets/player/FOnewmAccessory0.nj similarity index 100% rename from web/src/main/resources/assets/player/FOnewmAccessory0.nj rename to web/src/jsMain/resources/assets/player/FOnewmAccessory0.nj diff --git a/web/src/main/resources/assets/player/FOnewmAccessory1.nj b/web/src/jsMain/resources/assets/player/FOnewmAccessory1.nj similarity index 100% rename from web/src/main/resources/assets/player/FOnewmAccessory1.nj rename to web/src/jsMain/resources/assets/player/FOnewmAccessory1.nj diff --git a/web/src/main/resources/assets/player/FOnewmAccessory2.nj b/web/src/jsMain/resources/assets/player/FOnewmAccessory2.nj similarity index 100% rename from web/src/main/resources/assets/player/FOnewmAccessory2.nj rename to web/src/jsMain/resources/assets/player/FOnewmAccessory2.nj diff --git a/web/src/main/resources/assets/player/FOnewmAccessory3.nj b/web/src/jsMain/resources/assets/player/FOnewmAccessory3.nj similarity index 100% rename from web/src/main/resources/assets/player/FOnewmAccessory3.nj rename to web/src/jsMain/resources/assets/player/FOnewmAccessory3.nj diff --git a/web/src/main/resources/assets/player/FOnewmAccessory4.nj b/web/src/jsMain/resources/assets/player/FOnewmAccessory4.nj similarity index 100% rename from web/src/main/resources/assets/player/FOnewmAccessory4.nj rename to web/src/jsMain/resources/assets/player/FOnewmAccessory4.nj diff --git a/web/src/main/resources/assets/player/FOnewmAccessory5.nj b/web/src/jsMain/resources/assets/player/FOnewmAccessory5.nj similarity index 100% rename from web/src/main/resources/assets/player/FOnewmAccessory5.nj rename to web/src/jsMain/resources/assets/player/FOnewmAccessory5.nj diff --git a/web/src/main/resources/assets/player/FOnewmAccessory6.nj b/web/src/jsMain/resources/assets/player/FOnewmAccessory6.nj similarity index 100% rename from web/src/main/resources/assets/player/FOnewmAccessory6.nj rename to web/src/jsMain/resources/assets/player/FOnewmAccessory6.nj diff --git a/web/src/main/resources/assets/player/FOnewmAccessory7.nj b/web/src/jsMain/resources/assets/player/FOnewmAccessory7.nj similarity index 100% rename from web/src/main/resources/assets/player/FOnewmAccessory7.nj rename to web/src/jsMain/resources/assets/player/FOnewmAccessory7.nj diff --git a/web/src/main/resources/assets/player/FOnewmAccessory8.nj b/web/src/jsMain/resources/assets/player/FOnewmAccessory8.nj similarity index 100% rename from web/src/main/resources/assets/player/FOnewmAccessory8.nj rename to web/src/jsMain/resources/assets/player/FOnewmAccessory8.nj diff --git a/web/src/main/resources/assets/player/FOnewmAccessory9.nj b/web/src/jsMain/resources/assets/player/FOnewmAccessory9.nj similarity index 100% rename from web/src/main/resources/assets/player/FOnewmAccessory9.nj rename to web/src/jsMain/resources/assets/player/FOnewmAccessory9.nj diff --git a/web/src/main/resources/assets/player/FOnewmBody.nj b/web/src/jsMain/resources/assets/player/FOnewmBody.nj similarity index 100% rename from web/src/main/resources/assets/player/FOnewmBody.nj rename to web/src/jsMain/resources/assets/player/FOnewmBody.nj diff --git a/web/src/main/resources/assets/player/FOnewmHair0.nj b/web/src/jsMain/resources/assets/player/FOnewmHair0.nj similarity index 100% rename from web/src/main/resources/assets/player/FOnewmHair0.nj rename to web/src/jsMain/resources/assets/player/FOnewmHair0.nj diff --git a/web/src/main/resources/assets/player/FOnewmHair1.nj b/web/src/jsMain/resources/assets/player/FOnewmHair1.nj similarity index 100% rename from web/src/main/resources/assets/player/FOnewmHair1.nj rename to web/src/jsMain/resources/assets/player/FOnewmHair1.nj diff --git a/web/src/main/resources/assets/player/FOnewmHair2.nj b/web/src/jsMain/resources/assets/player/FOnewmHair2.nj similarity index 100% rename from web/src/main/resources/assets/player/FOnewmHair2.nj rename to web/src/jsMain/resources/assets/player/FOnewmHair2.nj diff --git a/web/src/main/resources/assets/player/FOnewmHair3.nj b/web/src/jsMain/resources/assets/player/FOnewmHair3.nj similarity index 100% rename from web/src/main/resources/assets/player/FOnewmHair3.nj rename to web/src/jsMain/resources/assets/player/FOnewmHair3.nj diff --git a/web/src/main/resources/assets/player/FOnewmHair4.nj b/web/src/jsMain/resources/assets/player/FOnewmHair4.nj similarity index 100% rename from web/src/main/resources/assets/player/FOnewmHair4.nj rename to web/src/jsMain/resources/assets/player/FOnewmHair4.nj diff --git a/web/src/main/resources/assets/player/FOnewmHair5.nj b/web/src/jsMain/resources/assets/player/FOnewmHair5.nj similarity index 100% rename from web/src/main/resources/assets/player/FOnewmHair5.nj rename to web/src/jsMain/resources/assets/player/FOnewmHair5.nj diff --git a/web/src/main/resources/assets/player/FOnewmHair6.nj b/web/src/jsMain/resources/assets/player/FOnewmHair6.nj similarity index 100% rename from web/src/main/resources/assets/player/FOnewmHair6.nj rename to web/src/jsMain/resources/assets/player/FOnewmHair6.nj diff --git a/web/src/main/resources/assets/player/FOnewmHair7.nj b/web/src/jsMain/resources/assets/player/FOnewmHair7.nj similarity index 100% rename from web/src/main/resources/assets/player/FOnewmHair7.nj rename to web/src/jsMain/resources/assets/player/FOnewmHair7.nj diff --git a/web/src/main/resources/assets/player/FOnewmHair8.nj b/web/src/jsMain/resources/assets/player/FOnewmHair8.nj similarity index 100% rename from web/src/main/resources/assets/player/FOnewmHair8.nj rename to web/src/jsMain/resources/assets/player/FOnewmHair8.nj diff --git a/web/src/main/resources/assets/player/FOnewmHair9.nj b/web/src/jsMain/resources/assets/player/FOnewmHair9.nj similarity index 100% rename from web/src/main/resources/assets/player/FOnewmHair9.nj rename to web/src/jsMain/resources/assets/player/FOnewmHair9.nj diff --git a/web/src/main/resources/assets/player/FOnewmHead0.nj b/web/src/jsMain/resources/assets/player/FOnewmHead0.nj similarity index 100% rename from web/src/main/resources/assets/player/FOnewmHead0.nj rename to web/src/jsMain/resources/assets/player/FOnewmHead0.nj diff --git a/web/src/main/resources/assets/player/FOnewmTex.afs b/web/src/jsMain/resources/assets/player/FOnewmTex.afs similarity index 100% rename from web/src/main/resources/assets/player/FOnewmTex.afs rename to web/src/jsMain/resources/assets/player/FOnewmTex.afs diff --git a/web/src/main/resources/assets/player/HUcasealBody.nj b/web/src/jsMain/resources/assets/player/HUcasealBody.nj similarity index 100% rename from web/src/main/resources/assets/player/HUcasealBody.nj rename to web/src/jsMain/resources/assets/player/HUcasealBody.nj diff --git a/web/src/main/resources/assets/player/HUcasealHead0.nj b/web/src/jsMain/resources/assets/player/HUcasealHead0.nj similarity index 100% rename from web/src/main/resources/assets/player/HUcasealHead0.nj rename to web/src/jsMain/resources/assets/player/HUcasealHead0.nj diff --git a/web/src/main/resources/assets/player/HUcasealHead1.nj b/web/src/jsMain/resources/assets/player/HUcasealHead1.nj similarity index 100% rename from web/src/main/resources/assets/player/HUcasealHead1.nj rename to web/src/jsMain/resources/assets/player/HUcasealHead1.nj diff --git a/web/src/main/resources/assets/player/HUcasealHead2.nj b/web/src/jsMain/resources/assets/player/HUcasealHead2.nj similarity index 100% rename from web/src/main/resources/assets/player/HUcasealHead2.nj rename to web/src/jsMain/resources/assets/player/HUcasealHead2.nj diff --git a/web/src/main/resources/assets/player/HUcasealHead3.nj b/web/src/jsMain/resources/assets/player/HUcasealHead3.nj similarity index 100% rename from web/src/main/resources/assets/player/HUcasealHead3.nj rename to web/src/jsMain/resources/assets/player/HUcasealHead3.nj diff --git a/web/src/main/resources/assets/player/HUcasealHead4.nj b/web/src/jsMain/resources/assets/player/HUcasealHead4.nj similarity index 100% rename from web/src/main/resources/assets/player/HUcasealHead4.nj rename to web/src/jsMain/resources/assets/player/HUcasealHead4.nj diff --git a/web/src/main/resources/assets/player/HUcasealTex.afs b/web/src/jsMain/resources/assets/player/HUcasealTex.afs similarity index 100% rename from web/src/main/resources/assets/player/HUcasealTex.afs rename to web/src/jsMain/resources/assets/player/HUcasealTex.afs diff --git a/web/src/main/resources/assets/player/HUcastBody.nj b/web/src/jsMain/resources/assets/player/HUcastBody.nj similarity index 100% rename from web/src/main/resources/assets/player/HUcastBody.nj rename to web/src/jsMain/resources/assets/player/HUcastBody.nj diff --git a/web/src/main/resources/assets/player/HUcastHead0.nj b/web/src/jsMain/resources/assets/player/HUcastHead0.nj similarity index 100% rename from web/src/main/resources/assets/player/HUcastHead0.nj rename to web/src/jsMain/resources/assets/player/HUcastHead0.nj diff --git a/web/src/main/resources/assets/player/HUcastHead1.nj b/web/src/jsMain/resources/assets/player/HUcastHead1.nj similarity index 100% rename from web/src/main/resources/assets/player/HUcastHead1.nj rename to web/src/jsMain/resources/assets/player/HUcastHead1.nj diff --git a/web/src/main/resources/assets/player/HUcastHead2.nj b/web/src/jsMain/resources/assets/player/HUcastHead2.nj similarity index 100% rename from web/src/main/resources/assets/player/HUcastHead2.nj rename to web/src/jsMain/resources/assets/player/HUcastHead2.nj diff --git a/web/src/main/resources/assets/player/HUcastHead3.nj b/web/src/jsMain/resources/assets/player/HUcastHead3.nj similarity index 100% rename from web/src/main/resources/assets/player/HUcastHead3.nj rename to web/src/jsMain/resources/assets/player/HUcastHead3.nj diff --git a/web/src/main/resources/assets/player/HUcastHead4.nj b/web/src/jsMain/resources/assets/player/HUcastHead4.nj similarity index 100% rename from web/src/main/resources/assets/player/HUcastHead4.nj rename to web/src/jsMain/resources/assets/player/HUcastHead4.nj diff --git a/web/src/main/resources/assets/player/HUcastTex.afs b/web/src/jsMain/resources/assets/player/HUcastTex.afs similarity index 100% rename from web/src/main/resources/assets/player/HUcastTex.afs rename to web/src/jsMain/resources/assets/player/HUcastTex.afs diff --git a/web/src/main/resources/assets/player/HUmarAccessory6.nj b/web/src/jsMain/resources/assets/player/HUmarAccessory6.nj similarity index 100% rename from web/src/main/resources/assets/player/HUmarAccessory6.nj rename to web/src/jsMain/resources/assets/player/HUmarAccessory6.nj diff --git a/web/src/main/resources/assets/player/HUmarBody.nj b/web/src/jsMain/resources/assets/player/HUmarBody.nj similarity index 100% rename from web/src/main/resources/assets/player/HUmarBody.nj rename to web/src/jsMain/resources/assets/player/HUmarBody.nj diff --git a/web/src/main/resources/assets/player/HUmarHair0.nj b/web/src/jsMain/resources/assets/player/HUmarHair0.nj similarity index 100% rename from web/src/main/resources/assets/player/HUmarHair0.nj rename to web/src/jsMain/resources/assets/player/HUmarHair0.nj diff --git a/web/src/main/resources/assets/player/HUmarHair1.nj b/web/src/jsMain/resources/assets/player/HUmarHair1.nj similarity index 100% rename from web/src/main/resources/assets/player/HUmarHair1.nj rename to web/src/jsMain/resources/assets/player/HUmarHair1.nj diff --git a/web/src/main/resources/assets/player/HUmarHair2.nj b/web/src/jsMain/resources/assets/player/HUmarHair2.nj similarity index 100% rename from web/src/main/resources/assets/player/HUmarHair2.nj rename to web/src/jsMain/resources/assets/player/HUmarHair2.nj diff --git a/web/src/main/resources/assets/player/HUmarHair3.nj b/web/src/jsMain/resources/assets/player/HUmarHair3.nj similarity index 100% rename from web/src/main/resources/assets/player/HUmarHair3.nj rename to web/src/jsMain/resources/assets/player/HUmarHair3.nj diff --git a/web/src/main/resources/assets/player/HUmarHair4.nj b/web/src/jsMain/resources/assets/player/HUmarHair4.nj similarity index 100% rename from web/src/main/resources/assets/player/HUmarHair4.nj rename to web/src/jsMain/resources/assets/player/HUmarHair4.nj diff --git a/web/src/main/resources/assets/player/HUmarHair5.nj b/web/src/jsMain/resources/assets/player/HUmarHair5.nj similarity index 100% rename from web/src/main/resources/assets/player/HUmarHair5.nj rename to web/src/jsMain/resources/assets/player/HUmarHair5.nj diff --git a/web/src/main/resources/assets/player/HUmarHair6.nj b/web/src/jsMain/resources/assets/player/HUmarHair6.nj similarity index 100% rename from web/src/main/resources/assets/player/HUmarHair6.nj rename to web/src/jsMain/resources/assets/player/HUmarHair6.nj diff --git a/web/src/main/resources/assets/player/HUmarHair7.nj b/web/src/jsMain/resources/assets/player/HUmarHair7.nj similarity index 100% rename from web/src/main/resources/assets/player/HUmarHair7.nj rename to web/src/jsMain/resources/assets/player/HUmarHair7.nj diff --git a/web/src/main/resources/assets/player/HUmarHair8.nj b/web/src/jsMain/resources/assets/player/HUmarHair8.nj similarity index 100% rename from web/src/main/resources/assets/player/HUmarHair8.nj rename to web/src/jsMain/resources/assets/player/HUmarHair8.nj diff --git a/web/src/main/resources/assets/player/HUmarHair9.nj b/web/src/jsMain/resources/assets/player/HUmarHair9.nj similarity index 100% rename from web/src/main/resources/assets/player/HUmarHair9.nj rename to web/src/jsMain/resources/assets/player/HUmarHair9.nj diff --git a/web/src/main/resources/assets/player/HUmarHead0.nj b/web/src/jsMain/resources/assets/player/HUmarHead0.nj similarity index 100% rename from web/src/main/resources/assets/player/HUmarHead0.nj rename to web/src/jsMain/resources/assets/player/HUmarHead0.nj diff --git a/web/src/main/resources/assets/player/HUmarTex.afs b/web/src/jsMain/resources/assets/player/HUmarTex.afs similarity index 100% rename from web/src/main/resources/assets/player/HUmarTex.afs rename to web/src/jsMain/resources/assets/player/HUmarTex.afs diff --git a/web/src/main/resources/assets/player/HUnewearlBody.nj b/web/src/jsMain/resources/assets/player/HUnewearlBody.nj similarity index 100% rename from web/src/main/resources/assets/player/HUnewearlBody.nj rename to web/src/jsMain/resources/assets/player/HUnewearlBody.nj diff --git a/web/src/main/resources/assets/player/HUnewearlHair0.nj b/web/src/jsMain/resources/assets/player/HUnewearlHair0.nj similarity index 100% rename from web/src/main/resources/assets/player/HUnewearlHair0.nj rename to web/src/jsMain/resources/assets/player/HUnewearlHair0.nj diff --git a/web/src/main/resources/assets/player/HUnewearlHair1.nj b/web/src/jsMain/resources/assets/player/HUnewearlHair1.nj similarity index 100% rename from web/src/main/resources/assets/player/HUnewearlHair1.nj rename to web/src/jsMain/resources/assets/player/HUnewearlHair1.nj diff --git a/web/src/main/resources/assets/player/HUnewearlHair2.nj b/web/src/jsMain/resources/assets/player/HUnewearlHair2.nj similarity index 100% rename from web/src/main/resources/assets/player/HUnewearlHair2.nj rename to web/src/jsMain/resources/assets/player/HUnewearlHair2.nj diff --git a/web/src/main/resources/assets/player/HUnewearlHair3.nj b/web/src/jsMain/resources/assets/player/HUnewearlHair3.nj similarity index 100% rename from web/src/main/resources/assets/player/HUnewearlHair3.nj rename to web/src/jsMain/resources/assets/player/HUnewearlHair3.nj diff --git a/web/src/main/resources/assets/player/HUnewearlHair4.nj b/web/src/jsMain/resources/assets/player/HUnewearlHair4.nj similarity index 100% rename from web/src/main/resources/assets/player/HUnewearlHair4.nj rename to web/src/jsMain/resources/assets/player/HUnewearlHair4.nj diff --git a/web/src/main/resources/assets/player/HUnewearlHair5.nj b/web/src/jsMain/resources/assets/player/HUnewearlHair5.nj similarity index 100% rename from web/src/main/resources/assets/player/HUnewearlHair5.nj rename to web/src/jsMain/resources/assets/player/HUnewearlHair5.nj diff --git a/web/src/main/resources/assets/player/HUnewearlHair6.nj b/web/src/jsMain/resources/assets/player/HUnewearlHair6.nj similarity index 100% rename from web/src/main/resources/assets/player/HUnewearlHair6.nj rename to web/src/jsMain/resources/assets/player/HUnewearlHair6.nj diff --git a/web/src/main/resources/assets/player/HUnewearlHair7.nj b/web/src/jsMain/resources/assets/player/HUnewearlHair7.nj similarity index 100% rename from web/src/main/resources/assets/player/HUnewearlHair7.nj rename to web/src/jsMain/resources/assets/player/HUnewearlHair7.nj diff --git a/web/src/main/resources/assets/player/HUnewearlHair8.nj b/web/src/jsMain/resources/assets/player/HUnewearlHair8.nj similarity index 100% rename from web/src/main/resources/assets/player/HUnewearlHair8.nj rename to web/src/jsMain/resources/assets/player/HUnewearlHair8.nj diff --git a/web/src/main/resources/assets/player/HUnewearlHair9.nj b/web/src/jsMain/resources/assets/player/HUnewearlHair9.nj similarity index 100% rename from web/src/main/resources/assets/player/HUnewearlHair9.nj rename to web/src/jsMain/resources/assets/player/HUnewearlHair9.nj diff --git a/web/src/main/resources/assets/player/HUnewearlHead0.nj b/web/src/jsMain/resources/assets/player/HUnewearlHead0.nj similarity index 100% rename from web/src/main/resources/assets/player/HUnewearlHead0.nj rename to web/src/jsMain/resources/assets/player/HUnewearlHead0.nj diff --git a/web/src/main/resources/assets/player/HUnewearlTex.afs b/web/src/jsMain/resources/assets/player/HUnewearlTex.afs similarity index 100% rename from web/src/main/resources/assets/player/HUnewearlTex.afs rename to web/src/jsMain/resources/assets/player/HUnewearlTex.afs diff --git a/web/src/main/resources/assets/player/RAcasealBody.nj b/web/src/jsMain/resources/assets/player/RAcasealBody.nj similarity index 100% rename from web/src/main/resources/assets/player/RAcasealBody.nj rename to web/src/jsMain/resources/assets/player/RAcasealBody.nj diff --git a/web/src/main/resources/assets/player/RAcasealHead0.nj b/web/src/jsMain/resources/assets/player/RAcasealHead0.nj similarity index 100% rename from web/src/main/resources/assets/player/RAcasealHead0.nj rename to web/src/jsMain/resources/assets/player/RAcasealHead0.nj diff --git a/web/src/main/resources/assets/player/RAcasealHead1.nj b/web/src/jsMain/resources/assets/player/RAcasealHead1.nj similarity index 100% rename from web/src/main/resources/assets/player/RAcasealHead1.nj rename to web/src/jsMain/resources/assets/player/RAcasealHead1.nj diff --git a/web/src/main/resources/assets/player/RAcasealHead2.nj b/web/src/jsMain/resources/assets/player/RAcasealHead2.nj similarity index 100% rename from web/src/main/resources/assets/player/RAcasealHead2.nj rename to web/src/jsMain/resources/assets/player/RAcasealHead2.nj diff --git a/web/src/main/resources/assets/player/RAcasealHead3.nj b/web/src/jsMain/resources/assets/player/RAcasealHead3.nj similarity index 100% rename from web/src/main/resources/assets/player/RAcasealHead3.nj rename to web/src/jsMain/resources/assets/player/RAcasealHead3.nj diff --git a/web/src/main/resources/assets/player/RAcasealHead4.nj b/web/src/jsMain/resources/assets/player/RAcasealHead4.nj similarity index 100% rename from web/src/main/resources/assets/player/RAcasealHead4.nj rename to web/src/jsMain/resources/assets/player/RAcasealHead4.nj diff --git a/web/src/main/resources/assets/player/RAcasealTex.afs b/web/src/jsMain/resources/assets/player/RAcasealTex.afs similarity index 100% rename from web/src/main/resources/assets/player/RAcasealTex.afs rename to web/src/jsMain/resources/assets/player/RAcasealTex.afs diff --git a/web/src/main/resources/assets/player/RAcastBody.nj b/web/src/jsMain/resources/assets/player/RAcastBody.nj similarity index 100% rename from web/src/main/resources/assets/player/RAcastBody.nj rename to web/src/jsMain/resources/assets/player/RAcastBody.nj diff --git a/web/src/main/resources/assets/player/RAcastHead0.nj b/web/src/jsMain/resources/assets/player/RAcastHead0.nj similarity index 100% rename from web/src/main/resources/assets/player/RAcastHead0.nj rename to web/src/jsMain/resources/assets/player/RAcastHead0.nj diff --git a/web/src/main/resources/assets/player/RAcastHead1.nj b/web/src/jsMain/resources/assets/player/RAcastHead1.nj similarity index 100% rename from web/src/main/resources/assets/player/RAcastHead1.nj rename to web/src/jsMain/resources/assets/player/RAcastHead1.nj diff --git a/web/src/main/resources/assets/player/RAcastHead2.nj b/web/src/jsMain/resources/assets/player/RAcastHead2.nj similarity index 100% rename from web/src/main/resources/assets/player/RAcastHead2.nj rename to web/src/jsMain/resources/assets/player/RAcastHead2.nj diff --git a/web/src/main/resources/assets/player/RAcastHead3.nj b/web/src/jsMain/resources/assets/player/RAcastHead3.nj similarity index 100% rename from web/src/main/resources/assets/player/RAcastHead3.nj rename to web/src/jsMain/resources/assets/player/RAcastHead3.nj diff --git a/web/src/main/resources/assets/player/RAcastHead4.nj b/web/src/jsMain/resources/assets/player/RAcastHead4.nj similarity index 100% rename from web/src/main/resources/assets/player/RAcastHead4.nj rename to web/src/jsMain/resources/assets/player/RAcastHead4.nj diff --git a/web/src/main/resources/assets/player/RAcastTex.afs b/web/src/jsMain/resources/assets/player/RAcastTex.afs similarity index 100% rename from web/src/main/resources/assets/player/RAcastTex.afs rename to web/src/jsMain/resources/assets/player/RAcastTex.afs diff --git a/web/src/main/resources/assets/player/RAmarAccessory0.nj b/web/src/jsMain/resources/assets/player/RAmarAccessory0.nj similarity index 100% rename from web/src/main/resources/assets/player/RAmarAccessory0.nj rename to web/src/jsMain/resources/assets/player/RAmarAccessory0.nj diff --git a/web/src/main/resources/assets/player/RAmarAccessory1.nj b/web/src/jsMain/resources/assets/player/RAmarAccessory1.nj similarity index 100% rename from web/src/main/resources/assets/player/RAmarAccessory1.nj rename to web/src/jsMain/resources/assets/player/RAmarAccessory1.nj diff --git a/web/src/main/resources/assets/player/RAmarAccessory2.nj b/web/src/jsMain/resources/assets/player/RAmarAccessory2.nj similarity index 100% rename from web/src/main/resources/assets/player/RAmarAccessory2.nj rename to web/src/jsMain/resources/assets/player/RAmarAccessory2.nj diff --git a/web/src/main/resources/assets/player/RAmarAccessory3.nj b/web/src/jsMain/resources/assets/player/RAmarAccessory3.nj similarity index 100% rename from web/src/main/resources/assets/player/RAmarAccessory3.nj rename to web/src/jsMain/resources/assets/player/RAmarAccessory3.nj diff --git a/web/src/main/resources/assets/player/RAmarAccessory4.nj b/web/src/jsMain/resources/assets/player/RAmarAccessory4.nj similarity index 100% rename from web/src/main/resources/assets/player/RAmarAccessory4.nj rename to web/src/jsMain/resources/assets/player/RAmarAccessory4.nj diff --git a/web/src/main/resources/assets/player/RAmarAccessory5.nj b/web/src/jsMain/resources/assets/player/RAmarAccessory5.nj similarity index 100% rename from web/src/main/resources/assets/player/RAmarAccessory5.nj rename to web/src/jsMain/resources/assets/player/RAmarAccessory5.nj diff --git a/web/src/main/resources/assets/player/RAmarAccessory6.nj b/web/src/jsMain/resources/assets/player/RAmarAccessory6.nj similarity index 100% rename from web/src/main/resources/assets/player/RAmarAccessory6.nj rename to web/src/jsMain/resources/assets/player/RAmarAccessory6.nj diff --git a/web/src/main/resources/assets/player/RAmarAccessory7.nj b/web/src/jsMain/resources/assets/player/RAmarAccessory7.nj similarity index 100% rename from web/src/main/resources/assets/player/RAmarAccessory7.nj rename to web/src/jsMain/resources/assets/player/RAmarAccessory7.nj diff --git a/web/src/main/resources/assets/player/RAmarAccessory8.nj b/web/src/jsMain/resources/assets/player/RAmarAccessory8.nj similarity index 100% rename from web/src/main/resources/assets/player/RAmarAccessory8.nj rename to web/src/jsMain/resources/assets/player/RAmarAccessory8.nj diff --git a/web/src/main/resources/assets/player/RAmarAccessory9.nj b/web/src/jsMain/resources/assets/player/RAmarAccessory9.nj similarity index 100% rename from web/src/main/resources/assets/player/RAmarAccessory9.nj rename to web/src/jsMain/resources/assets/player/RAmarAccessory9.nj diff --git a/web/src/main/resources/assets/player/RAmarBody.nj b/web/src/jsMain/resources/assets/player/RAmarBody.nj similarity index 100% rename from web/src/main/resources/assets/player/RAmarBody.nj rename to web/src/jsMain/resources/assets/player/RAmarBody.nj diff --git a/web/src/main/resources/assets/player/RAmarHair0.nj b/web/src/jsMain/resources/assets/player/RAmarHair0.nj similarity index 100% rename from web/src/main/resources/assets/player/RAmarHair0.nj rename to web/src/jsMain/resources/assets/player/RAmarHair0.nj diff --git a/web/src/main/resources/assets/player/RAmarHair1.nj b/web/src/jsMain/resources/assets/player/RAmarHair1.nj similarity index 100% rename from web/src/main/resources/assets/player/RAmarHair1.nj rename to web/src/jsMain/resources/assets/player/RAmarHair1.nj diff --git a/web/src/main/resources/assets/player/RAmarHair2.nj b/web/src/jsMain/resources/assets/player/RAmarHair2.nj similarity index 100% rename from web/src/main/resources/assets/player/RAmarHair2.nj rename to web/src/jsMain/resources/assets/player/RAmarHair2.nj diff --git a/web/src/main/resources/assets/player/RAmarHair3.nj b/web/src/jsMain/resources/assets/player/RAmarHair3.nj similarity index 100% rename from web/src/main/resources/assets/player/RAmarHair3.nj rename to web/src/jsMain/resources/assets/player/RAmarHair3.nj diff --git a/web/src/main/resources/assets/player/RAmarHair4.nj b/web/src/jsMain/resources/assets/player/RAmarHair4.nj similarity index 100% rename from web/src/main/resources/assets/player/RAmarHair4.nj rename to web/src/jsMain/resources/assets/player/RAmarHair4.nj diff --git a/web/src/main/resources/assets/player/RAmarHair5.nj b/web/src/jsMain/resources/assets/player/RAmarHair5.nj similarity index 100% rename from web/src/main/resources/assets/player/RAmarHair5.nj rename to web/src/jsMain/resources/assets/player/RAmarHair5.nj diff --git a/web/src/main/resources/assets/player/RAmarHair6.nj b/web/src/jsMain/resources/assets/player/RAmarHair6.nj similarity index 100% rename from web/src/main/resources/assets/player/RAmarHair6.nj rename to web/src/jsMain/resources/assets/player/RAmarHair6.nj diff --git a/web/src/main/resources/assets/player/RAmarHair7.nj b/web/src/jsMain/resources/assets/player/RAmarHair7.nj similarity index 100% rename from web/src/main/resources/assets/player/RAmarHair7.nj rename to web/src/jsMain/resources/assets/player/RAmarHair7.nj diff --git a/web/src/main/resources/assets/player/RAmarHair8.nj b/web/src/jsMain/resources/assets/player/RAmarHair8.nj similarity index 100% rename from web/src/main/resources/assets/player/RAmarHair8.nj rename to web/src/jsMain/resources/assets/player/RAmarHair8.nj diff --git a/web/src/main/resources/assets/player/RAmarHair9.nj b/web/src/jsMain/resources/assets/player/RAmarHair9.nj similarity index 100% rename from web/src/main/resources/assets/player/RAmarHair9.nj rename to web/src/jsMain/resources/assets/player/RAmarHair9.nj diff --git a/web/src/main/resources/assets/player/RAmarHead0.nj b/web/src/jsMain/resources/assets/player/RAmarHead0.nj similarity index 100% rename from web/src/main/resources/assets/player/RAmarHead0.nj rename to web/src/jsMain/resources/assets/player/RAmarHead0.nj diff --git a/web/src/main/resources/assets/player/RAmarTex.afs b/web/src/jsMain/resources/assets/player/RAmarTex.afs similarity index 100% rename from web/src/main/resources/assets/player/RAmarTex.afs rename to web/src/jsMain/resources/assets/player/RAmarTex.afs diff --git a/web/src/main/resources/assets/player/RAmarlAccessory0.nj b/web/src/jsMain/resources/assets/player/RAmarlAccessory0.nj similarity index 100% rename from web/src/main/resources/assets/player/RAmarlAccessory0.nj rename to web/src/jsMain/resources/assets/player/RAmarlAccessory0.nj diff --git a/web/src/main/resources/assets/player/RAmarlAccessory1.nj b/web/src/jsMain/resources/assets/player/RAmarlAccessory1.nj similarity index 100% rename from web/src/main/resources/assets/player/RAmarlAccessory1.nj rename to web/src/jsMain/resources/assets/player/RAmarlAccessory1.nj diff --git a/web/src/main/resources/assets/player/RAmarlAccessory2.nj b/web/src/jsMain/resources/assets/player/RAmarlAccessory2.nj similarity index 100% rename from web/src/main/resources/assets/player/RAmarlAccessory2.nj rename to web/src/jsMain/resources/assets/player/RAmarlAccessory2.nj diff --git a/web/src/main/resources/assets/player/RAmarlAccessory3.nj b/web/src/jsMain/resources/assets/player/RAmarlAccessory3.nj similarity index 100% rename from web/src/main/resources/assets/player/RAmarlAccessory3.nj rename to web/src/jsMain/resources/assets/player/RAmarlAccessory3.nj diff --git a/web/src/main/resources/assets/player/RAmarlAccessory4.nj b/web/src/jsMain/resources/assets/player/RAmarlAccessory4.nj similarity index 100% rename from web/src/main/resources/assets/player/RAmarlAccessory4.nj rename to web/src/jsMain/resources/assets/player/RAmarlAccessory4.nj diff --git a/web/src/main/resources/assets/player/RAmarlAccessory5.nj b/web/src/jsMain/resources/assets/player/RAmarlAccessory5.nj similarity index 100% rename from web/src/main/resources/assets/player/RAmarlAccessory5.nj rename to web/src/jsMain/resources/assets/player/RAmarlAccessory5.nj diff --git a/web/src/main/resources/assets/player/RAmarlAccessory6.nj b/web/src/jsMain/resources/assets/player/RAmarlAccessory6.nj similarity index 100% rename from web/src/main/resources/assets/player/RAmarlAccessory6.nj rename to web/src/jsMain/resources/assets/player/RAmarlAccessory6.nj diff --git a/web/src/main/resources/assets/player/RAmarlAccessory7.nj b/web/src/jsMain/resources/assets/player/RAmarlAccessory7.nj similarity index 100% rename from web/src/main/resources/assets/player/RAmarlAccessory7.nj rename to web/src/jsMain/resources/assets/player/RAmarlAccessory7.nj diff --git a/web/src/main/resources/assets/player/RAmarlAccessory8.nj b/web/src/jsMain/resources/assets/player/RAmarlAccessory8.nj similarity index 100% rename from web/src/main/resources/assets/player/RAmarlAccessory8.nj rename to web/src/jsMain/resources/assets/player/RAmarlAccessory8.nj diff --git a/web/src/main/resources/assets/player/RAmarlAccessory9.nj b/web/src/jsMain/resources/assets/player/RAmarlAccessory9.nj similarity index 100% rename from web/src/main/resources/assets/player/RAmarlAccessory9.nj rename to web/src/jsMain/resources/assets/player/RAmarlAccessory9.nj diff --git a/web/src/main/resources/assets/player/RAmarlBody.nj b/web/src/jsMain/resources/assets/player/RAmarlBody.nj similarity index 100% rename from web/src/main/resources/assets/player/RAmarlBody.nj rename to web/src/jsMain/resources/assets/player/RAmarlBody.nj diff --git a/web/src/main/resources/assets/player/RAmarlHair0.nj b/web/src/jsMain/resources/assets/player/RAmarlHair0.nj similarity index 100% rename from web/src/main/resources/assets/player/RAmarlHair0.nj rename to web/src/jsMain/resources/assets/player/RAmarlHair0.nj diff --git a/web/src/main/resources/assets/player/RAmarlHair1.nj b/web/src/jsMain/resources/assets/player/RAmarlHair1.nj similarity index 100% rename from web/src/main/resources/assets/player/RAmarlHair1.nj rename to web/src/jsMain/resources/assets/player/RAmarlHair1.nj diff --git a/web/src/main/resources/assets/player/RAmarlHair2.nj b/web/src/jsMain/resources/assets/player/RAmarlHair2.nj similarity index 100% rename from web/src/main/resources/assets/player/RAmarlHair2.nj rename to web/src/jsMain/resources/assets/player/RAmarlHair2.nj diff --git a/web/src/main/resources/assets/player/RAmarlHair3.nj b/web/src/jsMain/resources/assets/player/RAmarlHair3.nj similarity index 100% rename from web/src/main/resources/assets/player/RAmarlHair3.nj rename to web/src/jsMain/resources/assets/player/RAmarlHair3.nj diff --git a/web/src/main/resources/assets/player/RAmarlHair4.nj b/web/src/jsMain/resources/assets/player/RAmarlHair4.nj similarity index 100% rename from web/src/main/resources/assets/player/RAmarlHair4.nj rename to web/src/jsMain/resources/assets/player/RAmarlHair4.nj diff --git a/web/src/main/resources/assets/player/RAmarlHair5.nj b/web/src/jsMain/resources/assets/player/RAmarlHair5.nj similarity index 100% rename from web/src/main/resources/assets/player/RAmarlHair5.nj rename to web/src/jsMain/resources/assets/player/RAmarlHair5.nj diff --git a/web/src/main/resources/assets/player/RAmarlHair6.nj b/web/src/jsMain/resources/assets/player/RAmarlHair6.nj similarity index 100% rename from web/src/main/resources/assets/player/RAmarlHair6.nj rename to web/src/jsMain/resources/assets/player/RAmarlHair6.nj diff --git a/web/src/main/resources/assets/player/RAmarlHair7.nj b/web/src/jsMain/resources/assets/player/RAmarlHair7.nj similarity index 100% rename from web/src/main/resources/assets/player/RAmarlHair7.nj rename to web/src/jsMain/resources/assets/player/RAmarlHair7.nj diff --git a/web/src/main/resources/assets/player/RAmarlHair8.nj b/web/src/jsMain/resources/assets/player/RAmarlHair8.nj similarity index 100% rename from web/src/main/resources/assets/player/RAmarlHair8.nj rename to web/src/jsMain/resources/assets/player/RAmarlHair8.nj diff --git a/web/src/main/resources/assets/player/RAmarlHair9.nj b/web/src/jsMain/resources/assets/player/RAmarlHair9.nj similarity index 100% rename from web/src/main/resources/assets/player/RAmarlHair9.nj rename to web/src/jsMain/resources/assets/player/RAmarlHair9.nj diff --git a/web/src/main/resources/assets/player/RAmarlHead0.nj b/web/src/jsMain/resources/assets/player/RAmarlHead0.nj similarity index 100% rename from web/src/main/resources/assets/player/RAmarlHead0.nj rename to web/src/jsMain/resources/assets/player/RAmarlHead0.nj diff --git a/web/src/main/resources/assets/player/RAmarlTex.afs b/web/src/jsMain/resources/assets/player/RAmarlTex.afs similarity index 100% rename from web/src/main/resources/assets/player/RAmarlTex.afs rename to web/src/jsMain/resources/assets/player/RAmarlTex.afs diff --git a/web/src/main/resources/assets/player/animation/animation_000.njm b/web/src/jsMain/resources/assets/player/animation/animation_000.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_000.njm rename to web/src/jsMain/resources/assets/player/animation/animation_000.njm diff --git a/web/src/main/resources/assets/player/animation/animation_001.njm b/web/src/jsMain/resources/assets/player/animation/animation_001.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_001.njm rename to web/src/jsMain/resources/assets/player/animation/animation_001.njm diff --git a/web/src/main/resources/assets/player/animation/animation_002.njm b/web/src/jsMain/resources/assets/player/animation/animation_002.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_002.njm rename to web/src/jsMain/resources/assets/player/animation/animation_002.njm diff --git a/web/src/main/resources/assets/player/animation/animation_003.njm b/web/src/jsMain/resources/assets/player/animation/animation_003.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_003.njm rename to web/src/jsMain/resources/assets/player/animation/animation_003.njm diff --git a/web/src/main/resources/assets/player/animation/animation_004.njm b/web/src/jsMain/resources/assets/player/animation/animation_004.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_004.njm rename to web/src/jsMain/resources/assets/player/animation/animation_004.njm diff --git a/web/src/main/resources/assets/player/animation/animation_005.njm b/web/src/jsMain/resources/assets/player/animation/animation_005.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_005.njm rename to web/src/jsMain/resources/assets/player/animation/animation_005.njm diff --git a/web/src/main/resources/assets/player/animation/animation_006.njm b/web/src/jsMain/resources/assets/player/animation/animation_006.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_006.njm rename to web/src/jsMain/resources/assets/player/animation/animation_006.njm diff --git a/web/src/main/resources/assets/player/animation/animation_007.njm b/web/src/jsMain/resources/assets/player/animation/animation_007.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_007.njm rename to web/src/jsMain/resources/assets/player/animation/animation_007.njm diff --git a/web/src/main/resources/assets/player/animation/animation_008.njm b/web/src/jsMain/resources/assets/player/animation/animation_008.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_008.njm rename to web/src/jsMain/resources/assets/player/animation/animation_008.njm diff --git a/web/src/main/resources/assets/player/animation/animation_009.njm b/web/src/jsMain/resources/assets/player/animation/animation_009.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_009.njm rename to web/src/jsMain/resources/assets/player/animation/animation_009.njm diff --git a/web/src/main/resources/assets/player/animation/animation_010.njm b/web/src/jsMain/resources/assets/player/animation/animation_010.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_010.njm rename to web/src/jsMain/resources/assets/player/animation/animation_010.njm diff --git a/web/src/main/resources/assets/player/animation/animation_011.njm b/web/src/jsMain/resources/assets/player/animation/animation_011.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_011.njm rename to web/src/jsMain/resources/assets/player/animation/animation_011.njm diff --git a/web/src/main/resources/assets/player/animation/animation_012.njm b/web/src/jsMain/resources/assets/player/animation/animation_012.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_012.njm rename to web/src/jsMain/resources/assets/player/animation/animation_012.njm diff --git a/web/src/main/resources/assets/player/animation/animation_013.njm b/web/src/jsMain/resources/assets/player/animation/animation_013.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_013.njm rename to web/src/jsMain/resources/assets/player/animation/animation_013.njm diff --git a/web/src/main/resources/assets/player/animation/animation_014.njm b/web/src/jsMain/resources/assets/player/animation/animation_014.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_014.njm rename to web/src/jsMain/resources/assets/player/animation/animation_014.njm diff --git a/web/src/main/resources/assets/player/animation/animation_015.njm b/web/src/jsMain/resources/assets/player/animation/animation_015.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_015.njm rename to web/src/jsMain/resources/assets/player/animation/animation_015.njm diff --git a/web/src/main/resources/assets/player/animation/animation_016.njm b/web/src/jsMain/resources/assets/player/animation/animation_016.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_016.njm rename to web/src/jsMain/resources/assets/player/animation/animation_016.njm diff --git a/web/src/main/resources/assets/player/animation/animation_017.njm b/web/src/jsMain/resources/assets/player/animation/animation_017.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_017.njm rename to web/src/jsMain/resources/assets/player/animation/animation_017.njm diff --git a/web/src/main/resources/assets/player/animation/animation_018.njm b/web/src/jsMain/resources/assets/player/animation/animation_018.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_018.njm rename to web/src/jsMain/resources/assets/player/animation/animation_018.njm diff --git a/web/src/main/resources/assets/player/animation/animation_019.njm b/web/src/jsMain/resources/assets/player/animation/animation_019.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_019.njm rename to web/src/jsMain/resources/assets/player/animation/animation_019.njm diff --git a/web/src/main/resources/assets/player/animation/animation_020.njm b/web/src/jsMain/resources/assets/player/animation/animation_020.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_020.njm rename to web/src/jsMain/resources/assets/player/animation/animation_020.njm diff --git a/web/src/main/resources/assets/player/animation/animation_021.njm b/web/src/jsMain/resources/assets/player/animation/animation_021.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_021.njm rename to web/src/jsMain/resources/assets/player/animation/animation_021.njm diff --git a/web/src/main/resources/assets/player/animation/animation_022.njm b/web/src/jsMain/resources/assets/player/animation/animation_022.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_022.njm rename to web/src/jsMain/resources/assets/player/animation/animation_022.njm diff --git a/web/src/main/resources/assets/player/animation/animation_023.njm b/web/src/jsMain/resources/assets/player/animation/animation_023.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_023.njm rename to web/src/jsMain/resources/assets/player/animation/animation_023.njm diff --git a/web/src/main/resources/assets/player/animation/animation_024.njm b/web/src/jsMain/resources/assets/player/animation/animation_024.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_024.njm rename to web/src/jsMain/resources/assets/player/animation/animation_024.njm diff --git a/web/src/main/resources/assets/player/animation/animation_025.njm b/web/src/jsMain/resources/assets/player/animation/animation_025.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_025.njm rename to web/src/jsMain/resources/assets/player/animation/animation_025.njm diff --git a/web/src/main/resources/assets/player/animation/animation_026.njm b/web/src/jsMain/resources/assets/player/animation/animation_026.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_026.njm rename to web/src/jsMain/resources/assets/player/animation/animation_026.njm diff --git a/web/src/main/resources/assets/player/animation/animation_027.njm b/web/src/jsMain/resources/assets/player/animation/animation_027.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_027.njm rename to web/src/jsMain/resources/assets/player/animation/animation_027.njm diff --git a/web/src/main/resources/assets/player/animation/animation_028.njm b/web/src/jsMain/resources/assets/player/animation/animation_028.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_028.njm rename to web/src/jsMain/resources/assets/player/animation/animation_028.njm diff --git a/web/src/main/resources/assets/player/animation/animation_029.njm b/web/src/jsMain/resources/assets/player/animation/animation_029.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_029.njm rename to web/src/jsMain/resources/assets/player/animation/animation_029.njm diff --git a/web/src/main/resources/assets/player/animation/animation_030.njm b/web/src/jsMain/resources/assets/player/animation/animation_030.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_030.njm rename to web/src/jsMain/resources/assets/player/animation/animation_030.njm diff --git a/web/src/main/resources/assets/player/animation/animation_031.njm b/web/src/jsMain/resources/assets/player/animation/animation_031.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_031.njm rename to web/src/jsMain/resources/assets/player/animation/animation_031.njm diff --git a/web/src/main/resources/assets/player/animation/animation_032.njm b/web/src/jsMain/resources/assets/player/animation/animation_032.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_032.njm rename to web/src/jsMain/resources/assets/player/animation/animation_032.njm diff --git a/web/src/main/resources/assets/player/animation/animation_033.njm b/web/src/jsMain/resources/assets/player/animation/animation_033.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_033.njm rename to web/src/jsMain/resources/assets/player/animation/animation_033.njm diff --git a/web/src/main/resources/assets/player/animation/animation_034.njm b/web/src/jsMain/resources/assets/player/animation/animation_034.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_034.njm rename to web/src/jsMain/resources/assets/player/animation/animation_034.njm diff --git a/web/src/main/resources/assets/player/animation/animation_035.njm b/web/src/jsMain/resources/assets/player/animation/animation_035.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_035.njm rename to web/src/jsMain/resources/assets/player/animation/animation_035.njm diff --git a/web/src/main/resources/assets/player/animation/animation_036.njm b/web/src/jsMain/resources/assets/player/animation/animation_036.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_036.njm rename to web/src/jsMain/resources/assets/player/animation/animation_036.njm diff --git a/web/src/main/resources/assets/player/animation/animation_037.njm b/web/src/jsMain/resources/assets/player/animation/animation_037.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_037.njm rename to web/src/jsMain/resources/assets/player/animation/animation_037.njm diff --git a/web/src/main/resources/assets/player/animation/animation_038.njm b/web/src/jsMain/resources/assets/player/animation/animation_038.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_038.njm rename to web/src/jsMain/resources/assets/player/animation/animation_038.njm diff --git a/web/src/main/resources/assets/player/animation/animation_039.njm b/web/src/jsMain/resources/assets/player/animation/animation_039.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_039.njm rename to web/src/jsMain/resources/assets/player/animation/animation_039.njm diff --git a/web/src/main/resources/assets/player/animation/animation_040.njm b/web/src/jsMain/resources/assets/player/animation/animation_040.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_040.njm rename to web/src/jsMain/resources/assets/player/animation/animation_040.njm diff --git a/web/src/main/resources/assets/player/animation/animation_041.njm b/web/src/jsMain/resources/assets/player/animation/animation_041.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_041.njm rename to web/src/jsMain/resources/assets/player/animation/animation_041.njm diff --git a/web/src/main/resources/assets/player/animation/animation_042.njm b/web/src/jsMain/resources/assets/player/animation/animation_042.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_042.njm rename to web/src/jsMain/resources/assets/player/animation/animation_042.njm diff --git a/web/src/main/resources/assets/player/animation/animation_043.njm b/web/src/jsMain/resources/assets/player/animation/animation_043.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_043.njm rename to web/src/jsMain/resources/assets/player/animation/animation_043.njm diff --git a/web/src/main/resources/assets/player/animation/animation_044.njm b/web/src/jsMain/resources/assets/player/animation/animation_044.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_044.njm rename to web/src/jsMain/resources/assets/player/animation/animation_044.njm diff --git a/web/src/main/resources/assets/player/animation/animation_045.njm b/web/src/jsMain/resources/assets/player/animation/animation_045.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_045.njm rename to web/src/jsMain/resources/assets/player/animation/animation_045.njm diff --git a/web/src/main/resources/assets/player/animation/animation_046.njm b/web/src/jsMain/resources/assets/player/animation/animation_046.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_046.njm rename to web/src/jsMain/resources/assets/player/animation/animation_046.njm diff --git a/web/src/main/resources/assets/player/animation/animation_047.njm b/web/src/jsMain/resources/assets/player/animation/animation_047.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_047.njm rename to web/src/jsMain/resources/assets/player/animation/animation_047.njm diff --git a/web/src/main/resources/assets/player/animation/animation_048.njm b/web/src/jsMain/resources/assets/player/animation/animation_048.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_048.njm rename to web/src/jsMain/resources/assets/player/animation/animation_048.njm diff --git a/web/src/main/resources/assets/player/animation/animation_049.njm b/web/src/jsMain/resources/assets/player/animation/animation_049.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_049.njm rename to web/src/jsMain/resources/assets/player/animation/animation_049.njm diff --git a/web/src/main/resources/assets/player/animation/animation_050.njm b/web/src/jsMain/resources/assets/player/animation/animation_050.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_050.njm rename to web/src/jsMain/resources/assets/player/animation/animation_050.njm diff --git a/web/src/main/resources/assets/player/animation/animation_051.njm b/web/src/jsMain/resources/assets/player/animation/animation_051.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_051.njm rename to web/src/jsMain/resources/assets/player/animation/animation_051.njm diff --git a/web/src/main/resources/assets/player/animation/animation_052.njm b/web/src/jsMain/resources/assets/player/animation/animation_052.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_052.njm rename to web/src/jsMain/resources/assets/player/animation/animation_052.njm diff --git a/web/src/main/resources/assets/player/animation/animation_053.njm b/web/src/jsMain/resources/assets/player/animation/animation_053.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_053.njm rename to web/src/jsMain/resources/assets/player/animation/animation_053.njm diff --git a/web/src/main/resources/assets/player/animation/animation_054.njm b/web/src/jsMain/resources/assets/player/animation/animation_054.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_054.njm rename to web/src/jsMain/resources/assets/player/animation/animation_054.njm diff --git a/web/src/main/resources/assets/player/animation/animation_055.njm b/web/src/jsMain/resources/assets/player/animation/animation_055.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_055.njm rename to web/src/jsMain/resources/assets/player/animation/animation_055.njm diff --git a/web/src/main/resources/assets/player/animation/animation_056.njm b/web/src/jsMain/resources/assets/player/animation/animation_056.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_056.njm rename to web/src/jsMain/resources/assets/player/animation/animation_056.njm diff --git a/web/src/main/resources/assets/player/animation/animation_057.njm b/web/src/jsMain/resources/assets/player/animation/animation_057.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_057.njm rename to web/src/jsMain/resources/assets/player/animation/animation_057.njm diff --git a/web/src/main/resources/assets/player/animation/animation_058.njm b/web/src/jsMain/resources/assets/player/animation/animation_058.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_058.njm rename to web/src/jsMain/resources/assets/player/animation/animation_058.njm diff --git a/web/src/main/resources/assets/player/animation/animation_059.njm b/web/src/jsMain/resources/assets/player/animation/animation_059.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_059.njm rename to web/src/jsMain/resources/assets/player/animation/animation_059.njm diff --git a/web/src/main/resources/assets/player/animation/animation_060.njm b/web/src/jsMain/resources/assets/player/animation/animation_060.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_060.njm rename to web/src/jsMain/resources/assets/player/animation/animation_060.njm diff --git a/web/src/main/resources/assets/player/animation/animation_061.njm b/web/src/jsMain/resources/assets/player/animation/animation_061.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_061.njm rename to web/src/jsMain/resources/assets/player/animation/animation_061.njm diff --git a/web/src/main/resources/assets/player/animation/animation_062.njm b/web/src/jsMain/resources/assets/player/animation/animation_062.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_062.njm rename to web/src/jsMain/resources/assets/player/animation/animation_062.njm diff --git a/web/src/main/resources/assets/player/animation/animation_063.njm b/web/src/jsMain/resources/assets/player/animation/animation_063.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_063.njm rename to web/src/jsMain/resources/assets/player/animation/animation_063.njm diff --git a/web/src/main/resources/assets/player/animation/animation_064.njm b/web/src/jsMain/resources/assets/player/animation/animation_064.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_064.njm rename to web/src/jsMain/resources/assets/player/animation/animation_064.njm diff --git a/web/src/main/resources/assets/player/animation/animation_065.njm b/web/src/jsMain/resources/assets/player/animation/animation_065.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_065.njm rename to web/src/jsMain/resources/assets/player/animation/animation_065.njm diff --git a/web/src/main/resources/assets/player/animation/animation_066.njm b/web/src/jsMain/resources/assets/player/animation/animation_066.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_066.njm rename to web/src/jsMain/resources/assets/player/animation/animation_066.njm diff --git a/web/src/main/resources/assets/player/animation/animation_067.njm b/web/src/jsMain/resources/assets/player/animation/animation_067.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_067.njm rename to web/src/jsMain/resources/assets/player/animation/animation_067.njm diff --git a/web/src/main/resources/assets/player/animation/animation_068.njm b/web/src/jsMain/resources/assets/player/animation/animation_068.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_068.njm rename to web/src/jsMain/resources/assets/player/animation/animation_068.njm diff --git a/web/src/main/resources/assets/player/animation/animation_069.njm b/web/src/jsMain/resources/assets/player/animation/animation_069.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_069.njm rename to web/src/jsMain/resources/assets/player/animation/animation_069.njm diff --git a/web/src/main/resources/assets/player/animation/animation_070.njm b/web/src/jsMain/resources/assets/player/animation/animation_070.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_070.njm rename to web/src/jsMain/resources/assets/player/animation/animation_070.njm diff --git a/web/src/main/resources/assets/player/animation/animation_071.njm b/web/src/jsMain/resources/assets/player/animation/animation_071.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_071.njm rename to web/src/jsMain/resources/assets/player/animation/animation_071.njm diff --git a/web/src/main/resources/assets/player/animation/animation_072.njm b/web/src/jsMain/resources/assets/player/animation/animation_072.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_072.njm rename to web/src/jsMain/resources/assets/player/animation/animation_072.njm diff --git a/web/src/main/resources/assets/player/animation/animation_073.njm b/web/src/jsMain/resources/assets/player/animation/animation_073.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_073.njm rename to web/src/jsMain/resources/assets/player/animation/animation_073.njm diff --git a/web/src/main/resources/assets/player/animation/animation_074.njm b/web/src/jsMain/resources/assets/player/animation/animation_074.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_074.njm rename to web/src/jsMain/resources/assets/player/animation/animation_074.njm diff --git a/web/src/main/resources/assets/player/animation/animation_075.njm b/web/src/jsMain/resources/assets/player/animation/animation_075.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_075.njm rename to web/src/jsMain/resources/assets/player/animation/animation_075.njm diff --git a/web/src/main/resources/assets/player/animation/animation_076.njm b/web/src/jsMain/resources/assets/player/animation/animation_076.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_076.njm rename to web/src/jsMain/resources/assets/player/animation/animation_076.njm diff --git a/web/src/main/resources/assets/player/animation/animation_077.njm b/web/src/jsMain/resources/assets/player/animation/animation_077.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_077.njm rename to web/src/jsMain/resources/assets/player/animation/animation_077.njm diff --git a/web/src/main/resources/assets/player/animation/animation_078.njm b/web/src/jsMain/resources/assets/player/animation/animation_078.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_078.njm rename to web/src/jsMain/resources/assets/player/animation/animation_078.njm diff --git a/web/src/main/resources/assets/player/animation/animation_079.njm b/web/src/jsMain/resources/assets/player/animation/animation_079.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_079.njm rename to web/src/jsMain/resources/assets/player/animation/animation_079.njm diff --git a/web/src/main/resources/assets/player/animation/animation_080.njm b/web/src/jsMain/resources/assets/player/animation/animation_080.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_080.njm rename to web/src/jsMain/resources/assets/player/animation/animation_080.njm diff --git a/web/src/main/resources/assets/player/animation/animation_081.njm b/web/src/jsMain/resources/assets/player/animation/animation_081.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_081.njm rename to web/src/jsMain/resources/assets/player/animation/animation_081.njm diff --git a/web/src/main/resources/assets/player/animation/animation_082.njm b/web/src/jsMain/resources/assets/player/animation/animation_082.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_082.njm rename to web/src/jsMain/resources/assets/player/animation/animation_082.njm diff --git a/web/src/main/resources/assets/player/animation/animation_083.njm b/web/src/jsMain/resources/assets/player/animation/animation_083.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_083.njm rename to web/src/jsMain/resources/assets/player/animation/animation_083.njm diff --git a/web/src/main/resources/assets/player/animation/animation_084.njm b/web/src/jsMain/resources/assets/player/animation/animation_084.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_084.njm rename to web/src/jsMain/resources/assets/player/animation/animation_084.njm diff --git a/web/src/main/resources/assets/player/animation/animation_085.njm b/web/src/jsMain/resources/assets/player/animation/animation_085.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_085.njm rename to web/src/jsMain/resources/assets/player/animation/animation_085.njm diff --git a/web/src/main/resources/assets/player/animation/animation_086.njm b/web/src/jsMain/resources/assets/player/animation/animation_086.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_086.njm rename to web/src/jsMain/resources/assets/player/animation/animation_086.njm diff --git a/web/src/main/resources/assets/player/animation/animation_087.njm b/web/src/jsMain/resources/assets/player/animation/animation_087.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_087.njm rename to web/src/jsMain/resources/assets/player/animation/animation_087.njm diff --git a/web/src/main/resources/assets/player/animation/animation_088.njm b/web/src/jsMain/resources/assets/player/animation/animation_088.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_088.njm rename to web/src/jsMain/resources/assets/player/animation/animation_088.njm diff --git a/web/src/main/resources/assets/player/animation/animation_089.njm b/web/src/jsMain/resources/assets/player/animation/animation_089.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_089.njm rename to web/src/jsMain/resources/assets/player/animation/animation_089.njm diff --git a/web/src/main/resources/assets/player/animation/animation_090.njm b/web/src/jsMain/resources/assets/player/animation/animation_090.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_090.njm rename to web/src/jsMain/resources/assets/player/animation/animation_090.njm diff --git a/web/src/main/resources/assets/player/animation/animation_091.njm b/web/src/jsMain/resources/assets/player/animation/animation_091.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_091.njm rename to web/src/jsMain/resources/assets/player/animation/animation_091.njm diff --git a/web/src/main/resources/assets/player/animation/animation_092.njm b/web/src/jsMain/resources/assets/player/animation/animation_092.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_092.njm rename to web/src/jsMain/resources/assets/player/animation/animation_092.njm diff --git a/web/src/main/resources/assets/player/animation/animation_093.njm b/web/src/jsMain/resources/assets/player/animation/animation_093.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_093.njm rename to web/src/jsMain/resources/assets/player/animation/animation_093.njm diff --git a/web/src/main/resources/assets/player/animation/animation_094.njm b/web/src/jsMain/resources/assets/player/animation/animation_094.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_094.njm rename to web/src/jsMain/resources/assets/player/animation/animation_094.njm diff --git a/web/src/main/resources/assets/player/animation/animation_095.njm b/web/src/jsMain/resources/assets/player/animation/animation_095.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_095.njm rename to web/src/jsMain/resources/assets/player/animation/animation_095.njm diff --git a/web/src/main/resources/assets/player/animation/animation_096.njm b/web/src/jsMain/resources/assets/player/animation/animation_096.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_096.njm rename to web/src/jsMain/resources/assets/player/animation/animation_096.njm diff --git a/web/src/main/resources/assets/player/animation/animation_097.njm b/web/src/jsMain/resources/assets/player/animation/animation_097.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_097.njm rename to web/src/jsMain/resources/assets/player/animation/animation_097.njm diff --git a/web/src/main/resources/assets/player/animation/animation_098.njm b/web/src/jsMain/resources/assets/player/animation/animation_098.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_098.njm rename to web/src/jsMain/resources/assets/player/animation/animation_098.njm diff --git a/web/src/main/resources/assets/player/animation/animation_099.njm b/web/src/jsMain/resources/assets/player/animation/animation_099.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_099.njm rename to web/src/jsMain/resources/assets/player/animation/animation_099.njm diff --git a/web/src/main/resources/assets/player/animation/animation_100.njm b/web/src/jsMain/resources/assets/player/animation/animation_100.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_100.njm rename to web/src/jsMain/resources/assets/player/animation/animation_100.njm diff --git a/web/src/main/resources/assets/player/animation/animation_101.njm b/web/src/jsMain/resources/assets/player/animation/animation_101.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_101.njm rename to web/src/jsMain/resources/assets/player/animation/animation_101.njm diff --git a/web/src/main/resources/assets/player/animation/animation_102.njm b/web/src/jsMain/resources/assets/player/animation/animation_102.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_102.njm rename to web/src/jsMain/resources/assets/player/animation/animation_102.njm diff --git a/web/src/main/resources/assets/player/animation/animation_103.njm b/web/src/jsMain/resources/assets/player/animation/animation_103.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_103.njm rename to web/src/jsMain/resources/assets/player/animation/animation_103.njm diff --git a/web/src/main/resources/assets/player/animation/animation_104.njm b/web/src/jsMain/resources/assets/player/animation/animation_104.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_104.njm rename to web/src/jsMain/resources/assets/player/animation/animation_104.njm diff --git a/web/src/main/resources/assets/player/animation/animation_105.njm b/web/src/jsMain/resources/assets/player/animation/animation_105.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_105.njm rename to web/src/jsMain/resources/assets/player/animation/animation_105.njm diff --git a/web/src/main/resources/assets/player/animation/animation_106.njm b/web/src/jsMain/resources/assets/player/animation/animation_106.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_106.njm rename to web/src/jsMain/resources/assets/player/animation/animation_106.njm diff --git a/web/src/main/resources/assets/player/animation/animation_107.njm b/web/src/jsMain/resources/assets/player/animation/animation_107.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_107.njm rename to web/src/jsMain/resources/assets/player/animation/animation_107.njm diff --git a/web/src/main/resources/assets/player/animation/animation_108.njm b/web/src/jsMain/resources/assets/player/animation/animation_108.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_108.njm rename to web/src/jsMain/resources/assets/player/animation/animation_108.njm diff --git a/web/src/main/resources/assets/player/animation/animation_109.njm b/web/src/jsMain/resources/assets/player/animation/animation_109.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_109.njm rename to web/src/jsMain/resources/assets/player/animation/animation_109.njm diff --git a/web/src/main/resources/assets/player/animation/animation_110.njm b/web/src/jsMain/resources/assets/player/animation/animation_110.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_110.njm rename to web/src/jsMain/resources/assets/player/animation/animation_110.njm diff --git a/web/src/main/resources/assets/player/animation/animation_111.njm b/web/src/jsMain/resources/assets/player/animation/animation_111.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_111.njm rename to web/src/jsMain/resources/assets/player/animation/animation_111.njm diff --git a/web/src/main/resources/assets/player/animation/animation_112.njm b/web/src/jsMain/resources/assets/player/animation/animation_112.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_112.njm rename to web/src/jsMain/resources/assets/player/animation/animation_112.njm diff --git a/web/src/main/resources/assets/player/animation/animation_113.njm b/web/src/jsMain/resources/assets/player/animation/animation_113.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_113.njm rename to web/src/jsMain/resources/assets/player/animation/animation_113.njm diff --git a/web/src/main/resources/assets/player/animation/animation_114.njm b/web/src/jsMain/resources/assets/player/animation/animation_114.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_114.njm rename to web/src/jsMain/resources/assets/player/animation/animation_114.njm diff --git a/web/src/main/resources/assets/player/animation/animation_115.njm b/web/src/jsMain/resources/assets/player/animation/animation_115.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_115.njm rename to web/src/jsMain/resources/assets/player/animation/animation_115.njm diff --git a/web/src/main/resources/assets/player/animation/animation_116.njm b/web/src/jsMain/resources/assets/player/animation/animation_116.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_116.njm rename to web/src/jsMain/resources/assets/player/animation/animation_116.njm diff --git a/web/src/main/resources/assets/player/animation/animation_117.njm b/web/src/jsMain/resources/assets/player/animation/animation_117.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_117.njm rename to web/src/jsMain/resources/assets/player/animation/animation_117.njm diff --git a/web/src/main/resources/assets/player/animation/animation_118.njm b/web/src/jsMain/resources/assets/player/animation/animation_118.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_118.njm rename to web/src/jsMain/resources/assets/player/animation/animation_118.njm diff --git a/web/src/main/resources/assets/player/animation/animation_119.njm b/web/src/jsMain/resources/assets/player/animation/animation_119.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_119.njm rename to web/src/jsMain/resources/assets/player/animation/animation_119.njm diff --git a/web/src/main/resources/assets/player/animation/animation_120.njm b/web/src/jsMain/resources/assets/player/animation/animation_120.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_120.njm rename to web/src/jsMain/resources/assets/player/animation/animation_120.njm diff --git a/web/src/main/resources/assets/player/animation/animation_121.njm b/web/src/jsMain/resources/assets/player/animation/animation_121.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_121.njm rename to web/src/jsMain/resources/assets/player/animation/animation_121.njm diff --git a/web/src/main/resources/assets/player/animation/animation_122.njm b/web/src/jsMain/resources/assets/player/animation/animation_122.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_122.njm rename to web/src/jsMain/resources/assets/player/animation/animation_122.njm diff --git a/web/src/main/resources/assets/player/animation/animation_123.njm b/web/src/jsMain/resources/assets/player/animation/animation_123.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_123.njm rename to web/src/jsMain/resources/assets/player/animation/animation_123.njm diff --git a/web/src/main/resources/assets/player/animation/animation_124.njm b/web/src/jsMain/resources/assets/player/animation/animation_124.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_124.njm rename to web/src/jsMain/resources/assets/player/animation/animation_124.njm diff --git a/web/src/main/resources/assets/player/animation/animation_125.njm b/web/src/jsMain/resources/assets/player/animation/animation_125.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_125.njm rename to web/src/jsMain/resources/assets/player/animation/animation_125.njm diff --git a/web/src/main/resources/assets/player/animation/animation_126.njm b/web/src/jsMain/resources/assets/player/animation/animation_126.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_126.njm rename to web/src/jsMain/resources/assets/player/animation/animation_126.njm diff --git a/web/src/main/resources/assets/player/animation/animation_127.njm b/web/src/jsMain/resources/assets/player/animation/animation_127.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_127.njm rename to web/src/jsMain/resources/assets/player/animation/animation_127.njm diff --git a/web/src/main/resources/assets/player/animation/animation_128.njm b/web/src/jsMain/resources/assets/player/animation/animation_128.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_128.njm rename to web/src/jsMain/resources/assets/player/animation/animation_128.njm diff --git a/web/src/main/resources/assets/player/animation/animation_129.njm b/web/src/jsMain/resources/assets/player/animation/animation_129.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_129.njm rename to web/src/jsMain/resources/assets/player/animation/animation_129.njm diff --git a/web/src/main/resources/assets/player/animation/animation_130.njm b/web/src/jsMain/resources/assets/player/animation/animation_130.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_130.njm rename to web/src/jsMain/resources/assets/player/animation/animation_130.njm diff --git a/web/src/main/resources/assets/player/animation/animation_131.njm b/web/src/jsMain/resources/assets/player/animation/animation_131.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_131.njm rename to web/src/jsMain/resources/assets/player/animation/animation_131.njm diff --git a/web/src/main/resources/assets/player/animation/animation_132.njm b/web/src/jsMain/resources/assets/player/animation/animation_132.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_132.njm rename to web/src/jsMain/resources/assets/player/animation/animation_132.njm diff --git a/web/src/main/resources/assets/player/animation/animation_133.njm b/web/src/jsMain/resources/assets/player/animation/animation_133.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_133.njm rename to web/src/jsMain/resources/assets/player/animation/animation_133.njm diff --git a/web/src/main/resources/assets/player/animation/animation_134.njm b/web/src/jsMain/resources/assets/player/animation/animation_134.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_134.njm rename to web/src/jsMain/resources/assets/player/animation/animation_134.njm diff --git a/web/src/main/resources/assets/player/animation/animation_135.njm b/web/src/jsMain/resources/assets/player/animation/animation_135.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_135.njm rename to web/src/jsMain/resources/assets/player/animation/animation_135.njm diff --git a/web/src/main/resources/assets/player/animation/animation_136.njm b/web/src/jsMain/resources/assets/player/animation/animation_136.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_136.njm rename to web/src/jsMain/resources/assets/player/animation/animation_136.njm diff --git a/web/src/main/resources/assets/player/animation/animation_137.njm b/web/src/jsMain/resources/assets/player/animation/animation_137.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_137.njm rename to web/src/jsMain/resources/assets/player/animation/animation_137.njm diff --git a/web/src/main/resources/assets/player/animation/animation_138.njm b/web/src/jsMain/resources/assets/player/animation/animation_138.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_138.njm rename to web/src/jsMain/resources/assets/player/animation/animation_138.njm diff --git a/web/src/main/resources/assets/player/animation/animation_139.njm b/web/src/jsMain/resources/assets/player/animation/animation_139.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_139.njm rename to web/src/jsMain/resources/assets/player/animation/animation_139.njm diff --git a/web/src/main/resources/assets/player/animation/animation_140.njm b/web/src/jsMain/resources/assets/player/animation/animation_140.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_140.njm rename to web/src/jsMain/resources/assets/player/animation/animation_140.njm diff --git a/web/src/main/resources/assets/player/animation/animation_141.njm b/web/src/jsMain/resources/assets/player/animation/animation_141.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_141.njm rename to web/src/jsMain/resources/assets/player/animation/animation_141.njm diff --git a/web/src/main/resources/assets/player/animation/animation_142.njm b/web/src/jsMain/resources/assets/player/animation/animation_142.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_142.njm rename to web/src/jsMain/resources/assets/player/animation/animation_142.njm diff --git a/web/src/main/resources/assets/player/animation/animation_143.njm b/web/src/jsMain/resources/assets/player/animation/animation_143.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_143.njm rename to web/src/jsMain/resources/assets/player/animation/animation_143.njm diff --git a/web/src/main/resources/assets/player/animation/animation_144.njm b/web/src/jsMain/resources/assets/player/animation/animation_144.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_144.njm rename to web/src/jsMain/resources/assets/player/animation/animation_144.njm diff --git a/web/src/main/resources/assets/player/animation/animation_145.njm b/web/src/jsMain/resources/assets/player/animation/animation_145.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_145.njm rename to web/src/jsMain/resources/assets/player/animation/animation_145.njm diff --git a/web/src/main/resources/assets/player/animation/animation_146.njm b/web/src/jsMain/resources/assets/player/animation/animation_146.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_146.njm rename to web/src/jsMain/resources/assets/player/animation/animation_146.njm diff --git a/web/src/main/resources/assets/player/animation/animation_147.njm b/web/src/jsMain/resources/assets/player/animation/animation_147.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_147.njm rename to web/src/jsMain/resources/assets/player/animation/animation_147.njm diff --git a/web/src/main/resources/assets/player/animation/animation_148.njm b/web/src/jsMain/resources/assets/player/animation/animation_148.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_148.njm rename to web/src/jsMain/resources/assets/player/animation/animation_148.njm diff --git a/web/src/main/resources/assets/player/animation/animation_149.njm b/web/src/jsMain/resources/assets/player/animation/animation_149.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_149.njm rename to web/src/jsMain/resources/assets/player/animation/animation_149.njm diff --git a/web/src/main/resources/assets/player/animation/animation_150.njm b/web/src/jsMain/resources/assets/player/animation/animation_150.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_150.njm rename to web/src/jsMain/resources/assets/player/animation/animation_150.njm diff --git a/web/src/main/resources/assets/player/animation/animation_151.njm b/web/src/jsMain/resources/assets/player/animation/animation_151.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_151.njm rename to web/src/jsMain/resources/assets/player/animation/animation_151.njm diff --git a/web/src/main/resources/assets/player/animation/animation_152.njm b/web/src/jsMain/resources/assets/player/animation/animation_152.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_152.njm rename to web/src/jsMain/resources/assets/player/animation/animation_152.njm diff --git a/web/src/main/resources/assets/player/animation/animation_153.njm b/web/src/jsMain/resources/assets/player/animation/animation_153.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_153.njm rename to web/src/jsMain/resources/assets/player/animation/animation_153.njm diff --git a/web/src/main/resources/assets/player/animation/animation_154.njm b/web/src/jsMain/resources/assets/player/animation/animation_154.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_154.njm rename to web/src/jsMain/resources/assets/player/animation/animation_154.njm diff --git a/web/src/main/resources/assets/player/animation/animation_155.njm b/web/src/jsMain/resources/assets/player/animation/animation_155.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_155.njm rename to web/src/jsMain/resources/assets/player/animation/animation_155.njm diff --git a/web/src/main/resources/assets/player/animation/animation_156.njm b/web/src/jsMain/resources/assets/player/animation/animation_156.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_156.njm rename to web/src/jsMain/resources/assets/player/animation/animation_156.njm diff --git a/web/src/main/resources/assets/player/animation/animation_157.njm b/web/src/jsMain/resources/assets/player/animation/animation_157.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_157.njm rename to web/src/jsMain/resources/assets/player/animation/animation_157.njm diff --git a/web/src/main/resources/assets/player/animation/animation_158.njm b/web/src/jsMain/resources/assets/player/animation/animation_158.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_158.njm rename to web/src/jsMain/resources/assets/player/animation/animation_158.njm diff --git a/web/src/main/resources/assets/player/animation/animation_159.njm b/web/src/jsMain/resources/assets/player/animation/animation_159.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_159.njm rename to web/src/jsMain/resources/assets/player/animation/animation_159.njm diff --git a/web/src/main/resources/assets/player/animation/animation_160.njm b/web/src/jsMain/resources/assets/player/animation/animation_160.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_160.njm rename to web/src/jsMain/resources/assets/player/animation/animation_160.njm diff --git a/web/src/main/resources/assets/player/animation/animation_161.njm b/web/src/jsMain/resources/assets/player/animation/animation_161.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_161.njm rename to web/src/jsMain/resources/assets/player/animation/animation_161.njm diff --git a/web/src/main/resources/assets/player/animation/animation_162.njm b/web/src/jsMain/resources/assets/player/animation/animation_162.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_162.njm rename to web/src/jsMain/resources/assets/player/animation/animation_162.njm diff --git a/web/src/main/resources/assets/player/animation/animation_163.njm b/web/src/jsMain/resources/assets/player/animation/animation_163.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_163.njm rename to web/src/jsMain/resources/assets/player/animation/animation_163.njm diff --git a/web/src/main/resources/assets/player/animation/animation_164.njm b/web/src/jsMain/resources/assets/player/animation/animation_164.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_164.njm rename to web/src/jsMain/resources/assets/player/animation/animation_164.njm diff --git a/web/src/main/resources/assets/player/animation/animation_165.njm b/web/src/jsMain/resources/assets/player/animation/animation_165.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_165.njm rename to web/src/jsMain/resources/assets/player/animation/animation_165.njm diff --git a/web/src/main/resources/assets/player/animation/animation_166.njm b/web/src/jsMain/resources/assets/player/animation/animation_166.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_166.njm rename to web/src/jsMain/resources/assets/player/animation/animation_166.njm diff --git a/web/src/main/resources/assets/player/animation/animation_167.njm b/web/src/jsMain/resources/assets/player/animation/animation_167.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_167.njm rename to web/src/jsMain/resources/assets/player/animation/animation_167.njm diff --git a/web/src/main/resources/assets/player/animation/animation_168.njm b/web/src/jsMain/resources/assets/player/animation/animation_168.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_168.njm rename to web/src/jsMain/resources/assets/player/animation/animation_168.njm diff --git a/web/src/main/resources/assets/player/animation/animation_169.njm b/web/src/jsMain/resources/assets/player/animation/animation_169.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_169.njm rename to web/src/jsMain/resources/assets/player/animation/animation_169.njm diff --git a/web/src/main/resources/assets/player/animation/animation_170.njm b/web/src/jsMain/resources/assets/player/animation/animation_170.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_170.njm rename to web/src/jsMain/resources/assets/player/animation/animation_170.njm diff --git a/web/src/main/resources/assets/player/animation/animation_171.njm b/web/src/jsMain/resources/assets/player/animation/animation_171.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_171.njm rename to web/src/jsMain/resources/assets/player/animation/animation_171.njm diff --git a/web/src/main/resources/assets/player/animation/animation_172.njm b/web/src/jsMain/resources/assets/player/animation/animation_172.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_172.njm rename to web/src/jsMain/resources/assets/player/animation/animation_172.njm diff --git a/web/src/main/resources/assets/player/animation/animation_173.njm b/web/src/jsMain/resources/assets/player/animation/animation_173.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_173.njm rename to web/src/jsMain/resources/assets/player/animation/animation_173.njm diff --git a/web/src/main/resources/assets/player/animation/animation_174.njm b/web/src/jsMain/resources/assets/player/animation/animation_174.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_174.njm rename to web/src/jsMain/resources/assets/player/animation/animation_174.njm diff --git a/web/src/main/resources/assets/player/animation/animation_175.njm b/web/src/jsMain/resources/assets/player/animation/animation_175.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_175.njm rename to web/src/jsMain/resources/assets/player/animation/animation_175.njm diff --git a/web/src/main/resources/assets/player/animation/animation_176.njm b/web/src/jsMain/resources/assets/player/animation/animation_176.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_176.njm rename to web/src/jsMain/resources/assets/player/animation/animation_176.njm diff --git a/web/src/main/resources/assets/player/animation/animation_177.njm b/web/src/jsMain/resources/assets/player/animation/animation_177.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_177.njm rename to web/src/jsMain/resources/assets/player/animation/animation_177.njm diff --git a/web/src/main/resources/assets/player/animation/animation_178.njm b/web/src/jsMain/resources/assets/player/animation/animation_178.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_178.njm rename to web/src/jsMain/resources/assets/player/animation/animation_178.njm diff --git a/web/src/main/resources/assets/player/animation/animation_179.njm b/web/src/jsMain/resources/assets/player/animation/animation_179.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_179.njm rename to web/src/jsMain/resources/assets/player/animation/animation_179.njm diff --git a/web/src/main/resources/assets/player/animation/animation_180.njm b/web/src/jsMain/resources/assets/player/animation/animation_180.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_180.njm rename to web/src/jsMain/resources/assets/player/animation/animation_180.njm diff --git a/web/src/main/resources/assets/player/animation/animation_181.njm b/web/src/jsMain/resources/assets/player/animation/animation_181.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_181.njm rename to web/src/jsMain/resources/assets/player/animation/animation_181.njm diff --git a/web/src/main/resources/assets/player/animation/animation_182.njm b/web/src/jsMain/resources/assets/player/animation/animation_182.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_182.njm rename to web/src/jsMain/resources/assets/player/animation/animation_182.njm diff --git a/web/src/main/resources/assets/player/animation/animation_183.njm b/web/src/jsMain/resources/assets/player/animation/animation_183.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_183.njm rename to web/src/jsMain/resources/assets/player/animation/animation_183.njm diff --git a/web/src/main/resources/assets/player/animation/animation_184.njm b/web/src/jsMain/resources/assets/player/animation/animation_184.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_184.njm rename to web/src/jsMain/resources/assets/player/animation/animation_184.njm diff --git a/web/src/main/resources/assets/player/animation/animation_185.njm b/web/src/jsMain/resources/assets/player/animation/animation_185.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_185.njm rename to web/src/jsMain/resources/assets/player/animation/animation_185.njm diff --git a/web/src/main/resources/assets/player/animation/animation_186.njm b/web/src/jsMain/resources/assets/player/animation/animation_186.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_186.njm rename to web/src/jsMain/resources/assets/player/animation/animation_186.njm diff --git a/web/src/main/resources/assets/player/animation/animation_187.njm b/web/src/jsMain/resources/assets/player/animation/animation_187.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_187.njm rename to web/src/jsMain/resources/assets/player/animation/animation_187.njm diff --git a/web/src/main/resources/assets/player/animation/animation_188.njm b/web/src/jsMain/resources/assets/player/animation/animation_188.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_188.njm rename to web/src/jsMain/resources/assets/player/animation/animation_188.njm diff --git a/web/src/main/resources/assets/player/animation/animation_189.njm b/web/src/jsMain/resources/assets/player/animation/animation_189.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_189.njm rename to web/src/jsMain/resources/assets/player/animation/animation_189.njm diff --git a/web/src/main/resources/assets/player/animation/animation_190.njm b/web/src/jsMain/resources/assets/player/animation/animation_190.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_190.njm rename to web/src/jsMain/resources/assets/player/animation/animation_190.njm diff --git a/web/src/main/resources/assets/player/animation/animation_191.njm b/web/src/jsMain/resources/assets/player/animation/animation_191.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_191.njm rename to web/src/jsMain/resources/assets/player/animation/animation_191.njm diff --git a/web/src/main/resources/assets/player/animation/animation_192.njm b/web/src/jsMain/resources/assets/player/animation/animation_192.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_192.njm rename to web/src/jsMain/resources/assets/player/animation/animation_192.njm diff --git a/web/src/main/resources/assets/player/animation/animation_193.njm b/web/src/jsMain/resources/assets/player/animation/animation_193.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_193.njm rename to web/src/jsMain/resources/assets/player/animation/animation_193.njm diff --git a/web/src/main/resources/assets/player/animation/animation_194.njm b/web/src/jsMain/resources/assets/player/animation/animation_194.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_194.njm rename to web/src/jsMain/resources/assets/player/animation/animation_194.njm diff --git a/web/src/main/resources/assets/player/animation/animation_195.njm b/web/src/jsMain/resources/assets/player/animation/animation_195.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_195.njm rename to web/src/jsMain/resources/assets/player/animation/animation_195.njm diff --git a/web/src/main/resources/assets/player/animation/animation_196.njm b/web/src/jsMain/resources/assets/player/animation/animation_196.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_196.njm rename to web/src/jsMain/resources/assets/player/animation/animation_196.njm diff --git a/web/src/main/resources/assets/player/animation/animation_197.njm b/web/src/jsMain/resources/assets/player/animation/animation_197.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_197.njm rename to web/src/jsMain/resources/assets/player/animation/animation_197.njm diff --git a/web/src/main/resources/assets/player/animation/animation_198.njm b/web/src/jsMain/resources/assets/player/animation/animation_198.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_198.njm rename to web/src/jsMain/resources/assets/player/animation/animation_198.njm diff --git a/web/src/main/resources/assets/player/animation/animation_199.njm b/web/src/jsMain/resources/assets/player/animation/animation_199.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_199.njm rename to web/src/jsMain/resources/assets/player/animation/animation_199.njm diff --git a/web/src/main/resources/assets/player/animation/animation_200.njm b/web/src/jsMain/resources/assets/player/animation/animation_200.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_200.njm rename to web/src/jsMain/resources/assets/player/animation/animation_200.njm diff --git a/web/src/main/resources/assets/player/animation/animation_201.njm b/web/src/jsMain/resources/assets/player/animation/animation_201.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_201.njm rename to web/src/jsMain/resources/assets/player/animation/animation_201.njm diff --git a/web/src/main/resources/assets/player/animation/animation_202.njm b/web/src/jsMain/resources/assets/player/animation/animation_202.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_202.njm rename to web/src/jsMain/resources/assets/player/animation/animation_202.njm diff --git a/web/src/main/resources/assets/player/animation/animation_203.njm b/web/src/jsMain/resources/assets/player/animation/animation_203.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_203.njm rename to web/src/jsMain/resources/assets/player/animation/animation_203.njm diff --git a/web/src/main/resources/assets/player/animation/animation_204.njm b/web/src/jsMain/resources/assets/player/animation/animation_204.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_204.njm rename to web/src/jsMain/resources/assets/player/animation/animation_204.njm diff --git a/web/src/main/resources/assets/player/animation/animation_205.njm b/web/src/jsMain/resources/assets/player/animation/animation_205.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_205.njm rename to web/src/jsMain/resources/assets/player/animation/animation_205.njm diff --git a/web/src/main/resources/assets/player/animation/animation_206.njm b/web/src/jsMain/resources/assets/player/animation/animation_206.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_206.njm rename to web/src/jsMain/resources/assets/player/animation/animation_206.njm diff --git a/web/src/main/resources/assets/player/animation/animation_207.njm b/web/src/jsMain/resources/assets/player/animation/animation_207.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_207.njm rename to web/src/jsMain/resources/assets/player/animation/animation_207.njm diff --git a/web/src/main/resources/assets/player/animation/animation_208.njm b/web/src/jsMain/resources/assets/player/animation/animation_208.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_208.njm rename to web/src/jsMain/resources/assets/player/animation/animation_208.njm diff --git a/web/src/main/resources/assets/player/animation/animation_209.njm b/web/src/jsMain/resources/assets/player/animation/animation_209.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_209.njm rename to web/src/jsMain/resources/assets/player/animation/animation_209.njm diff --git a/web/src/main/resources/assets/player/animation/animation_210.njm b/web/src/jsMain/resources/assets/player/animation/animation_210.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_210.njm rename to web/src/jsMain/resources/assets/player/animation/animation_210.njm diff --git a/web/src/main/resources/assets/player/animation/animation_211.njm b/web/src/jsMain/resources/assets/player/animation/animation_211.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_211.njm rename to web/src/jsMain/resources/assets/player/animation/animation_211.njm diff --git a/web/src/main/resources/assets/player/animation/animation_212.njm b/web/src/jsMain/resources/assets/player/animation/animation_212.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_212.njm rename to web/src/jsMain/resources/assets/player/animation/animation_212.njm diff --git a/web/src/main/resources/assets/player/animation/animation_213.njm b/web/src/jsMain/resources/assets/player/animation/animation_213.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_213.njm rename to web/src/jsMain/resources/assets/player/animation/animation_213.njm diff --git a/web/src/main/resources/assets/player/animation/animation_214.njm b/web/src/jsMain/resources/assets/player/animation/animation_214.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_214.njm rename to web/src/jsMain/resources/assets/player/animation/animation_214.njm diff --git a/web/src/main/resources/assets/player/animation/animation_215.njm b/web/src/jsMain/resources/assets/player/animation/animation_215.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_215.njm rename to web/src/jsMain/resources/assets/player/animation/animation_215.njm diff --git a/web/src/main/resources/assets/player/animation/animation_216.njm b/web/src/jsMain/resources/assets/player/animation/animation_216.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_216.njm rename to web/src/jsMain/resources/assets/player/animation/animation_216.njm diff --git a/web/src/main/resources/assets/player/animation/animation_217.njm b/web/src/jsMain/resources/assets/player/animation/animation_217.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_217.njm rename to web/src/jsMain/resources/assets/player/animation/animation_217.njm diff --git a/web/src/main/resources/assets/player/animation/animation_218.njm b/web/src/jsMain/resources/assets/player/animation/animation_218.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_218.njm rename to web/src/jsMain/resources/assets/player/animation/animation_218.njm diff --git a/web/src/main/resources/assets/player/animation/animation_219.njm b/web/src/jsMain/resources/assets/player/animation/animation_219.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_219.njm rename to web/src/jsMain/resources/assets/player/animation/animation_219.njm diff --git a/web/src/main/resources/assets/player/animation/animation_220.njm b/web/src/jsMain/resources/assets/player/animation/animation_220.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_220.njm rename to web/src/jsMain/resources/assets/player/animation/animation_220.njm diff --git a/web/src/main/resources/assets/player/animation/animation_221.njm b/web/src/jsMain/resources/assets/player/animation/animation_221.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_221.njm rename to web/src/jsMain/resources/assets/player/animation/animation_221.njm diff --git a/web/src/main/resources/assets/player/animation/animation_222.njm b/web/src/jsMain/resources/assets/player/animation/animation_222.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_222.njm rename to web/src/jsMain/resources/assets/player/animation/animation_222.njm diff --git a/web/src/main/resources/assets/player/animation/animation_223.njm b/web/src/jsMain/resources/assets/player/animation/animation_223.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_223.njm rename to web/src/jsMain/resources/assets/player/animation/animation_223.njm diff --git a/web/src/main/resources/assets/player/animation/animation_224.njm b/web/src/jsMain/resources/assets/player/animation/animation_224.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_224.njm rename to web/src/jsMain/resources/assets/player/animation/animation_224.njm diff --git a/web/src/main/resources/assets/player/animation/animation_225.njm b/web/src/jsMain/resources/assets/player/animation/animation_225.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_225.njm rename to web/src/jsMain/resources/assets/player/animation/animation_225.njm diff --git a/web/src/main/resources/assets/player/animation/animation_226.njm b/web/src/jsMain/resources/assets/player/animation/animation_226.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_226.njm rename to web/src/jsMain/resources/assets/player/animation/animation_226.njm diff --git a/web/src/main/resources/assets/player/animation/animation_227.njm b/web/src/jsMain/resources/assets/player/animation/animation_227.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_227.njm rename to web/src/jsMain/resources/assets/player/animation/animation_227.njm diff --git a/web/src/main/resources/assets/player/animation/animation_228.njm b/web/src/jsMain/resources/assets/player/animation/animation_228.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_228.njm rename to web/src/jsMain/resources/assets/player/animation/animation_228.njm diff --git a/web/src/main/resources/assets/player/animation/animation_229.njm b/web/src/jsMain/resources/assets/player/animation/animation_229.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_229.njm rename to web/src/jsMain/resources/assets/player/animation/animation_229.njm diff --git a/web/src/main/resources/assets/player/animation/animation_230.njm b/web/src/jsMain/resources/assets/player/animation/animation_230.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_230.njm rename to web/src/jsMain/resources/assets/player/animation/animation_230.njm diff --git a/web/src/main/resources/assets/player/animation/animation_231.njm b/web/src/jsMain/resources/assets/player/animation/animation_231.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_231.njm rename to web/src/jsMain/resources/assets/player/animation/animation_231.njm diff --git a/web/src/main/resources/assets/player/animation/animation_232.njm b/web/src/jsMain/resources/assets/player/animation/animation_232.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_232.njm rename to web/src/jsMain/resources/assets/player/animation/animation_232.njm diff --git a/web/src/main/resources/assets/player/animation/animation_233.njm b/web/src/jsMain/resources/assets/player/animation/animation_233.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_233.njm rename to web/src/jsMain/resources/assets/player/animation/animation_233.njm diff --git a/web/src/main/resources/assets/player/animation/animation_234.njm b/web/src/jsMain/resources/assets/player/animation/animation_234.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_234.njm rename to web/src/jsMain/resources/assets/player/animation/animation_234.njm diff --git a/web/src/main/resources/assets/player/animation/animation_235.njm b/web/src/jsMain/resources/assets/player/animation/animation_235.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_235.njm rename to web/src/jsMain/resources/assets/player/animation/animation_235.njm diff --git a/web/src/main/resources/assets/player/animation/animation_236.njm b/web/src/jsMain/resources/assets/player/animation/animation_236.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_236.njm rename to web/src/jsMain/resources/assets/player/animation/animation_236.njm diff --git a/web/src/main/resources/assets/player/animation/animation_237.njm b/web/src/jsMain/resources/assets/player/animation/animation_237.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_237.njm rename to web/src/jsMain/resources/assets/player/animation/animation_237.njm diff --git a/web/src/main/resources/assets/player/animation/animation_238.njm b/web/src/jsMain/resources/assets/player/animation/animation_238.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_238.njm rename to web/src/jsMain/resources/assets/player/animation/animation_238.njm diff --git a/web/src/main/resources/assets/player/animation/animation_239.njm b/web/src/jsMain/resources/assets/player/animation/animation_239.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_239.njm rename to web/src/jsMain/resources/assets/player/animation/animation_239.njm diff --git a/web/src/main/resources/assets/player/animation/animation_240.njm b/web/src/jsMain/resources/assets/player/animation/animation_240.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_240.njm rename to web/src/jsMain/resources/assets/player/animation/animation_240.njm diff --git a/web/src/main/resources/assets/player/animation/animation_241.njm b/web/src/jsMain/resources/assets/player/animation/animation_241.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_241.njm rename to web/src/jsMain/resources/assets/player/animation/animation_241.njm diff --git a/web/src/main/resources/assets/player/animation/animation_242.njm b/web/src/jsMain/resources/assets/player/animation/animation_242.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_242.njm rename to web/src/jsMain/resources/assets/player/animation/animation_242.njm diff --git a/web/src/main/resources/assets/player/animation/animation_243.njm b/web/src/jsMain/resources/assets/player/animation/animation_243.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_243.njm rename to web/src/jsMain/resources/assets/player/animation/animation_243.njm diff --git a/web/src/main/resources/assets/player/animation/animation_244.njm b/web/src/jsMain/resources/assets/player/animation/animation_244.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_244.njm rename to web/src/jsMain/resources/assets/player/animation/animation_244.njm diff --git a/web/src/main/resources/assets/player/animation/animation_245.njm b/web/src/jsMain/resources/assets/player/animation/animation_245.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_245.njm rename to web/src/jsMain/resources/assets/player/animation/animation_245.njm diff --git a/web/src/main/resources/assets/player/animation/animation_246.njm b/web/src/jsMain/resources/assets/player/animation/animation_246.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_246.njm rename to web/src/jsMain/resources/assets/player/animation/animation_246.njm diff --git a/web/src/main/resources/assets/player/animation/animation_247.njm b/web/src/jsMain/resources/assets/player/animation/animation_247.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_247.njm rename to web/src/jsMain/resources/assets/player/animation/animation_247.njm diff --git a/web/src/main/resources/assets/player/animation/animation_248.njm b/web/src/jsMain/resources/assets/player/animation/animation_248.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_248.njm rename to web/src/jsMain/resources/assets/player/animation/animation_248.njm diff --git a/web/src/main/resources/assets/player/animation/animation_249.njm b/web/src/jsMain/resources/assets/player/animation/animation_249.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_249.njm rename to web/src/jsMain/resources/assets/player/animation/animation_249.njm diff --git a/web/src/main/resources/assets/player/animation/animation_250.njm b/web/src/jsMain/resources/assets/player/animation/animation_250.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_250.njm rename to web/src/jsMain/resources/assets/player/animation/animation_250.njm diff --git a/web/src/main/resources/assets/player/animation/animation_251.njm b/web/src/jsMain/resources/assets/player/animation/animation_251.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_251.njm rename to web/src/jsMain/resources/assets/player/animation/animation_251.njm diff --git a/web/src/main/resources/assets/player/animation/animation_252.njm b/web/src/jsMain/resources/assets/player/animation/animation_252.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_252.njm rename to web/src/jsMain/resources/assets/player/animation/animation_252.njm diff --git a/web/src/main/resources/assets/player/animation/animation_253.njm b/web/src/jsMain/resources/assets/player/animation/animation_253.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_253.njm rename to web/src/jsMain/resources/assets/player/animation/animation_253.njm diff --git a/web/src/main/resources/assets/player/animation/animation_254.njm b/web/src/jsMain/resources/assets/player/animation/animation_254.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_254.njm rename to web/src/jsMain/resources/assets/player/animation/animation_254.njm diff --git a/web/src/main/resources/assets/player/animation/animation_255.njm b/web/src/jsMain/resources/assets/player/animation/animation_255.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_255.njm rename to web/src/jsMain/resources/assets/player/animation/animation_255.njm diff --git a/web/src/main/resources/assets/player/animation/animation_256.njm b/web/src/jsMain/resources/assets/player/animation/animation_256.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_256.njm rename to web/src/jsMain/resources/assets/player/animation/animation_256.njm diff --git a/web/src/main/resources/assets/player/animation/animation_257.njm b/web/src/jsMain/resources/assets/player/animation/animation_257.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_257.njm rename to web/src/jsMain/resources/assets/player/animation/animation_257.njm diff --git a/web/src/main/resources/assets/player/animation/animation_258.njm b/web/src/jsMain/resources/assets/player/animation/animation_258.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_258.njm rename to web/src/jsMain/resources/assets/player/animation/animation_258.njm diff --git a/web/src/main/resources/assets/player/animation/animation_259.njm b/web/src/jsMain/resources/assets/player/animation/animation_259.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_259.njm rename to web/src/jsMain/resources/assets/player/animation/animation_259.njm diff --git a/web/src/main/resources/assets/player/animation/animation_260.njm b/web/src/jsMain/resources/assets/player/animation/animation_260.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_260.njm rename to web/src/jsMain/resources/assets/player/animation/animation_260.njm diff --git a/web/src/main/resources/assets/player/animation/animation_261.njm b/web/src/jsMain/resources/assets/player/animation/animation_261.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_261.njm rename to web/src/jsMain/resources/assets/player/animation/animation_261.njm diff --git a/web/src/main/resources/assets/player/animation/animation_262.njm b/web/src/jsMain/resources/assets/player/animation/animation_262.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_262.njm rename to web/src/jsMain/resources/assets/player/animation/animation_262.njm diff --git a/web/src/main/resources/assets/player/animation/animation_263.njm b/web/src/jsMain/resources/assets/player/animation/animation_263.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_263.njm rename to web/src/jsMain/resources/assets/player/animation/animation_263.njm diff --git a/web/src/main/resources/assets/player/animation/animation_264.njm b/web/src/jsMain/resources/assets/player/animation/animation_264.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_264.njm rename to web/src/jsMain/resources/assets/player/animation/animation_264.njm diff --git a/web/src/main/resources/assets/player/animation/animation_265.njm b/web/src/jsMain/resources/assets/player/animation/animation_265.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_265.njm rename to web/src/jsMain/resources/assets/player/animation/animation_265.njm diff --git a/web/src/main/resources/assets/player/animation/animation_266.njm b/web/src/jsMain/resources/assets/player/animation/animation_266.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_266.njm rename to web/src/jsMain/resources/assets/player/animation/animation_266.njm diff --git a/web/src/main/resources/assets/player/animation/animation_267.njm b/web/src/jsMain/resources/assets/player/animation/animation_267.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_267.njm rename to web/src/jsMain/resources/assets/player/animation/animation_267.njm diff --git a/web/src/main/resources/assets/player/animation/animation_268.njm b/web/src/jsMain/resources/assets/player/animation/animation_268.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_268.njm rename to web/src/jsMain/resources/assets/player/animation/animation_268.njm diff --git a/web/src/main/resources/assets/player/animation/animation_269.njm b/web/src/jsMain/resources/assets/player/animation/animation_269.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_269.njm rename to web/src/jsMain/resources/assets/player/animation/animation_269.njm diff --git a/web/src/main/resources/assets/player/animation/animation_270.njm b/web/src/jsMain/resources/assets/player/animation/animation_270.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_270.njm rename to web/src/jsMain/resources/assets/player/animation/animation_270.njm diff --git a/web/src/main/resources/assets/player/animation/animation_271.njm b/web/src/jsMain/resources/assets/player/animation/animation_271.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_271.njm rename to web/src/jsMain/resources/assets/player/animation/animation_271.njm diff --git a/web/src/main/resources/assets/player/animation/animation_272.njm b/web/src/jsMain/resources/assets/player/animation/animation_272.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_272.njm rename to web/src/jsMain/resources/assets/player/animation/animation_272.njm diff --git a/web/src/main/resources/assets/player/animation/animation_273.njm b/web/src/jsMain/resources/assets/player/animation/animation_273.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_273.njm rename to web/src/jsMain/resources/assets/player/animation/animation_273.njm diff --git a/web/src/main/resources/assets/player/animation/animation_274.njm b/web/src/jsMain/resources/assets/player/animation/animation_274.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_274.njm rename to web/src/jsMain/resources/assets/player/animation/animation_274.njm diff --git a/web/src/main/resources/assets/player/animation/animation_275.njm b/web/src/jsMain/resources/assets/player/animation/animation_275.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_275.njm rename to web/src/jsMain/resources/assets/player/animation/animation_275.njm diff --git a/web/src/main/resources/assets/player/animation/animation_276.njm b/web/src/jsMain/resources/assets/player/animation/animation_276.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_276.njm rename to web/src/jsMain/resources/assets/player/animation/animation_276.njm diff --git a/web/src/main/resources/assets/player/animation/animation_277.njm b/web/src/jsMain/resources/assets/player/animation/animation_277.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_277.njm rename to web/src/jsMain/resources/assets/player/animation/animation_277.njm diff --git a/web/src/main/resources/assets/player/animation/animation_278.njm b/web/src/jsMain/resources/assets/player/animation/animation_278.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_278.njm rename to web/src/jsMain/resources/assets/player/animation/animation_278.njm diff --git a/web/src/main/resources/assets/player/animation/animation_279.njm b/web/src/jsMain/resources/assets/player/animation/animation_279.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_279.njm rename to web/src/jsMain/resources/assets/player/animation/animation_279.njm diff --git a/web/src/main/resources/assets/player/animation/animation_280.njm b/web/src/jsMain/resources/assets/player/animation/animation_280.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_280.njm rename to web/src/jsMain/resources/assets/player/animation/animation_280.njm diff --git a/web/src/main/resources/assets/player/animation/animation_281.njm b/web/src/jsMain/resources/assets/player/animation/animation_281.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_281.njm rename to web/src/jsMain/resources/assets/player/animation/animation_281.njm diff --git a/web/src/main/resources/assets/player/animation/animation_282.njm b/web/src/jsMain/resources/assets/player/animation/animation_282.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_282.njm rename to web/src/jsMain/resources/assets/player/animation/animation_282.njm diff --git a/web/src/main/resources/assets/player/animation/animation_283.njm b/web/src/jsMain/resources/assets/player/animation/animation_283.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_283.njm rename to web/src/jsMain/resources/assets/player/animation/animation_283.njm diff --git a/web/src/main/resources/assets/player/animation/animation_284.njm b/web/src/jsMain/resources/assets/player/animation/animation_284.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_284.njm rename to web/src/jsMain/resources/assets/player/animation/animation_284.njm diff --git a/web/src/main/resources/assets/player/animation/animation_285.njm b/web/src/jsMain/resources/assets/player/animation/animation_285.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_285.njm rename to web/src/jsMain/resources/assets/player/animation/animation_285.njm diff --git a/web/src/main/resources/assets/player/animation/animation_286.njm b/web/src/jsMain/resources/assets/player/animation/animation_286.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_286.njm rename to web/src/jsMain/resources/assets/player/animation/animation_286.njm diff --git a/web/src/main/resources/assets/player/animation/animation_287.njm b/web/src/jsMain/resources/assets/player/animation/animation_287.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_287.njm rename to web/src/jsMain/resources/assets/player/animation/animation_287.njm diff --git a/web/src/main/resources/assets/player/animation/animation_288.njm b/web/src/jsMain/resources/assets/player/animation/animation_288.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_288.njm rename to web/src/jsMain/resources/assets/player/animation/animation_288.njm diff --git a/web/src/main/resources/assets/player/animation/animation_289.njm b/web/src/jsMain/resources/assets/player/animation/animation_289.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_289.njm rename to web/src/jsMain/resources/assets/player/animation/animation_289.njm diff --git a/web/src/main/resources/assets/player/animation/animation_290.njm b/web/src/jsMain/resources/assets/player/animation/animation_290.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_290.njm rename to web/src/jsMain/resources/assets/player/animation/animation_290.njm diff --git a/web/src/main/resources/assets/player/animation/animation_291.njm b/web/src/jsMain/resources/assets/player/animation/animation_291.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_291.njm rename to web/src/jsMain/resources/assets/player/animation/animation_291.njm diff --git a/web/src/main/resources/assets/player/animation/animation_292.njm b/web/src/jsMain/resources/assets/player/animation/animation_292.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_292.njm rename to web/src/jsMain/resources/assets/player/animation/animation_292.njm diff --git a/web/src/main/resources/assets/player/animation/animation_293.njm b/web/src/jsMain/resources/assets/player/animation/animation_293.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_293.njm rename to web/src/jsMain/resources/assets/player/animation/animation_293.njm diff --git a/web/src/main/resources/assets/player/animation/animation_294.njm b/web/src/jsMain/resources/assets/player/animation/animation_294.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_294.njm rename to web/src/jsMain/resources/assets/player/animation/animation_294.njm diff --git a/web/src/main/resources/assets/player/animation/animation_295.njm b/web/src/jsMain/resources/assets/player/animation/animation_295.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_295.njm rename to web/src/jsMain/resources/assets/player/animation/animation_295.njm diff --git a/web/src/main/resources/assets/player/animation/animation_296.njm b/web/src/jsMain/resources/assets/player/animation/animation_296.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_296.njm rename to web/src/jsMain/resources/assets/player/animation/animation_296.njm diff --git a/web/src/main/resources/assets/player/animation/animation_297.njm b/web/src/jsMain/resources/assets/player/animation/animation_297.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_297.njm rename to web/src/jsMain/resources/assets/player/animation/animation_297.njm diff --git a/web/src/main/resources/assets/player/animation/animation_298.njm b/web/src/jsMain/resources/assets/player/animation/animation_298.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_298.njm rename to web/src/jsMain/resources/assets/player/animation/animation_298.njm diff --git a/web/src/main/resources/assets/player/animation/animation_299.njm b/web/src/jsMain/resources/assets/player/animation/animation_299.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_299.njm rename to web/src/jsMain/resources/assets/player/animation/animation_299.njm diff --git a/web/src/main/resources/assets/player/animation/animation_300.njm b/web/src/jsMain/resources/assets/player/animation/animation_300.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_300.njm rename to web/src/jsMain/resources/assets/player/animation/animation_300.njm diff --git a/web/src/main/resources/assets/player/animation/animation_301.njm b/web/src/jsMain/resources/assets/player/animation/animation_301.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_301.njm rename to web/src/jsMain/resources/assets/player/animation/animation_301.njm diff --git a/web/src/main/resources/assets/player/animation/animation_302.njm b/web/src/jsMain/resources/assets/player/animation/animation_302.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_302.njm rename to web/src/jsMain/resources/assets/player/animation/animation_302.njm diff --git a/web/src/main/resources/assets/player/animation/animation_303.njm b/web/src/jsMain/resources/assets/player/animation/animation_303.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_303.njm rename to web/src/jsMain/resources/assets/player/animation/animation_303.njm diff --git a/web/src/main/resources/assets/player/animation/animation_304.njm b/web/src/jsMain/resources/assets/player/animation/animation_304.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_304.njm rename to web/src/jsMain/resources/assets/player/animation/animation_304.njm diff --git a/web/src/main/resources/assets/player/animation/animation_305.njm b/web/src/jsMain/resources/assets/player/animation/animation_305.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_305.njm rename to web/src/jsMain/resources/assets/player/animation/animation_305.njm diff --git a/web/src/main/resources/assets/player/animation/animation_306.njm b/web/src/jsMain/resources/assets/player/animation/animation_306.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_306.njm rename to web/src/jsMain/resources/assets/player/animation/animation_306.njm diff --git a/web/src/main/resources/assets/player/animation/animation_307.njm b/web/src/jsMain/resources/assets/player/animation/animation_307.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_307.njm rename to web/src/jsMain/resources/assets/player/animation/animation_307.njm diff --git a/web/src/main/resources/assets/player/animation/animation_308.njm b/web/src/jsMain/resources/assets/player/animation/animation_308.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_308.njm rename to web/src/jsMain/resources/assets/player/animation/animation_308.njm diff --git a/web/src/main/resources/assets/player/animation/animation_309.njm b/web/src/jsMain/resources/assets/player/animation/animation_309.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_309.njm rename to web/src/jsMain/resources/assets/player/animation/animation_309.njm diff --git a/web/src/main/resources/assets/player/animation/animation_310.njm b/web/src/jsMain/resources/assets/player/animation/animation_310.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_310.njm rename to web/src/jsMain/resources/assets/player/animation/animation_310.njm diff --git a/web/src/main/resources/assets/player/animation/animation_311.njm b/web/src/jsMain/resources/assets/player/animation/animation_311.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_311.njm rename to web/src/jsMain/resources/assets/player/animation/animation_311.njm diff --git a/web/src/main/resources/assets/player/animation/animation_312.njm b/web/src/jsMain/resources/assets/player/animation/animation_312.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_312.njm rename to web/src/jsMain/resources/assets/player/animation/animation_312.njm diff --git a/web/src/main/resources/assets/player/animation/animation_313.njm b/web/src/jsMain/resources/assets/player/animation/animation_313.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_313.njm rename to web/src/jsMain/resources/assets/player/animation/animation_313.njm diff --git a/web/src/main/resources/assets/player/animation/animation_314.njm b/web/src/jsMain/resources/assets/player/animation/animation_314.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_314.njm rename to web/src/jsMain/resources/assets/player/animation/animation_314.njm diff --git a/web/src/main/resources/assets/player/animation/animation_315.njm b/web/src/jsMain/resources/assets/player/animation/animation_315.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_315.njm rename to web/src/jsMain/resources/assets/player/animation/animation_315.njm diff --git a/web/src/main/resources/assets/player/animation/animation_316.njm b/web/src/jsMain/resources/assets/player/animation/animation_316.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_316.njm rename to web/src/jsMain/resources/assets/player/animation/animation_316.njm diff --git a/web/src/main/resources/assets/player/animation/animation_317.njm b/web/src/jsMain/resources/assets/player/animation/animation_317.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_317.njm rename to web/src/jsMain/resources/assets/player/animation/animation_317.njm diff --git a/web/src/main/resources/assets/player/animation/animation_318.njm b/web/src/jsMain/resources/assets/player/animation/animation_318.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_318.njm rename to web/src/jsMain/resources/assets/player/animation/animation_318.njm diff --git a/web/src/main/resources/assets/player/animation/animation_319.njm b/web/src/jsMain/resources/assets/player/animation/animation_319.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_319.njm rename to web/src/jsMain/resources/assets/player/animation/animation_319.njm diff --git a/web/src/main/resources/assets/player/animation/animation_320.njm b/web/src/jsMain/resources/assets/player/animation/animation_320.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_320.njm rename to web/src/jsMain/resources/assets/player/animation/animation_320.njm diff --git a/web/src/main/resources/assets/player/animation/animation_321.njm b/web/src/jsMain/resources/assets/player/animation/animation_321.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_321.njm rename to web/src/jsMain/resources/assets/player/animation/animation_321.njm diff --git a/web/src/main/resources/assets/player/animation/animation_322.njm b/web/src/jsMain/resources/assets/player/animation/animation_322.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_322.njm rename to web/src/jsMain/resources/assets/player/animation/animation_322.njm diff --git a/web/src/main/resources/assets/player/animation/animation_323.njm b/web/src/jsMain/resources/assets/player/animation/animation_323.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_323.njm rename to web/src/jsMain/resources/assets/player/animation/animation_323.njm diff --git a/web/src/main/resources/assets/player/animation/animation_324.njm b/web/src/jsMain/resources/assets/player/animation/animation_324.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_324.njm rename to web/src/jsMain/resources/assets/player/animation/animation_324.njm diff --git a/web/src/main/resources/assets/player/animation/animation_325.njm b/web/src/jsMain/resources/assets/player/animation/animation_325.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_325.njm rename to web/src/jsMain/resources/assets/player/animation/animation_325.njm diff --git a/web/src/main/resources/assets/player/animation/animation_326.njm b/web/src/jsMain/resources/assets/player/animation/animation_326.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_326.njm rename to web/src/jsMain/resources/assets/player/animation/animation_326.njm diff --git a/web/src/main/resources/assets/player/animation/animation_327.njm b/web/src/jsMain/resources/assets/player/animation/animation_327.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_327.njm rename to web/src/jsMain/resources/assets/player/animation/animation_327.njm diff --git a/web/src/main/resources/assets/player/animation/animation_328.njm b/web/src/jsMain/resources/assets/player/animation/animation_328.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_328.njm rename to web/src/jsMain/resources/assets/player/animation/animation_328.njm diff --git a/web/src/main/resources/assets/player/animation/animation_329.njm b/web/src/jsMain/resources/assets/player/animation/animation_329.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_329.njm rename to web/src/jsMain/resources/assets/player/animation/animation_329.njm diff --git a/web/src/main/resources/assets/player/animation/animation_330.njm b/web/src/jsMain/resources/assets/player/animation/animation_330.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_330.njm rename to web/src/jsMain/resources/assets/player/animation/animation_330.njm diff --git a/web/src/main/resources/assets/player/animation/animation_331.njm b/web/src/jsMain/resources/assets/player/animation/animation_331.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_331.njm rename to web/src/jsMain/resources/assets/player/animation/animation_331.njm diff --git a/web/src/main/resources/assets/player/animation/animation_332.njm b/web/src/jsMain/resources/assets/player/animation/animation_332.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_332.njm rename to web/src/jsMain/resources/assets/player/animation/animation_332.njm diff --git a/web/src/main/resources/assets/player/animation/animation_333.njm b/web/src/jsMain/resources/assets/player/animation/animation_333.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_333.njm rename to web/src/jsMain/resources/assets/player/animation/animation_333.njm diff --git a/web/src/main/resources/assets/player/animation/animation_334.njm b/web/src/jsMain/resources/assets/player/animation/animation_334.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_334.njm rename to web/src/jsMain/resources/assets/player/animation/animation_334.njm diff --git a/web/src/main/resources/assets/player/animation/animation_335.njm b/web/src/jsMain/resources/assets/player/animation/animation_335.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_335.njm rename to web/src/jsMain/resources/assets/player/animation/animation_335.njm diff --git a/web/src/main/resources/assets/player/animation/animation_336.njm b/web/src/jsMain/resources/assets/player/animation/animation_336.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_336.njm rename to web/src/jsMain/resources/assets/player/animation/animation_336.njm diff --git a/web/src/main/resources/assets/player/animation/animation_337.njm b/web/src/jsMain/resources/assets/player/animation/animation_337.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_337.njm rename to web/src/jsMain/resources/assets/player/animation/animation_337.njm diff --git a/web/src/main/resources/assets/player/animation/animation_338.njm b/web/src/jsMain/resources/assets/player/animation/animation_338.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_338.njm rename to web/src/jsMain/resources/assets/player/animation/animation_338.njm diff --git a/web/src/main/resources/assets/player/animation/animation_339.njm b/web/src/jsMain/resources/assets/player/animation/animation_339.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_339.njm rename to web/src/jsMain/resources/assets/player/animation/animation_339.njm diff --git a/web/src/main/resources/assets/player/animation/animation_340.njm b/web/src/jsMain/resources/assets/player/animation/animation_340.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_340.njm rename to web/src/jsMain/resources/assets/player/animation/animation_340.njm diff --git a/web/src/main/resources/assets/player/animation/animation_341.njm b/web/src/jsMain/resources/assets/player/animation/animation_341.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_341.njm rename to web/src/jsMain/resources/assets/player/animation/animation_341.njm diff --git a/web/src/main/resources/assets/player/animation/animation_342.njm b/web/src/jsMain/resources/assets/player/animation/animation_342.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_342.njm rename to web/src/jsMain/resources/assets/player/animation/animation_342.njm diff --git a/web/src/main/resources/assets/player/animation/animation_343.njm b/web/src/jsMain/resources/assets/player/animation/animation_343.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_343.njm rename to web/src/jsMain/resources/assets/player/animation/animation_343.njm diff --git a/web/src/main/resources/assets/player/animation/animation_344.njm b/web/src/jsMain/resources/assets/player/animation/animation_344.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_344.njm rename to web/src/jsMain/resources/assets/player/animation/animation_344.njm diff --git a/web/src/main/resources/assets/player/animation/animation_345.njm b/web/src/jsMain/resources/assets/player/animation/animation_345.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_345.njm rename to web/src/jsMain/resources/assets/player/animation/animation_345.njm diff --git a/web/src/main/resources/assets/player/animation/animation_346.njm b/web/src/jsMain/resources/assets/player/animation/animation_346.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_346.njm rename to web/src/jsMain/resources/assets/player/animation/animation_346.njm diff --git a/web/src/main/resources/assets/player/animation/animation_347.njm b/web/src/jsMain/resources/assets/player/animation/animation_347.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_347.njm rename to web/src/jsMain/resources/assets/player/animation/animation_347.njm diff --git a/web/src/main/resources/assets/player/animation/animation_348.njm b/web/src/jsMain/resources/assets/player/animation/animation_348.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_348.njm rename to web/src/jsMain/resources/assets/player/animation/animation_348.njm diff --git a/web/src/main/resources/assets/player/animation/animation_349.njm b/web/src/jsMain/resources/assets/player/animation/animation_349.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_349.njm rename to web/src/jsMain/resources/assets/player/animation/animation_349.njm diff --git a/web/src/main/resources/assets/player/animation/animation_350.njm b/web/src/jsMain/resources/assets/player/animation/animation_350.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_350.njm rename to web/src/jsMain/resources/assets/player/animation/animation_350.njm diff --git a/web/src/main/resources/assets/player/animation/animation_351.njm b/web/src/jsMain/resources/assets/player/animation/animation_351.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_351.njm rename to web/src/jsMain/resources/assets/player/animation/animation_351.njm diff --git a/web/src/main/resources/assets/player/animation/animation_352.njm b/web/src/jsMain/resources/assets/player/animation/animation_352.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_352.njm rename to web/src/jsMain/resources/assets/player/animation/animation_352.njm diff --git a/web/src/main/resources/assets/player/animation/animation_353.njm b/web/src/jsMain/resources/assets/player/animation/animation_353.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_353.njm rename to web/src/jsMain/resources/assets/player/animation/animation_353.njm diff --git a/web/src/main/resources/assets/player/animation/animation_354.njm b/web/src/jsMain/resources/assets/player/animation/animation_354.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_354.njm rename to web/src/jsMain/resources/assets/player/animation/animation_354.njm diff --git a/web/src/main/resources/assets/player/animation/animation_355.njm b/web/src/jsMain/resources/assets/player/animation/animation_355.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_355.njm rename to web/src/jsMain/resources/assets/player/animation/animation_355.njm diff --git a/web/src/main/resources/assets/player/animation/animation_356.njm b/web/src/jsMain/resources/assets/player/animation/animation_356.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_356.njm rename to web/src/jsMain/resources/assets/player/animation/animation_356.njm diff --git a/web/src/main/resources/assets/player/animation/animation_357.njm b/web/src/jsMain/resources/assets/player/animation/animation_357.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_357.njm rename to web/src/jsMain/resources/assets/player/animation/animation_357.njm diff --git a/web/src/main/resources/assets/player/animation/animation_358.njm b/web/src/jsMain/resources/assets/player/animation/animation_358.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_358.njm rename to web/src/jsMain/resources/assets/player/animation/animation_358.njm diff --git a/web/src/main/resources/assets/player/animation/animation_359.njm b/web/src/jsMain/resources/assets/player/animation/animation_359.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_359.njm rename to web/src/jsMain/resources/assets/player/animation/animation_359.njm diff --git a/web/src/main/resources/assets/player/animation/animation_360.njm b/web/src/jsMain/resources/assets/player/animation/animation_360.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_360.njm rename to web/src/jsMain/resources/assets/player/animation/animation_360.njm diff --git a/web/src/main/resources/assets/player/animation/animation_361.njm b/web/src/jsMain/resources/assets/player/animation/animation_361.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_361.njm rename to web/src/jsMain/resources/assets/player/animation/animation_361.njm diff --git a/web/src/main/resources/assets/player/animation/animation_362.njm b/web/src/jsMain/resources/assets/player/animation/animation_362.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_362.njm rename to web/src/jsMain/resources/assets/player/animation/animation_362.njm diff --git a/web/src/main/resources/assets/player/animation/animation_363.njm b/web/src/jsMain/resources/assets/player/animation/animation_363.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_363.njm rename to web/src/jsMain/resources/assets/player/animation/animation_363.njm diff --git a/web/src/main/resources/assets/player/animation/animation_364.njm b/web/src/jsMain/resources/assets/player/animation/animation_364.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_364.njm rename to web/src/jsMain/resources/assets/player/animation/animation_364.njm diff --git a/web/src/main/resources/assets/player/animation/animation_365.njm b/web/src/jsMain/resources/assets/player/animation/animation_365.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_365.njm rename to web/src/jsMain/resources/assets/player/animation/animation_365.njm diff --git a/web/src/main/resources/assets/player/animation/animation_366.njm b/web/src/jsMain/resources/assets/player/animation/animation_366.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_366.njm rename to web/src/jsMain/resources/assets/player/animation/animation_366.njm diff --git a/web/src/main/resources/assets/player/animation/animation_367.njm b/web/src/jsMain/resources/assets/player/animation/animation_367.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_367.njm rename to web/src/jsMain/resources/assets/player/animation/animation_367.njm diff --git a/web/src/main/resources/assets/player/animation/animation_368.njm b/web/src/jsMain/resources/assets/player/animation/animation_368.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_368.njm rename to web/src/jsMain/resources/assets/player/animation/animation_368.njm diff --git a/web/src/main/resources/assets/player/animation/animation_369.njm b/web/src/jsMain/resources/assets/player/animation/animation_369.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_369.njm rename to web/src/jsMain/resources/assets/player/animation/animation_369.njm diff --git a/web/src/main/resources/assets/player/animation/animation_370.njm b/web/src/jsMain/resources/assets/player/animation/animation_370.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_370.njm rename to web/src/jsMain/resources/assets/player/animation/animation_370.njm diff --git a/web/src/main/resources/assets/player/animation/animation_371.njm b/web/src/jsMain/resources/assets/player/animation/animation_371.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_371.njm rename to web/src/jsMain/resources/assets/player/animation/animation_371.njm diff --git a/web/src/main/resources/assets/player/animation/animation_372.njm b/web/src/jsMain/resources/assets/player/animation/animation_372.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_372.njm rename to web/src/jsMain/resources/assets/player/animation/animation_372.njm diff --git a/web/src/main/resources/assets/player/animation/animation_373.njm b/web/src/jsMain/resources/assets/player/animation/animation_373.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_373.njm rename to web/src/jsMain/resources/assets/player/animation/animation_373.njm diff --git a/web/src/main/resources/assets/player/animation/animation_374.njm b/web/src/jsMain/resources/assets/player/animation/animation_374.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_374.njm rename to web/src/jsMain/resources/assets/player/animation/animation_374.njm diff --git a/web/src/main/resources/assets/player/animation/animation_375.njm b/web/src/jsMain/resources/assets/player/animation/animation_375.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_375.njm rename to web/src/jsMain/resources/assets/player/animation/animation_375.njm diff --git a/web/src/main/resources/assets/player/animation/animation_376.njm b/web/src/jsMain/resources/assets/player/animation/animation_376.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_376.njm rename to web/src/jsMain/resources/assets/player/animation/animation_376.njm diff --git a/web/src/main/resources/assets/player/animation/animation_377.njm b/web/src/jsMain/resources/assets/player/animation/animation_377.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_377.njm rename to web/src/jsMain/resources/assets/player/animation/animation_377.njm diff --git a/web/src/main/resources/assets/player/animation/animation_378.njm b/web/src/jsMain/resources/assets/player/animation/animation_378.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_378.njm rename to web/src/jsMain/resources/assets/player/animation/animation_378.njm diff --git a/web/src/main/resources/assets/player/animation/animation_379.njm b/web/src/jsMain/resources/assets/player/animation/animation_379.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_379.njm rename to web/src/jsMain/resources/assets/player/animation/animation_379.njm diff --git a/web/src/main/resources/assets/player/animation/animation_380.njm b/web/src/jsMain/resources/assets/player/animation/animation_380.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_380.njm rename to web/src/jsMain/resources/assets/player/animation/animation_380.njm diff --git a/web/src/main/resources/assets/player/animation/animation_381.njm b/web/src/jsMain/resources/assets/player/animation/animation_381.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_381.njm rename to web/src/jsMain/resources/assets/player/animation/animation_381.njm diff --git a/web/src/main/resources/assets/player/animation/animation_382.njm b/web/src/jsMain/resources/assets/player/animation/animation_382.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_382.njm rename to web/src/jsMain/resources/assets/player/animation/animation_382.njm diff --git a/web/src/main/resources/assets/player/animation/animation_383.njm b/web/src/jsMain/resources/assets/player/animation/animation_383.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_383.njm rename to web/src/jsMain/resources/assets/player/animation/animation_383.njm diff --git a/web/src/main/resources/assets/player/animation/animation_384.njm b/web/src/jsMain/resources/assets/player/animation/animation_384.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_384.njm rename to web/src/jsMain/resources/assets/player/animation/animation_384.njm diff --git a/web/src/main/resources/assets/player/animation/animation_385.njm b/web/src/jsMain/resources/assets/player/animation/animation_385.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_385.njm rename to web/src/jsMain/resources/assets/player/animation/animation_385.njm diff --git a/web/src/main/resources/assets/player/animation/animation_386.njm b/web/src/jsMain/resources/assets/player/animation/animation_386.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_386.njm rename to web/src/jsMain/resources/assets/player/animation/animation_386.njm diff --git a/web/src/main/resources/assets/player/animation/animation_387.njm b/web/src/jsMain/resources/assets/player/animation/animation_387.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_387.njm rename to web/src/jsMain/resources/assets/player/animation/animation_387.njm diff --git a/web/src/main/resources/assets/player/animation/animation_388.njm b/web/src/jsMain/resources/assets/player/animation/animation_388.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_388.njm rename to web/src/jsMain/resources/assets/player/animation/animation_388.njm diff --git a/web/src/main/resources/assets/player/animation/animation_389.njm b/web/src/jsMain/resources/assets/player/animation/animation_389.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_389.njm rename to web/src/jsMain/resources/assets/player/animation/animation_389.njm diff --git a/web/src/main/resources/assets/player/animation/animation_390.njm b/web/src/jsMain/resources/assets/player/animation/animation_390.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_390.njm rename to web/src/jsMain/resources/assets/player/animation/animation_390.njm diff --git a/web/src/main/resources/assets/player/animation/animation_391.njm b/web/src/jsMain/resources/assets/player/animation/animation_391.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_391.njm rename to web/src/jsMain/resources/assets/player/animation/animation_391.njm diff --git a/web/src/main/resources/assets/player/animation/animation_392.njm b/web/src/jsMain/resources/assets/player/animation/animation_392.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_392.njm rename to web/src/jsMain/resources/assets/player/animation/animation_392.njm diff --git a/web/src/main/resources/assets/player/animation/animation_393.njm b/web/src/jsMain/resources/assets/player/animation/animation_393.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_393.njm rename to web/src/jsMain/resources/assets/player/animation/animation_393.njm diff --git a/web/src/main/resources/assets/player/animation/animation_394.njm b/web/src/jsMain/resources/assets/player/animation/animation_394.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_394.njm rename to web/src/jsMain/resources/assets/player/animation/animation_394.njm diff --git a/web/src/main/resources/assets/player/animation/animation_395.njm b/web/src/jsMain/resources/assets/player/animation/animation_395.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_395.njm rename to web/src/jsMain/resources/assets/player/animation/animation_395.njm diff --git a/web/src/main/resources/assets/player/animation/animation_396.njm b/web/src/jsMain/resources/assets/player/animation/animation_396.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_396.njm rename to web/src/jsMain/resources/assets/player/animation/animation_396.njm diff --git a/web/src/main/resources/assets/player/animation/animation_397.njm b/web/src/jsMain/resources/assets/player/animation/animation_397.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_397.njm rename to web/src/jsMain/resources/assets/player/animation/animation_397.njm diff --git a/web/src/main/resources/assets/player/animation/animation_398.njm b/web/src/jsMain/resources/assets/player/animation/animation_398.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_398.njm rename to web/src/jsMain/resources/assets/player/animation/animation_398.njm diff --git a/web/src/main/resources/assets/player/animation/animation_399.njm b/web/src/jsMain/resources/assets/player/animation/animation_399.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_399.njm rename to web/src/jsMain/resources/assets/player/animation/animation_399.njm diff --git a/web/src/main/resources/assets/player/animation/animation_400.njm b/web/src/jsMain/resources/assets/player/animation/animation_400.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_400.njm rename to web/src/jsMain/resources/assets/player/animation/animation_400.njm diff --git a/web/src/main/resources/assets/player/animation/animation_401.njm b/web/src/jsMain/resources/assets/player/animation/animation_401.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_401.njm rename to web/src/jsMain/resources/assets/player/animation/animation_401.njm diff --git a/web/src/main/resources/assets/player/animation/animation_402.njm b/web/src/jsMain/resources/assets/player/animation/animation_402.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_402.njm rename to web/src/jsMain/resources/assets/player/animation/animation_402.njm diff --git a/web/src/main/resources/assets/player/animation/animation_403.njm b/web/src/jsMain/resources/assets/player/animation/animation_403.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_403.njm rename to web/src/jsMain/resources/assets/player/animation/animation_403.njm diff --git a/web/src/main/resources/assets/player/animation/animation_404.njm b/web/src/jsMain/resources/assets/player/animation/animation_404.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_404.njm rename to web/src/jsMain/resources/assets/player/animation/animation_404.njm diff --git a/web/src/main/resources/assets/player/animation/animation_405.njm b/web/src/jsMain/resources/assets/player/animation/animation_405.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_405.njm rename to web/src/jsMain/resources/assets/player/animation/animation_405.njm diff --git a/web/src/main/resources/assets/player/animation/animation_406.njm b/web/src/jsMain/resources/assets/player/animation/animation_406.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_406.njm rename to web/src/jsMain/resources/assets/player/animation/animation_406.njm diff --git a/web/src/main/resources/assets/player/animation/animation_407.njm b/web/src/jsMain/resources/assets/player/animation/animation_407.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_407.njm rename to web/src/jsMain/resources/assets/player/animation/animation_407.njm diff --git a/web/src/main/resources/assets/player/animation/animation_408.njm b/web/src/jsMain/resources/assets/player/animation/animation_408.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_408.njm rename to web/src/jsMain/resources/assets/player/animation/animation_408.njm diff --git a/web/src/main/resources/assets/player/animation/animation_409.njm b/web/src/jsMain/resources/assets/player/animation/animation_409.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_409.njm rename to web/src/jsMain/resources/assets/player/animation/animation_409.njm diff --git a/web/src/main/resources/assets/player/animation/animation_410.njm b/web/src/jsMain/resources/assets/player/animation/animation_410.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_410.njm rename to web/src/jsMain/resources/assets/player/animation/animation_410.njm diff --git a/web/src/main/resources/assets/player/animation/animation_411.njm b/web/src/jsMain/resources/assets/player/animation/animation_411.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_411.njm rename to web/src/jsMain/resources/assets/player/animation/animation_411.njm diff --git a/web/src/main/resources/assets/player/animation/animation_412.njm b/web/src/jsMain/resources/assets/player/animation/animation_412.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_412.njm rename to web/src/jsMain/resources/assets/player/animation/animation_412.njm diff --git a/web/src/main/resources/assets/player/animation/animation_413.njm b/web/src/jsMain/resources/assets/player/animation/animation_413.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_413.njm rename to web/src/jsMain/resources/assets/player/animation/animation_413.njm diff --git a/web/src/main/resources/assets/player/animation/animation_414.njm b/web/src/jsMain/resources/assets/player/animation/animation_414.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_414.njm rename to web/src/jsMain/resources/assets/player/animation/animation_414.njm diff --git a/web/src/main/resources/assets/player/animation/animation_415.njm b/web/src/jsMain/resources/assets/player/animation/animation_415.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_415.njm rename to web/src/jsMain/resources/assets/player/animation/animation_415.njm diff --git a/web/src/main/resources/assets/player/animation/animation_416.njm b/web/src/jsMain/resources/assets/player/animation/animation_416.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_416.njm rename to web/src/jsMain/resources/assets/player/animation/animation_416.njm diff --git a/web/src/main/resources/assets/player/animation/animation_417.njm b/web/src/jsMain/resources/assets/player/animation/animation_417.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_417.njm rename to web/src/jsMain/resources/assets/player/animation/animation_417.njm diff --git a/web/src/main/resources/assets/player/animation/animation_418.njm b/web/src/jsMain/resources/assets/player/animation/animation_418.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_418.njm rename to web/src/jsMain/resources/assets/player/animation/animation_418.njm diff --git a/web/src/main/resources/assets/player/animation/animation_419.njm b/web/src/jsMain/resources/assets/player/animation/animation_419.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_419.njm rename to web/src/jsMain/resources/assets/player/animation/animation_419.njm diff --git a/web/src/main/resources/assets/player/animation/animation_420.njm b/web/src/jsMain/resources/assets/player/animation/animation_420.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_420.njm rename to web/src/jsMain/resources/assets/player/animation/animation_420.njm diff --git a/web/src/main/resources/assets/player/animation/animation_421.njm b/web/src/jsMain/resources/assets/player/animation/animation_421.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_421.njm rename to web/src/jsMain/resources/assets/player/animation/animation_421.njm diff --git a/web/src/main/resources/assets/player/animation/animation_422.njm b/web/src/jsMain/resources/assets/player/animation/animation_422.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_422.njm rename to web/src/jsMain/resources/assets/player/animation/animation_422.njm diff --git a/web/src/main/resources/assets/player/animation/animation_423.njm b/web/src/jsMain/resources/assets/player/animation/animation_423.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_423.njm rename to web/src/jsMain/resources/assets/player/animation/animation_423.njm diff --git a/web/src/main/resources/assets/player/animation/animation_424.njm b/web/src/jsMain/resources/assets/player/animation/animation_424.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_424.njm rename to web/src/jsMain/resources/assets/player/animation/animation_424.njm diff --git a/web/src/main/resources/assets/player/animation/animation_425.njm b/web/src/jsMain/resources/assets/player/animation/animation_425.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_425.njm rename to web/src/jsMain/resources/assets/player/animation/animation_425.njm diff --git a/web/src/main/resources/assets/player/animation/animation_426.njm b/web/src/jsMain/resources/assets/player/animation/animation_426.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_426.njm rename to web/src/jsMain/resources/assets/player/animation/animation_426.njm diff --git a/web/src/main/resources/assets/player/animation/animation_427.njm b/web/src/jsMain/resources/assets/player/animation/animation_427.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_427.njm rename to web/src/jsMain/resources/assets/player/animation/animation_427.njm diff --git a/web/src/main/resources/assets/player/animation/animation_428.njm b/web/src/jsMain/resources/assets/player/animation/animation_428.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_428.njm rename to web/src/jsMain/resources/assets/player/animation/animation_428.njm diff --git a/web/src/main/resources/assets/player/animation/animation_429.njm b/web/src/jsMain/resources/assets/player/animation/animation_429.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_429.njm rename to web/src/jsMain/resources/assets/player/animation/animation_429.njm diff --git a/web/src/main/resources/assets/player/animation/animation_430.njm b/web/src/jsMain/resources/assets/player/animation/animation_430.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_430.njm rename to web/src/jsMain/resources/assets/player/animation/animation_430.njm diff --git a/web/src/main/resources/assets/player/animation/animation_431.njm b/web/src/jsMain/resources/assets/player/animation/animation_431.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_431.njm rename to web/src/jsMain/resources/assets/player/animation/animation_431.njm diff --git a/web/src/main/resources/assets/player/animation/animation_432.njm b/web/src/jsMain/resources/assets/player/animation/animation_432.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_432.njm rename to web/src/jsMain/resources/assets/player/animation/animation_432.njm diff --git a/web/src/main/resources/assets/player/animation/animation_433.njm b/web/src/jsMain/resources/assets/player/animation/animation_433.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_433.njm rename to web/src/jsMain/resources/assets/player/animation/animation_433.njm diff --git a/web/src/main/resources/assets/player/animation/animation_434.njm b/web/src/jsMain/resources/assets/player/animation/animation_434.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_434.njm rename to web/src/jsMain/resources/assets/player/animation/animation_434.njm diff --git a/web/src/main/resources/assets/player/animation/animation_435.njm b/web/src/jsMain/resources/assets/player/animation/animation_435.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_435.njm rename to web/src/jsMain/resources/assets/player/animation/animation_435.njm diff --git a/web/src/main/resources/assets/player/animation/animation_436.njm b/web/src/jsMain/resources/assets/player/animation/animation_436.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_436.njm rename to web/src/jsMain/resources/assets/player/animation/animation_436.njm diff --git a/web/src/main/resources/assets/player/animation/animation_437.njm b/web/src/jsMain/resources/assets/player/animation/animation_437.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_437.njm rename to web/src/jsMain/resources/assets/player/animation/animation_437.njm diff --git a/web/src/main/resources/assets/player/animation/animation_438.njm b/web/src/jsMain/resources/assets/player/animation/animation_438.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_438.njm rename to web/src/jsMain/resources/assets/player/animation/animation_438.njm diff --git a/web/src/main/resources/assets/player/animation/animation_439.njm b/web/src/jsMain/resources/assets/player/animation/animation_439.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_439.njm rename to web/src/jsMain/resources/assets/player/animation/animation_439.njm diff --git a/web/src/main/resources/assets/player/animation/animation_440.njm b/web/src/jsMain/resources/assets/player/animation/animation_440.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_440.njm rename to web/src/jsMain/resources/assets/player/animation/animation_440.njm diff --git a/web/src/main/resources/assets/player/animation/animation_441.njm b/web/src/jsMain/resources/assets/player/animation/animation_441.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_441.njm rename to web/src/jsMain/resources/assets/player/animation/animation_441.njm diff --git a/web/src/main/resources/assets/player/animation/animation_442.njm b/web/src/jsMain/resources/assets/player/animation/animation_442.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_442.njm rename to web/src/jsMain/resources/assets/player/animation/animation_442.njm diff --git a/web/src/main/resources/assets/player/animation/animation_443.njm b/web/src/jsMain/resources/assets/player/animation/animation_443.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_443.njm rename to web/src/jsMain/resources/assets/player/animation/animation_443.njm diff --git a/web/src/main/resources/assets/player/animation/animation_444.njm b/web/src/jsMain/resources/assets/player/animation/animation_444.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_444.njm rename to web/src/jsMain/resources/assets/player/animation/animation_444.njm diff --git a/web/src/main/resources/assets/player/animation/animation_445.njm b/web/src/jsMain/resources/assets/player/animation/animation_445.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_445.njm rename to web/src/jsMain/resources/assets/player/animation/animation_445.njm diff --git a/web/src/main/resources/assets/player/animation/animation_446.njm b/web/src/jsMain/resources/assets/player/animation/animation_446.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_446.njm rename to web/src/jsMain/resources/assets/player/animation/animation_446.njm diff --git a/web/src/main/resources/assets/player/animation/animation_447.njm b/web/src/jsMain/resources/assets/player/animation/animation_447.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_447.njm rename to web/src/jsMain/resources/assets/player/animation/animation_447.njm diff --git a/web/src/main/resources/assets/player/animation/animation_448.njm b/web/src/jsMain/resources/assets/player/animation/animation_448.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_448.njm rename to web/src/jsMain/resources/assets/player/animation/animation_448.njm diff --git a/web/src/main/resources/assets/player/animation/animation_449.njm b/web/src/jsMain/resources/assets/player/animation/animation_449.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_449.njm rename to web/src/jsMain/resources/assets/player/animation/animation_449.njm diff --git a/web/src/main/resources/assets/player/animation/animation_450.njm b/web/src/jsMain/resources/assets/player/animation/animation_450.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_450.njm rename to web/src/jsMain/resources/assets/player/animation/animation_450.njm diff --git a/web/src/main/resources/assets/player/animation/animation_451.njm b/web/src/jsMain/resources/assets/player/animation/animation_451.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_451.njm rename to web/src/jsMain/resources/assets/player/animation/animation_451.njm diff --git a/web/src/main/resources/assets/player/animation/animation_452.njm b/web/src/jsMain/resources/assets/player/animation/animation_452.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_452.njm rename to web/src/jsMain/resources/assets/player/animation/animation_452.njm diff --git a/web/src/main/resources/assets/player/animation/animation_453.njm b/web/src/jsMain/resources/assets/player/animation/animation_453.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_453.njm rename to web/src/jsMain/resources/assets/player/animation/animation_453.njm diff --git a/web/src/main/resources/assets/player/animation/animation_454.njm b/web/src/jsMain/resources/assets/player/animation/animation_454.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_454.njm rename to web/src/jsMain/resources/assets/player/animation/animation_454.njm diff --git a/web/src/main/resources/assets/player/animation/animation_455.njm b/web/src/jsMain/resources/assets/player/animation/animation_455.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_455.njm rename to web/src/jsMain/resources/assets/player/animation/animation_455.njm diff --git a/web/src/main/resources/assets/player/animation/animation_456.njm b/web/src/jsMain/resources/assets/player/animation/animation_456.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_456.njm rename to web/src/jsMain/resources/assets/player/animation/animation_456.njm diff --git a/web/src/main/resources/assets/player/animation/animation_457.njm b/web/src/jsMain/resources/assets/player/animation/animation_457.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_457.njm rename to web/src/jsMain/resources/assets/player/animation/animation_457.njm diff --git a/web/src/main/resources/assets/player/animation/animation_458.njm b/web/src/jsMain/resources/assets/player/animation/animation_458.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_458.njm rename to web/src/jsMain/resources/assets/player/animation/animation_458.njm diff --git a/web/src/main/resources/assets/player/animation/animation_459.njm b/web/src/jsMain/resources/assets/player/animation/animation_459.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_459.njm rename to web/src/jsMain/resources/assets/player/animation/animation_459.njm diff --git a/web/src/main/resources/assets/player/animation/animation_460.njm b/web/src/jsMain/resources/assets/player/animation/animation_460.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_460.njm rename to web/src/jsMain/resources/assets/player/animation/animation_460.njm diff --git a/web/src/main/resources/assets/player/animation/animation_461.njm b/web/src/jsMain/resources/assets/player/animation/animation_461.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_461.njm rename to web/src/jsMain/resources/assets/player/animation/animation_461.njm diff --git a/web/src/main/resources/assets/player/animation/animation_462.njm b/web/src/jsMain/resources/assets/player/animation/animation_462.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_462.njm rename to web/src/jsMain/resources/assets/player/animation/animation_462.njm diff --git a/web/src/main/resources/assets/player/animation/animation_463.njm b/web/src/jsMain/resources/assets/player/animation/animation_463.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_463.njm rename to web/src/jsMain/resources/assets/player/animation/animation_463.njm diff --git a/web/src/main/resources/assets/player/animation/animation_464.njm b/web/src/jsMain/resources/assets/player/animation/animation_464.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_464.njm rename to web/src/jsMain/resources/assets/player/animation/animation_464.njm diff --git a/web/src/main/resources/assets/player/animation/animation_465.njm b/web/src/jsMain/resources/assets/player/animation/animation_465.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_465.njm rename to web/src/jsMain/resources/assets/player/animation/animation_465.njm diff --git a/web/src/main/resources/assets/player/animation/animation_466.njm b/web/src/jsMain/resources/assets/player/animation/animation_466.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_466.njm rename to web/src/jsMain/resources/assets/player/animation/animation_466.njm diff --git a/web/src/main/resources/assets/player/animation/animation_467.njm b/web/src/jsMain/resources/assets/player/animation/animation_467.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_467.njm rename to web/src/jsMain/resources/assets/player/animation/animation_467.njm diff --git a/web/src/main/resources/assets/player/animation/animation_468.njm b/web/src/jsMain/resources/assets/player/animation/animation_468.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_468.njm rename to web/src/jsMain/resources/assets/player/animation/animation_468.njm diff --git a/web/src/main/resources/assets/player/animation/animation_469.njm b/web/src/jsMain/resources/assets/player/animation/animation_469.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_469.njm rename to web/src/jsMain/resources/assets/player/animation/animation_469.njm diff --git a/web/src/main/resources/assets/player/animation/animation_470.njm b/web/src/jsMain/resources/assets/player/animation/animation_470.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_470.njm rename to web/src/jsMain/resources/assets/player/animation/animation_470.njm diff --git a/web/src/main/resources/assets/player/animation/animation_471.njm b/web/src/jsMain/resources/assets/player/animation/animation_471.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_471.njm rename to web/src/jsMain/resources/assets/player/animation/animation_471.njm diff --git a/web/src/main/resources/assets/player/animation/animation_472.njm b/web/src/jsMain/resources/assets/player/animation/animation_472.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_472.njm rename to web/src/jsMain/resources/assets/player/animation/animation_472.njm diff --git a/web/src/main/resources/assets/player/animation/animation_473.njm b/web/src/jsMain/resources/assets/player/animation/animation_473.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_473.njm rename to web/src/jsMain/resources/assets/player/animation/animation_473.njm diff --git a/web/src/main/resources/assets/player/animation/animation_474.njm b/web/src/jsMain/resources/assets/player/animation/animation_474.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_474.njm rename to web/src/jsMain/resources/assets/player/animation/animation_474.njm diff --git a/web/src/main/resources/assets/player/animation/animation_475.njm b/web/src/jsMain/resources/assets/player/animation/animation_475.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_475.njm rename to web/src/jsMain/resources/assets/player/animation/animation_475.njm diff --git a/web/src/main/resources/assets/player/animation/animation_476.njm b/web/src/jsMain/resources/assets/player/animation/animation_476.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_476.njm rename to web/src/jsMain/resources/assets/player/animation/animation_476.njm diff --git a/web/src/main/resources/assets/player/animation/animation_477.njm b/web/src/jsMain/resources/assets/player/animation/animation_477.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_477.njm rename to web/src/jsMain/resources/assets/player/animation/animation_477.njm diff --git a/web/src/main/resources/assets/player/animation/animation_478.njm b/web/src/jsMain/resources/assets/player/animation/animation_478.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_478.njm rename to web/src/jsMain/resources/assets/player/animation/animation_478.njm diff --git a/web/src/main/resources/assets/player/animation/animation_479.njm b/web/src/jsMain/resources/assets/player/animation/animation_479.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_479.njm rename to web/src/jsMain/resources/assets/player/animation/animation_479.njm diff --git a/web/src/main/resources/assets/player/animation/animation_480.njm b/web/src/jsMain/resources/assets/player/animation/animation_480.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_480.njm rename to web/src/jsMain/resources/assets/player/animation/animation_480.njm diff --git a/web/src/main/resources/assets/player/animation/animation_481.njm b/web/src/jsMain/resources/assets/player/animation/animation_481.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_481.njm rename to web/src/jsMain/resources/assets/player/animation/animation_481.njm diff --git a/web/src/main/resources/assets/player/animation/animation_482.njm b/web/src/jsMain/resources/assets/player/animation/animation_482.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_482.njm rename to web/src/jsMain/resources/assets/player/animation/animation_482.njm diff --git a/web/src/main/resources/assets/player/animation/animation_483.njm b/web/src/jsMain/resources/assets/player/animation/animation_483.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_483.njm rename to web/src/jsMain/resources/assets/player/animation/animation_483.njm diff --git a/web/src/main/resources/assets/player/animation/animation_484.njm b/web/src/jsMain/resources/assets/player/animation/animation_484.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_484.njm rename to web/src/jsMain/resources/assets/player/animation/animation_484.njm diff --git a/web/src/main/resources/assets/player/animation/animation_485.njm b/web/src/jsMain/resources/assets/player/animation/animation_485.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_485.njm rename to web/src/jsMain/resources/assets/player/animation/animation_485.njm diff --git a/web/src/main/resources/assets/player/animation/animation_486.njm b/web/src/jsMain/resources/assets/player/animation/animation_486.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_486.njm rename to web/src/jsMain/resources/assets/player/animation/animation_486.njm diff --git a/web/src/main/resources/assets/player/animation/animation_487.njm b/web/src/jsMain/resources/assets/player/animation/animation_487.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_487.njm rename to web/src/jsMain/resources/assets/player/animation/animation_487.njm diff --git a/web/src/main/resources/assets/player/animation/animation_488.njm b/web/src/jsMain/resources/assets/player/animation/animation_488.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_488.njm rename to web/src/jsMain/resources/assets/player/animation/animation_488.njm diff --git a/web/src/main/resources/assets/player/animation/animation_489.njm b/web/src/jsMain/resources/assets/player/animation/animation_489.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_489.njm rename to web/src/jsMain/resources/assets/player/animation/animation_489.njm diff --git a/web/src/main/resources/assets/player/animation/animation_490.njm b/web/src/jsMain/resources/assets/player/animation/animation_490.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_490.njm rename to web/src/jsMain/resources/assets/player/animation/animation_490.njm diff --git a/web/src/main/resources/assets/player/animation/animation_491.njm b/web/src/jsMain/resources/assets/player/animation/animation_491.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_491.njm rename to web/src/jsMain/resources/assets/player/animation/animation_491.njm diff --git a/web/src/main/resources/assets/player/animation/animation_492.njm b/web/src/jsMain/resources/assets/player/animation/animation_492.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_492.njm rename to web/src/jsMain/resources/assets/player/animation/animation_492.njm diff --git a/web/src/main/resources/assets/player/animation/animation_493.njm b/web/src/jsMain/resources/assets/player/animation/animation_493.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_493.njm rename to web/src/jsMain/resources/assets/player/animation/animation_493.njm diff --git a/web/src/main/resources/assets/player/animation/animation_494.njm b/web/src/jsMain/resources/assets/player/animation/animation_494.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_494.njm rename to web/src/jsMain/resources/assets/player/animation/animation_494.njm diff --git a/web/src/main/resources/assets/player/animation/animation_495.njm b/web/src/jsMain/resources/assets/player/animation/animation_495.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_495.njm rename to web/src/jsMain/resources/assets/player/animation/animation_495.njm diff --git a/web/src/main/resources/assets/player/animation/animation_496.njm b/web/src/jsMain/resources/assets/player/animation/animation_496.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_496.njm rename to web/src/jsMain/resources/assets/player/animation/animation_496.njm diff --git a/web/src/main/resources/assets/player/animation/animation_497.njm b/web/src/jsMain/resources/assets/player/animation/animation_497.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_497.njm rename to web/src/jsMain/resources/assets/player/animation/animation_497.njm diff --git a/web/src/main/resources/assets/player/animation/animation_498.njm b/web/src/jsMain/resources/assets/player/animation/animation_498.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_498.njm rename to web/src/jsMain/resources/assets/player/animation/animation_498.njm diff --git a/web/src/main/resources/assets/player/animation/animation_499.njm b/web/src/jsMain/resources/assets/player/animation/animation_499.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_499.njm rename to web/src/jsMain/resources/assets/player/animation/animation_499.njm diff --git a/web/src/main/resources/assets/player/animation/animation_500.njm b/web/src/jsMain/resources/assets/player/animation/animation_500.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_500.njm rename to web/src/jsMain/resources/assets/player/animation/animation_500.njm diff --git a/web/src/main/resources/assets/player/animation/animation_501.njm b/web/src/jsMain/resources/assets/player/animation/animation_501.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_501.njm rename to web/src/jsMain/resources/assets/player/animation/animation_501.njm diff --git a/web/src/main/resources/assets/player/animation/animation_502.njm b/web/src/jsMain/resources/assets/player/animation/animation_502.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_502.njm rename to web/src/jsMain/resources/assets/player/animation/animation_502.njm diff --git a/web/src/main/resources/assets/player/animation/animation_503.njm b/web/src/jsMain/resources/assets/player/animation/animation_503.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_503.njm rename to web/src/jsMain/resources/assets/player/animation/animation_503.njm diff --git a/web/src/main/resources/assets/player/animation/animation_504.njm b/web/src/jsMain/resources/assets/player/animation/animation_504.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_504.njm rename to web/src/jsMain/resources/assets/player/animation/animation_504.njm diff --git a/web/src/main/resources/assets/player/animation/animation_505.njm b/web/src/jsMain/resources/assets/player/animation/animation_505.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_505.njm rename to web/src/jsMain/resources/assets/player/animation/animation_505.njm diff --git a/web/src/main/resources/assets/player/animation/animation_506.njm b/web/src/jsMain/resources/assets/player/animation/animation_506.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_506.njm rename to web/src/jsMain/resources/assets/player/animation/animation_506.njm diff --git a/web/src/main/resources/assets/player/animation/animation_507.njm b/web/src/jsMain/resources/assets/player/animation/animation_507.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_507.njm rename to web/src/jsMain/resources/assets/player/animation/animation_507.njm diff --git a/web/src/main/resources/assets/player/animation/animation_508.njm b/web/src/jsMain/resources/assets/player/animation/animation_508.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_508.njm rename to web/src/jsMain/resources/assets/player/animation/animation_508.njm diff --git a/web/src/main/resources/assets/player/animation/animation_509.njm b/web/src/jsMain/resources/assets/player/animation/animation_509.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_509.njm rename to web/src/jsMain/resources/assets/player/animation/animation_509.njm diff --git a/web/src/main/resources/assets/player/animation/animation_510.njm b/web/src/jsMain/resources/assets/player/animation/animation_510.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_510.njm rename to web/src/jsMain/resources/assets/player/animation/animation_510.njm diff --git a/web/src/main/resources/assets/player/animation/animation_511.njm b/web/src/jsMain/resources/assets/player/animation/animation_511.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_511.njm rename to web/src/jsMain/resources/assets/player/animation/animation_511.njm diff --git a/web/src/main/resources/assets/player/animation/animation_512.njm b/web/src/jsMain/resources/assets/player/animation/animation_512.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_512.njm rename to web/src/jsMain/resources/assets/player/animation/animation_512.njm diff --git a/web/src/main/resources/assets/player/animation/animation_513.njm b/web/src/jsMain/resources/assets/player/animation/animation_513.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_513.njm rename to web/src/jsMain/resources/assets/player/animation/animation_513.njm diff --git a/web/src/main/resources/assets/player/animation/animation_514.njm b/web/src/jsMain/resources/assets/player/animation/animation_514.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_514.njm rename to web/src/jsMain/resources/assets/player/animation/animation_514.njm diff --git a/web/src/main/resources/assets/player/animation/animation_515.njm b/web/src/jsMain/resources/assets/player/animation/animation_515.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_515.njm rename to web/src/jsMain/resources/assets/player/animation/animation_515.njm diff --git a/web/src/main/resources/assets/player/animation/animation_516.njm b/web/src/jsMain/resources/assets/player/animation/animation_516.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_516.njm rename to web/src/jsMain/resources/assets/player/animation/animation_516.njm diff --git a/web/src/main/resources/assets/player/animation/animation_517.njm b/web/src/jsMain/resources/assets/player/animation/animation_517.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_517.njm rename to web/src/jsMain/resources/assets/player/animation/animation_517.njm diff --git a/web/src/main/resources/assets/player/animation/animation_518.njm b/web/src/jsMain/resources/assets/player/animation/animation_518.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_518.njm rename to web/src/jsMain/resources/assets/player/animation/animation_518.njm diff --git a/web/src/main/resources/assets/player/animation/animation_519.njm b/web/src/jsMain/resources/assets/player/animation/animation_519.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_519.njm rename to web/src/jsMain/resources/assets/player/animation/animation_519.njm diff --git a/web/src/main/resources/assets/player/animation/animation_520.njm b/web/src/jsMain/resources/assets/player/animation/animation_520.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_520.njm rename to web/src/jsMain/resources/assets/player/animation/animation_520.njm diff --git a/web/src/main/resources/assets/player/animation/animation_521.njm b/web/src/jsMain/resources/assets/player/animation/animation_521.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_521.njm rename to web/src/jsMain/resources/assets/player/animation/animation_521.njm diff --git a/web/src/main/resources/assets/player/animation/animation_522.njm b/web/src/jsMain/resources/assets/player/animation/animation_522.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_522.njm rename to web/src/jsMain/resources/assets/player/animation/animation_522.njm diff --git a/web/src/main/resources/assets/player/animation/animation_523.njm b/web/src/jsMain/resources/assets/player/animation/animation_523.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_523.njm rename to web/src/jsMain/resources/assets/player/animation/animation_523.njm diff --git a/web/src/main/resources/assets/player/animation/animation_524.njm b/web/src/jsMain/resources/assets/player/animation/animation_524.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_524.njm rename to web/src/jsMain/resources/assets/player/animation/animation_524.njm diff --git a/web/src/main/resources/assets/player/animation/animation_525.njm b/web/src/jsMain/resources/assets/player/animation/animation_525.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_525.njm rename to web/src/jsMain/resources/assets/player/animation/animation_525.njm diff --git a/web/src/main/resources/assets/player/animation/animation_526.njm b/web/src/jsMain/resources/assets/player/animation/animation_526.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_526.njm rename to web/src/jsMain/resources/assets/player/animation/animation_526.njm diff --git a/web/src/main/resources/assets/player/animation/animation_527.njm b/web/src/jsMain/resources/assets/player/animation/animation_527.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_527.njm rename to web/src/jsMain/resources/assets/player/animation/animation_527.njm diff --git a/web/src/main/resources/assets/player/animation/animation_528.njm b/web/src/jsMain/resources/assets/player/animation/animation_528.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_528.njm rename to web/src/jsMain/resources/assets/player/animation/animation_528.njm diff --git a/web/src/main/resources/assets/player/animation/animation_529.njm b/web/src/jsMain/resources/assets/player/animation/animation_529.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_529.njm rename to web/src/jsMain/resources/assets/player/animation/animation_529.njm diff --git a/web/src/main/resources/assets/player/animation/animation_530.njm b/web/src/jsMain/resources/assets/player/animation/animation_530.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_530.njm rename to web/src/jsMain/resources/assets/player/animation/animation_530.njm diff --git a/web/src/main/resources/assets/player/animation/animation_531.njm b/web/src/jsMain/resources/assets/player/animation/animation_531.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_531.njm rename to web/src/jsMain/resources/assets/player/animation/animation_531.njm diff --git a/web/src/main/resources/assets/player/animation/animation_532.njm b/web/src/jsMain/resources/assets/player/animation/animation_532.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_532.njm rename to web/src/jsMain/resources/assets/player/animation/animation_532.njm diff --git a/web/src/main/resources/assets/player/animation/animation_533.njm b/web/src/jsMain/resources/assets/player/animation/animation_533.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_533.njm rename to web/src/jsMain/resources/assets/player/animation/animation_533.njm diff --git a/web/src/main/resources/assets/player/animation/animation_534.njm b/web/src/jsMain/resources/assets/player/animation/animation_534.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_534.njm rename to web/src/jsMain/resources/assets/player/animation/animation_534.njm diff --git a/web/src/main/resources/assets/player/animation/animation_535.njm b/web/src/jsMain/resources/assets/player/animation/animation_535.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_535.njm rename to web/src/jsMain/resources/assets/player/animation/animation_535.njm diff --git a/web/src/main/resources/assets/player/animation/animation_536.njm b/web/src/jsMain/resources/assets/player/animation/animation_536.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_536.njm rename to web/src/jsMain/resources/assets/player/animation/animation_536.njm diff --git a/web/src/main/resources/assets/player/animation/animation_537.njm b/web/src/jsMain/resources/assets/player/animation/animation_537.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_537.njm rename to web/src/jsMain/resources/assets/player/animation/animation_537.njm diff --git a/web/src/main/resources/assets/player/animation/animation_538.njm b/web/src/jsMain/resources/assets/player/animation/animation_538.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_538.njm rename to web/src/jsMain/resources/assets/player/animation/animation_538.njm diff --git a/web/src/main/resources/assets/player/animation/animation_539.njm b/web/src/jsMain/resources/assets/player/animation/animation_539.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_539.njm rename to web/src/jsMain/resources/assets/player/animation/animation_539.njm diff --git a/web/src/main/resources/assets/player/animation/animation_540.njm b/web/src/jsMain/resources/assets/player/animation/animation_540.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_540.njm rename to web/src/jsMain/resources/assets/player/animation/animation_540.njm diff --git a/web/src/main/resources/assets/player/animation/animation_541.njm b/web/src/jsMain/resources/assets/player/animation/animation_541.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_541.njm rename to web/src/jsMain/resources/assets/player/animation/animation_541.njm diff --git a/web/src/main/resources/assets/player/animation/animation_542.njm b/web/src/jsMain/resources/assets/player/animation/animation_542.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_542.njm rename to web/src/jsMain/resources/assets/player/animation/animation_542.njm diff --git a/web/src/main/resources/assets/player/animation/animation_543.njm b/web/src/jsMain/resources/assets/player/animation/animation_543.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_543.njm rename to web/src/jsMain/resources/assets/player/animation/animation_543.njm diff --git a/web/src/main/resources/assets/player/animation/animation_544.njm b/web/src/jsMain/resources/assets/player/animation/animation_544.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_544.njm rename to web/src/jsMain/resources/assets/player/animation/animation_544.njm diff --git a/web/src/main/resources/assets/player/animation/animation_545.njm b/web/src/jsMain/resources/assets/player/animation/animation_545.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_545.njm rename to web/src/jsMain/resources/assets/player/animation/animation_545.njm diff --git a/web/src/main/resources/assets/player/animation/animation_546.njm b/web/src/jsMain/resources/assets/player/animation/animation_546.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_546.njm rename to web/src/jsMain/resources/assets/player/animation/animation_546.njm diff --git a/web/src/main/resources/assets/player/animation/animation_547.njm b/web/src/jsMain/resources/assets/player/animation/animation_547.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_547.njm rename to web/src/jsMain/resources/assets/player/animation/animation_547.njm diff --git a/web/src/main/resources/assets/player/animation/animation_548.njm b/web/src/jsMain/resources/assets/player/animation/animation_548.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_548.njm rename to web/src/jsMain/resources/assets/player/animation/animation_548.njm diff --git a/web/src/main/resources/assets/player/animation/animation_549.njm b/web/src/jsMain/resources/assets/player/animation/animation_549.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_549.njm rename to web/src/jsMain/resources/assets/player/animation/animation_549.njm diff --git a/web/src/main/resources/assets/player/animation/animation_550.njm b/web/src/jsMain/resources/assets/player/animation/animation_550.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_550.njm rename to web/src/jsMain/resources/assets/player/animation/animation_550.njm diff --git a/web/src/main/resources/assets/player/animation/animation_551.njm b/web/src/jsMain/resources/assets/player/animation/animation_551.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_551.njm rename to web/src/jsMain/resources/assets/player/animation/animation_551.njm diff --git a/web/src/main/resources/assets/player/animation/animation_552.njm b/web/src/jsMain/resources/assets/player/animation/animation_552.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_552.njm rename to web/src/jsMain/resources/assets/player/animation/animation_552.njm diff --git a/web/src/main/resources/assets/player/animation/animation_553.njm b/web/src/jsMain/resources/assets/player/animation/animation_553.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_553.njm rename to web/src/jsMain/resources/assets/player/animation/animation_553.njm diff --git a/web/src/main/resources/assets/player/animation/animation_554.njm b/web/src/jsMain/resources/assets/player/animation/animation_554.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_554.njm rename to web/src/jsMain/resources/assets/player/animation/animation_554.njm diff --git a/web/src/main/resources/assets/player/animation/animation_555.njm b/web/src/jsMain/resources/assets/player/animation/animation_555.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_555.njm rename to web/src/jsMain/resources/assets/player/animation/animation_555.njm diff --git a/web/src/main/resources/assets/player/animation/animation_556.njm b/web/src/jsMain/resources/assets/player/animation/animation_556.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_556.njm rename to web/src/jsMain/resources/assets/player/animation/animation_556.njm diff --git a/web/src/main/resources/assets/player/animation/animation_557.njm b/web/src/jsMain/resources/assets/player/animation/animation_557.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_557.njm rename to web/src/jsMain/resources/assets/player/animation/animation_557.njm diff --git a/web/src/main/resources/assets/player/animation/animation_558.njm b/web/src/jsMain/resources/assets/player/animation/animation_558.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_558.njm rename to web/src/jsMain/resources/assets/player/animation/animation_558.njm diff --git a/web/src/main/resources/assets/player/animation/animation_559.njm b/web/src/jsMain/resources/assets/player/animation/animation_559.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_559.njm rename to web/src/jsMain/resources/assets/player/animation/animation_559.njm diff --git a/web/src/main/resources/assets/player/animation/animation_560.njm b/web/src/jsMain/resources/assets/player/animation/animation_560.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_560.njm rename to web/src/jsMain/resources/assets/player/animation/animation_560.njm diff --git a/web/src/main/resources/assets/player/animation/animation_561.njm b/web/src/jsMain/resources/assets/player/animation/animation_561.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_561.njm rename to web/src/jsMain/resources/assets/player/animation/animation_561.njm diff --git a/web/src/main/resources/assets/player/animation/animation_562.njm b/web/src/jsMain/resources/assets/player/animation/animation_562.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_562.njm rename to web/src/jsMain/resources/assets/player/animation/animation_562.njm diff --git a/web/src/main/resources/assets/player/animation/animation_563.njm b/web/src/jsMain/resources/assets/player/animation/animation_563.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_563.njm rename to web/src/jsMain/resources/assets/player/animation/animation_563.njm diff --git a/web/src/main/resources/assets/player/animation/animation_564.njm b/web/src/jsMain/resources/assets/player/animation/animation_564.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_564.njm rename to web/src/jsMain/resources/assets/player/animation/animation_564.njm diff --git a/web/src/main/resources/assets/player/animation/animation_565.njm b/web/src/jsMain/resources/assets/player/animation/animation_565.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_565.njm rename to web/src/jsMain/resources/assets/player/animation/animation_565.njm diff --git a/web/src/main/resources/assets/player/animation/animation_566.njm b/web/src/jsMain/resources/assets/player/animation/animation_566.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_566.njm rename to web/src/jsMain/resources/assets/player/animation/animation_566.njm diff --git a/web/src/main/resources/assets/player/animation/animation_567.njm b/web/src/jsMain/resources/assets/player/animation/animation_567.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_567.njm rename to web/src/jsMain/resources/assets/player/animation/animation_567.njm diff --git a/web/src/main/resources/assets/player/animation/animation_568.njm b/web/src/jsMain/resources/assets/player/animation/animation_568.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_568.njm rename to web/src/jsMain/resources/assets/player/animation/animation_568.njm diff --git a/web/src/main/resources/assets/player/animation/animation_569.njm b/web/src/jsMain/resources/assets/player/animation/animation_569.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_569.njm rename to web/src/jsMain/resources/assets/player/animation/animation_569.njm diff --git a/web/src/main/resources/assets/player/animation/animation_570.njm b/web/src/jsMain/resources/assets/player/animation/animation_570.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_570.njm rename to web/src/jsMain/resources/assets/player/animation/animation_570.njm diff --git a/web/src/main/resources/assets/player/animation/animation_571.njm b/web/src/jsMain/resources/assets/player/animation/animation_571.njm similarity index 100% rename from web/src/main/resources/assets/player/animation/animation_571.njm rename to web/src/jsMain/resources/assets/player/animation/animation_571.njm diff --git a/web/src/main/resources/assets/player/plObdy00.nj b/web/src/jsMain/resources/assets/player/plObdy00.nj similarity index 100% rename from web/src/main/resources/assets/player/plObdy00.nj rename to web/src/jsMain/resources/assets/player/plObdy00.nj diff --git a/web/src/main/resources/assets/player/plOhai00.nj b/web/src/jsMain/resources/assets/player/plOhai00.nj similarity index 100% rename from web/src/main/resources/assets/player/plOhai00.nj rename to web/src/jsMain/resources/assets/player/plOhai00.nj diff --git a/web/src/main/resources/assets/player/plOhed00.nj b/web/src/jsMain/resources/assets/player/plOhed00.nj similarity index 100% rename from web/src/main/resources/assets/player/plOhed00.nj rename to web/src/jsMain/resources/assets/player/plOhed00.nj diff --git a/web/src/main/resources/assets/player/plPbdy00.nj b/web/src/jsMain/resources/assets/player/plPbdy00.nj similarity index 100% rename from web/src/main/resources/assets/player/plPbdy00.nj rename to web/src/jsMain/resources/assets/player/plPbdy00.nj diff --git a/web/src/main/resources/assets/player/plPhai00.nj b/web/src/jsMain/resources/assets/player/plPhai00.nj similarity index 100% rename from web/src/main/resources/assets/player/plPhai00.nj rename to web/src/jsMain/resources/assets/player/plPhai00.nj diff --git a/web/src/main/resources/assets/player/plPhed00.nj b/web/src/jsMain/resources/assets/player/plPhed00.nj similarity index 100% rename from web/src/main/resources/assets/player/plPhed00.nj rename to web/src/jsMain/resources/assets/player/plPhed00.nj diff --git a/web/src/main/resources/assets/player/plQbdy00.nj b/web/src/jsMain/resources/assets/player/plQbdy00.nj similarity index 100% rename from web/src/main/resources/assets/player/plQbdy00.nj rename to web/src/jsMain/resources/assets/player/plQbdy00.nj diff --git a/web/src/main/resources/assets/player/plQhai00.nj b/web/src/jsMain/resources/assets/player/plQhai00.nj similarity index 100% rename from web/src/main/resources/assets/player/plQhai00.nj rename to web/src/jsMain/resources/assets/player/plQhai00.nj diff --git a/web/src/main/resources/assets/player/plQhed00.nj b/web/src/jsMain/resources/assets/player/plQhed00.nj similarity index 100% rename from web/src/main/resources/assets/player/plQhed00.nj rename to web/src/jsMain/resources/assets/player/plQhed00.nj diff --git a/web/src/main/resources/assets/player/plRbdy00.nj b/web/src/jsMain/resources/assets/player/plRbdy00.nj similarity index 100% rename from web/src/main/resources/assets/player/plRbdy00.nj rename to web/src/jsMain/resources/assets/player/plRbdy00.nj diff --git a/web/src/main/resources/assets/player/plRhai00.nj b/web/src/jsMain/resources/assets/player/plRhai00.nj similarity index 100% rename from web/src/main/resources/assets/player/plRhai00.nj rename to web/src/jsMain/resources/assets/player/plRhai00.nj diff --git a/web/src/main/resources/assets/player/plRhed00.nj b/web/src/jsMain/resources/assets/player/plRhed00.nj similarity index 100% rename from web/src/main/resources/assets/player/plRhed00.nj rename to web/src/jsMain/resources/assets/player/plRhed00.nj diff --git a/web/src/main/resources/assets/player/plSbdy00.nj b/web/src/jsMain/resources/assets/player/plSbdy00.nj similarity index 100% rename from web/src/main/resources/assets/player/plSbdy00.nj rename to web/src/jsMain/resources/assets/player/plSbdy00.nj diff --git a/web/src/main/resources/assets/player/plShai00.nj b/web/src/jsMain/resources/assets/player/plShai00.nj similarity index 100% rename from web/src/main/resources/assets/player/plShai00.nj rename to web/src/jsMain/resources/assets/player/plShai00.nj diff --git a/web/src/main/resources/assets/player/plShed00.nj b/web/src/jsMain/resources/assets/player/plShed00.nj similarity index 100% rename from web/src/main/resources/assets/player/plShed00.nj rename to web/src/jsMain/resources/assets/player/plShed00.nj diff --git a/web/src/main/resources/assets/player/plTbdy00.nj b/web/src/jsMain/resources/assets/player/plTbdy00.nj similarity index 100% rename from web/src/main/resources/assets/player/plTbdy00.nj rename to web/src/jsMain/resources/assets/player/plTbdy00.nj diff --git a/web/src/main/resources/assets/player/plThai00.nj b/web/src/jsMain/resources/assets/player/plThai00.nj similarity index 100% rename from web/src/main/resources/assets/player/plThai00.nj rename to web/src/jsMain/resources/assets/player/plThai00.nj diff --git a/web/src/main/resources/assets/player/plThed00.nj b/web/src/jsMain/resources/assets/player/plThed00.nj similarity index 100% rename from web/src/main/resources/assets/player/plThed00.nj rename to web/src/jsMain/resources/assets/player/plThed00.nj diff --git a/web/src/main/resources/assets/player/plUbdy00.nj b/web/src/jsMain/resources/assets/player/plUbdy00.nj similarity index 100% rename from web/src/main/resources/assets/player/plUbdy00.nj rename to web/src/jsMain/resources/assets/player/plUbdy00.nj diff --git a/web/src/main/resources/assets/player/plUhed00.nj b/web/src/jsMain/resources/assets/player/plUhed00.nj similarity index 100% rename from web/src/main/resources/assets/player/plUhed00.nj rename to web/src/jsMain/resources/assets/player/plUhed00.nj diff --git a/web/src/main/resources/assets/player/plVbdy00.nj b/web/src/jsMain/resources/assets/player/plVbdy00.nj similarity index 100% rename from web/src/main/resources/assets/player/plVbdy00.nj rename to web/src/jsMain/resources/assets/player/plVbdy00.nj diff --git a/web/src/main/resources/assets/player/plVhed00.nj b/web/src/jsMain/resources/assets/player/plVhed00.nj similarity index 100% rename from web/src/main/resources/assets/player/plVhed00.nj rename to web/src/jsMain/resources/assets/player/plVhed00.nj diff --git a/web/src/main/resources/assets/player/plWbdy00.nj b/web/src/jsMain/resources/assets/player/plWbdy00.nj similarity index 100% rename from web/src/main/resources/assets/player/plWbdy00.nj rename to web/src/jsMain/resources/assets/player/plWbdy00.nj diff --git a/web/src/main/resources/assets/player/plWhed00.nj b/web/src/jsMain/resources/assets/player/plWhed00.nj similarity index 100% rename from web/src/main/resources/assets/player/plWhed00.nj rename to web/src/jsMain/resources/assets/player/plWhed00.nj diff --git a/web/src/main/resources/assets/player/plXbdy00.nj b/web/src/jsMain/resources/assets/player/plXbdy00.nj similarity index 100% rename from web/src/main/resources/assets/player/plXbdy00.nj rename to web/src/jsMain/resources/assets/player/plXbdy00.nj diff --git a/web/src/main/resources/assets/player/plXhed00.nj b/web/src/jsMain/resources/assets/player/plXhed00.nj similarity index 100% rename from web/src/main/resources/assets/player/plXhed00.nj rename to web/src/jsMain/resources/assets/player/plXhed00.nj diff --git a/web/src/main/resources/assets/player/plYbdy00.nj b/web/src/jsMain/resources/assets/player/plYbdy00.nj similarity index 100% rename from web/src/main/resources/assets/player/plYbdy00.nj rename to web/src/jsMain/resources/assets/player/plYbdy00.nj diff --git a/web/src/main/resources/assets/player/plYhed00.nj b/web/src/jsMain/resources/assets/player/plYhed00.nj similarity index 100% rename from web/src/main/resources/assets/player/plYhed00.nj rename to web/src/jsMain/resources/assets/player/plYhed00.nj diff --git a/web/src/main/resources/assets/quests.ephinea.json b/web/src/jsMain/resources/assets/quests.ephinea.json similarity index 100% rename from web/src/main/resources/assets/quests.ephinea.json rename to web/src/jsMain/resources/assets/quests.ephinea.json diff --git a/web/src/main/resources/assets/quests/defaults/default_ep_1.qst b/web/src/jsMain/resources/assets/quests/defaults/default_ep_1.qst similarity index 100% rename from web/src/main/resources/assets/quests/defaults/default_ep_1.qst rename to web/src/jsMain/resources/assets/quests/defaults/default_ep_1.qst diff --git a/web/src/main/resources/index.html b/web/src/jsMain/resources/index.html similarity index 100% rename from web/src/main/resources/index.html rename to web/src/jsMain/resources/index.html diff --git a/web/src/test/kotlin/world/phantasmal/web/application/ApplicationTests.kt b/web/src/jsTest/kotlin/world/phantasmal/web/application/ApplicationTests.kt similarity index 100% rename from web/src/test/kotlin/world/phantasmal/web/application/ApplicationTests.kt rename to web/src/jsTest/kotlin/world/phantasmal/web/application/ApplicationTests.kt diff --git a/web/src/test/kotlin/world/phantasmal/web/application/controllers/NavigationControllerTests.kt b/web/src/jsTest/kotlin/world/phantasmal/web/application/controllers/NavigationControllerTests.kt similarity index 100% rename from web/src/test/kotlin/world/phantasmal/web/application/controllers/NavigationControllerTests.kt rename to web/src/jsTest/kotlin/world/phantasmal/web/application/controllers/NavigationControllerTests.kt diff --git a/web/src/test/kotlin/world/phantasmal/web/core/controllers/PathAwareTabControllerTests.kt b/web/src/jsTest/kotlin/world/phantasmal/web/core/controllers/PathAwareTabControllerTests.kt similarity index 100% rename from web/src/test/kotlin/world/phantasmal/web/core/controllers/PathAwareTabControllerTests.kt rename to web/src/jsTest/kotlin/world/phantasmal/web/core/controllers/PathAwareTabControllerTests.kt diff --git a/web/src/test/kotlin/world/phantasmal/web/core/observable/EmitterTests.kt b/web/src/jsTest/kotlin/world/phantasmal/web/core/observable/EmitterTests.kt similarity index 100% rename from web/src/test/kotlin/world/phantasmal/web/core/observable/EmitterTests.kt rename to web/src/jsTest/kotlin/world/phantasmal/web/core/observable/EmitterTests.kt diff --git a/web/src/test/kotlin/world/phantasmal/web/core/store/UiStoreTests.kt b/web/src/jsTest/kotlin/world/phantasmal/web/core/store/UiStoreTests.kt similarity index 100% rename from web/src/test/kotlin/world/phantasmal/web/core/store/UiStoreTests.kt rename to web/src/jsTest/kotlin/world/phantasmal/web/core/store/UiStoreTests.kt diff --git a/web/src/test/kotlin/world/phantasmal/web/core/undo/UndoStackTests.kt b/web/src/jsTest/kotlin/world/phantasmal/web/core/undo/UndoStackTests.kt similarity index 100% rename from web/src/test/kotlin/world/phantasmal/web/core/undo/UndoStackTests.kt rename to web/src/jsTest/kotlin/world/phantasmal/web/core/undo/UndoStackTests.kt diff --git a/web/src/test/kotlin/world/phantasmal/web/huntOptimizer/HuntOptimizerTests.kt b/web/src/jsTest/kotlin/world/phantasmal/web/huntOptimizer/HuntOptimizerTests.kt similarity index 100% rename from web/src/test/kotlin/world/phantasmal/web/huntOptimizer/HuntOptimizerTests.kt rename to web/src/jsTest/kotlin/world/phantasmal/web/huntOptimizer/HuntOptimizerTests.kt diff --git a/web/src/test/kotlin/world/phantasmal/web/huntOptimizer/controllers/MethodsForEpisodeControllerTests.kt b/web/src/jsTest/kotlin/world/phantasmal/web/huntOptimizer/controllers/MethodsForEpisodeControllerTests.kt similarity index 100% rename from web/src/test/kotlin/world/phantasmal/web/huntOptimizer/controllers/MethodsForEpisodeControllerTests.kt rename to web/src/jsTest/kotlin/world/phantasmal/web/huntOptimizer/controllers/MethodsForEpisodeControllerTests.kt diff --git a/web/src/test/kotlin/world/phantasmal/web/questEditor/QuestEditorTests.kt b/web/src/jsTest/kotlin/world/phantasmal/web/questEditor/QuestEditorTests.kt similarity index 100% rename from web/src/test/kotlin/world/phantasmal/web/questEditor/QuestEditorTests.kt rename to web/src/jsTest/kotlin/world/phantasmal/web/questEditor/QuestEditorTests.kt diff --git a/web/src/test/kotlin/world/phantasmal/web/questEditor/controllers/EntityInfoControllerTests.kt b/web/src/jsTest/kotlin/world/phantasmal/web/questEditor/controllers/EntityInfoControllerTests.kt similarity index 100% rename from web/src/test/kotlin/world/phantasmal/web/questEditor/controllers/EntityInfoControllerTests.kt rename to web/src/jsTest/kotlin/world/phantasmal/web/questEditor/controllers/EntityInfoControllerTests.kt diff --git a/web/src/test/kotlin/world/phantasmal/web/questEditor/controllers/EventsControllerTests.kt b/web/src/jsTest/kotlin/world/phantasmal/web/questEditor/controllers/EventsControllerTests.kt similarity index 100% rename from web/src/test/kotlin/world/phantasmal/web/questEditor/controllers/EventsControllerTests.kt rename to web/src/jsTest/kotlin/world/phantasmal/web/questEditor/controllers/EventsControllerTests.kt diff --git a/web/src/test/kotlin/world/phantasmal/web/questEditor/controllers/NpcCountsControllerTests.kt b/web/src/jsTest/kotlin/world/phantasmal/web/questEditor/controllers/NpcCountsControllerTests.kt similarity index 100% rename from web/src/test/kotlin/world/phantasmal/web/questEditor/controllers/NpcCountsControllerTests.kt rename to web/src/jsTest/kotlin/world/phantasmal/web/questEditor/controllers/NpcCountsControllerTests.kt diff --git a/web/src/test/kotlin/world/phantasmal/web/questEditor/controllers/QuestEditorToolbarControllerTests.kt b/web/src/jsTest/kotlin/world/phantasmal/web/questEditor/controllers/QuestEditorToolbarControllerTests.kt similarity index 100% rename from web/src/test/kotlin/world/phantasmal/web/questEditor/controllers/QuestEditorToolbarControllerTests.kt rename to web/src/jsTest/kotlin/world/phantasmal/web/questEditor/controllers/QuestEditorToolbarControllerTests.kt diff --git a/web/src/test/kotlin/world/phantasmal/web/questEditor/controllers/QuestInfoControllerTests.kt b/web/src/jsTest/kotlin/world/phantasmal/web/questEditor/controllers/QuestInfoControllerTests.kt similarity index 100% rename from web/src/test/kotlin/world/phantasmal/web/questEditor/controllers/QuestInfoControllerTests.kt rename to web/src/jsTest/kotlin/world/phantasmal/web/questEditor/controllers/QuestInfoControllerTests.kt diff --git a/web/src/test/kotlin/world/phantasmal/web/questEditor/models/QuestEntityModelTests.kt b/web/src/jsTest/kotlin/world/phantasmal/web/questEditor/models/QuestEntityModelTests.kt similarity index 100% rename from web/src/test/kotlin/world/phantasmal/web/questEditor/models/QuestEntityModelTests.kt rename to web/src/jsTest/kotlin/world/phantasmal/web/questEditor/models/QuestEntityModelTests.kt diff --git a/web/src/test/kotlin/world/phantasmal/web/test/NopRenderer.kt b/web/src/jsTest/kotlin/world/phantasmal/web/test/NopRenderer.kt similarity index 74% rename from web/src/test/kotlin/world/phantasmal/web/test/NopRenderer.kt rename to web/src/jsTest/kotlin/world/phantasmal/web/test/NopRenderer.kt index 24e93ec6..ba42cdaf 100644 --- a/web/src/test/kotlin/world/phantasmal/web/test/NopRenderer.kt +++ b/web/src/jsTest/kotlin/world/phantasmal/web/test/NopRenderer.kt @@ -1,28 +1,33 @@ package world.phantasmal.web.test // WebGLRenderer implementation. -@Suppress("unused") class NopRenderer { + @Suppress("unused") @JsName("render") fun render() { } + @Suppress("unused") @JsName("setSize") fun setSize() { } + @Suppress("unused") @JsName("setPixelRatio") fun setPixelRatio() { } + @Suppress("unused") @JsName("setClearColor") fun setClearColor() { } + @Suppress("unused") @JsName("clearColor") fun clearColor() { } + @Suppress("unused") @JsName("dispose") fun dispose() { } diff --git a/web/src/test/kotlin/world/phantasmal/web/test/StubClock.kt b/web/src/jsTest/kotlin/world/phantasmal/web/test/StubClock.kt similarity index 100% rename from web/src/test/kotlin/world/phantasmal/web/test/StubClock.kt rename to web/src/jsTest/kotlin/world/phantasmal/web/test/StubClock.kt diff --git a/web/src/test/kotlin/world/phantasmal/web/test/TestApplicationUrl.kt b/web/src/jsTest/kotlin/world/phantasmal/web/test/TestApplicationUrl.kt similarity index 100% rename from web/src/test/kotlin/world/phantasmal/web/test/TestApplicationUrl.kt rename to web/src/jsTest/kotlin/world/phantasmal/web/test/TestApplicationUrl.kt diff --git a/web/src/test/kotlin/world/phantasmal/web/test/TestComponents.kt b/web/src/jsTest/kotlin/world/phantasmal/web/test/TestComponents.kt similarity index 95% rename from web/src/test/kotlin/world/phantasmal/web/test/TestComponents.kt rename to web/src/jsTest/kotlin/world/phantasmal/web/test/TestComponents.kt index 5c14a5a0..b927193b 100644 --- a/web/src/test/kotlin/world/phantasmal/web/test/TestComponents.kt +++ b/web/src/jsTest/kotlin/world/phantasmal/web/test/TestComponents.kt @@ -1,8 +1,9 @@ package world.phantasmal.web.test import io.ktor.client.* -import io.ktor.client.features.json.* -import io.ktor.client.features.json.serializer.* +import io.ktor.client.plugins.contentnegotiation.* +import io.ktor.http.* +import io.ktor.serialization.kotlinx.* import kotlinx.coroutines.cancel import kotlinx.datetime.Clock import org.w3c.dom.HTMLCanvasElement @@ -37,8 +38,8 @@ import kotlin.reflect.KProperty class TestComponents(private val ctx: TestContext) { var httpClient: HttpClient by default { HttpClient { - install(JsonFeature) { - serializer = KotlinxSerializer(JSON_FORMAT) + install(ContentNegotiation) { + serialization(ContentType.Application.Json, JSON_FORMAT) } }.also { ctx.disposer.add(disposable { it.cancel() }) diff --git a/web/src/test/kotlin/world/phantasmal/web/test/TestModels.kt b/web/src/jsTest/kotlin/world/phantasmal/web/test/TestModels.kt similarity index 100% rename from web/src/test/kotlin/world/phantasmal/web/test/TestModels.kt rename to web/src/jsTest/kotlin/world/phantasmal/web/test/TestModels.kt diff --git a/web/src/test/kotlin/world/phantasmal/web/test/WebTestContext.kt b/web/src/jsTest/kotlin/world/phantasmal/web/test/WebTestContext.kt similarity index 100% rename from web/src/test/kotlin/world/phantasmal/web/test/WebTestContext.kt rename to web/src/jsTest/kotlin/world/phantasmal/web/test/WebTestContext.kt diff --git a/web/src/test/kotlin/world/phantasmal/web/test/WebTestSuite.kt b/web/src/jsTest/kotlin/world/phantasmal/web/test/WebTestSuite.kt similarity index 100% rename from web/src/test/kotlin/world/phantasmal/web/test/WebTestSuite.kt rename to web/src/jsTest/kotlin/world/phantasmal/web/test/WebTestSuite.kt diff --git a/web/src/test/kotlin/world/phantasmal/web/viewer/ViewerTests.kt b/web/src/jsTest/kotlin/world/phantasmal/web/viewer/ViewerTests.kt similarity index 100% rename from web/src/test/kotlin/world/phantasmal/web/viewer/ViewerTests.kt rename to web/src/jsTest/kotlin/world/phantasmal/web/viewer/ViewerTests.kt diff --git a/web/src/test/kotlin/world/phantasmal/web/viewer/controllers/CharacterClassOptionsControllerTests.kt b/web/src/jsTest/kotlin/world/phantasmal/web/viewer/controllers/CharacterClassOptionsControllerTests.kt similarity index 100% rename from web/src/test/kotlin/world/phantasmal/web/viewer/controllers/CharacterClassOptionsControllerTests.kt rename to web/src/jsTest/kotlin/world/phantasmal/web/viewer/controllers/CharacterClassOptionsControllerTests.kt diff --git a/web/src/main/kotlin/world/phantasmal/web/core/loading/AssetLoader.kt b/web/src/main/kotlin/world/phantasmal/web/core/loading/AssetLoader.kt deleted file mode 100644 index 466ec5c7..00000000 --- a/web/src/main/kotlin/world/phantasmal/web/core/loading/AssetLoader.kt +++ /dev/null @@ -1,43 +0,0 @@ -package world.phantasmal.web.core.loading - -import io.ktor.client.* -import io.ktor.client.request.* -import io.ktor.client.statement.* -import io.ktor.http.* -import kotlinx.browser.window -import kotlinx.coroutines.delay -import org.khronos.webgl.ArrayBuffer -import world.phantasmal.web.shared.dto.QuestDto - -class AssetLoader( - val httpClient: HttpClient, - val origin: String = window.location.origin, - val basePath: String = defaultBasePath(), -) { - suspend inline fun load(path: String): T = - httpClient.get("$origin$basePath$path") - - suspend fun loadArrayBuffer(path: String): ArrayBuffer { - val response = load(path) - val channel = response.content - val arrayBuffer = ArrayBuffer(response.contentLength()?.toInt() ?: channel.availableForRead) - channel.readFully(arrayBuffer, 0, arrayBuffer.byteLength) - check(channel.availableForRead == 0) { "Couldn't read all data." } - return arrayBuffer - } - - companion object { - fun defaultBasePath(): String { - val pathname = window.location.pathname - - val appPath = - if (pathname.endsWith(".html")) { - pathname.substring(0, pathname.lastIndexOf('/')) - } else { - pathname.removeSuffix("/") - } - - return "$appPath/assets" - } - } -} diff --git a/webui/build.gradle.kts b/webui/build.gradle.kts index 3f6a5ef1..69c3f1ba 100644 --- a/webui/build.gradle.kts +++ b/webui/build.gradle.kts @@ -2,13 +2,23 @@ plugins { id("world.phantasmal.js") } -dependencies { - api(project(":core")) - api(project(":cell")) - implementation(npm("@fortawesome/fontawesome-svg-core", "^1.2.36")) - implementation(npm("@fortawesome/free-regular-svg-icons", "^5.15.4")) - implementation(npm("@fortawesome/free-solid-svg-icons", "^5.15.4")) - implementation(npm("@fortawesome/free-brands-svg-icons", "^5.15.4")) +kotlin { + sourceSets { + getByName("jsMain") { + dependencies { + api(project(":core")) + api(project(":cell")) + implementation(npm("@fortawesome/fontawesome-svg-core", "^1.2.36")) + implementation(npm("@fortawesome/free-regular-svg-icons", "^5.15.4")) + implementation(npm("@fortawesome/free-solid-svg-icons", "^5.15.4")) + implementation(npm("@fortawesome/free-brands-svg-icons", "^5.15.4")) + } + } - testImplementation(project(":test-utils")) + getByName("jsTest") { + dependencies { + implementation(project(":test-utils")) + } + } + } } diff --git a/webui/src/main/kotlin/world/phantasmal/webui/DisposableContainer.kt b/webui/src/jsMain/kotlin/world/phantasmal/webui/DisposableContainer.kt similarity index 100% rename from webui/src/main/kotlin/world/phantasmal/webui/DisposableContainer.kt rename to webui/src/jsMain/kotlin/world/phantasmal/webui/DisposableContainer.kt diff --git a/webui/src/main/kotlin/world/phantasmal/webui/Js.kt b/webui/src/jsMain/kotlin/world/phantasmal/webui/Js.kt similarity index 100% rename from webui/src/main/kotlin/world/phantasmal/webui/Js.kt rename to webui/src/jsMain/kotlin/world/phantasmal/webui/Js.kt diff --git a/webui/src/main/kotlin/world/phantasmal/webui/LoadingStatusCell.kt b/webui/src/jsMain/kotlin/world/phantasmal/webui/LoadingStatusCell.kt similarity index 100% rename from webui/src/main/kotlin/world/phantasmal/webui/LoadingStatusCell.kt rename to webui/src/jsMain/kotlin/world/phantasmal/webui/LoadingStatusCell.kt diff --git a/webui/src/main/kotlin/world/phantasmal/webui/StandardExtensions.kt b/webui/src/jsMain/kotlin/world/phantasmal/webui/StandardExtensions.kt similarity index 100% rename from webui/src/main/kotlin/world/phantasmal/webui/StandardExtensions.kt rename to webui/src/jsMain/kotlin/world/phantasmal/webui/StandardExtensions.kt diff --git a/webui/src/main/kotlin/world/phantasmal/webui/TimeExtensions.kt b/webui/src/jsMain/kotlin/world/phantasmal/webui/TimeExtensions.kt similarity index 100% rename from webui/src/main/kotlin/world/phantasmal/webui/TimeExtensions.kt rename to webui/src/jsMain/kotlin/world/phantasmal/webui/TimeExtensions.kt diff --git a/webui/src/main/kotlin/world/phantasmal/webui/controllers/Controller.kt b/webui/src/jsMain/kotlin/world/phantasmal/webui/controllers/Controller.kt similarity index 100% rename from webui/src/main/kotlin/world/phantasmal/webui/controllers/Controller.kt rename to webui/src/jsMain/kotlin/world/phantasmal/webui/controllers/Controller.kt diff --git a/webui/src/main/kotlin/world/phantasmal/webui/controllers/TabContainerController.kt b/webui/src/jsMain/kotlin/world/phantasmal/webui/controllers/TabContainerController.kt similarity index 100% rename from webui/src/main/kotlin/world/phantasmal/webui/controllers/TabContainerController.kt rename to webui/src/jsMain/kotlin/world/phantasmal/webui/controllers/TabContainerController.kt diff --git a/webui/src/main/kotlin/world/phantasmal/webui/controllers/TableController.kt b/webui/src/jsMain/kotlin/world/phantasmal/webui/controllers/TableController.kt similarity index 100% rename from webui/src/main/kotlin/world/phantasmal/webui/controllers/TableController.kt rename to webui/src/jsMain/kotlin/world/phantasmal/webui/controllers/TableController.kt diff --git a/webui/src/main/kotlin/world/phantasmal/webui/dom/DefaultStyle.kt b/webui/src/jsMain/kotlin/world/phantasmal/webui/dom/DefaultStyle.kt similarity index 100% rename from webui/src/main/kotlin/world/phantasmal/webui/dom/DefaultStyle.kt rename to webui/src/jsMain/kotlin/world/phantasmal/webui/dom/DefaultStyle.kt diff --git a/webui/src/main/kotlin/world/phantasmal/webui/dom/Dom.kt b/webui/src/jsMain/kotlin/world/phantasmal/webui/dom/Dom.kt similarity index 99% rename from webui/src/main/kotlin/world/phantasmal/webui/dom/Dom.kt rename to webui/src/jsMain/kotlin/world/phantasmal/webui/dom/Dom.kt index c5c0d751..81560b07 100644 --- a/webui/src/main/kotlin/world/phantasmal/webui/dom/Dom.kt +++ b/webui/src/jsMain/kotlin/world/phantasmal/webui/dom/Dom.kt @@ -249,7 +249,7 @@ private fun bindChildrenTo( createChild: Node.(T, index: Int) -> Node, childrenRemoved: () -> Unit, ): Disposable { - inline fun createChildNodes(items: List) { + fun createChildNodes(items: List) { val frag = document.createDocumentFragment() items.forEachIndexed { i, item -> diff --git a/webui/src/main/kotlin/world/phantasmal/webui/dom/DomCreation.kt b/webui/src/jsMain/kotlin/world/phantasmal/webui/dom/DomCreation.kt similarity index 97% rename from webui/src/main/kotlin/world/phantasmal/webui/dom/DomCreation.kt rename to webui/src/jsMain/kotlin/world/phantasmal/webui/dom/DomCreation.kt index 2d67a427..aecfa33b 100644 --- a/webui/src/main/kotlin/world/phantasmal/webui/dom/DomCreation.kt +++ b/webui/src/jsMain/kotlin/world/phantasmal/webui/dom/DomCreation.kt @@ -139,10 +139,13 @@ inline fun Node.appendHtmlEl(tagName: String, block: T.() -> U return appendChild(newHtmlEl(tagName, block)).unsafeCast() } -inline fun newHtmlEl(tagName: String, block: T.() -> Unit): T = - newEl(tagName, block) +inline fun newHtmlEl(tagName: String, block: T.() -> Unit): T { + contract { callsInPlace(block, EXACTLY_ONCE) } + return newEl(tagName, block) +} inline fun newEl(tagName: String, block: T.() -> Unit): T { + contract { callsInPlace(block, EXACTLY_ONCE) } val el = document.createElement(tagName).unsafeCast() el.block() return el diff --git a/webui/src/main/kotlin/world/phantasmal/webui/dom/HTMLElementSizeCell.kt b/webui/src/jsMain/kotlin/world/phantasmal/webui/dom/HTMLElementSizeCell.kt similarity index 100% rename from webui/src/main/kotlin/world/phantasmal/webui/dom/HTMLElementSizeCell.kt rename to webui/src/jsMain/kotlin/world/phantasmal/webui/dom/HTMLElementSizeCell.kt diff --git a/webui/src/main/kotlin/world/phantasmal/webui/externals/fontawesome/fontawesomeSvgCore.kt b/webui/src/jsMain/kotlin/world/phantasmal/webui/externals/fontawesome/fontawesomeSvgCore.kt similarity index 100% rename from webui/src/main/kotlin/world/phantasmal/webui/externals/fontawesome/fontawesomeSvgCore.kt rename to webui/src/jsMain/kotlin/world/phantasmal/webui/externals/fontawesome/fontawesomeSvgCore.kt diff --git a/webui/src/main/kotlin/world/phantasmal/webui/externals/fontawesome/freeBrandsSvgIcons/fontawesomeFreeSolidSvgIcons.kt b/webui/src/jsMain/kotlin/world/phantasmal/webui/externals/fontawesome/freeBrandsSvgIcons/fontawesomeFreeSolidSvgIcons.kt similarity index 100% rename from webui/src/main/kotlin/world/phantasmal/webui/externals/fontawesome/freeBrandsSvgIcons/fontawesomeFreeSolidSvgIcons.kt rename to webui/src/jsMain/kotlin/world/phantasmal/webui/externals/fontawesome/freeBrandsSvgIcons/fontawesomeFreeSolidSvgIcons.kt diff --git a/webui/src/main/kotlin/world/phantasmal/webui/externals/fontawesome/freeRegularSvgIcons/fontawesomeFreeSolidSvgIcons.kt b/webui/src/jsMain/kotlin/world/phantasmal/webui/externals/fontawesome/freeRegularSvgIcons/fontawesomeFreeSolidSvgIcons.kt similarity index 100% rename from webui/src/main/kotlin/world/phantasmal/webui/externals/fontawesome/freeRegularSvgIcons/fontawesomeFreeSolidSvgIcons.kt rename to webui/src/jsMain/kotlin/world/phantasmal/webui/externals/fontawesome/freeRegularSvgIcons/fontawesomeFreeSolidSvgIcons.kt diff --git a/webui/src/main/kotlin/world/phantasmal/webui/externals/fontawesome/freeSolidSvgIcons/fontawesomeFreeSolidSvgIcons.kt b/webui/src/jsMain/kotlin/world/phantasmal/webui/externals/fontawesome/freeSolidSvgIcons/fontawesomeFreeSolidSvgIcons.kt similarity index 100% rename from webui/src/main/kotlin/world/phantasmal/webui/externals/fontawesome/freeSolidSvgIcons/fontawesomeFreeSolidSvgIcons.kt rename to webui/src/jsMain/kotlin/world/phantasmal/webui/externals/fontawesome/freeSolidSvgIcons/fontawesomeFreeSolidSvgIcons.kt diff --git a/webui/src/main/kotlin/world/phantasmal/webui/files/Files.kt b/webui/src/jsMain/kotlin/world/phantasmal/webui/files/Files.kt similarity index 100% rename from webui/src/main/kotlin/world/phantasmal/webui/files/Files.kt rename to webui/src/jsMain/kotlin/world/phantasmal/webui/files/Files.kt diff --git a/webui/src/main/kotlin/world/phantasmal/webui/stores/Store.kt b/webui/src/jsMain/kotlin/world/phantasmal/webui/stores/Store.kt similarity index 100% rename from webui/src/main/kotlin/world/phantasmal/webui/stores/Store.kt rename to webui/src/jsMain/kotlin/world/phantasmal/webui/stores/Store.kt diff --git a/webui/src/main/kotlin/world/phantasmal/webui/widgets/Button.kt b/webui/src/jsMain/kotlin/world/phantasmal/webui/widgets/Button.kt similarity index 100% rename from webui/src/main/kotlin/world/phantasmal/webui/widgets/Button.kt rename to webui/src/jsMain/kotlin/world/phantasmal/webui/widgets/Button.kt diff --git a/webui/src/main/kotlin/world/phantasmal/webui/widgets/Checkbox.kt b/webui/src/jsMain/kotlin/world/phantasmal/webui/widgets/Checkbox.kt similarity index 100% rename from webui/src/main/kotlin/world/phantasmal/webui/widgets/Checkbox.kt rename to webui/src/jsMain/kotlin/world/phantasmal/webui/widgets/Checkbox.kt diff --git a/webui/src/main/kotlin/world/phantasmal/webui/widgets/ComboBox.kt b/webui/src/jsMain/kotlin/world/phantasmal/webui/widgets/ComboBox.kt similarity index 100% rename from webui/src/main/kotlin/world/phantasmal/webui/widgets/ComboBox.kt rename to webui/src/jsMain/kotlin/world/phantasmal/webui/widgets/ComboBox.kt diff --git a/webui/src/main/kotlin/world/phantasmal/webui/widgets/Control.kt b/webui/src/jsMain/kotlin/world/phantasmal/webui/widgets/Control.kt similarity index 100% rename from webui/src/main/kotlin/world/phantasmal/webui/widgets/Control.kt rename to webui/src/jsMain/kotlin/world/phantasmal/webui/widgets/Control.kt diff --git a/webui/src/main/kotlin/world/phantasmal/webui/widgets/Dialog.kt b/webui/src/jsMain/kotlin/world/phantasmal/webui/widgets/Dialog.kt similarity index 100% rename from webui/src/main/kotlin/world/phantasmal/webui/widgets/Dialog.kt rename to webui/src/jsMain/kotlin/world/phantasmal/webui/widgets/Dialog.kt diff --git a/webui/src/main/kotlin/world/phantasmal/webui/widgets/DoubleInput.kt b/webui/src/jsMain/kotlin/world/phantasmal/webui/widgets/DoubleInput.kt similarity index 100% rename from webui/src/main/kotlin/world/phantasmal/webui/widgets/DoubleInput.kt rename to webui/src/jsMain/kotlin/world/phantasmal/webui/widgets/DoubleInput.kt diff --git a/webui/src/main/kotlin/world/phantasmal/webui/widgets/DropDown.kt b/webui/src/jsMain/kotlin/world/phantasmal/webui/widgets/DropDown.kt similarity index 100% rename from webui/src/main/kotlin/world/phantasmal/webui/widgets/DropDown.kt rename to webui/src/jsMain/kotlin/world/phantasmal/webui/widgets/DropDown.kt diff --git a/webui/src/main/kotlin/world/phantasmal/webui/widgets/DurationInput.kt b/webui/src/jsMain/kotlin/world/phantasmal/webui/widgets/DurationInput.kt similarity index 91% rename from webui/src/main/kotlin/world/phantasmal/webui/widgets/DurationInput.kt rename to webui/src/jsMain/kotlin/world/phantasmal/webui/widgets/DurationInput.kt index 6d1e737d..06519271 100644 --- a/webui/src/main/kotlin/world/phantasmal/webui/widgets/DurationInput.kt +++ b/webui/src/jsMain/kotlin/world/phantasmal/webui/widgets/DurationInput.kt @@ -6,6 +6,7 @@ import world.phantasmal.cell.nullCell import world.phantasmal.cell.trueCell import world.phantasmal.webui.formatAsHoursAndMinutes import kotlin.time.Duration +import kotlin.time.Duration.Companion.minutes class DurationInput( visible: Cell = trueCell(), @@ -42,11 +43,11 @@ class DurationInput( val minutes = minutesStr.toIntOrNull() if (hours != null && minutes != null) { - return Duration.minutes(hours * 60 + minutes) + return (hours * 60 + minutes).minutes } } - return input.value.toIntOrNull()?.let(Duration::minutes) ?: Duration.ZERO + return input.value.toIntOrNull()?.minutes ?: Duration.ZERO } override fun setInputValue(input: HTMLInputElement, value: Duration) { diff --git a/webui/src/main/kotlin/world/phantasmal/webui/widgets/FileButton.kt b/webui/src/jsMain/kotlin/world/phantasmal/webui/widgets/FileButton.kt similarity index 100% rename from webui/src/main/kotlin/world/phantasmal/webui/widgets/FileButton.kt rename to webui/src/jsMain/kotlin/world/phantasmal/webui/widgets/FileButton.kt diff --git a/webui/src/main/kotlin/world/phantasmal/webui/widgets/Input.kt b/webui/src/jsMain/kotlin/world/phantasmal/webui/widgets/Input.kt similarity index 100% rename from webui/src/main/kotlin/world/phantasmal/webui/widgets/Input.kt rename to webui/src/jsMain/kotlin/world/phantasmal/webui/widgets/Input.kt diff --git a/webui/src/main/kotlin/world/phantasmal/webui/widgets/IntInput.kt b/webui/src/jsMain/kotlin/world/phantasmal/webui/widgets/IntInput.kt similarity index 100% rename from webui/src/main/kotlin/world/phantasmal/webui/widgets/IntInput.kt rename to webui/src/jsMain/kotlin/world/phantasmal/webui/widgets/IntInput.kt diff --git a/webui/src/main/kotlin/world/phantasmal/webui/widgets/Label.kt b/webui/src/jsMain/kotlin/world/phantasmal/webui/widgets/Label.kt similarity index 100% rename from webui/src/main/kotlin/world/phantasmal/webui/widgets/Label.kt rename to webui/src/jsMain/kotlin/world/phantasmal/webui/widgets/Label.kt diff --git a/webui/src/main/kotlin/world/phantasmal/webui/widgets/LabelledControl.kt b/webui/src/jsMain/kotlin/world/phantasmal/webui/widgets/LabelledControl.kt similarity index 100% rename from webui/src/main/kotlin/world/phantasmal/webui/widgets/LabelledControl.kt rename to webui/src/jsMain/kotlin/world/phantasmal/webui/widgets/LabelledControl.kt diff --git a/webui/src/main/kotlin/world/phantasmal/webui/widgets/LazyLoader.kt b/webui/src/jsMain/kotlin/world/phantasmal/webui/widgets/LazyLoader.kt similarity index 100% rename from webui/src/main/kotlin/world/phantasmal/webui/widgets/LazyLoader.kt rename to webui/src/jsMain/kotlin/world/phantasmal/webui/widgets/LazyLoader.kt diff --git a/webui/src/main/kotlin/world/phantasmal/webui/widgets/Menu.kt b/webui/src/jsMain/kotlin/world/phantasmal/webui/widgets/Menu.kt similarity index 100% rename from webui/src/main/kotlin/world/phantasmal/webui/widgets/Menu.kt rename to webui/src/jsMain/kotlin/world/phantasmal/webui/widgets/Menu.kt diff --git a/webui/src/main/kotlin/world/phantasmal/webui/widgets/NumberInput.kt b/webui/src/jsMain/kotlin/world/phantasmal/webui/widgets/NumberInput.kt similarity index 100% rename from webui/src/main/kotlin/world/phantasmal/webui/widgets/NumberInput.kt rename to webui/src/jsMain/kotlin/world/phantasmal/webui/widgets/NumberInput.kt diff --git a/webui/src/main/kotlin/world/phantasmal/webui/widgets/ResultDialog.kt b/webui/src/jsMain/kotlin/world/phantasmal/webui/widgets/ResultDialog.kt similarity index 100% rename from webui/src/main/kotlin/world/phantasmal/webui/widgets/ResultDialog.kt rename to webui/src/jsMain/kotlin/world/phantasmal/webui/widgets/ResultDialog.kt diff --git a/webui/src/main/kotlin/world/phantasmal/webui/widgets/Select.kt b/webui/src/jsMain/kotlin/world/phantasmal/webui/widgets/Select.kt similarity index 100% rename from webui/src/main/kotlin/world/phantasmal/webui/widgets/Select.kt rename to webui/src/jsMain/kotlin/world/phantasmal/webui/widgets/Select.kt diff --git a/webui/src/main/kotlin/world/phantasmal/webui/widgets/TabContainer.kt b/webui/src/jsMain/kotlin/world/phantasmal/webui/widgets/TabContainer.kt similarity index 100% rename from webui/src/main/kotlin/world/phantasmal/webui/widgets/TabContainer.kt rename to webui/src/jsMain/kotlin/world/phantasmal/webui/widgets/TabContainer.kt diff --git a/webui/src/main/kotlin/world/phantasmal/webui/widgets/Table.kt b/webui/src/jsMain/kotlin/world/phantasmal/webui/widgets/Table.kt similarity index 100% rename from webui/src/main/kotlin/world/phantasmal/webui/widgets/Table.kt rename to webui/src/jsMain/kotlin/world/phantasmal/webui/widgets/Table.kt diff --git a/webui/src/main/kotlin/world/phantasmal/webui/widgets/TextArea.kt b/webui/src/jsMain/kotlin/world/phantasmal/webui/widgets/TextArea.kt similarity index 100% rename from webui/src/main/kotlin/world/phantasmal/webui/widgets/TextArea.kt rename to webui/src/jsMain/kotlin/world/phantasmal/webui/widgets/TextArea.kt diff --git a/webui/src/main/kotlin/world/phantasmal/webui/widgets/TextInput.kt b/webui/src/jsMain/kotlin/world/phantasmal/webui/widgets/TextInput.kt similarity index 100% rename from webui/src/main/kotlin/world/phantasmal/webui/widgets/TextInput.kt rename to webui/src/jsMain/kotlin/world/phantasmal/webui/widgets/TextInput.kt diff --git a/webui/src/main/kotlin/world/phantasmal/webui/widgets/Toolbar.kt b/webui/src/jsMain/kotlin/world/phantasmal/webui/widgets/Toolbar.kt similarity index 100% rename from webui/src/main/kotlin/world/phantasmal/webui/widgets/Toolbar.kt rename to webui/src/jsMain/kotlin/world/phantasmal/webui/widgets/Toolbar.kt diff --git a/webui/src/main/kotlin/world/phantasmal/webui/widgets/UniqueId.kt b/webui/src/jsMain/kotlin/world/phantasmal/webui/widgets/UniqueId.kt similarity index 100% rename from webui/src/main/kotlin/world/phantasmal/webui/widgets/UniqueId.kt rename to webui/src/jsMain/kotlin/world/phantasmal/webui/widgets/UniqueId.kt diff --git a/webui/src/main/kotlin/world/phantasmal/webui/widgets/Widget.kt b/webui/src/jsMain/kotlin/world/phantasmal/webui/widgets/Widget.kt similarity index 100% rename from webui/src/main/kotlin/world/phantasmal/webui/widgets/Widget.kt rename to webui/src/jsMain/kotlin/world/phantasmal/webui/widgets/Widget.kt diff --git a/webui/src/test/kotlin/world/phantasmal/webui/StandardExtensionsTests.kt b/webui/src/jsTest/kotlin/world/phantasmal/webui/StandardExtensionsTests.kt similarity index 100% rename from webui/src/test/kotlin/world/phantasmal/webui/StandardExtensionsTests.kt rename to webui/src/jsTest/kotlin/world/phantasmal/webui/StandardExtensionsTests.kt diff --git a/webui/src/test/kotlin/world/phantasmal/webui/test/WebuiTestSuite.kt b/webui/src/jsTest/kotlin/world/phantasmal/webui/test/WebuiTestSuite.kt similarity index 100% rename from webui/src/test/kotlin/world/phantasmal/webui/test/WebuiTestSuite.kt rename to webui/src/jsTest/kotlin/world/phantasmal/webui/test/WebuiTestSuite.kt diff --git a/webui/src/test/kotlin/world/phantasmal/webui/widgets/WidgetTests.kt b/webui/src/jsTest/kotlin/world/phantasmal/webui/widgets/WidgetTests.kt similarity index 100% rename from webui/src/test/kotlin/world/phantasmal/webui/widgets/WidgetTests.kt rename to webui/src/jsTest/kotlin/world/phantasmal/webui/widgets/WidgetTests.kt