From 0d4882dbabcc61c4863109eac12eac507b7b1b34 Mon Sep 17 00:00:00 2001
From: Griefed <griefed@griefed.de>
Date: Sun, 26 May 2024 15:19:53 +0200
Subject: [PATCH] milestone: New installers, stats & dashboard & up- and
 download tracking for the webservice

---
 .github/workflows/github-prerelease.yml       |  340 +-
 .github/workflows/github_release.yml          |  339 +-
 .github/workflows/test.yml                    |  248 +-
 .github/workflows/update_readme.yml           |    3 +-
 .gitignore                                    |   17 +-
 .gitlab-ci.yml                                |   46 +-
 .runConfigurations/Build All.run.xml          |    1 -
 .../Build without tests with version.run.xml  |    2 +-
 .../Build without tests.run.xml               |    4 +-
 .runConfigurations/Clean.run.xml              |    1 -
 .runConfigurations/Debug Fat Jar.run.xml      |    2 +-
 Dockerfile                                    |    2 +-
 HELP.md                                       |   14 +-
 LICENSE                                       |   46 -
 README.md                                     |    7 +
 build.gradle.kts                              |   88 +-
 buildSrc/build.gradle.kts                     |   12 +-
 ...verpackcreator.java-conventions.gradle.kts |    2 -
 ...otlin-multiplatform-conventions.gradle.kts |   71 -
 ...rpackcreator.quasar-conventions.gradle.kts |    2 +-
 docker-compose-dev.yml                        |    2 +-
 docker-compose.yml                            |    2 +-
 gradle.properties                             |    4 +-
 img/banner_installer.png                      |  Bin 0 -> 104129 bytes
 img/banner_installer_fin.png                  |  Bin 0 -> 85205 bytes
 img/install.png                               |  Bin 0 -> 175021 bytes
 img/install_128x128.png                       |  Bin 0 -> 32583 bytes
 img/install_16x16.png                         |  Bin 0 -> 3155 bytes
 img/install_256x256.png                       |  Bin 0 -> 68721 bytes
 img/install_32x32.png                         |  Bin 0 -> 7103 bytes
 img/install_48x48.png                         |  Bin 0 -> 16241 bytes
 img/install_512x512.png                       |  Bin 0 -> 171015 bytes
 img/uninstall.png                             |  Bin 0 -> 174513 bytes
 img/uninstall_128x128.png                     |  Bin 0 -> 32391 bytes
 img/uninstall_16x16.png                       |  Bin 0 -> 3129 bytes
 img/uninstall_256x256.png                     |  Bin 0 -> 68400 bytes
 img/uninstall_32x32.png                       |  Bin 0 -> 7104 bytes
 img/uninstall_48x48.png                       |  Bin 0 -> 16056 bytes
 img/uninstall_512x512.png                     |  Bin 0 -> 170342 bytes
 licenses/LICENSE-AGREEMENT                    |  154 +-
 licenses/LICENSE-AGREEMENT.txt                | 5595 +++++++++++++++++
 .../META-INF/LICENSE.md                       |   29 +
 .../META-INF/NOTICE.md                        |   45 +
 .../byte-buddy-1.14.12.jar/META-INF/LICENSE   |  180 +
 .../byte-buddy-1.14.12.jar/META-INF/NOTICE    |   13 +
 .../byte-buddy-1.14.16.jar/META-INF/LICENSE   |  180 +
 .../byte-buddy-1.14.16.jar/META-INF/NOTICE    |   13 +
 .../byte-buddy-1.14.9.jar/META-INF/LICENSE    |  180 +
 .../byte-buddy-1.14.9.jar/META-INF/NOTICE     |   13 +
 .../META-INF/LICENSE.txt                      |   22 +
 licenses/classmate-1.7.0.jar/META-INF/LICENSE |    7 +
 licenses/classmate-1.7.0.jar/META-INF/NOTICE  |    9 +
 .../META-INF/LICENSE.txt                      |  202 +
 .../META-INF/NOTICE.txt                       |    5 +
 .../META-INF/LICENSE.txt                      |  203 +
 .../commons-io-2.16.1.jar/META-INF/NOTICE.txt |    5 +
 .../META-INF/LICENSE.txt                      |  202 +
 .../META-INF/NOTICE.txt                       |    5 +
 licenses/flatlaf-3.4.jar/META-INF/LICENSE     |  201 +
 .../flatlaf-extras-3.4.jar/META-INF/LICENSE   |  201 +
 .../META-INF/LICENSE                          |  201 +
 .../formdev/flatlaf/fonts/inter/LICENSE.txt   |   92 +
 .../META-INF/LICENSE                          |  201 +
 .../META-INF/LICENSE                          |  201 +
 licenses/index.html                           |  124 +-
 .../META-INF/LICENSE                          |  202 +
 .../META-INF/NOTICE                           |   21 +
 .../META-INF/LICENSE                          |  202 +
 .../META-INF/NOTICE                           |   21 +
 .../META-INF/LICENSE                          |  202 +
 .../META-INF/NOTICE                           |   21 +
 .../jackson-core-2.15.4.jar/META-INF/LICENSE  |  202 +
 .../jackson-core-2.15.4.jar/META-INF/NOTICE   |   32 +
 .../jackson-core-2.17.0.jar/META-INF/LICENSE  |  202 +
 .../jackson-core-2.17.0.jar/META-INF/NOTICE   |   32 +
 .../jackson-core-2.17.1.jar/META-INF/LICENSE  |  202 +
 .../jackson-core-2.17.1.jar/META-INF/NOTICE   |   32 +
 .../META-INF/LICENSE                          |  202 +
 .../META-INF/NOTICE                           |   21 +
 .../META-INF/LICENSE                          |  202 +
 .../META-INF/NOTICE                           |   21 +
 .../META-INF/LICENSE                          |  202 +
 .../META-INF/NOTICE                           |   21 +
 .../META-INF/LICENSE                          |    8 +
 .../META-INF/NOTICE                           |   17 +
 .../META-INF/LICENSE                          |    8 +
 .../META-INF/NOTICE                           |   17 +
 .../META-INF/LICENSE                          |    8 +
 .../META-INF/NOTICE                           |   17 +
 .../META-INF/LICENSE                          |    8 +
 .../META-INF/NOTICE                           |   17 +
 .../META-INF/LICENSE                          |    8 +
 .../META-INF/NOTICE                           |   24 +
 .../META-INF/LICENSE                          |    8 +
 .../META-INF/NOTICE                           |   24 +
 .../META-INF/LICENSE                          |    8 +
 .../META-INF/NOTICE                           |   24 +
 .../META-INF/LICENSE                          |    8 +
 .../META-INF/NOTICE                           |   17 +
 .../META-INF/LICENSE                          |    8 +
 .../META-INF/NOTICE                           |   17 +
 .../META-INF/LICENSE.md                       |   29 +
 .../META-INF/NOTICE.md                        |   91 +
 .../META-INF/LICENSE.md                       |   29 +
 .../META-INF/NOTICE.md                        |   47 +
 .../java-semver-0.10.2.jar/META-INF/LICENSE   |   21 +
 .../jaxb-core-4.0.5.jar/META-INF/LICENSE.md   |   28 +
 .../jaxb-core-4.0.5.jar/META-INF/NOTICE.md    |  191 +
 .../META-INF/LICENSE.md                       |   28 +
 .../jaxb-runtime-4.0.5.jar/META-INF/NOTICE.md |  191 +
 licenses/licences.md                          |  160 +-
 .../log4j-api-2.23.1.jar/META-INF/LICENSE     |  202 +
 licenses/log4j-api-2.23.1.jar/META-INF/NOTICE |    6 +
 .../META-INF/LICENSE                          |  202 +
 .../META-INF/NOTICE                           |    6 +
 .../log4j-core-2.23.1.jar/META-INF/LICENSE    |  202 +
 .../log4j-core-2.23.1.jar/META-INF/NOTICE     |    8 +
 .../log4j-jul-2.23.1.jar/META-INF/LICENSE     |  202 +
 licenses/log4j-jul-2.23.1.jar/META-INF/NOTICE |    6 +
 .../META-INF/LICENSE                          |  202 +
 .../META-INF/NOTICE                           |    6 +
 .../META-INF/LICENSE                          |  201 +
 .../META-INF/NOTICE                           |   45 +
 .../META-INF/LICENSE                          |  201 +
 .../META-INF/NOTICE                           |   45 +
 .../META-INF/LICENSE                          |  201 +
 .../META-INF/NOTICE                           |   45 +
 .../META-INF/LICENSE                          |  201 +
 .../META-INF/NOTICE                           |   45 +
 .../postgresql-42.6.2.jar/META-INF/LICENSE    |   33 +
 .../com.ongres.scram/client-2.1/LICENSE       |   22 +
 .../com.ongres.scram/common-2.1/LICENSE       |   22 +
 .../saslprep-1.1/LICENSE                      |   22 +
 .../stringprep-1.1/LICENSE                    |   22 +
 .../postgresql-42.7.3.jar/META-INF/LICENSE    |   33 +
 .../com.ongres.scram/client-2.1/LICENSE       |   22 +
 .../com.ongres.scram/common-2.1/LICENSE       |   22 +
 .../saslprep-1.1/LICENSE                      |   22 +
 .../stringprep-1.1/LICENSE                    |   22 +
 .../slf4j-api-2.0.12.jar/META-INF/LICENSE.txt |   24 +
 .../slf4j-api-2.0.13.jar/META-INF/LICENSE.txt |   24 +
 .../spring-aop-6.1.5.jar/META-INF/license.txt |  297 +
 .../spring-aop-6.1.5.jar/META-INF/notice.txt  |   11 +
 .../spring-aop-6.1.8.jar/META-INF/license.txt |  297 +
 .../spring-aop-6.1.8.jar/META-INF/notice.txt  |   11 +
 .../META-INF/license.txt                      |  297 +
 .../META-INF/notice.txt                       |   11 +
 .../META-INF/license.txt                      |  297 +
 .../META-INF/notice.txt                       |   11 +
 .../META-INF/license.txt                      |  297 +
 .../META-INF/notice.txt                       |   11 +
 .../META-INF/license.txt                      |  297 +
 .../META-INF/notice.txt                       |   11 +
 .../META-INF/LICENSE.txt                      |  202 +
 .../spring-boot-3.2.4.jar/META-INF/NOTICE.txt |    6 +
 .../META-INF/LICENSE.txt                      |  202 +
 .../spring-boot-3.3.0.jar/META-INF/NOTICE.txt |    6 +
 .../META-INF/LICENSE.txt                      |  202 +
 .../META-INF/NOTICE.txt                       |    6 +
 .../META-INF/LICENSE.txt                      |  202 +
 .../META-INF/NOTICE.txt                       |    6 +
 .../META-INF/LICENSE.txt                      |  202 +
 .../META-INF/NOTICE.txt                       |    6 +
 .../META-INF/LICENSE.txt                      |  202 +
 .../META-INF/NOTICE.txt                       |    6 +
 .../META-INF/LICENSE.txt                      |  202 +
 .../META-INF/NOTICE.txt                       |    6 +
 .../META-INF/LICENSE.txt                      |  202 +
 .../META-INF/NOTICE.txt                       |    6 +
 .../META-INF/LICENSE.txt                      |  202 +
 .../META-INF/NOTICE.txt                       |    6 +
 .../META-INF/LICENSE.txt                      |  202 +
 .../META-INF/NOTICE.txt                       |    6 +
 .../META-INF/LICENSE.txt                      |  202 +
 .../META-INF/NOTICE.txt                       |    6 +
 .../META-INF/LICENSE.txt                      |  202 +
 .../META-INF/NOTICE.txt                       |    6 +
 .../META-INF/LICENSE.txt                      |  202 +
 .../META-INF/NOTICE.txt                       |    6 +
 .../META-INF/LICENSE.txt                      |  202 +
 .../META-INF/NOTICE.txt                       |    6 +
 .../META-INF/LICENSE.txt                      |  202 +
 .../META-INF/NOTICE.txt                       |    6 +
 .../META-INF/LICENSE.txt                      |  202 +
 .../META-INF/NOTICE.txt                       |    6 +
 .../META-INF/LICENSE.txt                      |  202 +
 .../META-INF/NOTICE.txt                       |    6 +
 .../META-INF/LICENSE.txt                      |  202 +
 .../META-INF/NOTICE.txt                       |    6 +
 .../META-INF/LICENSE.txt                      |  202 +
 .../META-INF/NOTICE.txt                       |    6 +
 .../META-INF/LICENSE.txt                      |  202 +
 .../META-INF/NOTICE.txt                       |    6 +
 .../META-INF/LICENSE.txt                      |  202 +
 .../META-INF/NOTICE.txt                       |    6 +
 .../META-INF/LICENSE.txt                      |  202 +
 .../META-INF/NOTICE.txt                       |    6 +
 .../META-INF/LICENSE.txt                      |  202 +
 .../META-INF/NOTICE.txt                       |    6 +
 .../META-INF/LICENSE.txt                      |  202 +
 .../META-INF/NOTICE.txt                       |    6 +
 .../META-INF/LICENSE.txt                      |  202 +
 .../META-INF/NOTICE.txt                       |    6 +
 .../META-INF/LICENSE.txt                      |  202 +
 .../META-INF/NOTICE.txt                       |    6 +
 .../META-INF/license.txt                      |  297 +
 .../META-INF/notice.txt                       |   11 +
 .../META-INF/license.txt                      |  297 +
 .../META-INF/notice.txt                       |   11 +
 .../META-INF/license.txt                      |  297 +
 .../spring-core-6.1.5.jar/META-INF/notice.txt |   11 +
 .../META-INF/license.txt                      |  297 +
 .../spring-core-6.1.8.jar/META-INF/notice.txt |   11 +
 .../spring-data-commons-3.2.4.jar/license.txt |  216 +
 .../spring-data-commons-3.2.4.jar/notice.txt  |   57 +
 .../spring-data-commons-3.3.0.jar/license.txt |  216 +
 .../spring-data-commons-3.3.0.jar/notice.txt  |   57 +
 .../spring-data-jpa-3.2.4.jar/license.txt     |  216 +
 licenses/spring-data-jpa-3.2.4.jar/notice.txt |   36 +
 licenses/spring-data-jpa-3.2.4.jar/readme.txt |   17 +
 .../spring-data-jpa-3.3.0.jar/license.txt     |  216 +
 licenses/spring-data-jpa-3.3.0.jar/notice.txt |   36 +
 licenses/spring-data-jpa-3.3.0.jar/readme.txt |   17 +
 .../META-INF/license.txt                      |  297 +
 .../META-INF/notice.txt                       |   11 +
 .../META-INF/license.txt                      |  297 +
 .../META-INF/notice.txt                       |   11 +
 .../spring-jcl-6.1.5.jar/META-INF/license.txt |  297 +
 .../spring-jcl-6.1.5.jar/META-INF/notice.txt  |   11 +
 .../spring-jcl-6.1.8.jar/META-INF/license.txt |  297 +
 .../spring-jcl-6.1.8.jar/META-INF/notice.txt  |   11 +
 .../META-INF/license.txt                      |  297 +
 .../spring-jdbc-6.1.5.jar/META-INF/notice.txt |   11 +
 .../META-INF/license.txt                      |  297 +
 .../spring-jdbc-6.1.8.jar/META-INF/notice.txt |   11 +
 .../spring-orm-6.1.5.jar/META-INF/license.txt |  297 +
 .../spring-orm-6.1.5.jar/META-INF/notice.txt  |   11 +
 .../spring-orm-6.1.8.jar/META-INF/license.txt |  297 +
 .../spring-orm-6.1.8.jar/META-INF/notice.txt  |   11 +
 .../spring-tx-6.1.5.jar/META-INF/license.txt  |  297 +
 .../spring-tx-6.1.5.jar/META-INF/notice.txt   |   11 +
 .../spring-tx-6.1.8.jar/META-INF/license.txt  |  297 +
 .../spring-tx-6.1.8.jar/META-INF/notice.txt   |   11 +
 .../spring-web-6.1.5.jar/META-INF/license.txt |  297 +
 .../spring-web-6.1.5.jar/META-INF/notice.txt  |   11 +
 .../spring-web-6.1.8.jar/META-INF/license.txt |  297 +
 .../spring-web-6.1.8.jar/META-INF/notice.txt  |   11 +
 .../META-INF/license.txt                      |  297 +
 .../META-INF/notice.txt                       |   11 +
 .../META-INF/license.txt                      |  297 +
 .../META-INF/notice.txt                       |   11 +
 .../META-INF/LICENSE                          |  858 +++
 .../META-INF/NOTICE                           |   31 +
 .../META-INF/LICENSE                          |  858 +++
 .../META-INF/NOTICE                           |   31 +
 .../META-INF/LICENSE                          |  202 +
 .../META-INF/NOTICE                           |    5 +
 .../META-INF/LICENSE                          |  202 +
 .../META-INF/NOTICE                           |    5 +
 .../META-INF/LICENSE                          |  202 +
 .../META-INF/NOTICE                           |    5 +
 .../META-INF/LICENSE                          |  202 +
 .../META-INF/NOTICE                           |    5 +
 licenses/txw2-4.0.5.jar/META-INF/LICENSE.md   |   28 +
 licenses/txw2-4.0.5.jar/META-INF/NOTICE.md    |  191 +
 misc/PRE-INFO.md                              |    7 +-
 root/defaults/serverpackcreator.properties    |    2 +-
 .../s6-overlay/s6-rc.d/init-spc-config/run    |    2 +-
 serverpackcreator-api/build.gradle.kts        |  119 +-
 .../de/griefed/serverpackcreator/api/Api.kt   |  147 -
 .../serverpackcreator/api/ApiPlugins.kt       |  113 -
 .../serverpackcreator/api/ApiProperties.kt    |   35 -
 .../serverpackcreator/api/ApiWrapper.kt       |   54 -
 .../serverpackcreator/api/Configuration.kt    |  546 --
 .../api/ConfigurationHandler.kt               |   82 -
 .../api/InclusionSpecification.kt             |   56 -
 .../de/griefed/serverpackcreator/api/Pack.kt  |  136 -
 .../serverpackcreator/api/PackConfig.kt       |  105 -
 .../serverpackcreator/api/ServerPack.kt       |  514 --
 .../serverpackcreator/api/ServerPackFile.kt   |   37 -
 .../api/ServerPackHandler.kt                  |   57 -
 .../api/modscanning/FabricScanner.kt          |   32 -
 .../api/modscanning/ForgeAnnotationScanner.kt |   34 -
 .../api/modscanning/ForgeTomlScanner.kt       |   36 -
 .../api/modscanning/ModScanner.kt             |   45 -
 .../api/modscanning/NeoForgeTomlScanner.kt    |    7 -
 .../api/modscanning/QuiltScanner.kt           |   32 -
 .../api/plugins/ExtensionPoint.kt             |   29 -
 .../plugins/swinggui/ExtensionConfigPanel.kt  |   78 -
 .../api/plugins/swinggui/ExtensionTab.kt      |   30 -
 .../api/plugins/swinggui/TabExtension.kt      |   83 -
 .../api/utilities/CommentedConfig.kt          |   26 -
 .../serverpackcreator/api/utilities/File.kt   |   53 -
 .../serverpackcreator/api/utilities/Icon.kt   |   33 -
 .../api/utilities/Optional.kt                 |   32 -
 .../api/utilities/TomlParser.kt               |   27 -
 .../serverpackcreator/api/utilities/URL.kt    |   30 -
 .../api/utilities/common/FileUtilities.kt     |  214 -
 .../common/FileUtilitiesExtensions.kt         |   44 -
 .../api/utilities/common/JarUtilities.kt      |   27 -
 .../api/utilities/common/JsonUtilities.kt     |   27 -
 .../api/utilities/common/SystemUtilities.kt   |   29 -
 .../api/utilities/common/Utilities.kt         |   37 -
 .../api/utilities/common/WebUtilities.kt      |  133 -
 .../api/utilities/common/XmlUtilities.kt      |   27 -
 .../api/versionmeta/VersionMeta.kt            |  108 -
 .../api/versionmeta/fabric/FabricMeta.kt      |   71 -
 .../api/versionmeta/forge/ForgeMeta.kt        |  240 -
 .../legacyfabric/LegacyFabricMeta.kt          |   73 -
 .../versionmeta/minecraft/MinecraftMeta.kt    |  166 -
 .../api/versionmeta/neoforge/NeoForgeMeta.kt  |  221 -
 .../api/versionmeta/quilt/QuiltMeta.kt        |   53 -
 .../serverpackcreator/api/LoggingConfig.kt    |  237 -
 .../api/modscanning/NeoForgeTomlScanner.kt    |    8 -
 .../api/plugins/TypeAliases.kt                |   25 -
 .../api/utilities/TypeAliases.kt              |   52 -
 .../manifests/minecraft-manifest.json         |    1 -
 .../resources/log4j2.component.properties     |    3 -
 .../api/modscanning/ModScannerTest.kt         |  229 -
 .../resources/fabric_tests/server_pack.zip    |  Bin 5418 -> 0 bytes
 .../resources/forge_tests/server_pack.zip     |  Bin 5418 -> 0 bytes
 .../legacyfabric_tests/server_pack.zip        |  Bin 5418 -> 0 bytes
 .../resources/log4j2.component.properties     |    3 -
 .../resources/neoforge_tests/server_pack.zip  |  Bin 5418 -> 0 bytes
 .../overridestest/overrides/mods/aaaaa.jar    |    0
 .../overridestest/overrides/mods/bbbbb.jar    |    0
 .../overridestest/overrides/mods/ccccc.jar    |    0
 .../overridestest/overrides/mods/fffff.jar    |    0
 .../overridestest/overrides/mods/ggggg.jar    |    0
 .../overridestest/overrides/mods/hhhhh.jar    |    0
 .../overridestest/overrides/mods/iiiii.jar    |    0
 .../overridestest/overrides/mods/jjjjj.jar    |    0
 .../overridestest/overrides/mods/kkkkk.jar    |    0
 .../overridestest/overrides/mods/lllll.jar    |    0
 .../overridestest/overrides/mods/nnnnn.jar    |    0
 .../overridestest/overrides/mods/ppppp.jar    |    0
 .../overridestest/overrides/mods/qqqqq.jar    |    0
 .../overridestest/overrides/mods/rrrrr.jar    |    0
 .../overridestest/overrides/mods/uuuuu.jar    |    0
 .../overridestest/overrides/mods/vvvvv.jar    |    0
 .../overridestest/overrides/mods/wwwww.jar    |    0
 .../overridestest/overrides/mods/xxxxx.jar    |    0
 .../overridestest/overrides/mods/yyyyy.jar    |    0
 .../overridestest/overrides/mods/zzzzz.jar    |    0
 .../resources/quilt_tests/server_pack.zip     |  Bin 5418 -> 0 bytes
 .../resources/testresources/server_pack.zip   |  Bin 5418 -> 0 bytes
 .../server_pack/mods/testmod.jar              |    0
 .../i18n/Translations_en_GB.properties        |    1 +
 .../i18n/Translations_pt_BR.properties        |    1 +
 .../serverpackcreator/api/ApiPlugins.kt       |   18 +-
 .../serverpackcreator/api/ApiProperties.kt    |  292 +-
 .../serverpackcreator/api/ApiWrapper.kt       |  159 +-
 .../serverpackcreator/api/ConfigCheck.kt      |    0
 .../api/ConfigurationHandler.kt               |  586 +-
 .../serverpackcreator/api/ExclusionFilter.kt  |    0
 .../api/InclusionSpecification.kt             |   20 +-
 .../serverpackcreator/api}/ModpackSource.kt   |    4 +-
 .../serverpackcreator/api/PackConfig.kt       |  108 +-
 .../serverpackcreator/api/ServerPackFile.kt   |    6 +-
 .../api/ServerPackHandler.kt                  |  472 +-
 .../api/modscanning/FabricScanner.kt          |    7 +-
 .../api/modscanning/ForgeAnnotationScanner.kt |    9 +-
 .../api/modscanning/ForgeTomlScanner.kt       |   12 +-
 .../api/modscanning/JsonBasedScanner.kt       |    2 +-
 .../api/modscanning/ModScanner.kt             |   12 +-
 .../api/modscanning/NeoForgeTomlScanner.kt    |    8 +
 .../api/modscanning/QuiltScanner.kt           |   23 +-
 .../api/modscanning/Scanner.kt                |    0
 .../api/modscanning/ScanningException.kt      |    0
 .../api/plugins/BaseInformation.kt            |    0
 .../api/plugins/CustomPluginFactory.kt        |    2 +-
 .../api/plugins/ExtensionException.kt         |    0
 .../api/plugins/ExtensionInformation.kt       |    2 +
 .../api/plugins/PluginContext.kt              |    0
 .../api/plugins/ServerPackCreatorPlugin.kt    |   16 +-
 .../ConfigCheckExtension.kt                   |    4 +-
 .../serverpackhandler/PostGenExtension.kt     |    0
 .../serverpackhandler/PreGenExtension.kt      |    0
 .../serverpackhandler/PreZipExtension.kt      |    0
 .../ServerPackHandlerBase.kt                  |    4 +-
 .../plugins/swinggui/ConfigPanelExtension.kt  |    4 +-
 .../plugins/swinggui/ExtensionConfigPanel.kt  |   13 +-
 .../api/plugins/swinggui/ExtensionTab.kt      |    2 +-
 .../plugins/swinggui/ServerPackConfigTab.kt   |    2 +-
 .../api/plugins/swinggui/TabExtension.kt      |   18 +-
 .../api/utilities/ReticulatingSplines.kt      |    0
 .../api/utilities/SimpleStopWatch.kt          |    0
 .../api/utilities/common/Affirm.kt            |    0
 .../api/utilities/common/BooleanUtilities.kt  |    2 +-
 .../api/utilities/common/ClassUtilities.kt    |    6 -
 .../api/utilities/common/Comparison.kt        |    2 +-
 .../api/utilities/common/FileType.kt          |    0
 .../api/utilities/common/FileUtilities.kt     |   74 +-
 .../api/utilities/common/FilterType.kt        |    0
 .../utilities/common/InputStreamUtilities.kt  |    0
 .../common/InvalidFileTypeException.kt        |    0
 .../utilities/common/InvalidLinkException.kt  |    0
 .../utilities/common/JarAccessException.kt    |    0
 .../api/utilities/common/JarInformation.kt    |   18 +-
 .../api/utilities/common/JarUtilities.kt      |   15 +-
 .../api/utilities/common/JsonException.kt     |    0
 .../api/utilities/common/JsonUtilities.kt     |    2 +-
 .../api/utilities/common/ListUtilities.kt     |    2 +-
 .../api/utilities/common/RegexUtilities.kt    |    0
 .../common/SemanticVersionComparator.kt       |    0
 .../api/utilities/common/StringUtilities.kt   |    0
 .../api/utilities/common/SystemUtilities.kt   |   25 +-
 .../api/utilities/common/Utilities.kt         |   20 +-
 .../api/utilities/common/WebUtilities.kt      |   24 +-
 .../api/utilities/common/XmlUtilities.kt      |    2 +-
 .../api/utilities/common/ZipUtilities.kt      |    0
 .../api/versionmeta/InvalidTypeException.kt   |    0
 .../serverpackcreator/api/versionmeta/Meta.kt |   12 +-
 .../serverpackcreator/api/versionmeta/Type.kt |    0
 .../api/versionmeta/VersionMeta.kt            |   44 +-
 .../api/versionmeta/fabric/FabricArguments.kt |    0
 .../api/versionmeta/fabric/FabricDetails.kt   |    0
 .../api/versionmeta/fabric/FabricInstaller.kt |    0
 .../fabric/FabricIntermediaries.kt            |    0
 .../versionmeta/fabric/FabricIntermediary.kt  |    0
 .../api/versionmeta/fabric/FabricLibrary.kt   |    0
 .../api/versionmeta/fabric/FabricLoader.kt    |    0
 .../versionmeta/fabric/FabricLoaderDetails.kt |    0
 .../api/versionmeta/fabric/FabricMeta.kt      |   50 +-
 .../api/versionmeta/forge/ForgeInstance.kt    |    0
 .../api/versionmeta/forge/ForgeLoader.kt      |    2 +-
 .../api/versionmeta/forge/ForgeMeta.kt        |   50 +-
 .../legacyfabric/LegacyFabricGame.kt          |    0
 .../legacyfabric/LegacyFabricInstaller.kt     |    0
 .../legacyfabric/LegacyFabricLoader.kt        |    0
 .../legacyfabric/LegacyFabricMeta.kt          |   40 +-
 .../legacyfabric/LegacyFabricVersioning.kt    |    0
 .../versionmeta/minecraft/MinecraftClient.kt  |    0
 .../minecraft/MinecraftClientMeta.kt          |    2 +-
 .../versionmeta/minecraft/MinecraftMeta.kt    |   30 +-
 .../versionmeta/minecraft/MinecraftServer.kt  |    0
 .../minecraft/MinecraftServerMeta.kt          |    0
 .../versionmeta/neoforge/NeoForgeInstance.kt  |    0
 .../versionmeta/neoforge/NeoForgeLoader.kt    |    2 +-
 .../api/versionmeta/neoforge/NeoForgeMeta.kt  |   50 +-
 .../neoforge/NewNeoForgeInstance.kt           |    0
 .../neoforge/OldNeoForgeInstance.kt           |    0
 .../api/versionmeta/quilt/QuiltInstaller.kt   |    0
 .../api/versionmeta/quilt/QuiltLoader.kt      |    0
 .../api/versionmeta/quilt/QuiltMeta.kt        |   44 +-
 .../{jvmMain => main}/kotlin/io/ByteReader.kt |    0
 .../{jvmMain => main}/kotlin/io/ByteWriter.kt |    0
 .../src/{jvmMain => main}/kotlin/io/Bytes.kt  |    0
 .../kotlin/mslinks/LinkInfo.kt                |    0
 .../kotlin/mslinks/LinkTargetIDList.kt        |    0
 .../kotlin/mslinks/Serializable.kt            |    0
 .../kotlin/mslinks/ShellLink.kt               |    0
 .../kotlin/mslinks/ShellLinkException.kt      |    0
 .../kotlin/mslinks/ShellLinkHeader.kt         |    0
 .../kotlin/mslinks/ShellLinkHelper.kt         |    0
 .../mslinks/UnsupportedCLSIDException.kt      |    0
 .../mslinks/UnsupportedItemIDException.kt     |    0
 .../kotlin/mslinks/data/BitSet32.kt           |    0
 .../kotlin/mslinks/data/CNRLink.kt            |    0
 .../kotlin/mslinks/data/CNRLinkFlags.kt       |    0
 .../kotlin/mslinks/data/ConsoleFlags.kt       |    0
 .../mslinks/data/FileAttributesFlags.kt       |    0
 .../kotlin/mslinks/data/Filetime.kt           |    0
 .../kotlin/mslinks/data/GUID.kt               |    0
 .../kotlin/mslinks/data/HotKeyFlags.kt        |    0
 .../kotlin/mslinks/data/ItemID.kt             |    0
 .../kotlin/mslinks/data/ItemIDDrive.kt        |    0
 .../kotlin/mslinks/data/ItemIDFS.kt           |    0
 .../kotlin/mslinks/data/ItemIDRegFolder.kt    |    0
 .../kotlin/mslinks/data/ItemIDRegItem.kt      |    0
 .../kotlin/mslinks/data/ItemIDRoot.kt         |    0
 .../kotlin/mslinks/data/ItemIDUnknown.kt      |    0
 .../kotlin/mslinks/data/LinkFlags.kt          |    0
 .../kotlin/mslinks/data/LinkInfoFlags.kt      |    0
 .../kotlin/mslinks/data/Registry.kt           |    0
 .../kotlin/mslinks/data/Size.kt               |    0
 .../kotlin/mslinks/data/VolumeID.kt           |    0
 .../kotlin/mslinks/extra/ConsoleData.kt       |    0
 .../kotlin/mslinks/extra/ConsoleFEData.kt     |    0
 .../mslinks/extra/EnvironmentVariable.kt      |    0
 .../kotlin/mslinks/extra/Stub.kt              |    0
 .../kotlin/mslinks/extra/Tracker.kt           |    0
 .../kotlin/mslinks/extra/VistaIDList.kt       |    0
 .../{jvmMain => main}/resources/CHANGELOG.md  |   12 +
 .../resources/CODE_OF_CONDUCT.md              |    0
 .../resources/CONTRIBUTING.md                 |    0
 .../src/{jvmMain => main}/resources/HELP.md   |    0
 .../src/{jvmMain => main}/resources/LICENSE   |   46 -
 .../src/{jvmMain => main}/resources/README.md |    7 +
 .../de/griefed/resources/cli_help.txt         |    0
 .../examples/serverpackcreator.example        |    0
 .../resources/lang/lang_de_de.properties      |    0
 .../resources/lang/lang_uk_ua.properties      |    0
 .../manifests/fabric-installer-manifest.xml   |    7 +-
 .../fabric-intermediaries-manifest.json       |  120 +
 .../resources/manifests/fabric-manifest.xml   |   10 +-
 .../resources/manifests/forge-manifest.json   |   77 +-
 .../legacy-fabric-game-manifest.json          |    0
 .../legacy-fabric-installer-manifest.xml      |    0
 .../legacy-fabric-loader-manifest.json        |   30 +-
 .../resources/manifests/mcserver/1.0.json     |    0
 .../resources/manifests/mcserver/1.1.json     |    0
 .../manifests/mcserver/1.10-pre1.json         |    0
 .../manifests/mcserver/1.10-pre2.json         |    0
 .../resources/manifests/mcserver/1.10.1.json  |    0
 .../resources/manifests/mcserver/1.10.2.json  |    0
 .../resources/manifests/mcserver/1.10.json    |    0
 .../manifests/mcserver/1.11-pre1.json         |    0
 .../resources/manifests/mcserver/1.11.1.json  |    0
 .../resources/manifests/mcserver/1.11.2.json  |    0
 .../resources/manifests/mcserver/1.11.json    |    0
 .../manifests/mcserver/1.12-pre1.json         |    0
 .../manifests/mcserver/1.12-pre2.json         |    0
 .../manifests/mcserver/1.12-pre3.json         |    0
 .../manifests/mcserver/1.12-pre4.json         |    0
 .../manifests/mcserver/1.12-pre5.json         |    0
 .../manifests/mcserver/1.12-pre6.json         |    0
 .../manifests/mcserver/1.12-pre7.json         |    0
 .../manifests/mcserver/1.12.1-pre1.json       |    0
 .../resources/manifests/mcserver/1.12.1.json  |    0
 .../manifests/mcserver/1.12.2-pre1.json       |    0
 .../manifests/mcserver/1.12.2-pre2.json       |    0
 .../resources/manifests/mcserver/1.12.2.json  |    0
 .../resources/manifests/mcserver/1.12.json    |    0
 .../manifests/mcserver/1.13-pre1.json         |    0
 .../manifests/mcserver/1.13-pre10.json        |    0
 .../manifests/mcserver/1.13-pre2.json         |    0
 .../manifests/mcserver/1.13-pre3.json         |    0
 .../manifests/mcserver/1.13-pre4.json         |    0
 .../manifests/mcserver/1.13-pre5.json         |    0
 .../manifests/mcserver/1.13-pre6.json         |    0
 .../manifests/mcserver/1.13-pre7.json         |    0
 .../manifests/mcserver/1.13-pre8.json         |    0
 .../manifests/mcserver/1.13-pre9.json         |    0
 .../manifests/mcserver/1.13.1-pre1.json       |    0
 .../manifests/mcserver/1.13.1-pre2.json       |    0
 .../resources/manifests/mcserver/1.13.1.json  |    0
 .../manifests/mcserver/1.13.2-pre1.json       |    0
 .../manifests/mcserver/1.13.2-pre2.json       |    0
 .../resources/manifests/mcserver/1.13.2.json  |    0
 .../resources/manifests/mcserver/1.13.json    |    0
 .../mcserver/1.14 Pre-Release 1.json          |    0
 .../mcserver/1.14 Pre-Release 2.json          |    0
 .../mcserver/1.14 Pre-Release 3.json          |    0
 .../mcserver/1.14 Pre-Release 4.json          |    0
 .../mcserver/1.14 Pre-Release 5.json          |    0
 .../mcserver/1.14.1 Pre-Release 1.json        |    0
 .../mcserver/1.14.1 Pre-Release 2.json        |    0
 .../resources/manifests/mcserver/1.14.1.json  |    0
 .../mcserver/1.14.2 Pre-Release 1.json        |    0
 .../mcserver/1.14.2 Pre-Release 2.json        |    0
 .../mcserver/1.14.2 Pre-Release 3.json        |    0
 .../mcserver/1.14.2 Pre-Release 4.json        |    0
 .../resources/manifests/mcserver/1.14.2.json  |    0
 .../manifests/mcserver/1.14.3-pre1.json       |    0
 .../manifests/mcserver/1.14.3-pre2.json       |    0
 .../manifests/mcserver/1.14.3-pre3.json       |    0
 .../manifests/mcserver/1.14.3-pre4.json       |    0
 .../resources/manifests/mcserver/1.14.3.json  |    0
 .../manifests/mcserver/1.14.4-pre1.json       |    0
 .../manifests/mcserver/1.14.4-pre2.json       |    0
 .../manifests/mcserver/1.14.4-pre3.json       |    0
 .../manifests/mcserver/1.14.4-pre4.json       |    0
 .../manifests/mcserver/1.14.4-pre5.json       |    0
 .../manifests/mcserver/1.14.4-pre6.json       |    0
 .../manifests/mcserver/1.14.4-pre7.json       |    0
 .../resources/manifests/mcserver/1.14.4.json  |    0
 .../resources/manifests/mcserver/1.14.json    |    0
 .../manifests/mcserver/1.15-pre1.json         |    0
 .../manifests/mcserver/1.15-pre2.json         |    0
 .../manifests/mcserver/1.15-pre3.json         |    0
 .../manifests/mcserver/1.15-pre4.json         |    0
 .../manifests/mcserver/1.15-pre5.json         |    0
 .../manifests/mcserver/1.15-pre6.json         |    0
 .../manifests/mcserver/1.15-pre7.json         |    0
 .../manifests/mcserver/1.15.1-pre1.json       |    0
 .../resources/manifests/mcserver/1.15.1.json  |    0
 .../manifests/mcserver/1.15.2-pre1.json       |    0
 .../manifests/mcserver/1.15.2-pre2.json       |    0
 .../resources/manifests/mcserver/1.15.2.json  |    0
 .../resources/manifests/mcserver/1.15.json    |    0
 .../manifests/mcserver/1.16-pre1.json         |    0
 .../manifests/mcserver/1.16-pre2.json         |    0
 .../manifests/mcserver/1.16-pre3.json         |    0
 .../manifests/mcserver/1.16-pre4.json         |    0
 .../manifests/mcserver/1.16-pre5.json         |    0
 .../manifests/mcserver/1.16-pre6.json         |    0
 .../manifests/mcserver/1.16-pre7.json         |    0
 .../manifests/mcserver/1.16-pre8.json         |    0
 .../manifests/mcserver/1.16-rc1.json          |    0
 .../resources/manifests/mcserver/1.16.1.json  |    0
 .../manifests/mcserver/1.16.2-pre1.json       |    0
 .../manifests/mcserver/1.16.2-pre2.json       |    0
 .../manifests/mcserver/1.16.2-pre3.json       |    0
 .../manifests/mcserver/1.16.2-rc1.json        |    0
 .../manifests/mcserver/1.16.2-rc2.json        |    0
 .../resources/manifests/mcserver/1.16.2.json  |    0
 .../manifests/mcserver/1.16.3-rc1.json        |    0
 .../resources/manifests/mcserver/1.16.3.json  |    0
 .../manifests/mcserver/1.16.4-pre1.json       |    0
 .../manifests/mcserver/1.16.4-pre2.json       |    0
 .../manifests/mcserver/1.16.4-rc1.json        |    0
 .../resources/manifests/mcserver/1.16.4.json  |    0
 .../manifests/mcserver/1.16.5-rc1.json        |    0
 .../resources/manifests/mcserver/1.16.5.json  |    0
 .../resources/manifests/mcserver/1.16.json    |    0
 .../manifests/mcserver/1.17-pre1.json         |    0
 .../manifests/mcserver/1.17-pre2.json         |    0
 .../manifests/mcserver/1.17-pre3.json         |    0
 .../manifests/mcserver/1.17-pre4.json         |    0
 .../manifests/mcserver/1.17-pre5.json         |    0
 .../manifests/mcserver/1.17-rc1.json          |    0
 .../manifests/mcserver/1.17-rc2.json          |    0
 .../manifests/mcserver/1.17.1-pre1.json       |    0
 .../manifests/mcserver/1.17.1-pre2.json       |    0
 .../manifests/mcserver/1.17.1-pre3.json       |    0
 .../manifests/mcserver/1.17.1-rc1.json        |    0
 .../manifests/mcserver/1.17.1-rc2.json        |    0
 .../resources/manifests/mcserver/1.17.1.json  |    0
 .../resources/manifests/mcserver/1.17.json    |    0
 .../manifests/mcserver/1.18-pre1.json         |    0
 .../manifests/mcserver/1.18-pre2.json         |    0
 .../manifests/mcserver/1.18-pre3.json         |    0
 .../manifests/mcserver/1.18-pre4.json         |    0
 .../manifests/mcserver/1.18-pre5.json         |    0
 .../manifests/mcserver/1.18-pre6.json         |    0
 .../manifests/mcserver/1.18-pre7.json         |    0
 .../manifests/mcserver/1.18-pre8.json         |    0
 .../manifests/mcserver/1.18-rc1.json          |    0
 .../manifests/mcserver/1.18-rc2.json          |    0
 .../manifests/mcserver/1.18-rc3.json          |    0
 .../manifests/mcserver/1.18-rc4.json          |    0
 .../manifests/mcserver/1.18.1-pre1.json       |    0
 .../manifests/mcserver/1.18.1-rc1.json        |    0
 .../manifests/mcserver/1.18.1-rc2.json        |    0
 .../manifests/mcserver/1.18.1-rc3.json        |    0
 .../resources/manifests/mcserver/1.18.1.json  |    0
 .../manifests/mcserver/1.18.2-pre1.json       |    0
 .../manifests/mcserver/1.18.2-pre2.json       |    0
 .../manifests/mcserver/1.18.2-pre3.json       |    0
 .../manifests/mcserver/1.18.2-rc1.json        |    0
 .../resources/manifests/mcserver/1.18.2.json  |    0
 .../resources/manifests/mcserver/1.18.json    |    0
 .../manifests/mcserver/1.19-pre1.json         |    0
 .../manifests/mcserver/1.19-pre2.json         |    0
 .../manifests/mcserver/1.19-pre3.json         |    0
 .../manifests/mcserver/1.19-pre4.json         |    0
 .../manifests/mcserver/1.19-pre5.json         |    0
 .../manifests/mcserver/1.19-rc1.json          |    0
 .../manifests/mcserver/1.19-rc2.json          |    0
 .../manifests/mcserver/1.19.1-pre1.json       |    0
 .../manifests/mcserver/1.19.1-pre2.json       |    0
 .../manifests/mcserver/1.19.1-pre3.json       |    0
 .../manifests/mcserver/1.19.1-pre4.json       |    0
 .../manifests/mcserver/1.19.1-pre5.json       |    0
 .../manifests/mcserver/1.19.1-pre6.json       |    0
 .../manifests/mcserver/1.19.1-rc1.json        |    0
 .../manifests/mcserver/1.19.1-rc2.json        |    0
 .../manifests/mcserver/1.19.1-rc3.json        |    0
 .../resources/manifests/mcserver/1.19.1.json  |    0
 .../manifests/mcserver/1.19.2-rc1.json        |    0
 .../manifests/mcserver/1.19.2-rc2.json        |    0
 .../resources/manifests/mcserver/1.19.2.json  |    0
 .../manifests/mcserver/1.19.3-pre1.json       |    0
 .../manifests/mcserver/1.19.3-pre2.json       |    0
 .../manifests/mcserver/1.19.3-pre3.json       |    0
 .../manifests/mcserver/1.19.3-rc1.json        |    0
 .../manifests/mcserver/1.19.3-rc2.json        |    0
 .../manifests/mcserver/1.19.3-rc3.json        |    0
 .../resources/manifests/mcserver/1.19.3.json  |    0
 .../manifests/mcserver/1.19.4-pre1.json       |    0
 .../manifests/mcserver/1.19.4-pre2.json       |    0
 .../manifests/mcserver/1.19.4-pre3.json       |    0
 .../manifests/mcserver/1.19.4-pre4.json       |    0
 .../manifests/mcserver/1.19.4-rc1.json        |    0
 .../manifests/mcserver/1.19.4-rc2.json        |    0
 .../manifests/mcserver/1.19.4-rc3.json        |    0
 .../resources/manifests/mcserver/1.19.4.json  |    0
 .../resources/manifests/mcserver/1.19.json    |    0
 .../resources/manifests/mcserver/1.2.1.json   |    0
 .../resources/manifests/mcserver/1.2.2.json   |    0
 .../resources/manifests/mcserver/1.2.3.json   |    0
 .../resources/manifests/mcserver/1.2.4.json   |    0
 .../resources/manifests/mcserver/1.2.5.json   |    0
 .../manifests/mcserver/1.20-pre1.json         |    0
 .../manifests/mcserver/1.20-pre2.json         |    0
 .../manifests/mcserver/1.20-pre3.json         |    0
 .../manifests/mcserver/1.20-pre4.json         |    0
 .../manifests/mcserver/1.20-pre5.json         |    0
 .../manifests/mcserver/1.20-pre6.json         |    0
 .../manifests/mcserver/1.20-pre7.json         |    0
 .../manifests/mcserver/1.20-rc1.json          |    0
 .../manifests/mcserver/1.20.1-rc1.json        |    0
 .../resources/manifests/mcserver/1.20.1.json  |    0
 .../resources/manifests/mcserver/1.20.2.json  |    0
 .../resources/manifests/mcserver/1.20.3.json  |    0
 .../resources/manifests/mcserver/1.20.4.json  |    0
 .../resources/manifests/mcserver/1.20.6.json  |    1 +
 .../resources/manifests/mcserver/1.20.json    |    0
 .../resources/manifests/mcserver/1.3.1.json   |    0
 .../resources/manifests/mcserver/1.3.2.json   |    0
 .../resources/manifests/mcserver/1.3.json     |    0
 .../resources/manifests/mcserver/1.4.1.json   |    0
 .../resources/manifests/mcserver/1.4.2.json   |    0
 .../resources/manifests/mcserver/1.4.3.json   |    0
 .../resources/manifests/mcserver/1.4.4.json   |    0
 .../resources/manifests/mcserver/1.4.5.json   |    0
 .../resources/manifests/mcserver/1.4.6.json   |    0
 .../resources/manifests/mcserver/1.4.7.json   |    0
 .../resources/manifests/mcserver/1.4.json     |    0
 .../resources/manifests/mcserver/1.5.1.json   |    0
 .../resources/manifests/mcserver/1.5.2.json   |    0
 .../resources/manifests/mcserver/1.5.json     |    0
 .../resources/manifests/mcserver/1.6.1.json   |    0
 .../resources/manifests/mcserver/1.6.2.json   |    0
 .../resources/manifests/mcserver/1.6.3.json   |    0
 .../resources/manifests/mcserver/1.6.4.json   |    0
 .../resources/manifests/mcserver/1.6.json     |    0
 .../resources/manifests/mcserver/1.7.1.json   |    0
 .../manifests/mcserver/1.7.10-pre1.json       |    0
 .../manifests/mcserver/1.7.10-pre2.json       |    0
 .../manifests/mcserver/1.7.10-pre3.json       |    0
 .../manifests/mcserver/1.7.10-pre4.json       |    0
 .../resources/manifests/mcserver/1.7.10.json  |    0
 .../resources/manifests/mcserver/1.7.2.json   |    0
 .../resources/manifests/mcserver/1.7.3.json   |    0
 .../resources/manifests/mcserver/1.7.4.json   |    0
 .../resources/manifests/mcserver/1.7.5.json   |    0
 .../manifests/mcserver/1.7.6-pre1.json        |    0
 .../manifests/mcserver/1.7.6-pre2.json        |    0
 .../resources/manifests/mcserver/1.7.6.json   |    0
 .../resources/manifests/mcserver/1.7.7.json   |    0
 .../resources/manifests/mcserver/1.7.8.json   |    0
 .../resources/manifests/mcserver/1.7.9.json   |    0
 .../resources/manifests/mcserver/1.7.json     |    0
 .../manifests/mcserver/1.8-pre1.json          |    0
 .../manifests/mcserver/1.8-pre2.json          |    0
 .../manifests/mcserver/1.8-pre3.json          |    0
 .../manifests/mcserver/1.8.1-pre1.json        |    0
 .../manifests/mcserver/1.8.1-pre2.json        |    0
 .../manifests/mcserver/1.8.1-pre3.json        |    0
 .../manifests/mcserver/1.8.1-pre4.json        |    0
 .../manifests/mcserver/1.8.1-pre5.json        |    0
 .../resources/manifests/mcserver/1.8.1.json   |    0
 .../manifests/mcserver/1.8.2-pre1.json        |    0
 .../manifests/mcserver/1.8.2-pre2.json        |    0
 .../manifests/mcserver/1.8.2-pre3.json        |    0
 .../manifests/mcserver/1.8.2-pre4.json        |    0
 .../manifests/mcserver/1.8.2-pre5.json        |    0
 .../manifests/mcserver/1.8.2-pre6.json        |    0
 .../manifests/mcserver/1.8.2-pre7.json        |    0
 .../resources/manifests/mcserver/1.8.2.json   |    0
 .../resources/manifests/mcserver/1.8.3.json   |    0
 .../resources/manifests/mcserver/1.8.4.json   |    0
 .../resources/manifests/mcserver/1.8.5.json   |    0
 .../resources/manifests/mcserver/1.8.6.json   |    0
 .../resources/manifests/mcserver/1.8.7.json   |    0
 .../resources/manifests/mcserver/1.8.8.json   |    0
 .../resources/manifests/mcserver/1.8.9.json   |    0
 .../resources/manifests/mcserver/1.8.json     |    0
 .../manifests/mcserver/1.9-pre1.json          |    0
 .../manifests/mcserver/1.9-pre2.json          |    0
 .../manifests/mcserver/1.9-pre3.json          |    0
 .../manifests/mcserver/1.9-pre4.json          |    0
 .../manifests/mcserver/1.9.1-pre1.json        |    0
 .../manifests/mcserver/1.9.1-pre2.json        |    0
 .../manifests/mcserver/1.9.1-pre3.json        |    0
 .../resources/manifests/mcserver/1.9.1.json   |    0
 .../resources/manifests/mcserver/1.9.2.json   |    0
 .../manifests/mcserver/1.9.3-pre1.json        |    0
 .../manifests/mcserver/1.9.3-pre2.json        |    0
 .../manifests/mcserver/1.9.3-pre3.json        |    0
 .../resources/manifests/mcserver/1.9.3.json   |    0
 .../resources/manifests/mcserver/1.9.4.json   |    0
 .../resources/manifests/mcserver/1.9.json     |    0
 .../manifests/mcserver/1.RV-Pre1.json         |    0
 .../resources/manifests/mcserver/13w16a.json  |    0
 .../resources/manifests/mcserver/13w16b.json  |    0
 .../resources/manifests/mcserver/13w17a.json  |    0
 .../resources/manifests/mcserver/13w18a.json  |    0
 .../resources/manifests/mcserver/13w18b.json  |    0
 .../resources/manifests/mcserver/13w18c.json  |    0
 .../resources/manifests/mcserver/13w19a.json  |    0
 .../resources/manifests/mcserver/13w21a.json  |    0
 .../resources/manifests/mcserver/13w21b.json  |    0
 .../resources/manifests/mcserver/13w22a.json  |    0
 .../resources/manifests/mcserver/13w23a.json  |    0
 .../resources/manifests/mcserver/13w23b.json  |    0
 .../resources/manifests/mcserver/13w24a.json  |    0
 .../resources/manifests/mcserver/13w24b.json  |    0
 .../resources/manifests/mcserver/13w25a.json  |    0
 .../resources/manifests/mcserver/13w25b.json  |    0
 .../resources/manifests/mcserver/13w25c.json  |    0
 .../resources/manifests/mcserver/13w26a.json  |    0
 .../resources/manifests/mcserver/13w36a.json  |    0
 .../resources/manifests/mcserver/13w36b.json  |    0
 .../resources/manifests/mcserver/13w37a.json  |    0
 .../resources/manifests/mcserver/13w37b.json  |    0
 .../resources/manifests/mcserver/13w38a.json  |    0
 .../resources/manifests/mcserver/13w38b.json  |    0
 .../resources/manifests/mcserver/13w38c.json  |    0
 .../resources/manifests/mcserver/13w39a.json  |    0
 .../resources/manifests/mcserver/13w39b.json  |    0
 .../resources/manifests/mcserver/13w41a.json  |    0
 .../resources/manifests/mcserver/13w41b.json  |    0
 .../resources/manifests/mcserver/13w42a.json  |    0
 .../resources/manifests/mcserver/13w42b.json  |    0
 .../resources/manifests/mcserver/13w43a.json  |    0
 .../resources/manifests/mcserver/13w47a.json  |    0
 .../resources/manifests/mcserver/13w47b.json  |    0
 .../resources/manifests/mcserver/13w47c.json  |    0
 .../resources/manifests/mcserver/13w47d.json  |    0
 .../resources/manifests/mcserver/13w47e.json  |    0
 .../resources/manifests/mcserver/13w48a.json  |    0
 .../resources/manifests/mcserver/13w48b.json  |    0
 .../resources/manifests/mcserver/13w49a.json  |    0
 .../resources/manifests/mcserver/14w02a.json  |    0
 .../resources/manifests/mcserver/14w02b.json  |    0
 .../resources/manifests/mcserver/14w02c.json  |    0
 .../resources/manifests/mcserver/14w03a.json  |    0
 .../resources/manifests/mcserver/14w03b.json  |    0
 .../resources/manifests/mcserver/14w04a.json  |    0
 .../resources/manifests/mcserver/14w04b.json  |    0
 .../resources/manifests/mcserver/14w05a.json  |    0
 .../resources/manifests/mcserver/14w05b.json  |    0
 .../resources/manifests/mcserver/14w06a.json  |    0
 .../resources/manifests/mcserver/14w06b.json  |    0
 .../resources/manifests/mcserver/14w07a.json  |    0
 .../resources/manifests/mcserver/14w08a.json  |    0
 .../resources/manifests/mcserver/14w10a.json  |    0
 .../resources/manifests/mcserver/14w10b.json  |    0
 .../resources/manifests/mcserver/14w10c.json  |    0
 .../resources/manifests/mcserver/14w11a.json  |    0
 .../resources/manifests/mcserver/14w11b.json  |    0
 .../resources/manifests/mcserver/14w17a.json  |    0
 .../resources/manifests/mcserver/14w18a.json  |    0
 .../resources/manifests/mcserver/14w18b.json  |    0
 .../resources/manifests/mcserver/14w19a.json  |    0
 .../resources/manifests/mcserver/14w20a.json  |    0
 .../resources/manifests/mcserver/14w20b.json  |    0
 .../resources/manifests/mcserver/14w21a.json  |    0
 .../resources/manifests/mcserver/14w21b.json  |    0
 .../resources/manifests/mcserver/14w25a.json  |    0
 .../resources/manifests/mcserver/14w25b.json  |    0
 .../resources/manifests/mcserver/14w26a.json  |    0
 .../resources/manifests/mcserver/14w26b.json  |    0
 .../resources/manifests/mcserver/14w26c.json  |    0
 .../resources/manifests/mcserver/14w27a.json  |    0
 .../resources/manifests/mcserver/14w27b.json  |    0
 .../resources/manifests/mcserver/14w28a.json  |    0
 .../resources/manifests/mcserver/14w28b.json  |    0
 .../resources/manifests/mcserver/14w29a.json  |    0
 .../resources/manifests/mcserver/14w29b.json  |    0
 .../resources/manifests/mcserver/14w30a.json  |    0
 .../resources/manifests/mcserver/14w30b.json  |    0
 .../resources/manifests/mcserver/14w30c.json  |    0
 .../resources/manifests/mcserver/14w31a.json  |    0
 .../resources/manifests/mcserver/14w32a.json  |    0
 .../resources/manifests/mcserver/14w32b.json  |    0
 .../resources/manifests/mcserver/14w32c.json  |    0
 .../resources/manifests/mcserver/14w32d.json  |    0
 .../resources/manifests/mcserver/14w33a.json  |    0
 .../resources/manifests/mcserver/14w33b.json  |    0
 .../resources/manifests/mcserver/14w33c.json  |    0
 .../resources/manifests/mcserver/14w34a.json  |    0
 .../resources/manifests/mcserver/14w34b.json  |    0
 .../resources/manifests/mcserver/14w34c.json  |    0
 .../resources/manifests/mcserver/14w34d.json  |    0
 .../resources/manifests/mcserver/15w14a.json  |    0
 .../resources/manifests/mcserver/15w31a.json  |    0
 .../resources/manifests/mcserver/15w31b.json  |    0
 .../resources/manifests/mcserver/15w31c.json  |    0
 .../resources/manifests/mcserver/15w32a.json  |    0
 .../resources/manifests/mcserver/15w32b.json  |    0
 .../resources/manifests/mcserver/15w32c.json  |    0
 .../resources/manifests/mcserver/15w33a.json  |    0
 .../resources/manifests/mcserver/15w33b.json  |    0
 .../resources/manifests/mcserver/15w33c.json  |    0
 .../resources/manifests/mcserver/15w34a.json  |    0
 .../resources/manifests/mcserver/15w34b.json  |    0
 .../resources/manifests/mcserver/15w34c.json  |    0
 .../resources/manifests/mcserver/15w34d.json  |    0
 .../resources/manifests/mcserver/15w35a.json  |    0
 .../resources/manifests/mcserver/15w35b.json  |    0
 .../resources/manifests/mcserver/15w35c.json  |    0
 .../resources/manifests/mcserver/15w35d.json  |    0
 .../resources/manifests/mcserver/15w35e.json  |    0
 .../resources/manifests/mcserver/15w36a.json  |    0
 .../resources/manifests/mcserver/15w36b.json  |    0
 .../resources/manifests/mcserver/15w36c.json  |    0
 .../resources/manifests/mcserver/15w36d.json  |    0
 .../resources/manifests/mcserver/15w37a.json  |    0
 .../resources/manifests/mcserver/15w38a.json  |    0
 .../resources/manifests/mcserver/15w38b.json  |    0
 .../resources/manifests/mcserver/15w39a.json  |    0
 .../resources/manifests/mcserver/15w39b.json  |    0
 .../resources/manifests/mcserver/15w39c.json  |    0
 .../resources/manifests/mcserver/15w40a.json  |    0
 .../resources/manifests/mcserver/15w40b.json  |    0
 .../resources/manifests/mcserver/15w41a.json  |    0
 .../resources/manifests/mcserver/15w41b.json  |    0
 .../resources/manifests/mcserver/15w42a.json  |    0
 .../resources/manifests/mcserver/15w43a.json  |    0
 .../resources/manifests/mcserver/15w43b.json  |    0
 .../resources/manifests/mcserver/15w43c.json  |    0
 .../resources/manifests/mcserver/15w44a.json  |    0
 .../resources/manifests/mcserver/15w44b.json  |    0
 .../resources/manifests/mcserver/15w45a.json  |    0
 .../resources/manifests/mcserver/15w46a.json  |    0
 .../resources/manifests/mcserver/15w47a.json  |    0
 .../resources/manifests/mcserver/15w47b.json  |    0
 .../resources/manifests/mcserver/15w47c.json  |    0
 .../resources/manifests/mcserver/15w49a.json  |    0
 .../resources/manifests/mcserver/15w49b.json  |    0
 .../resources/manifests/mcserver/15w50a.json  |    0
 .../resources/manifests/mcserver/15w51a.json  |    0
 .../resources/manifests/mcserver/15w51b.json  |    0
 .../resources/manifests/mcserver/16w02a.json  |    0
 .../resources/manifests/mcserver/16w03a.json  |    0
 .../resources/manifests/mcserver/16w04a.json  |    0
 .../resources/manifests/mcserver/16w05a.json  |    0
 .../resources/manifests/mcserver/16w05b.json  |    0
 .../resources/manifests/mcserver/16w06a.json  |    0
 .../resources/manifests/mcserver/16w07a.json  |    0
 .../resources/manifests/mcserver/16w07b.json  |    0
 .../resources/manifests/mcserver/16w14a.json  |    0
 .../resources/manifests/mcserver/16w15a.json  |    0
 .../resources/manifests/mcserver/16w15b.json  |    0
 .../resources/manifests/mcserver/16w20a.json  |    0
 .../resources/manifests/mcserver/16w21a.json  |    0
 .../resources/manifests/mcserver/16w21b.json  |    0
 .../resources/manifests/mcserver/16w32a.json  |    0
 .../resources/manifests/mcserver/16w32b.json  |    0
 .../resources/manifests/mcserver/16w33a.json  |    0
 .../resources/manifests/mcserver/16w35a.json  |    0
 .../resources/manifests/mcserver/16w36a.json  |    0
 .../resources/manifests/mcserver/16w38a.json  |    0
 .../resources/manifests/mcserver/16w39a.json  |    0
 .../resources/manifests/mcserver/16w39b.json  |    0
 .../resources/manifests/mcserver/16w39c.json  |    0
 .../resources/manifests/mcserver/16w40a.json  |    0
 .../resources/manifests/mcserver/16w41a.json  |    0
 .../resources/manifests/mcserver/16w42a.json  |    0
 .../resources/manifests/mcserver/16w43a.json  |    0
 .../resources/manifests/mcserver/16w44a.json  |    0
 .../resources/manifests/mcserver/16w50a.json  |    0
 .../resources/manifests/mcserver/17w06a.json  |    0
 .../resources/manifests/mcserver/17w13a.json  |    0
 .../resources/manifests/mcserver/17w13b.json  |    0
 .../resources/manifests/mcserver/17w14a.json  |    0
 .../resources/manifests/mcserver/17w15a.json  |    0
 .../resources/manifests/mcserver/17w16a.json  |    0
 .../resources/manifests/mcserver/17w16b.json  |    0
 .../resources/manifests/mcserver/17w17a.json  |    0
 .../resources/manifests/mcserver/17w17b.json  |    0
 .../resources/manifests/mcserver/17w18a.json  |    0
 .../resources/manifests/mcserver/17w18b.json  |    0
 .../resources/manifests/mcserver/17w31a.json  |    0
 .../resources/manifests/mcserver/17w43a.json  |    0
 .../resources/manifests/mcserver/17w43b.json  |    0
 .../resources/manifests/mcserver/17w45a.json  |    0
 .../resources/manifests/mcserver/17w45b.json  |    0
 .../resources/manifests/mcserver/17w46a.json  |    0
 .../resources/manifests/mcserver/17w47a.json  |    0
 .../resources/manifests/mcserver/17w47b.json  |    0
 .../resources/manifests/mcserver/17w48a.json  |    0
 .../resources/manifests/mcserver/17w49a.json  |    0
 .../resources/manifests/mcserver/17w49b.json  |    0
 .../resources/manifests/mcserver/17w50a.json  |    0
 .../resources/manifests/mcserver/18w01a.json  |    0
 .../resources/manifests/mcserver/18w02a.json  |    0
 .../resources/manifests/mcserver/18w03a.json  |    0
 .../resources/manifests/mcserver/18w03b.json  |    0
 .../resources/manifests/mcserver/18w05a.json  |    0
 .../resources/manifests/mcserver/18w06a.json  |    0
 .../resources/manifests/mcserver/18w07a.json  |    0
 .../resources/manifests/mcserver/18w07b.json  |    0
 .../resources/manifests/mcserver/18w07c.json  |    0
 .../resources/manifests/mcserver/18w08a.json  |    0
 .../resources/manifests/mcserver/18w08b.json  |    0
 .../resources/manifests/mcserver/18w09a.json  |    0
 .../resources/manifests/mcserver/18w10a.json  |    0
 .../resources/manifests/mcserver/18w10b.json  |    0
 .../resources/manifests/mcserver/18w10c.json  |    0
 .../resources/manifests/mcserver/18w10d.json  |    0
 .../resources/manifests/mcserver/18w11a.json  |    0
 .../resources/manifests/mcserver/18w14a.json  |    0
 .../resources/manifests/mcserver/18w14b.json  |    0
 .../resources/manifests/mcserver/18w15a.json  |    0
 .../resources/manifests/mcserver/18w16a.json  |    0
 .../resources/manifests/mcserver/18w19a.json  |    0
 .../resources/manifests/mcserver/18w19b.json  |    0
 .../resources/manifests/mcserver/18w20a.json  |    0
 .../resources/manifests/mcserver/18w20b.json  |    0
 .../resources/manifests/mcserver/18w20c.json  |    0
 .../resources/manifests/mcserver/18w21a.json  |    0
 .../resources/manifests/mcserver/18w21b.json  |    0
 .../resources/manifests/mcserver/18w22a.json  |    0
 .../resources/manifests/mcserver/18w22b.json  |    0
 .../resources/manifests/mcserver/18w22c.json  |    0
 .../resources/manifests/mcserver/18w30a.json  |    0
 .../resources/manifests/mcserver/18w30b.json  |    0
 .../resources/manifests/mcserver/18w31a.json  |    0
 .../resources/manifests/mcserver/18w32a.json  |    0
 .../resources/manifests/mcserver/18w33a.json  |    0
 .../resources/manifests/mcserver/18w43a.json  |    0
 .../resources/manifests/mcserver/18w43b.json  |    0
 .../resources/manifests/mcserver/18w43c.json  |    0
 .../resources/manifests/mcserver/18w44a.json  |    0
 .../resources/manifests/mcserver/18w45a.json  |    0
 .../resources/manifests/mcserver/18w46a.json  |    0
 .../resources/manifests/mcserver/18w47a.json  |    0
 .../resources/manifests/mcserver/18w47b.json  |    0
 .../resources/manifests/mcserver/18w48a.json  |    0
 .../resources/manifests/mcserver/18w48b.json  |    0
 .../resources/manifests/mcserver/18w49a.json  |    0
 .../resources/manifests/mcserver/18w50a.json  |    0
 .../resources/manifests/mcserver/19w02a.json  |    0
 .../resources/manifests/mcserver/19w03a.json  |    0
 .../resources/manifests/mcserver/19w03b.json  |    0
 .../resources/manifests/mcserver/19w03c.json  |    0
 .../resources/manifests/mcserver/19w04a.json  |    0
 .../resources/manifests/mcserver/19w04b.json  |    0
 .../resources/manifests/mcserver/19w05a.json  |    0
 .../resources/manifests/mcserver/19w06a.json  |    0
 .../resources/manifests/mcserver/19w07a.json  |    0
 .../resources/manifests/mcserver/19w08a.json  |    0
 .../resources/manifests/mcserver/19w08b.json  |    0
 .../resources/manifests/mcserver/19w09a.json  |    0
 .../resources/manifests/mcserver/19w11a.json  |    0
 .../resources/manifests/mcserver/19w11b.json  |    0
 .../resources/manifests/mcserver/19w12a.json  |    0
 .../resources/manifests/mcserver/19w12b.json  |    0
 .../resources/manifests/mcserver/19w13a.json  |    0
 .../resources/manifests/mcserver/19w13b.json  |    0
 .../resources/manifests/mcserver/19w14a.json  |    0
 .../resources/manifests/mcserver/19w14b.json  |    0
 .../resources/manifests/mcserver/19w34a.json  |    0
 .../resources/manifests/mcserver/19w35a.json  |    0
 .../resources/manifests/mcserver/19w36a.json  |    0
 .../resources/manifests/mcserver/19w37a.json  |    0
 .../resources/manifests/mcserver/19w38a.json  |    0
 .../resources/manifests/mcserver/19w38b.json  |    0
 .../resources/manifests/mcserver/19w39a.json  |    0
 .../resources/manifests/mcserver/19w40a.json  |    0
 .../resources/manifests/mcserver/19w41a.json  |    0
 .../resources/manifests/mcserver/19w42a.json  |    0
 .../resources/manifests/mcserver/19w44a.json  |    0
 .../resources/manifests/mcserver/19w45a.json  |    0
 .../resources/manifests/mcserver/19w45b.json  |    0
 .../resources/manifests/mcserver/19w46a.json  |    0
 .../resources/manifests/mcserver/19w46b.json  |    0
 .../resources/manifests/mcserver/20w06a.json  |    0
 .../resources/manifests/mcserver/20w07a.json  |    0
 .../resources/manifests/mcserver/20w08a.json  |    0
 .../resources/manifests/mcserver/20w09a.json  |    0
 .../resources/manifests/mcserver/20w10a.json  |    0
 .../resources/manifests/mcserver/20w11a.json  |    0
 .../resources/manifests/mcserver/20w12a.json  |    0
 .../resources/manifests/mcserver/20w13a.json  |    0
 .../resources/manifests/mcserver/20w13b.json  |    0
 .../resources/manifests/mcserver/20w14a.json  |    0
 .../manifests/mcserver/20w14infinite.json     |    0
 .../resources/manifests/mcserver/20w15a.json  |    0
 .../resources/manifests/mcserver/20w16a.json  |    0
 .../resources/manifests/mcserver/20w17a.json  |    0
 .../resources/manifests/mcserver/20w18a.json  |    0
 .../resources/manifests/mcserver/20w19a.json  |    0
 .../resources/manifests/mcserver/20w20a.json  |    0
 .../resources/manifests/mcserver/20w20b.json  |    0
 .../resources/manifests/mcserver/20w21a.json  |    0
 .../resources/manifests/mcserver/20w22a.json  |    0
 .../resources/manifests/mcserver/20w27a.json  |    0
 .../resources/manifests/mcserver/20w28a.json  |    0
 .../resources/manifests/mcserver/20w29a.json  |    0
 .../resources/manifests/mcserver/20w30a.json  |    0
 .../resources/manifests/mcserver/20w45a.json  |    0
 .../resources/manifests/mcserver/20w46a.json  |    0
 .../resources/manifests/mcserver/20w48a.json  |    0
 .../resources/manifests/mcserver/20w49a.json  |    0
 .../resources/manifests/mcserver/20w51a.json  |    0
 .../resources/manifests/mcserver/21w03a.json  |    0
 .../resources/manifests/mcserver/21w05a.json  |    0
 .../resources/manifests/mcserver/21w05b.json  |    0
 .../resources/manifests/mcserver/21w06a.json  |    0
 .../resources/manifests/mcserver/21w07a.json  |    0
 .../resources/manifests/mcserver/21w08a.json  |    0
 .../resources/manifests/mcserver/21w08b.json  |    0
 .../resources/manifests/mcserver/21w10a.json  |    0
 .../resources/manifests/mcserver/21w11a.json  |    0
 .../resources/manifests/mcserver/21w13a.json  |    0
 .../resources/manifests/mcserver/21w14a.json  |    0
 .../resources/manifests/mcserver/21w15a.json  |    0
 .../resources/manifests/mcserver/21w16a.json  |    0
 .../resources/manifests/mcserver/21w17a.json  |    0
 .../resources/manifests/mcserver/21w18a.json  |    0
 .../resources/manifests/mcserver/21w19a.json  |    0
 .../resources/manifests/mcserver/21w20a.json  |    0
 .../resources/manifests/mcserver/21w37a.json  |    0
 .../resources/manifests/mcserver/21w38a.json  |    0
 .../resources/manifests/mcserver/21w39a.json  |    0
 .../resources/manifests/mcserver/21w40a.json  |    0
 .../resources/manifests/mcserver/21w41a.json  |    0
 .../resources/manifests/mcserver/21w42a.json  |    0
 .../resources/manifests/mcserver/21w43a.json  |    0
 .../resources/manifests/mcserver/21w44a.json  |    0
 .../resources/manifests/mcserver/22w03a.json  |    0
 .../resources/manifests/mcserver/22w05a.json  |    0
 .../resources/manifests/mcserver/22w06a.json  |    0
 .../resources/manifests/mcserver/22w07a.json  |    0
 .../resources/manifests/mcserver/22w11a.json  |    0
 .../resources/manifests/mcserver/22w12a.json  |    0
 .../resources/manifests/mcserver/22w13a.json  |    0
 .../mcserver/22w13oneblockatatime.json        |    0
 .../resources/manifests/mcserver/22w14a.json  |    0
 .../resources/manifests/mcserver/22w15a.json  |    0
 .../resources/manifests/mcserver/22w16a.json  |    0
 .../resources/manifests/mcserver/22w16b.json  |    0
 .../resources/manifests/mcserver/22w17a.json  |    0
 .../resources/manifests/mcserver/22w18a.json  |    0
 .../resources/manifests/mcserver/22w19a.json  |    0
 .../resources/manifests/mcserver/22w24a.json  |    0
 .../resources/manifests/mcserver/22w42a.json  |    0
 .../resources/manifests/mcserver/22w43a.json  |    0
 .../resources/manifests/mcserver/22w44a.json  |    0
 .../resources/manifests/mcserver/22w45a.json  |    0
 .../resources/manifests/mcserver/22w46a.json  |    0
 .../resources/manifests/mcserver/23w03a.json  |    0
 .../resources/manifests/mcserver/23w04a.json  |    0
 .../resources/manifests/mcserver/23w05a.json  |    0
 .../resources/manifests/mcserver/23w06a.json  |    0
 .../resources/manifests/mcserver/23w07a.json  |    0
 .../resources/manifests/mcserver/23w12a.json  |    0
 .../resources/manifests/mcserver/23w13a.json  |    0
 .../manifests/mcserver/23w13a_or_b.json       |    0
 .../resources/manifests/mcserver/23w14a.json  |    0
 .../resources/manifests/mcserver/23w16a.json  |    0
 .../resources/manifests/mcserver/23w17a.json  |    0
 .../resources/manifests/mcserver/23w18a.json  |    0
 .../mcserver/3D Shareware v1.34.json          |    0
 .../manifests/minecraft-manifest.json         |    1 +
 .../manifests/neoforge-manifest-new.xml       |  162 +-
 .../resources/manifests/neoforge-manifest.xml |   11 +-
 .../manifests/quilt-installer-manifest.xml    |    7 +-
 .../resources/manifests/quilt-manifest.xml    |   17 +-
 .../server_files/default_template.ps1         |    0
 .../server_files/default_template.sh          |    0
 .../resources/server_files/server-icon.png    |  Bin
 .../resources/server_files/server.properties  |    0
 .../griefed/resources/serverpackcreator.conf  |    0
 .../resources/log4j2.component.properties     |    3 +
 .../{jvmMain => main}/resources/log4j2.xml    |   20 -
 .../resources/serverpackcreator.properties    |    4 +-
 .../serverpackcreator/api/ApiPluginsTest.kt   |    4 +-
 .../api/ApiPropertiesTest.kt                  |   20 +-
 .../api/ConfigurationHandlerTest.kt           |  108 +-
 .../serverpackcreator/api/PackConfigTest.kt   |    8 +-
 .../api/ServerPackHandlerTest.kt              |   26 +-
 .../api/common/BooleanUtilitiesTest.kt        |    2 +-
 .../api/common/FileUtilitiesTest.kt           |   18 +-
 .../api/common/JarUtilitiesTest.kt            |    2 +-
 .../api/common/ListUtilitiesTest.kt           |    2 +-
 .../api/common/StringUtilitiesTest.kt         |    2 +-
 .../api/common/SystemUtilitiesTest.kt         |    2 +-
 .../api/common/WebUtilitiesTest.kt            |    2 +-
 .../api/modscanning/ModScannerTest.kt         |  229 +
 .../api/versionmeta/VersionMetaTest.kt        |    2 +-
 .../resources/application.properties          |    2 +-
 .../resources/curseforge_tests/modpack.zip    |  Bin
 .../resources/custom_template.ps1             |    0
 .../resources/custom_template.sh              |    0
 .../fabric_tests/config/testfile.txt          |    0
 .../fabric_tests/defaultconfigs/testfile.txt  |    0
 .../fabric_tests/mods/Ping-1.19-1.9.1.jar     |  Bin
 .../mods/Ping-Wheel-1.6.1-forge-1.20.1.jar    |  Bin
 .../resources/fabric_tests/mods/aaaaa.jar     |  Bin
 .../resources/fabric_tests/mods/bbbbb.jar     |  Bin
 .../resources/fabric_tests/mods/ccccc.jar     |  Bin
 .../resources/fabric_tests/mods/ddddd.jar     |  Bin
 .../resources/fabric_tests/mods/eeeee.jar     |  Bin
 .../resources/fabric_tests/mods/fffff.jar     |  Bin
 .../resources/fabric_tests/mods/ggggg.jar     |  Bin
 .../resources/fabric_tests/mods/hhhhh.jar     |  Bin
 .../resources/fabric_tests/mods/iiiii.jar     |  Bin
 .../resources/fabric_tests/mods/jjjjj.jar     |  Bin
 .../resources/fabric_tests/mods/kkkkk.jar     |  Bin
 .../resources/fabric_tests/mods/lllll.jar     |  Bin
 .../resources/fabric_tests/mods/mmmmm.jar     |  Bin
 .../resources/fabric_tests/mods/nnnnn.jar     |  Bin
 .../resources/fabric_tests/mods/ooooo.jar     |  Bin
 .../resources/fabric_tests/mods/ppppp.jar     |  Bin
 .../resources/fabric_tests/mods/qqqqq.jar     |  Bin
 .../resources/fabric_tests/mods/testmod.jar   |    0
 .../fabric_tests/scripts/testscript.zs        |    0
 .../fabric_tests/seeds/testjson.json          |    0
 .../forge_old/mods/Ping-1.19-1.9.1.jar        |  Bin
 .../mods/Ping-Wheel-1.6.1-forge-1.20.1.jar    |  Bin
 .../resources/forge_old/mods/aaaaa.jar        |  Bin
 .../resources/forge_old/mods/bbbbb.jar        |  Bin
 .../resources/forge_old/mods/ccccc.jar        |  Bin
 .../resources/forge_old/mods/ddddd.jar        |  Bin
 .../resources/forge_old/mods/eeeee.jar        |  Bin
 .../resources/forge_old/mods/fffff.jar        |  Bin
 .../resources/forge_old/mods/ggggg.jar        |  Bin
 .../resources/forge_old/mods/hhhhh.jar        |  Bin
 .../resources/forge_old/mods/iiiii.jar        |  Bin
 .../resources/forge_old/mods/jjjjj.jar        |  Bin
 .../resources/forge_old/mods/kkkkk.jar        |  Bin
 .../resources/forge_old/mods/lllll.jar        |  Bin
 .../resources/forge_old/mods/mmmmm.jar        |  Bin
 .../resources/forge_old/mods/nnnnn.jar        |  Bin
 .../resources/forge_old/mods/ooooo.jar        |  Bin
 .../resources/forge_old/mods/ppppp.jar        |  Bin
 .../resources/forge_old/mods/qqqqq.jar        |  Bin
 .../resources/forge_tests/config/testfile.txt |    0
 .../forge_tests/defaultconfigs/testfile.txt   |    0
 .../I_dont_want_to_be_included.file           |    0
 .../ICANSEEMYHOUSEFROMHEEEEEEEEEEEEERE        |    0
 .../I_dont_want_to_be_included.file           |    0
 .../dont_include_me_either.ogg                |    0
 .../I_dont_want_to_be_included.file           |    0
 .../forge_tests/mods/Ping-1.19-1.9.1.jar      |  Bin
 .../mods/Ping-Wheel-1.6.1-forge-1.20.1.jar    |  Bin
 .../resources/forge_tests/mods/aaaaa.jar      |  Bin
 .../resources/forge_tests/mods/bbbbb.jar      |  Bin
 .../resources/forge_tests/mods/ccccc.jar      |  Bin
 .../resources/forge_tests/mods/ddddd.jar      |  Bin
 .../resources/forge_tests/mods/fffff.jar      |  Bin
 .../resources/forge_tests/mods/ggggg.jar      |  Bin
 .../resources/forge_tests/mods/hhhhh.jar      |  Bin
 .../resources/forge_tests/mods/iiiii.jar      |  Bin
 .../resources/forge_tests/mods/jjjjj.jar      |  Bin
 .../resources/forge_tests/mods/kkkkk.jar      |  Bin
 .../resources/forge_tests/mods/lllll.jar      |  Bin
 .../resources/forge_tests/mods/nnnnn.jar      |  Bin
 .../resources/forge_tests/mods/ppppp.jar      |  Bin
 .../resources/forge_tests/mods/qqqqq.jar      |  Bin
 .../resources/forge_tests/mods/rrrrr.jar      |  Bin
 .../resources/forge_tests/mods/testmod.jar    |  Bin
 .../resources/forge_tests/mods/uuuuu.jar      |  Bin
 .../resources/forge_tests/mods/vvvvv.jar      |  Bin
 .../resources/forge_tests/mods/wwwww.jar      |  Bin
 .../resources/forge_tests/mods/xxxxx.jar      |  Bin
 .../resources/forge_tests/mods/yyyyy.jar      |  Bin
 .../resources/forge_tests/mods/zzzzz.jar      |  Bin
 .../forge_tests/scripts/testscript.zs         |    0
 .../resources/forge_tests/seeds/testjson.json |    0
 .../resources/forge_tests/test.txt            |    0
 .../resources/forge_tests/test2.txt           |    0
 .../legacyfabric_tests/config/testfile.txt    |    0
 .../defaultconfigs/testfile.txt               |    0
 .../mods/Ping-1.19-1.9.1.jar                  |  Bin
 .../mods/Ping-Wheel-1.6.1-forge-1.20.1.jar    |  Bin
 .../legacyfabric_tests/mods/aaaaa.jar         |  Bin
 .../legacyfabric_tests/mods/bbbbb.jar         |  Bin
 .../legacyfabric_tests/mods/ccccc.jar         |  Bin
 .../legacyfabric_tests/mods/ddddd.jar         |  Bin
 .../legacyfabric_tests/mods/eeeee.jar         |  Bin
 .../legacyfabric_tests/mods/fffff.jar         |  Bin
 .../legacyfabric_tests/mods/ggggg.jar         |  Bin
 .../legacyfabric_tests/mods/hhhhh.jar         |  Bin
 .../legacyfabric_tests/mods/iiiii.jar         |  Bin
 .../legacyfabric_tests/mods/jjjjj.jar         |  Bin
 .../legacyfabric_tests/mods/kkkkk.jar         |  Bin
 .../legacyfabric_tests/mods/lllll.jar         |  Bin
 .../legacyfabric_tests/mods/mmmmm.jar         |  Bin
 .../legacyfabric_tests/mods/nnnnn.jar         |  Bin
 .../legacyfabric_tests/mods/ooooo.jar         |  Bin
 .../legacyfabric_tests/mods/ppppp.jar         |  Bin
 .../legacyfabric_tests/mods/qqqqq.jar         |  Bin
 .../legacyfabric_tests/mods/testmod.jar       |    0
 .../legacyfabric_tests/scripts/testscript.zs  |    0
 .../legacyfabric_tests/seeds/testjson.json    |    0
 .../resources/log4j2.component.properties     |    3 +
 .../{jvmTest => test}/resources/log4j2.xml    |   20 -
 .../resources/mods/Ping-1.19-1.9.1.jar        |  Bin
 .../mods/Ping-Wheel-1.6.1-forge-1.20.1.jar    |  Bin
 .../resources/mods/aaaaa.jar                  |  Bin
 .../resources/mods/bbbbb.jar                  |    0
 .../resources/mods/ccccc.jar                  |    0
 .../resources/mods/ddddd.jar                  |    0
 .../resources/mods/eeeee.jar                  |    0
 .../resources/mods/fffff.jar                  |    0
 .../resources/mods/ggggg.jar                  |    0
 .../resources/mods/hhhhh.jar                  |    0
 .../resources/mods/iiiii.jar                  |    0
 .../resources/mods/jjjjj.jar                  |    0
 .../resources/mods/kkkkk.jar                  |    0
 .../resources/mods/lllll.jar                  |    0
 .../resources/mods/mmmmm.jar                  |    0
 .../resources/mods/nnnnn.jar                  |    0
 .../resources/mods/ooooo.jar                  |    0
 .../resources/mods/ppppp.jar                  |    0
 .../resources/mods/qqqqq.jar                  |    0
 .../neoforge_tests/config/testfile.txt        |    0
 .../defaultconfigs/testfile.txt               |    0
 .../I_dont_want_to_be_included.file           |    0
 .../ICANSEEMYHOUSEFROMHEEEEEEEEEEEEERE        |    0
 .../I_dont_want_to_be_included.file           |    0
 .../dont_include_me_either.ogg                |    0
 .../I_dont_want_to_be_included.file           |    0
 .../neoforge_tests/mods/Ping-1.19-1.9.1.jar   |  Bin
 .../mods/Ping-Wheel-1.6.1-forge-1.20.1.jar    |  Bin
 .../resources/neoforge_tests/mods/aaaaa.jar   |  Bin
 .../resources/neoforge_tests/mods/bbbbb.jar   |  Bin
 .../resources/neoforge_tests/mods/ccccc.jar   |  Bin
 .../resources/neoforge_tests/mods/ddddd.jar   |  Bin
 .../resources/neoforge_tests/mods/fffff.jar   |  Bin
 .../resources/neoforge_tests/mods/ggggg.jar   |  Bin
 .../resources/neoforge_tests/mods/hhhhh.jar   |  Bin
 .../resources/neoforge_tests/mods/iiiii.jar   |  Bin
 .../resources/neoforge_tests/mods/jjjjj.jar   |  Bin
 .../resources/neoforge_tests/mods/kkkkk.jar   |  Bin
 .../resources/neoforge_tests/mods/lllll.jar   |  Bin
 .../resources/neoforge_tests/mods/nnnnn.jar   |  Bin
 .../resources/neoforge_tests/mods/ppppp.jar   |  Bin
 .../resources/neoforge_tests/mods/qqqqq.jar   |  Bin
 .../resources/neoforge_tests/mods/rrrrr.jar   |  Bin
 .../resources/neoforge_tests/mods/testmod.jar |  Bin
 .../resources/neoforge_tests/mods/uuuuu.jar   |  Bin
 .../resources/neoforge_tests/mods/vvvvv.jar   |  Bin
 .../resources/neoforge_tests/mods/wwwww.jar   |  Bin
 .../resources/neoforge_tests/mods/xxxxx.jar   |  Bin
 .../resources/neoforge_tests/mods/yyyyy.jar   |  Bin
 .../resources/neoforge_tests/mods/zzzzz.jar   |  Bin
 .../neoforge_tests/scripts/testscript.zs      |    0
 .../neoforge_tests/seeds/testjson.json        |    0
 .../resources/neoforge_tests/test.txt         |    0
 .../resources/neoforge_tests/test2.txt        |    0
 .../resources/overrides/config/testfile.txt   |    0
 .../overrides/defaultconfigs/testfile.txt     |    0
 .../resources/overrides/scripts/testscript.zs |    0
 .../resources/overrides/seeds/seed1.json      |    0
 .../resources/overrides/seeds/testjson.json   |    0
 .../overrides/config/testfile.txt             |    0
 .../overrides/defaultconfigs/testfile.txt     |    0
 .../overridestest}/overrides/mods/aaaaa.jar   |    0
 .../overridestest}/overrides/mods/bbbbb.jar   |    0
 .../overridestest}/overrides/mods/ccccc.jar   |    0
 .../overridestest}/overrides/mods/fffff.jar   |    0
 .../overridestest}/overrides/mods/ggggg.jar   |    0
 .../overridestest}/overrides/mods/hhhhh.jar   |    0
 .../overridestest}/overrides/mods/iiiii.jar   |    0
 .../overridestest}/overrides/mods/jjjjj.jar   |    0
 .../overridestest}/overrides/mods/kkkkk.jar   |    0
 .../overridestest}/overrides/mods/lllll.jar   |    0
 .../overridestest}/overrides/mods/nnnnn.jar   |    0
 .../overridestest}/overrides/mods/ppppp.jar   |    0
 .../overridestest}/overrides/mods/qqqqq.jar   |    0
 .../overridestest}/overrides/mods/rrrrr.jar   |    0
 .../overridestest}/overrides/mods/testmod.jar |    0
 .../overridestest}/overrides/mods/uuuuu.jar   |    0
 .../overridestest}/overrides/mods/vvvvv.jar   |    0
 .../overridestest}/overrides/mods/wwwww.jar   |    0
 .../overridestest}/overrides/mods/xxxxx.jar   |    0
 .../overridestest}/overrides/mods/yyyyy.jar   |    0
 .../overridestest}/overrides/mods/zzzzz.jar   |    0
 .../overrides/scripts/testscript.zs           |    0
 .../overridestest/overrides/seeds/seed1.json  |    0
 .../overrides/seeds/testjson.json             |    0
 .../resources/quilt_tests/config/testfile.txt |    0
 .../quilt_tests/defaultconfigs/testfile.txt   |    0
 .../quilt_tests/mods/Ping-1.19-1.9.1.jar      |  Bin
 .../mods/Ping-Wheel-1.6.1-forge-1.20.1.jar    |  Bin
 .../resources/quilt_tests/mods/aaaaa.jar      |  Bin
 .../resources/quilt_tests/mods/bbbbb.jar      |  Bin
 .../resources/quilt_tests}/mods/testmod.jar   |    0
 .../quilt_tests/scripts/testscript.zs         |    0
 .../resources/quilt_tests/seeds/testjson.json |    0
 .../resources/serverpackcreator.db            |  Bin
 .../resources/serverpackcreator.properties    |    0
 .../resources/testresources/SCP_icon.png      |  Bin
 .../Survive_Create_Prosper_4_invalid.zip      |  Bin
 .../Survive_Create_Prosper_4_valid.zip        |  Bin
 .../curseforge/fabric_manifest.json           |    0
 .../curseforge/fabric_minecraftinstance.json  |    0
 .../curseforge/forge_manifest.json            |    0
 .../curseforge/forge_minecraftinstance.json   |    0
 .../gdlauncher/fabric_config.json             |    0
 .../gdlauncher/forge_config.json              |    0
 .../testresources/kreezxil.properties         |    0
 .../testresources/languages/de_de.properties  |    0
 .../testresources/languages/en_us.properties  |    0
 .../langMissing/lang_de_de.properties         |    0
 .../langMissing/lang_ef_gh.properties         |    0
 .../langMissing/lang_en_us.properties         |    0
 .../langMissing/lang_uk_ua.properties         |    0
 .../testresources/languages/uk_ua.properties  |    0
 .../modrinth/fabric_modrinth.index.json       |    0
 .../modrinth/forge_modrinth.index.json        |    0
 .../modrinth/quilt_modrinth.index.json        |    0
 .../multimc/all_the_mods_instance.cfg         |    0
 .../multimc/better_mc_instance.cfg            |    0
 .../multimc/fabric_mmc-pack.json              |    0
 .../testresources/multimc/forge_mmc-pack.json |    0
 .../testresources/multimc/quilt_mmc-pack.json |    0
 .../testresources/plugins/disabled.txt        |    0
 .../serverpackcreator-plugin-example-dev.jar  |  Bin
 .../properties/filters/contains.properties    |    0
 .../properties/filters/either.properties      |    0
 .../properties/filters/end.properties         |    0
 .../properties/filters/regex.properties       |    0
 .../properties/filters/start.properties       |    0
 .../server_pack}/mods/testmod.jar             |    0
 .../spcconfs/scriptSettings.conf              |    0
 .../spcconfs/serverpackcreator.conf           |    6 +-
 .../spcconfs/serverpackcreator_copydirs.conf  |    2 +-
 .../spcconfs/serverpackcreator_fabric.conf    |    6 +-
 .../spcconfs/serverpackcreator_javapath.conf  |    2 +-
 .../serverpackcreator_legacyfabric.conf       |    6 +-
 .../serverpackcreator_minecraftversion.conf   |    2 +-
 .../serverpackcreator_modloaderfalse.conf     |    2 +-
 .../serverpackcreator_modloaderversion.conf   |    2 +-
 .../spcconfs/serverpackcreator_neoforge.conf  |    6 +-
 .../spcconfs/serverpackcreator_quilt.conf     |    6 +-
 serverpackcreator-app/build.gradle.kts        |   11 +-
 .../app/ServerPackCreator.kt                  |   20 +-
 serverpackcreator-cli/build.gradle.kts        |    4 +-
 .../cli/ConfigurationEditor.kt                |    2 +-
 serverpackcreator-gui/build.gradle.kts        |   22 +-
 .../gui/components/ConvenientJTable.kt        |    2 +-
 .../gui/themes/ThemeManager.kt                |    6 +-
 .../gui/tips/TipOfTheDayManager.kt            |    7 +-
 .../gui/window/KeyComboManager.kt             |    2 +-
 .../gui/window/UpdateDialogs.kt               |    2 +-
 .../gui/window/configs/ConfigEditor.kt        |    4 +-
 .../gui/window/configs/TabbedConfigsTab.kt    |    2 +-
 .../configs/components/SuggestionProvider.kt  |    2 +-
 .../advanced/AdvancedSettingsPanel.kt         |    2 +-
 .../components/inclusions/InclusionsEditor.kt |    2 +-
 .../gui/window/control/ControlPanel.kt        |    2 +-
 .../window/menu/file/MainLogToHasteBinItem.kt |    2 +-
 .../gui/window/settings/GlobalSettings.kt     |   66 +-
 .../gui/window/settings/SettingsHandling.kt   |    1 -
 .../griefed/resources/gui/LICENSE-AGREEMENT   |  154 +-
 .../build.gradle.kts                          |   12 +-
 serverpackcreator-updater/build.gradle.kts    |    4 +-
 .../updater/MigrationManager.kt               |    2 +-
 .../updater/UpdateChecker.kt                  |    2 +-
 .../griefed/versionchecker/GitHubChecker.kt   |   13 +-
 .../griefed/versionchecker/GitLabChecker.kt   |   13 +-
 .../griefed/versionchecker/VersionChecker.kt  |   12 +-
 .../build.gradle.kts                          |   10 -
 .../package-lock.json                         | 2326 ++++---
 serverpackcreator-web-frontend/package.json   |   34 +-
 .../quasar.config.js                          |    1 +
 .../src/boot/apexcharts.js                    |    6 +
 .../src/boot/axios.ts                         |   25 +-
 .../src/components/ExampleComponent.vue       |   64 -
 .../src/components/HistoryTable.vue           |   30 +-
 .../src/components/ModpacksTable.vue          |   34 +-
 .../src/components/ServerPacksTable.vue       |   32 +-
 .../src/components/SubmitModPackForm.vue      |    4 +-
 .../components/charts/AreaTimeSeriesChart.vue |   83 +
 .../components/charts/DiskUsageBarGraph.vue   |  128 +
 .../charts/ModServerRunPieChart.vue           |   92 +
 .../src/pages/DownloadsPage.vue               |    6 +-
 .../src/pages/IndexPage.vue                   |  138 +-
 .../src/pages/ModPackDownload.vue             |   90 +-
 .../src/pages/ServerPackDownload.vue          |   96 +-
 serverpackcreator-web/build.gradle.kts        |   29 +-
 .../serverpackcreator/web/WebService.kt       |   12 +-
 .../serverpackcreator/web/data/ModPackView.kt |   39 -
 .../web/data/ServerPackView.kt                |   34 -
 .../web/{data => modpack}/ModPack.kt          |   16 +-
 ...packController.kt => ModPackController.kt} |   52 +-
 .../web/modpack/ModPackDownload.kt            |   18 +
 .../web/modpack/ModPackDownloadRepository.kt  |    9 +
 ...packRepository.kt => ModPackRepository.kt} |   11 +-
 .../{ModpackService.kt => ModPackService.kt}  |   50 +-
 .../{ModpackStatus.kt => ModPackStatus.kt}    |    2 +-
 .../web/{data => modpack}/ZipResponse.kt      |    6 +-
 .../web/scheduling/DatabaseCleanupSchedule.kt |   14 +-
 .../web/scheduling/FileCleanupSchedule.kt     |    6 +-
 .../web/scheduling/VersionRefreshSchedule.kt  |    2 +-
 .../web/{data => serverpack}/ServerPack.kt    |    3 +-
 .../web/serverpack/ServerPackController.kt    |   18 +-
 .../web/serverpack/ServerPackDownload.kt      |   18 +
 .../ServerPackDownloadRepository.kt           |    9 +
 .../web/serverpack/ServerPackRepository.kt    |   10 +-
 .../web/serverpack/ServerPackService.kt       |   18 +-
 .../customizing}/ClientMod.kt                 |    2 +-
 .../customizing/ClientModRepository.kt        |    3 +-
 .../customizing/ModRepository.kt              |    2 +-
 .../customizing}/RunConfiguration.kt          |    2 +-
 .../customizing}/StartArgument.kt             |    2 +-
 .../customizing/StartArgumentRepository.kt    |    3 +-
 .../customizing}/WhitelistedMod.kt            |    2 +-
 .../customizing/WhitelistedModRepository.kt   |    3 +-
 .../RunConfigurationController.kt             |    4 +-
 .../RunConfigurationRepository.kt             |   10 +-
 .../RunConfigurationService.kt                |   16 +-
 .../web/stats/StatsController.kt              |  107 +
 .../web/stats/creation/AmountPerDate.kt       |    3 +
 .../stats/creation/CreationStatsService.kt    |   50 +
 .../web/stats/disk/DiskStatsData.kt           |   10 +
 .../web/stats/disk/DiskStatsService.kt        |   59 +
 .../stats/downloads/DownloadStatsService.kt   |   93 +
 .../web/stats/packs/AmountStatsData.kt        |    3 +
 .../web/stats/packs/AmountStatsService.kt     |   19 +
 .../web/storage/FileSystemStorageService.kt   |    8 +-
 .../web/{data => storage}/SavedFile.kt        |    2 +-
 .../web/storage/StorageSystem.kt              |    6 +-
 .../web/{data => task}/ErrorEntry.kt          |    2 +-
 .../web/task/ErrorRepository.kt               |    1 -
 .../web/task/EventController.kt               |    5 +-
 .../web/task/EventService.kt                  |    8 +-
 .../web/{data => task}/QueueEvent.kt          |    8 +-
 .../web/task/QueueEventRepository.kt          |    5 +-
 .../serverpackcreator/web/task/TaskDetail.kt  |    6 +-
 .../web/task/TaskExecutionService.kt          |    2 +-
 .../web/task/TaskExecutionServiceImpl.kt      |   68 +-
 .../{data => versions}/VersionMetaResponse.kt |    2 +-
 .../web/{ => versions}/VersionsController.kt  |    3 +-
 .../src/main/resources/application.properties |    2 +-
 .../serverpackcreator/web/WebServiceTest.kt   |    2 +-
 .../src/test/resources/log4j2.xml             |   20 -
 spc.install4j                                 | 2313 +++++++
 1518 files changed, 38133 insertions(+), 8334 deletions(-)
 delete mode 100644 buildSrc/src/main/kotlin/serverpackcreator.kotlin-multiplatform-conventions.gradle.kts
 create mode 100644 img/banner_installer.png
 create mode 100644 img/banner_installer_fin.png
 create mode 100644 img/install.png
 create mode 100644 img/install_128x128.png
 create mode 100644 img/install_16x16.png
 create mode 100644 img/install_256x256.png
 create mode 100644 img/install_32x32.png
 create mode 100644 img/install_48x48.png
 create mode 100644 img/install_512x512.png
 create mode 100644 img/uninstall.png
 create mode 100644 img/uninstall_128x128.png
 create mode 100644 img/uninstall_16x16.png
 create mode 100644 img/uninstall_256x256.png
 create mode 100644 img/uninstall_32x32.png
 create mode 100644 img/uninstall_48x48.png
 create mode 100644 img/uninstall_512x512.png
 create mode 100644 licenses/LICENSE-AGREEMENT.txt
 create mode 100644 licenses/angus-activation-2.0.2.jar/META-INF/LICENSE.md
 create mode 100644 licenses/angus-activation-2.0.2.jar/META-INF/NOTICE.md
 create mode 100644 licenses/byte-buddy-1.14.12.jar/META-INF/LICENSE
 create mode 100644 licenses/byte-buddy-1.14.12.jar/META-INF/NOTICE
 create mode 100644 licenses/byte-buddy-1.14.16.jar/META-INF/LICENSE
 create mode 100644 licenses/byte-buddy-1.14.16.jar/META-INF/NOTICE
 create mode 100644 licenses/byte-buddy-1.14.9.jar/META-INF/LICENSE
 create mode 100644 licenses/byte-buddy-1.14.9.jar/META-INF/NOTICE
 create mode 100644 licenses/checker-qual-3.42.0.jar/META-INF/LICENSE.txt
 create mode 100644 licenses/classmate-1.7.0.jar/META-INF/LICENSE
 create mode 100644 licenses/classmate-1.7.0.jar/META-INF/NOTICE
 create mode 100644 licenses/commons-codec-1.16.1.jar/META-INF/LICENSE.txt
 create mode 100644 licenses/commons-codec-1.16.1.jar/META-INF/NOTICE.txt
 create mode 100644 licenses/commons-io-2.16.1.jar/META-INF/LICENSE.txt
 create mode 100644 licenses/commons-io-2.16.1.jar/META-INF/NOTICE.txt
 create mode 100644 licenses/commons-lang3-3.14.0.jar/META-INF/LICENSE.txt
 create mode 100644 licenses/commons-lang3-3.14.0.jar/META-INF/NOTICE.txt
 create mode 100644 licenses/flatlaf-3.4.jar/META-INF/LICENSE
 create mode 100644 licenses/flatlaf-extras-3.4.jar/META-INF/LICENSE
 create mode 100644 licenses/flatlaf-fonts-inter-4.0.jar/META-INF/LICENSE
 create mode 100644 licenses/flatlaf-fonts-inter-4.0.jar/com/formdev/flatlaf/fonts/inter/LICENSE.txt
 create mode 100644 licenses/flatlaf-fonts-jetbrains-mono-2.304.jar/META-INF/LICENSE
 create mode 100644 licenses/flatlaf-intellij-themes-3.4.jar/META-INF/LICENSE
 create mode 100644 licenses/jackson-annotations-2.15.4.jar/META-INF/LICENSE
 create mode 100644 licenses/jackson-annotations-2.15.4.jar/META-INF/NOTICE
 create mode 100644 licenses/jackson-annotations-2.17.0.jar/META-INF/LICENSE
 create mode 100644 licenses/jackson-annotations-2.17.0.jar/META-INF/NOTICE
 create mode 100644 licenses/jackson-annotations-2.17.1.jar/META-INF/LICENSE
 create mode 100644 licenses/jackson-annotations-2.17.1.jar/META-INF/NOTICE
 create mode 100644 licenses/jackson-core-2.15.4.jar/META-INF/LICENSE
 create mode 100644 licenses/jackson-core-2.15.4.jar/META-INF/NOTICE
 create mode 100644 licenses/jackson-core-2.17.0.jar/META-INF/LICENSE
 create mode 100644 licenses/jackson-core-2.17.0.jar/META-INF/NOTICE
 create mode 100644 licenses/jackson-core-2.17.1.jar/META-INF/LICENSE
 create mode 100644 licenses/jackson-core-2.17.1.jar/META-INF/NOTICE
 create mode 100644 licenses/jackson-databind-2.15.4.jar/META-INF/LICENSE
 create mode 100644 licenses/jackson-databind-2.15.4.jar/META-INF/NOTICE
 create mode 100644 licenses/jackson-databind-2.17.0.jar/META-INF/LICENSE
 create mode 100644 licenses/jackson-databind-2.17.0.jar/META-INF/NOTICE
 create mode 100644 licenses/jackson-databind-2.17.1.jar/META-INF/LICENSE
 create mode 100644 licenses/jackson-databind-2.17.1.jar/META-INF/NOTICE
 create mode 100644 licenses/jackson-datatype-jdk8-2.15.4.jar/META-INF/LICENSE
 create mode 100644 licenses/jackson-datatype-jdk8-2.15.4.jar/META-INF/NOTICE
 create mode 100644 licenses/jackson-datatype-jdk8-2.17.1.jar/META-INF/LICENSE
 create mode 100644 licenses/jackson-datatype-jdk8-2.17.1.jar/META-INF/NOTICE
 create mode 100644 licenses/jackson-datatype-jsr310-2.15.4.jar/META-INF/LICENSE
 create mode 100644 licenses/jackson-datatype-jsr310-2.15.4.jar/META-INF/NOTICE
 create mode 100644 licenses/jackson-datatype-jsr310-2.17.1.jar/META-INF/LICENSE
 create mode 100644 licenses/jackson-datatype-jsr310-2.17.1.jar/META-INF/NOTICE
 create mode 100644 licenses/jackson-module-kotlin-2.15.4.jar/META-INF/LICENSE
 create mode 100644 licenses/jackson-module-kotlin-2.15.4.jar/META-INF/NOTICE
 create mode 100644 licenses/jackson-module-kotlin-2.17.0.jar/META-INF/LICENSE
 create mode 100644 licenses/jackson-module-kotlin-2.17.0.jar/META-INF/NOTICE
 create mode 100644 licenses/jackson-module-kotlin-2.17.1.jar/META-INF/LICENSE
 create mode 100644 licenses/jackson-module-kotlin-2.17.1.jar/META-INF/NOTICE
 create mode 100644 licenses/jackson-module-parameter-names-2.15.4.jar/META-INF/LICENSE
 create mode 100644 licenses/jackson-module-parameter-names-2.15.4.jar/META-INF/NOTICE
 create mode 100644 licenses/jackson-module-parameter-names-2.17.1.jar/META-INF/LICENSE
 create mode 100644 licenses/jackson-module-parameter-names-2.17.1.jar/META-INF/NOTICE
 create mode 100644 licenses/jakarta.activation-api-2.1.3.jar/META-INF/LICENSE.md
 create mode 100644 licenses/jakarta.activation-api-2.1.3.jar/META-INF/NOTICE.md
 create mode 100644 licenses/jakarta.xml.bind-api-4.0.2.jar/META-INF/LICENSE.md
 create mode 100644 licenses/jakarta.xml.bind-api-4.0.2.jar/META-INF/NOTICE.md
 create mode 100644 licenses/java-semver-0.10.2.jar/META-INF/LICENSE
 create mode 100644 licenses/jaxb-core-4.0.5.jar/META-INF/LICENSE.md
 create mode 100644 licenses/jaxb-core-4.0.5.jar/META-INF/NOTICE.md
 create mode 100644 licenses/jaxb-runtime-4.0.5.jar/META-INF/LICENSE.md
 create mode 100644 licenses/jaxb-runtime-4.0.5.jar/META-INF/NOTICE.md
 create mode 100644 licenses/log4j-api-2.23.1.jar/META-INF/LICENSE
 create mode 100644 licenses/log4j-api-2.23.1.jar/META-INF/NOTICE
 create mode 100644 licenses/log4j-api-kotlin-1.4.0.jar/META-INF/LICENSE
 create mode 100644 licenses/log4j-api-kotlin-1.4.0.jar/META-INF/NOTICE
 create mode 100644 licenses/log4j-core-2.23.1.jar/META-INF/LICENSE
 create mode 100644 licenses/log4j-core-2.23.1.jar/META-INF/NOTICE
 create mode 100644 licenses/log4j-jul-2.23.1.jar/META-INF/LICENSE
 create mode 100644 licenses/log4j-jul-2.23.1.jar/META-INF/NOTICE
 create mode 100644 licenses/log4j-slf4j2-impl-2.23.1.jar/META-INF/LICENSE
 create mode 100644 licenses/log4j-slf4j2-impl-2.23.1.jar/META-INF/NOTICE
 create mode 100644 licenses/micrometer-commons-1.12.4.jar/META-INF/LICENSE
 create mode 100644 licenses/micrometer-commons-1.12.4.jar/META-INF/NOTICE
 create mode 100644 licenses/micrometer-commons-1.13.0.jar/META-INF/LICENSE
 create mode 100644 licenses/micrometer-commons-1.13.0.jar/META-INF/NOTICE
 create mode 100644 licenses/micrometer-observation-1.12.4.jar/META-INF/LICENSE
 create mode 100644 licenses/micrometer-observation-1.12.4.jar/META-INF/NOTICE
 create mode 100644 licenses/micrometer-observation-1.13.0.jar/META-INF/LICENSE
 create mode 100644 licenses/micrometer-observation-1.13.0.jar/META-INF/NOTICE
 create mode 100644 licenses/postgresql-42.6.2.jar/META-INF/LICENSE
 create mode 100644 licenses/postgresql-42.6.2.jar/META-INF/licenses/com.ongres.scram/client-2.1/LICENSE
 create mode 100644 licenses/postgresql-42.6.2.jar/META-INF/licenses/com.ongres.scram/common-2.1/LICENSE
 create mode 100644 licenses/postgresql-42.6.2.jar/META-INF/licenses/com.ongres.stringprep/saslprep-1.1/LICENSE
 create mode 100644 licenses/postgresql-42.6.2.jar/META-INF/licenses/com.ongres.stringprep/stringprep-1.1/LICENSE
 create mode 100644 licenses/postgresql-42.7.3.jar/META-INF/LICENSE
 create mode 100644 licenses/postgresql-42.7.3.jar/META-INF/licenses/com.ongres.scram/client-2.1/LICENSE
 create mode 100644 licenses/postgresql-42.7.3.jar/META-INF/licenses/com.ongres.scram/common-2.1/LICENSE
 create mode 100644 licenses/postgresql-42.7.3.jar/META-INF/licenses/com.ongres.stringprep/saslprep-1.1/LICENSE
 create mode 100644 licenses/postgresql-42.7.3.jar/META-INF/licenses/com.ongres.stringprep/stringprep-1.1/LICENSE
 create mode 100644 licenses/slf4j-api-2.0.12.jar/META-INF/LICENSE.txt
 create mode 100644 licenses/slf4j-api-2.0.13.jar/META-INF/LICENSE.txt
 create mode 100644 licenses/spring-aop-6.1.5.jar/META-INF/license.txt
 create mode 100644 licenses/spring-aop-6.1.5.jar/META-INF/notice.txt
 create mode 100644 licenses/spring-aop-6.1.8.jar/META-INF/license.txt
 create mode 100644 licenses/spring-aop-6.1.8.jar/META-INF/notice.txt
 create mode 100644 licenses/spring-aspects-6.1.5.jar/META-INF/license.txt
 create mode 100644 licenses/spring-aspects-6.1.5.jar/META-INF/notice.txt
 create mode 100644 licenses/spring-aspects-6.1.8.jar/META-INF/license.txt
 create mode 100644 licenses/spring-aspects-6.1.8.jar/META-INF/notice.txt
 create mode 100644 licenses/spring-beans-6.1.5.jar/META-INF/license.txt
 create mode 100644 licenses/spring-beans-6.1.5.jar/META-INF/notice.txt
 create mode 100644 licenses/spring-beans-6.1.8.jar/META-INF/license.txt
 create mode 100644 licenses/spring-beans-6.1.8.jar/META-INF/notice.txt
 create mode 100644 licenses/spring-boot-3.2.4.jar/META-INF/LICENSE.txt
 create mode 100644 licenses/spring-boot-3.2.4.jar/META-INF/NOTICE.txt
 create mode 100644 licenses/spring-boot-3.3.0.jar/META-INF/LICENSE.txt
 create mode 100644 licenses/spring-boot-3.3.0.jar/META-INF/NOTICE.txt
 create mode 100644 licenses/spring-boot-autoconfigure-3.2.4.jar/META-INF/LICENSE.txt
 create mode 100644 licenses/spring-boot-autoconfigure-3.2.4.jar/META-INF/NOTICE.txt
 create mode 100644 licenses/spring-boot-autoconfigure-3.3.0.jar/META-INF/LICENSE.txt
 create mode 100644 licenses/spring-boot-autoconfigure-3.3.0.jar/META-INF/NOTICE.txt
 create mode 100644 licenses/spring-boot-devtools-3.2.4.jar/META-INF/LICENSE.txt
 create mode 100644 licenses/spring-boot-devtools-3.2.4.jar/META-INF/NOTICE.txt
 create mode 100644 licenses/spring-boot-devtools-3.2.5.jar/META-INF/LICENSE.txt
 create mode 100644 licenses/spring-boot-devtools-3.2.5.jar/META-INF/NOTICE.txt
 create mode 100644 licenses/spring-boot-devtools-3.3.0.jar/META-INF/LICENSE.txt
 create mode 100644 licenses/spring-boot-devtools-3.3.0.jar/META-INF/NOTICE.txt
 create mode 100644 licenses/spring-boot-starter-3.2.4.jar/META-INF/LICENSE.txt
 create mode 100644 licenses/spring-boot-starter-3.2.4.jar/META-INF/NOTICE.txt
 create mode 100644 licenses/spring-boot-starter-3.3.0.jar/META-INF/LICENSE.txt
 create mode 100644 licenses/spring-boot-starter-3.3.0.jar/META-INF/NOTICE.txt
 create mode 100644 licenses/spring-boot-starter-aop-3.2.4.jar/META-INF/LICENSE.txt
 create mode 100644 licenses/spring-boot-starter-aop-3.2.4.jar/META-INF/NOTICE.txt
 create mode 100644 licenses/spring-boot-starter-aop-3.3.0.jar/META-INF/LICENSE.txt
 create mode 100644 licenses/spring-boot-starter-aop-3.3.0.jar/META-INF/NOTICE.txt
 create mode 100644 licenses/spring-boot-starter-data-jpa-3.2.4.jar/META-INF/LICENSE.txt
 create mode 100644 licenses/spring-boot-starter-data-jpa-3.2.4.jar/META-INF/NOTICE.txt
 create mode 100644 licenses/spring-boot-starter-data-jpa-3.2.5.jar/META-INF/LICENSE.txt
 create mode 100644 licenses/spring-boot-starter-data-jpa-3.2.5.jar/META-INF/NOTICE.txt
 create mode 100644 licenses/spring-boot-starter-data-jpa-3.3.0.jar/META-INF/LICENSE.txt
 create mode 100644 licenses/spring-boot-starter-data-jpa-3.3.0.jar/META-INF/NOTICE.txt
 create mode 100644 licenses/spring-boot-starter-jdbc-3.2.4.jar/META-INF/LICENSE.txt
 create mode 100644 licenses/spring-boot-starter-jdbc-3.2.4.jar/META-INF/NOTICE.txt
 create mode 100644 licenses/spring-boot-starter-jdbc-3.3.0.jar/META-INF/LICENSE.txt
 create mode 100644 licenses/spring-boot-starter-jdbc-3.3.0.jar/META-INF/NOTICE.txt
 create mode 100644 licenses/spring-boot-starter-json-3.2.4.jar/META-INF/LICENSE.txt
 create mode 100644 licenses/spring-boot-starter-json-3.2.4.jar/META-INF/NOTICE.txt
 create mode 100644 licenses/spring-boot-starter-json-3.3.0.jar/META-INF/LICENSE.txt
 create mode 100644 licenses/spring-boot-starter-json-3.3.0.jar/META-INF/NOTICE.txt
 create mode 100644 licenses/spring-boot-starter-log4j2-3.2.4.jar/META-INF/LICENSE.txt
 create mode 100644 licenses/spring-boot-starter-log4j2-3.2.4.jar/META-INF/NOTICE.txt
 create mode 100644 licenses/spring-boot-starter-log4j2-3.2.6.jar/META-INF/LICENSE.txt
 create mode 100644 licenses/spring-boot-starter-log4j2-3.2.6.jar/META-INF/NOTICE.txt
 create mode 100644 licenses/spring-boot-starter-log4j2-3.3.0.jar/META-INF/LICENSE.txt
 create mode 100644 licenses/spring-boot-starter-log4j2-3.3.0.jar/META-INF/NOTICE.txt
 create mode 100644 licenses/spring-boot-starter-tomcat-3.2.4.jar/META-INF/LICENSE.txt
 create mode 100644 licenses/spring-boot-starter-tomcat-3.2.4.jar/META-INF/NOTICE.txt
 create mode 100644 licenses/spring-boot-starter-tomcat-3.3.0.jar/META-INF/LICENSE.txt
 create mode 100644 licenses/spring-boot-starter-tomcat-3.3.0.jar/META-INF/NOTICE.txt
 create mode 100644 licenses/spring-boot-starter-web-3.2.4.jar/META-INF/LICENSE.txt
 create mode 100644 licenses/spring-boot-starter-web-3.2.4.jar/META-INF/NOTICE.txt
 create mode 100644 licenses/spring-boot-starter-web-3.2.6.jar/META-INF/LICENSE.txt
 create mode 100644 licenses/spring-boot-starter-web-3.2.6.jar/META-INF/NOTICE.txt
 create mode 100644 licenses/spring-boot-starter-web-3.3.0.jar/META-INF/LICENSE.txt
 create mode 100644 licenses/spring-boot-starter-web-3.3.0.jar/META-INF/NOTICE.txt
 create mode 100644 licenses/spring-context-6.1.5.jar/META-INF/license.txt
 create mode 100644 licenses/spring-context-6.1.5.jar/META-INF/notice.txt
 create mode 100644 licenses/spring-context-6.1.8.jar/META-INF/license.txt
 create mode 100644 licenses/spring-context-6.1.8.jar/META-INF/notice.txt
 create mode 100644 licenses/spring-core-6.1.5.jar/META-INF/license.txt
 create mode 100644 licenses/spring-core-6.1.5.jar/META-INF/notice.txt
 create mode 100644 licenses/spring-core-6.1.8.jar/META-INF/license.txt
 create mode 100644 licenses/spring-core-6.1.8.jar/META-INF/notice.txt
 create mode 100644 licenses/spring-data-commons-3.2.4.jar/license.txt
 create mode 100644 licenses/spring-data-commons-3.2.4.jar/notice.txt
 create mode 100644 licenses/spring-data-commons-3.3.0.jar/license.txt
 create mode 100644 licenses/spring-data-commons-3.3.0.jar/notice.txt
 create mode 100644 licenses/spring-data-jpa-3.2.4.jar/license.txt
 create mode 100644 licenses/spring-data-jpa-3.2.4.jar/notice.txt
 create mode 100644 licenses/spring-data-jpa-3.2.4.jar/readme.txt
 create mode 100644 licenses/spring-data-jpa-3.3.0.jar/license.txt
 create mode 100644 licenses/spring-data-jpa-3.3.0.jar/notice.txt
 create mode 100644 licenses/spring-data-jpa-3.3.0.jar/readme.txt
 create mode 100644 licenses/spring-expression-6.1.5.jar/META-INF/license.txt
 create mode 100644 licenses/spring-expression-6.1.5.jar/META-INF/notice.txt
 create mode 100644 licenses/spring-expression-6.1.8.jar/META-INF/license.txt
 create mode 100644 licenses/spring-expression-6.1.8.jar/META-INF/notice.txt
 create mode 100644 licenses/spring-jcl-6.1.5.jar/META-INF/license.txt
 create mode 100644 licenses/spring-jcl-6.1.5.jar/META-INF/notice.txt
 create mode 100644 licenses/spring-jcl-6.1.8.jar/META-INF/license.txt
 create mode 100644 licenses/spring-jcl-6.1.8.jar/META-INF/notice.txt
 create mode 100644 licenses/spring-jdbc-6.1.5.jar/META-INF/license.txt
 create mode 100644 licenses/spring-jdbc-6.1.5.jar/META-INF/notice.txt
 create mode 100644 licenses/spring-jdbc-6.1.8.jar/META-INF/license.txt
 create mode 100644 licenses/spring-jdbc-6.1.8.jar/META-INF/notice.txt
 create mode 100644 licenses/spring-orm-6.1.5.jar/META-INF/license.txt
 create mode 100644 licenses/spring-orm-6.1.5.jar/META-INF/notice.txt
 create mode 100644 licenses/spring-orm-6.1.8.jar/META-INF/license.txt
 create mode 100644 licenses/spring-orm-6.1.8.jar/META-INF/notice.txt
 create mode 100644 licenses/spring-tx-6.1.5.jar/META-INF/license.txt
 create mode 100644 licenses/spring-tx-6.1.5.jar/META-INF/notice.txt
 create mode 100644 licenses/spring-tx-6.1.8.jar/META-INF/license.txt
 create mode 100644 licenses/spring-tx-6.1.8.jar/META-INF/notice.txt
 create mode 100644 licenses/spring-web-6.1.5.jar/META-INF/license.txt
 create mode 100644 licenses/spring-web-6.1.5.jar/META-INF/notice.txt
 create mode 100644 licenses/spring-web-6.1.8.jar/META-INF/license.txt
 create mode 100644 licenses/spring-web-6.1.8.jar/META-INF/notice.txt
 create mode 100644 licenses/spring-webmvc-6.1.5.jar/META-INF/license.txt
 create mode 100644 licenses/spring-webmvc-6.1.5.jar/META-INF/notice.txt
 create mode 100644 licenses/spring-webmvc-6.1.8.jar/META-INF/license.txt
 create mode 100644 licenses/spring-webmvc-6.1.8.jar/META-INF/notice.txt
 create mode 100644 licenses/tomcat-embed-core-10.1.19.jar/META-INF/LICENSE
 create mode 100644 licenses/tomcat-embed-core-10.1.19.jar/META-INF/NOTICE
 create mode 100644 licenses/tomcat-embed-core-10.1.24.jar/META-INF/LICENSE
 create mode 100644 licenses/tomcat-embed-core-10.1.24.jar/META-INF/NOTICE
 create mode 100644 licenses/tomcat-embed-el-10.1.19.jar/META-INF/LICENSE
 create mode 100644 licenses/tomcat-embed-el-10.1.19.jar/META-INF/NOTICE
 create mode 100644 licenses/tomcat-embed-el-10.1.24.jar/META-INF/LICENSE
 create mode 100644 licenses/tomcat-embed-el-10.1.24.jar/META-INF/NOTICE
 create mode 100644 licenses/tomcat-embed-websocket-10.1.19.jar/META-INF/LICENSE
 create mode 100644 licenses/tomcat-embed-websocket-10.1.19.jar/META-INF/NOTICE
 create mode 100644 licenses/tomcat-embed-websocket-10.1.24.jar/META-INF/LICENSE
 create mode 100644 licenses/tomcat-embed-websocket-10.1.24.jar/META-INF/NOTICE
 create mode 100644 licenses/txw2-4.0.5.jar/META-INF/LICENSE.md
 create mode 100644 licenses/txw2-4.0.5.jar/META-INF/NOTICE.md
 delete mode 100644 serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/Api.kt
 delete mode 100644 serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/ApiPlugins.kt
 delete mode 100644 serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/ApiProperties.kt
 delete mode 100644 serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/ApiWrapper.kt
 delete mode 100644 serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/Configuration.kt
 delete mode 100644 serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/ConfigurationHandler.kt
 delete mode 100644 serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/InclusionSpecification.kt
 delete mode 100644 serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/Pack.kt
 delete mode 100644 serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/PackConfig.kt
 delete mode 100644 serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/ServerPack.kt
 delete mode 100644 serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/ServerPackFile.kt
 delete mode 100644 serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/ServerPackHandler.kt
 delete mode 100644 serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/modscanning/FabricScanner.kt
 delete mode 100644 serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/modscanning/ForgeAnnotationScanner.kt
 delete mode 100644 serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/modscanning/ForgeTomlScanner.kt
 delete mode 100644 serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/modscanning/ModScanner.kt
 delete mode 100644 serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/modscanning/NeoForgeTomlScanner.kt
 delete mode 100644 serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/modscanning/QuiltScanner.kt
 delete mode 100644 serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/plugins/ExtensionPoint.kt
 delete mode 100644 serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/plugins/swinggui/ExtensionConfigPanel.kt
 delete mode 100644 serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/plugins/swinggui/ExtensionTab.kt
 delete mode 100644 serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/plugins/swinggui/TabExtension.kt
 delete mode 100644 serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/utilities/CommentedConfig.kt
 delete mode 100644 serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/utilities/File.kt
 delete mode 100644 serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/utilities/Icon.kt
 delete mode 100644 serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/utilities/Optional.kt
 delete mode 100644 serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/utilities/TomlParser.kt
 delete mode 100644 serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/utilities/URL.kt
 delete mode 100644 serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/utilities/common/FileUtilities.kt
 delete mode 100644 serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/utilities/common/FileUtilitiesExtensions.kt
 delete mode 100644 serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/utilities/common/JarUtilities.kt
 delete mode 100644 serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/utilities/common/JsonUtilities.kt
 delete mode 100644 serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/utilities/common/SystemUtilities.kt
 delete mode 100644 serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/utilities/common/Utilities.kt
 delete mode 100644 serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/utilities/common/WebUtilities.kt
 delete mode 100644 serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/utilities/common/XmlUtilities.kt
 delete mode 100644 serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/versionmeta/VersionMeta.kt
 delete mode 100644 serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/versionmeta/fabric/FabricMeta.kt
 delete mode 100644 serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/versionmeta/forge/ForgeMeta.kt
 delete mode 100644 serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/versionmeta/legacyfabric/LegacyFabricMeta.kt
 delete mode 100644 serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/versionmeta/minecraft/MinecraftMeta.kt
 delete mode 100644 serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/versionmeta/neoforge/NeoForgeMeta.kt
 delete mode 100644 serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/versionmeta/quilt/QuiltMeta.kt
 delete mode 100644 serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/LoggingConfig.kt
 delete mode 100644 serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/modscanning/NeoForgeTomlScanner.kt
 delete mode 100644 serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/plugins/TypeAliases.kt
 delete mode 100644 serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/utilities/TypeAliases.kt
 delete mode 100644 serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/minecraft-manifest.json
 delete mode 100644 serverpackcreator-api/src/jvmMain/resources/log4j2.component.properties
 delete mode 100644 serverpackcreator-api/src/jvmTest/kotlin/de/griefed/serverpackcreator/api/modscanning/ModScannerTest.kt
 delete mode 100644 serverpackcreator-api/src/jvmTest/resources/fabric_tests/server_pack.zip
 delete mode 100644 serverpackcreator-api/src/jvmTest/resources/forge_tests/server_pack.zip
 delete mode 100644 serverpackcreator-api/src/jvmTest/resources/legacyfabric_tests/server_pack.zip
 delete mode 100644 serverpackcreator-api/src/jvmTest/resources/log4j2.component.properties
 delete mode 100644 serverpackcreator-api/src/jvmTest/resources/neoforge_tests/server_pack.zip
 delete mode 100644 serverpackcreator-api/src/jvmTest/resources/overridestest/overrides/mods/aaaaa.jar
 delete mode 100644 serverpackcreator-api/src/jvmTest/resources/overridestest/overrides/mods/bbbbb.jar
 delete mode 100644 serverpackcreator-api/src/jvmTest/resources/overridestest/overrides/mods/ccccc.jar
 delete mode 100644 serverpackcreator-api/src/jvmTest/resources/overridestest/overrides/mods/fffff.jar
 delete mode 100644 serverpackcreator-api/src/jvmTest/resources/overridestest/overrides/mods/ggggg.jar
 delete mode 100644 serverpackcreator-api/src/jvmTest/resources/overridestest/overrides/mods/hhhhh.jar
 delete mode 100644 serverpackcreator-api/src/jvmTest/resources/overridestest/overrides/mods/iiiii.jar
 delete mode 100644 serverpackcreator-api/src/jvmTest/resources/overridestest/overrides/mods/jjjjj.jar
 delete mode 100644 serverpackcreator-api/src/jvmTest/resources/overridestest/overrides/mods/kkkkk.jar
 delete mode 100644 serverpackcreator-api/src/jvmTest/resources/overridestest/overrides/mods/lllll.jar
 delete mode 100644 serverpackcreator-api/src/jvmTest/resources/overridestest/overrides/mods/nnnnn.jar
 delete mode 100644 serverpackcreator-api/src/jvmTest/resources/overridestest/overrides/mods/ppppp.jar
 delete mode 100644 serverpackcreator-api/src/jvmTest/resources/overridestest/overrides/mods/qqqqq.jar
 delete mode 100644 serverpackcreator-api/src/jvmTest/resources/overridestest/overrides/mods/rrrrr.jar
 delete mode 100644 serverpackcreator-api/src/jvmTest/resources/overridestest/overrides/mods/uuuuu.jar
 delete mode 100644 serverpackcreator-api/src/jvmTest/resources/overridestest/overrides/mods/vvvvv.jar
 delete mode 100644 serverpackcreator-api/src/jvmTest/resources/overridestest/overrides/mods/wwwww.jar
 delete mode 100644 serverpackcreator-api/src/jvmTest/resources/overridestest/overrides/mods/xxxxx.jar
 delete mode 100644 serverpackcreator-api/src/jvmTest/resources/overridestest/overrides/mods/yyyyy.jar
 delete mode 100644 serverpackcreator-api/src/jvmTest/resources/overridestest/overrides/mods/zzzzz.jar
 delete mode 100644 serverpackcreator-api/src/jvmTest/resources/quilt_tests/server_pack.zip
 delete mode 100644 serverpackcreator-api/src/jvmTest/resources/testresources/server_pack.zip
 delete mode 100644 serverpackcreator-api/src/jvmTest/resources/testresources/server_pack/mods/testmod.jar
 rename serverpackcreator-api/src/{commonMain => main}/i18n/Translations_en_GB.properties (99%)
 rename serverpackcreator-api/src/{commonMain => main}/i18n/Translations_pt_BR.properties (99%)
 rename serverpackcreator-api/src/{jvmMain => main}/kotlin/de/griefed/serverpackcreator/api/ApiPlugins.kt (97%)
 rename serverpackcreator-api/src/{jvmMain => main}/kotlin/de/griefed/serverpackcreator/api/ApiProperties.kt (91%)
 rename serverpackcreator-api/src/{jvmMain => main}/kotlin/de/griefed/serverpackcreator/api/ApiWrapper.kt (77%)
 rename serverpackcreator-api/src/{commonMain => main}/kotlin/de/griefed/serverpackcreator/api/ConfigCheck.kt (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/kotlin/de/griefed/serverpackcreator/api/ConfigurationHandler.kt (63%)
 rename serverpackcreator-api/src/{commonMain => main}/kotlin/de/griefed/serverpackcreator/api/ExclusionFilter.kt (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/kotlin/de/griefed/serverpackcreator/api/InclusionSpecification.kt (84%)
 rename {serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/modpack => serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api}/ModpackSource.kt (91%)
 rename serverpackcreator-api/src/{jvmMain => main}/kotlin/de/griefed/serverpackcreator/api/PackConfig.kt (82%)
 rename serverpackcreator-api/src/{jvmMain => main}/kotlin/de/griefed/serverpackcreator/api/ServerPackFile.kt (97%)
 rename serverpackcreator-api/src/{jvmMain => main}/kotlin/de/griefed/serverpackcreator/api/ServerPackHandler.kt (61%)
 rename serverpackcreator-api/src/{jvmMain => main}/kotlin/de/griefed/serverpackcreator/api/modscanning/FabricScanner.kt (97%)
 rename serverpackcreator-api/src/{jvmMain => main}/kotlin/de/griefed/serverpackcreator/api/modscanning/ForgeAnnotationScanner.kt (98%)
 rename serverpackcreator-api/src/{jvmMain => main}/kotlin/de/griefed/serverpackcreator/api/modscanning/ForgeTomlScanner.kt (97%)
 rename serverpackcreator-api/src/{jvmMain => main}/kotlin/de/griefed/serverpackcreator/api/modscanning/JsonBasedScanner.kt (98%)
 rename serverpackcreator-api/src/{jvmMain => main}/kotlin/de/griefed/serverpackcreator/api/modscanning/ModScanner.kt (82%)
 create mode 100644 serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/modscanning/NeoForgeTomlScanner.kt
 rename serverpackcreator-api/src/{jvmMain => main}/kotlin/de/griefed/serverpackcreator/api/modscanning/QuiltScanner.kt (88%)
 rename serverpackcreator-api/src/{commonMain => main}/kotlin/de/griefed/serverpackcreator/api/modscanning/Scanner.kt (100%)
 rename serverpackcreator-api/src/{commonMain => main}/kotlin/de/griefed/serverpackcreator/api/modscanning/ScanningException.kt (100%)
 rename serverpackcreator-api/src/{commonMain => main}/kotlin/de/griefed/serverpackcreator/api/plugins/BaseInformation.kt (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/kotlin/de/griefed/serverpackcreator/api/plugins/CustomPluginFactory.kt (96%)
 rename serverpackcreator-api/src/{commonMain => main}/kotlin/de/griefed/serverpackcreator/api/plugins/ExtensionException.kt (100%)
 rename serverpackcreator-api/src/{commonMain => main}/kotlin/de/griefed/serverpackcreator/api/plugins/ExtensionInformation.kt (97%)
 rename serverpackcreator-api/src/{jvmMain => main}/kotlin/de/griefed/serverpackcreator/api/plugins/PluginContext.kt (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/kotlin/de/griefed/serverpackcreator/api/plugins/ServerPackCreatorPlugin.kt (91%)
 rename serverpackcreator-api/src/{commonMain => main}/kotlin/de/griefed/serverpackcreator/api/plugins/configurationhandler/ConfigCheckExtension.kt (96%)
 rename serverpackcreator-api/src/{commonMain => main}/kotlin/de/griefed/serverpackcreator/api/plugins/serverpackhandler/PostGenExtension.kt (100%)
 rename serverpackcreator-api/src/{commonMain => main}/kotlin/de/griefed/serverpackcreator/api/plugins/serverpackhandler/PreGenExtension.kt (100%)
 rename serverpackcreator-api/src/{commonMain => main}/kotlin/de/griefed/serverpackcreator/api/plugins/serverpackhandler/PreZipExtension.kt (100%)
 rename serverpackcreator-api/src/{commonMain => main}/kotlin/de/griefed/serverpackcreator/api/plugins/serverpackhandler/ServerPackHandlerBase.kt (95%)
 rename serverpackcreator-api/src/{commonMain => main}/kotlin/de/griefed/serverpackcreator/api/plugins/swinggui/ConfigPanelExtension.kt (96%)
 rename serverpackcreator-api/src/{jvmMain => main}/kotlin/de/griefed/serverpackcreator/api/plugins/swinggui/ExtensionConfigPanel.kt (91%)
 rename serverpackcreator-api/src/{jvmMain => main}/kotlin/de/griefed/serverpackcreator/api/plugins/swinggui/ExtensionTab.kt (98%)
 rename serverpackcreator-api/src/{commonMain => main}/kotlin/de/griefed/serverpackcreator/api/plugins/swinggui/ServerPackConfigTab.kt (98%)
 rename serverpackcreator-api/src/{jvmMain => main}/kotlin/de/griefed/serverpackcreator/api/plugins/swinggui/TabExtension.kt (88%)
 rename serverpackcreator-api/src/{commonMain => main}/kotlin/de/griefed/serverpackcreator/api/utilities/ReticulatingSplines.kt (100%)
 rename serverpackcreator-api/src/{commonMain => main}/kotlin/de/griefed/serverpackcreator/api/utilities/SimpleStopWatch.kt (100%)
 rename serverpackcreator-api/src/{commonMain => main}/kotlin/de/griefed/serverpackcreator/api/utilities/common/Affirm.kt (100%)
 rename serverpackcreator-api/src/{commonMain => main}/kotlin/de/griefed/serverpackcreator/api/utilities/common/BooleanUtilities.kt (98%)
 rename serverpackcreator-api/src/{jvmMain => main}/kotlin/de/griefed/serverpackcreator/api/utilities/common/ClassUtilities.kt (91%)
 rename serverpackcreator-api/src/{jvmMain => main}/kotlin/de/griefed/serverpackcreator/api/utilities/common/Comparison.kt (99%)
 rename serverpackcreator-api/src/{commonMain => main}/kotlin/de/griefed/serverpackcreator/api/utilities/common/FileType.kt (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/kotlin/de/griefed/serverpackcreator/api/utilities/common/FileUtilities.kt (88%)
 rename serverpackcreator-api/src/{commonMain => main}/kotlin/de/griefed/serverpackcreator/api/utilities/common/FilterType.kt (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/kotlin/de/griefed/serverpackcreator/api/utilities/common/InputStreamUtilities.kt (100%)
 rename serverpackcreator-api/src/{commonMain => main}/kotlin/de/griefed/serverpackcreator/api/utilities/common/InvalidFileTypeException.kt (100%)
 rename serverpackcreator-api/src/{commonMain => main}/kotlin/de/griefed/serverpackcreator/api/utilities/common/InvalidLinkException.kt (100%)
 rename serverpackcreator-api/src/{commonMain => main}/kotlin/de/griefed/serverpackcreator/api/utilities/common/JarAccessException.kt (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/kotlin/de/griefed/serverpackcreator/api/utilities/common/JarInformation.kt (89%)
 rename serverpackcreator-api/src/{jvmMain => main}/kotlin/de/griefed/serverpackcreator/api/utilities/common/JarUtilities.kt (97%)
 rename serverpackcreator-api/src/{jvmMain => main}/kotlin/de/griefed/serverpackcreator/api/utilities/common/JsonException.kt (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/kotlin/de/griefed/serverpackcreator/api/utilities/common/JsonUtilities.kt (99%)
 rename serverpackcreator-api/src/{commonMain => main}/kotlin/de/griefed/serverpackcreator/api/utilities/common/ListUtilities.kt (99%)
 rename serverpackcreator-api/src/{commonMain => main}/kotlin/de/griefed/serverpackcreator/api/utilities/common/RegexUtilities.kt (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/kotlin/de/griefed/serverpackcreator/api/utilities/common/SemanticVersionComparator.kt (100%)
 rename serverpackcreator-api/src/{commonMain => main}/kotlin/de/griefed/serverpackcreator/api/utilities/common/StringUtilities.kt (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/kotlin/de/griefed/serverpackcreator/api/utilities/common/SystemUtilities.kt (68%)
 rename serverpackcreator-api/src/{jvmMain => main}/kotlin/de/griefed/serverpackcreator/api/utilities/common/Utilities.kt (88%)
 rename serverpackcreator-api/src/{jvmMain => main}/kotlin/de/griefed/serverpackcreator/api/utilities/common/WebUtilities.kt (94%)
 rename serverpackcreator-api/src/{jvmMain => main}/kotlin/de/griefed/serverpackcreator/api/utilities/common/XmlUtilities.kt (96%)
 rename serverpackcreator-api/src/{jvmMain => main}/kotlin/de/griefed/serverpackcreator/api/utilities/common/ZipUtilities.kt (100%)
 rename serverpackcreator-api/src/{commonMain => main}/kotlin/de/griefed/serverpackcreator/api/versionmeta/InvalidTypeException.kt (100%)
 rename serverpackcreator-api/src/{commonMain => main}/kotlin/de/griefed/serverpackcreator/api/versionmeta/Meta.kt (93%)
 rename serverpackcreator-api/src/{commonMain => main}/kotlin/de/griefed/serverpackcreator/api/versionmeta/Type.kt (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/kotlin/de/griefed/serverpackcreator/api/versionmeta/VersionMeta.kt (95%)
 rename serverpackcreator-api/src/{jvmMain => main}/kotlin/de/griefed/serverpackcreator/api/versionmeta/fabric/FabricArguments.kt (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/kotlin/de/griefed/serverpackcreator/api/versionmeta/fabric/FabricDetails.kt (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/kotlin/de/griefed/serverpackcreator/api/versionmeta/fabric/FabricInstaller.kt (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/kotlin/de/griefed/serverpackcreator/api/versionmeta/fabric/FabricIntermediaries.kt (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/kotlin/de/griefed/serverpackcreator/api/versionmeta/fabric/FabricIntermediary.kt (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/kotlin/de/griefed/serverpackcreator/api/versionmeta/fabric/FabricLibrary.kt (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/kotlin/de/griefed/serverpackcreator/api/versionmeta/fabric/FabricLoader.kt (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/kotlin/de/griefed/serverpackcreator/api/versionmeta/fabric/FabricLoaderDetails.kt (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/kotlin/de/griefed/serverpackcreator/api/versionmeta/fabric/FabricMeta.kt (75%)
 rename serverpackcreator-api/src/{jvmMain => main}/kotlin/de/griefed/serverpackcreator/api/versionmeta/forge/ForgeInstance.kt (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/kotlin/de/griefed/serverpackcreator/api/versionmeta/forge/ForgeLoader.kt (98%)
 rename serverpackcreator-api/src/{jvmMain => main}/kotlin/de/griefed/serverpackcreator/api/versionmeta/forge/ForgeMeta.kt (87%)
 rename serverpackcreator-api/src/{jvmMain => main}/kotlin/de/griefed/serverpackcreator/api/versionmeta/legacyfabric/LegacyFabricGame.kt (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/kotlin/de/griefed/serverpackcreator/api/versionmeta/legacyfabric/LegacyFabricInstaller.kt (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/kotlin/de/griefed/serverpackcreator/api/versionmeta/legacyfabric/LegacyFabricLoader.kt (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/kotlin/de/griefed/serverpackcreator/api/versionmeta/legacyfabric/LegacyFabricMeta.kt (70%)
 rename serverpackcreator-api/src/{jvmMain => main}/kotlin/de/griefed/serverpackcreator/api/versionmeta/legacyfabric/LegacyFabricVersioning.kt (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/kotlin/de/griefed/serverpackcreator/api/versionmeta/minecraft/MinecraftClient.kt (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/kotlin/de/griefed/serverpackcreator/api/versionmeta/minecraft/MinecraftClientMeta.kt (98%)
 rename serverpackcreator-api/src/{jvmMain => main}/kotlin/de/griefed/serverpackcreator/api/versionmeta/minecraft/MinecraftMeta.kt (95%)
 rename serverpackcreator-api/src/{jvmMain => main}/kotlin/de/griefed/serverpackcreator/api/versionmeta/minecraft/MinecraftServer.kt (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/kotlin/de/griefed/serverpackcreator/api/versionmeta/minecraft/MinecraftServerMeta.kt (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/kotlin/de/griefed/serverpackcreator/api/versionmeta/neoforge/NeoForgeInstance.kt (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/kotlin/de/griefed/serverpackcreator/api/versionmeta/neoforge/NeoForgeLoader.kt (99%)
 rename serverpackcreator-api/src/{jvmMain => main}/kotlin/de/griefed/serverpackcreator/api/versionmeta/neoforge/NeoForgeMeta.kt (86%)
 rename serverpackcreator-api/src/{jvmMain => main}/kotlin/de/griefed/serverpackcreator/api/versionmeta/neoforge/NewNeoForgeInstance.kt (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/kotlin/de/griefed/serverpackcreator/api/versionmeta/neoforge/OldNeoForgeInstance.kt (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/kotlin/de/griefed/serverpackcreator/api/versionmeta/quilt/QuiltInstaller.kt (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/kotlin/de/griefed/serverpackcreator/api/versionmeta/quilt/QuiltLoader.kt (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/kotlin/de/griefed/serverpackcreator/api/versionmeta/quilt/QuiltMeta.kt (60%)
 rename serverpackcreator-api/src/{jvmMain => main}/kotlin/io/ByteReader.kt (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/kotlin/io/ByteWriter.kt (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/kotlin/io/Bytes.kt (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/kotlin/mslinks/LinkInfo.kt (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/kotlin/mslinks/LinkTargetIDList.kt (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/kotlin/mslinks/Serializable.kt (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/kotlin/mslinks/ShellLink.kt (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/kotlin/mslinks/ShellLinkException.kt (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/kotlin/mslinks/ShellLinkHeader.kt (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/kotlin/mslinks/ShellLinkHelper.kt (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/kotlin/mslinks/UnsupportedCLSIDException.kt (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/kotlin/mslinks/UnsupportedItemIDException.kt (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/kotlin/mslinks/data/BitSet32.kt (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/kotlin/mslinks/data/CNRLink.kt (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/kotlin/mslinks/data/CNRLinkFlags.kt (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/kotlin/mslinks/data/ConsoleFlags.kt (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/kotlin/mslinks/data/FileAttributesFlags.kt (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/kotlin/mslinks/data/Filetime.kt (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/kotlin/mslinks/data/GUID.kt (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/kotlin/mslinks/data/HotKeyFlags.kt (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/kotlin/mslinks/data/ItemID.kt (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/kotlin/mslinks/data/ItemIDDrive.kt (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/kotlin/mslinks/data/ItemIDFS.kt (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/kotlin/mslinks/data/ItemIDRegFolder.kt (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/kotlin/mslinks/data/ItemIDRegItem.kt (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/kotlin/mslinks/data/ItemIDRoot.kt (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/kotlin/mslinks/data/ItemIDUnknown.kt (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/kotlin/mslinks/data/LinkFlags.kt (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/kotlin/mslinks/data/LinkInfoFlags.kt (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/kotlin/mslinks/data/Registry.kt (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/kotlin/mslinks/data/Size.kt (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/kotlin/mslinks/data/VolumeID.kt (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/kotlin/mslinks/extra/ConsoleData.kt (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/kotlin/mslinks/extra/ConsoleFEData.kt (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/kotlin/mslinks/extra/EnvironmentVariable.kt (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/kotlin/mslinks/extra/Stub.kt (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/kotlin/mslinks/extra/Tracker.kt (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/kotlin/mslinks/extra/VistaIDList.kt (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/CHANGELOG.md (99%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/CODE_OF_CONDUCT.md (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/CONTRIBUTING.md (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/HELP.md (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/LICENSE (92%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/README.md (99%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/cli_help.txt (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/examples/serverpackcreator.example (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/lang/lang_de_de.properties (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/lang/lang_uk_ua.properties (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/fabric-installer-manifest.xml (94%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/fabric-intermediaries-manifest.json (93%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/fabric-manifest.xml (97%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/forge-manifest.json (98%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/legacy-fabric-game-manifest.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/legacy-fabric-installer-manifest.xml (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/legacy-fabric-loader-manifest.json (90%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.0.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.1.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.10-pre1.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.10-pre2.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.10.1.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.10.2.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.10.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.11-pre1.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.11.1.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.11.2.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.11.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.12-pre1.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.12-pre2.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.12-pre3.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.12-pre4.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.12-pre5.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.12-pre6.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.12-pre7.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.12.1-pre1.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.12.1.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.12.2-pre1.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.12.2-pre2.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.12.2.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.12.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.13-pre1.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.13-pre10.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.13-pre2.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.13-pre3.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.13-pre4.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.13-pre5.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.13-pre6.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.13-pre7.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.13-pre8.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.13-pre9.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.13.1-pre1.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.13.1-pre2.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.13.1.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.13.2-pre1.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.13.2-pre2.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.13.2.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.13.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.14 Pre-Release 1.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.14 Pre-Release 2.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.14 Pre-Release 3.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.14 Pre-Release 4.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.14 Pre-Release 5.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.14.1 Pre-Release 1.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.14.1 Pre-Release 2.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.14.1.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.14.2 Pre-Release 1.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.14.2 Pre-Release 2.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.14.2 Pre-Release 3.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.14.2 Pre-Release 4.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.14.2.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.14.3-pre1.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.14.3-pre2.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.14.3-pre3.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.14.3-pre4.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.14.3.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.14.4-pre1.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.14.4-pre2.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.14.4-pre3.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.14.4-pre4.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.14.4-pre5.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.14.4-pre6.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.14.4-pre7.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.14.4.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.14.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.15-pre1.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.15-pre2.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.15-pre3.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.15-pre4.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.15-pre5.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.15-pre6.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.15-pre7.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.15.1-pre1.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.15.1.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.15.2-pre1.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.15.2-pre2.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.15.2.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.15.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.16-pre1.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.16-pre2.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.16-pre3.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.16-pre4.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.16-pre5.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.16-pre6.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.16-pre7.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.16-pre8.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.16-rc1.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.16.1.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.16.2-pre1.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.16.2-pre2.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.16.2-pre3.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.16.2-rc1.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.16.2-rc2.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.16.2.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.16.3-rc1.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.16.3.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.16.4-pre1.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.16.4-pre2.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.16.4-rc1.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.16.4.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.16.5-rc1.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.16.5.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.16.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.17-pre1.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.17-pre2.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.17-pre3.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.17-pre4.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.17-pre5.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.17-rc1.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.17-rc2.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.17.1-pre1.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.17.1-pre2.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.17.1-pre3.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.17.1-rc1.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.17.1-rc2.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.17.1.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.17.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.18-pre1.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.18-pre2.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.18-pre3.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.18-pre4.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.18-pre5.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.18-pre6.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.18-pre7.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.18-pre8.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.18-rc1.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.18-rc2.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.18-rc3.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.18-rc4.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.18.1-pre1.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.18.1-rc1.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.18.1-rc2.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.18.1-rc3.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.18.1.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.18.2-pre1.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.18.2-pre2.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.18.2-pre3.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.18.2-rc1.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.18.2.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.18.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.19-pre1.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.19-pre2.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.19-pre3.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.19-pre4.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.19-pre5.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.19-rc1.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.19-rc2.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.19.1-pre1.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.19.1-pre2.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.19.1-pre3.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.19.1-pre4.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.19.1-pre5.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.19.1-pre6.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.19.1-rc1.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.19.1-rc2.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.19.1-rc3.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.19.1.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.19.2-rc1.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.19.2-rc2.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.19.2.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.19.3-pre1.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.19.3-pre2.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.19.3-pre3.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.19.3-rc1.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.19.3-rc2.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.19.3-rc3.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.19.3.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.19.4-pre1.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.19.4-pre2.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.19.4-pre3.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.19.4-pre4.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.19.4-rc1.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.19.4-rc2.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.19.4-rc3.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.19.4.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.19.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.2.1.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.2.2.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.2.3.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.2.4.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.2.5.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.20-pre1.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.20-pre2.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.20-pre3.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.20-pre4.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.20-pre5.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.20-pre6.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.20-pre7.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.20-rc1.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.20.1-rc1.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.20.1.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.20.2.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.20.3.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.20.4.json (100%)
 create mode 100644 serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.20.6.json
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.20.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.3.1.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.3.2.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.3.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.4.1.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.4.2.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.4.3.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.4.4.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.4.5.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.4.6.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.4.7.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.4.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.5.1.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.5.2.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.5.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.6.1.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.6.2.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.6.3.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.6.4.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.6.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.7.1.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.7.10-pre1.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.7.10-pre2.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.7.10-pre3.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.7.10-pre4.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.7.10.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.7.2.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.7.3.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.7.4.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.7.5.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.7.6-pre1.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.7.6-pre2.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.7.6.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.7.7.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.7.8.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.7.9.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.7.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.8-pre1.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.8-pre2.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.8-pre3.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.8.1-pre1.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.8.1-pre2.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.8.1-pre3.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.8.1-pre4.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.8.1-pre5.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.8.1.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.8.2-pre1.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.8.2-pre2.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.8.2-pre3.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.8.2-pre4.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.8.2-pre5.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.8.2-pre6.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.8.2-pre7.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.8.2.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.8.3.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.8.4.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.8.5.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.8.6.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.8.7.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.8.8.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.8.9.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.8.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.9-pre1.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.9-pre2.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.9-pre3.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.9-pre4.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.9.1-pre1.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.9.1-pre2.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.9.1-pre3.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.9.1.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.9.2.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.9.3-pre1.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.9.3-pre2.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.9.3-pre3.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.9.3.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.9.4.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.9.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/1.RV-Pre1.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/13w16a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/13w16b.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/13w17a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/13w18a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/13w18b.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/13w18c.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/13w19a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/13w21a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/13w21b.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/13w22a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/13w23a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/13w23b.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/13w24a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/13w24b.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/13w25a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/13w25b.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/13w25c.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/13w26a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/13w36a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/13w36b.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/13w37a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/13w37b.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/13w38a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/13w38b.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/13w38c.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/13w39a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/13w39b.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/13w41a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/13w41b.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/13w42a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/13w42b.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/13w43a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/13w47a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/13w47b.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/13w47c.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/13w47d.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/13w47e.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/13w48a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/13w48b.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/13w49a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/14w02a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/14w02b.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/14w02c.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/14w03a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/14w03b.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/14w04a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/14w04b.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/14w05a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/14w05b.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/14w06a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/14w06b.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/14w07a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/14w08a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/14w10a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/14w10b.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/14w10c.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/14w11a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/14w11b.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/14w17a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/14w18a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/14w18b.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/14w19a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/14w20a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/14w20b.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/14w21a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/14w21b.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/14w25a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/14w25b.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/14w26a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/14w26b.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/14w26c.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/14w27a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/14w27b.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/14w28a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/14w28b.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/14w29a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/14w29b.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/14w30a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/14w30b.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/14w30c.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/14w31a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/14w32a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/14w32b.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/14w32c.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/14w32d.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/14w33a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/14w33b.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/14w33c.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/14w34a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/14w34b.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/14w34c.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/14w34d.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/15w14a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/15w31a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/15w31b.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/15w31c.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/15w32a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/15w32b.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/15w32c.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/15w33a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/15w33b.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/15w33c.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/15w34a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/15w34b.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/15w34c.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/15w34d.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/15w35a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/15w35b.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/15w35c.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/15w35d.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/15w35e.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/15w36a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/15w36b.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/15w36c.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/15w36d.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/15w37a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/15w38a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/15w38b.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/15w39a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/15w39b.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/15w39c.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/15w40a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/15w40b.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/15w41a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/15w41b.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/15w42a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/15w43a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/15w43b.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/15w43c.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/15w44a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/15w44b.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/15w45a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/15w46a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/15w47a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/15w47b.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/15w47c.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/15w49a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/15w49b.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/15w50a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/15w51a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/15w51b.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/16w02a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/16w03a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/16w04a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/16w05a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/16w05b.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/16w06a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/16w07a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/16w07b.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/16w14a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/16w15a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/16w15b.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/16w20a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/16w21a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/16w21b.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/16w32a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/16w32b.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/16w33a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/16w35a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/16w36a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/16w38a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/16w39a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/16w39b.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/16w39c.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/16w40a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/16w41a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/16w42a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/16w43a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/16w44a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/16w50a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/17w06a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/17w13a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/17w13b.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/17w14a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/17w15a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/17w16a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/17w16b.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/17w17a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/17w17b.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/17w18a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/17w18b.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/17w31a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/17w43a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/17w43b.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/17w45a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/17w45b.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/17w46a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/17w47a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/17w47b.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/17w48a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/17w49a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/17w49b.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/17w50a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/18w01a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/18w02a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/18w03a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/18w03b.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/18w05a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/18w06a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/18w07a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/18w07b.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/18w07c.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/18w08a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/18w08b.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/18w09a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/18w10a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/18w10b.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/18w10c.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/18w10d.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/18w11a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/18w14a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/18w14b.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/18w15a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/18w16a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/18w19a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/18w19b.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/18w20a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/18w20b.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/18w20c.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/18w21a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/18w21b.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/18w22a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/18w22b.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/18w22c.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/18w30a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/18w30b.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/18w31a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/18w32a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/18w33a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/18w43a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/18w43b.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/18w43c.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/18w44a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/18w45a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/18w46a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/18w47a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/18w47b.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/18w48a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/18w48b.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/18w49a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/18w50a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/19w02a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/19w03a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/19w03b.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/19w03c.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/19w04a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/19w04b.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/19w05a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/19w06a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/19w07a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/19w08a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/19w08b.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/19w09a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/19w11a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/19w11b.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/19w12a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/19w12b.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/19w13a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/19w13b.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/19w14a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/19w14b.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/19w34a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/19w35a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/19w36a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/19w37a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/19w38a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/19w38b.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/19w39a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/19w40a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/19w41a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/19w42a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/19w44a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/19w45a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/19w45b.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/19w46a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/19w46b.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/20w06a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/20w07a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/20w08a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/20w09a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/20w10a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/20w11a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/20w12a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/20w13a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/20w13b.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/20w14a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/20w14infinite.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/20w15a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/20w16a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/20w17a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/20w18a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/20w19a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/20w20a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/20w20b.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/20w21a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/20w22a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/20w27a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/20w28a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/20w29a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/20w30a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/20w45a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/20w46a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/20w48a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/20w49a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/20w51a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/21w03a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/21w05a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/21w05b.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/21w06a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/21w07a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/21w08a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/21w08b.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/21w10a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/21w11a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/21w13a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/21w14a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/21w15a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/21w16a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/21w17a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/21w18a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/21w19a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/21w20a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/21w37a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/21w38a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/21w39a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/21w40a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/21w41a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/21w42a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/21w43a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/21w44a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/22w03a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/22w05a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/22w06a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/22w07a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/22w11a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/22w12a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/22w13a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/22w13oneblockatatime.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/22w14a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/22w15a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/22w16a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/22w16b.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/22w17a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/22w18a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/22w19a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/22w24a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/22w42a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/22w43a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/22w44a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/22w45a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/22w46a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/23w03a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/23w04a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/23w05a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/23w06a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/23w07a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/23w12a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/23w13a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/23w13a_or_b.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/23w14a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/23w16a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/23w17a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/23w18a.json (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/mcserver/3D Shareware v1.34.json (100%)
 create mode 100644 serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/minecraft-manifest.json
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/neoforge-manifest-new.xml (62%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/neoforge-manifest.xml (88%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/quilt-installer-manifest.xml (85%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/manifests/quilt-manifest.xml (94%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/server_files/default_template.ps1 (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/server_files/default_template.sh (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/server_files/server-icon.png (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/server_files/server.properties (100%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/de/griefed/resources/serverpackcreator.conf (100%)
 create mode 100644 serverpackcreator-api/src/main/resources/log4j2.component.properties
 rename serverpackcreator-api/src/{jvmMain => main}/resources/log4j2.xml (78%)
 rename serverpackcreator-api/src/{jvmMain => main}/resources/serverpackcreator.properties (99%)
 rename serverpackcreator-api/src/{jvmTest => test}/kotlin/de/griefed/serverpackcreator/api/ApiPluginsTest.kt (90%)
 rename serverpackcreator-api/src/{jvmTest => test}/kotlin/de/griefed/serverpackcreator/api/ApiPropertiesTest.kt (90%)
 rename serverpackcreator-api/src/{jvmTest => test}/kotlin/de/griefed/serverpackcreator/api/ConfigurationHandlerTest.kt (90%)
 rename serverpackcreator-api/src/{jvmTest => test}/kotlin/de/griefed/serverpackcreator/api/PackConfigTest.kt (95%)
 rename serverpackcreator-api/src/{jvmTest => test}/kotlin/de/griefed/serverpackcreator/api/ServerPackHandlerTest.kt (93%)
 rename serverpackcreator-api/src/{jvmTest => test}/kotlin/de/griefed/serverpackcreator/api/common/BooleanUtilitiesTest.kt (93%)
 rename serverpackcreator-api/src/{jvmTest => test}/kotlin/de/griefed/serverpackcreator/api/common/FileUtilitiesTest.kt (61%)
 rename serverpackcreator-api/src/{jvmTest => test}/kotlin/de/griefed/serverpackcreator/api/common/JarUtilitiesTest.kt (95%)
 rename serverpackcreator-api/src/{jvmTest => test}/kotlin/de/griefed/serverpackcreator/api/common/ListUtilitiesTest.kt (98%)
 rename serverpackcreator-api/src/{jvmTest => test}/kotlin/de/griefed/serverpackcreator/api/common/StringUtilitiesTest.kt (86%)
 rename serverpackcreator-api/src/{jvmTest => test}/kotlin/de/griefed/serverpackcreator/api/common/SystemUtilitiesTest.kt (89%)
 rename serverpackcreator-api/src/{jvmTest => test}/kotlin/de/griefed/serverpackcreator/api/common/WebUtilitiesTest.kt (93%)
 create mode 100644 serverpackcreator-api/src/test/kotlin/de/griefed/serverpackcreator/api/modscanning/ModScannerTest.kt
 rename serverpackcreator-api/src/{jvmTest => test}/kotlin/de/griefed/serverpackcreator/api/versionmeta/VersionMetaTest.kt (99%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/application.properties (92%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/curseforge_tests/modpack.zip (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/custom_template.ps1 (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/custom_template.sh (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/fabric_tests/config/testfile.txt (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/fabric_tests/defaultconfigs/testfile.txt (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/fabric_tests/mods/Ping-1.19-1.9.1.jar (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/fabric_tests/mods/Ping-Wheel-1.6.1-forge-1.20.1.jar (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/fabric_tests/mods/aaaaa.jar (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/fabric_tests/mods/bbbbb.jar (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/fabric_tests/mods/ccccc.jar (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/fabric_tests/mods/ddddd.jar (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/fabric_tests/mods/eeeee.jar (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/fabric_tests/mods/fffff.jar (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/fabric_tests/mods/ggggg.jar (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/fabric_tests/mods/hhhhh.jar (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/fabric_tests/mods/iiiii.jar (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/fabric_tests/mods/jjjjj.jar (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/fabric_tests/mods/kkkkk.jar (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/fabric_tests/mods/lllll.jar (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/fabric_tests/mods/mmmmm.jar (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/fabric_tests/mods/nnnnn.jar (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/fabric_tests/mods/ooooo.jar (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/fabric_tests/mods/ppppp.jar (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/fabric_tests/mods/qqqqq.jar (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/fabric_tests/mods/testmod.jar (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/fabric_tests/scripts/testscript.zs (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/fabric_tests/seeds/testjson.json (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/forge_old/mods/Ping-1.19-1.9.1.jar (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/forge_old/mods/Ping-Wheel-1.6.1-forge-1.20.1.jar (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/forge_old/mods/aaaaa.jar (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/forge_old/mods/bbbbb.jar (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/forge_old/mods/ccccc.jar (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/forge_old/mods/ddddd.jar (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/forge_old/mods/eeeee.jar (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/forge_old/mods/fffff.jar (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/forge_old/mods/ggggg.jar (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/forge_old/mods/hhhhh.jar (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/forge_old/mods/iiiii.jar (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/forge_old/mods/jjjjj.jar (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/forge_old/mods/kkkkk.jar (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/forge_old/mods/lllll.jar (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/forge_old/mods/mmmmm.jar (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/forge_old/mods/nnnnn.jar (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/forge_old/mods/ooooo.jar (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/forge_old/mods/ppppp.jar (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/forge_old/mods/qqqqq.jar (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/forge_tests/config/testfile.txt (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/forge_tests/defaultconfigs/testfile.txt (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/forge_tests/exclude_me/I_dont_want_to_be_included.file (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/forge_tests/exclude_me/exclude_me_some_more/ICANSEEMYHOUSEFROMHEEEEEEEEEEEEERE (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/forge_tests/exclude_me/exclude_me_some_more/I_dont_want_to_be_included.file (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/forge_tests/exclude_me/exclude_me_some_more/dont_include_me_either.ogg (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/forge_tests/exclude_me/exclude_me_some_more/some_more_dirs_to_exclude/I_dont_want_to_be_included.file (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/forge_tests/mods/Ping-1.19-1.9.1.jar (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/forge_tests/mods/Ping-Wheel-1.6.1-forge-1.20.1.jar (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/forge_tests/mods/aaaaa.jar (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/forge_tests/mods/bbbbb.jar (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/forge_tests/mods/ccccc.jar (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/forge_tests/mods/ddddd.jar (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/forge_tests/mods/fffff.jar (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/forge_tests/mods/ggggg.jar (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/forge_tests/mods/hhhhh.jar (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/forge_tests/mods/iiiii.jar (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/forge_tests/mods/jjjjj.jar (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/forge_tests/mods/kkkkk.jar (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/forge_tests/mods/lllll.jar (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/forge_tests/mods/nnnnn.jar (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/forge_tests/mods/ppppp.jar (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/forge_tests/mods/qqqqq.jar (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/forge_tests/mods/rrrrr.jar (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/forge_tests/mods/testmod.jar (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/forge_tests/mods/uuuuu.jar (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/forge_tests/mods/vvvvv.jar (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/forge_tests/mods/wwwww.jar (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/forge_tests/mods/xxxxx.jar (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/forge_tests/mods/yyyyy.jar (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/forge_tests/mods/zzzzz.jar (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/forge_tests/scripts/testscript.zs (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/forge_tests/seeds/testjson.json (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/forge_tests/test.txt (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/forge_tests/test2.txt (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/legacyfabric_tests/config/testfile.txt (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/legacyfabric_tests/defaultconfigs/testfile.txt (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/legacyfabric_tests/mods/Ping-1.19-1.9.1.jar (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/legacyfabric_tests/mods/Ping-Wheel-1.6.1-forge-1.20.1.jar (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/legacyfabric_tests/mods/aaaaa.jar (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/legacyfabric_tests/mods/bbbbb.jar (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/legacyfabric_tests/mods/ccccc.jar (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/legacyfabric_tests/mods/ddddd.jar (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/legacyfabric_tests/mods/eeeee.jar (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/legacyfabric_tests/mods/fffff.jar (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/legacyfabric_tests/mods/ggggg.jar (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/legacyfabric_tests/mods/hhhhh.jar (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/legacyfabric_tests/mods/iiiii.jar (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/legacyfabric_tests/mods/jjjjj.jar (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/legacyfabric_tests/mods/kkkkk.jar (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/legacyfabric_tests/mods/lllll.jar (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/legacyfabric_tests/mods/mmmmm.jar (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/legacyfabric_tests/mods/nnnnn.jar (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/legacyfabric_tests/mods/ooooo.jar (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/legacyfabric_tests/mods/ppppp.jar (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/legacyfabric_tests/mods/qqqqq.jar (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/legacyfabric_tests/mods/testmod.jar (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/legacyfabric_tests/scripts/testscript.zs (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/legacyfabric_tests/seeds/testjson.json (100%)
 create mode 100644 serverpackcreator-api/src/test/resources/log4j2.component.properties
 rename serverpackcreator-api/src/{jvmTest => test}/resources/log4j2.xml (77%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/mods/Ping-1.19-1.9.1.jar (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/mods/Ping-Wheel-1.6.1-forge-1.20.1.jar (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/mods/aaaaa.jar (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/mods/bbbbb.jar (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/mods/ccccc.jar (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/mods/ddddd.jar (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/mods/eeeee.jar (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/mods/fffff.jar (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/mods/ggggg.jar (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/mods/hhhhh.jar (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/mods/iiiii.jar (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/mods/jjjjj.jar (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/mods/kkkkk.jar (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/mods/lllll.jar (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/mods/mmmmm.jar (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/mods/nnnnn.jar (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/mods/ooooo.jar (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/mods/ppppp.jar (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/mods/qqqqq.jar (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/neoforge_tests/config/testfile.txt (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/neoforge_tests/defaultconfigs/testfile.txt (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/neoforge_tests/exclude_me/I_dont_want_to_be_included.file (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/neoforge_tests/exclude_me/exclude_me_some_more/ICANSEEMYHOUSEFROMHEEEEEEEEEEEEERE (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/neoforge_tests/exclude_me/exclude_me_some_more/I_dont_want_to_be_included.file (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/neoforge_tests/exclude_me/exclude_me_some_more/dont_include_me_either.ogg (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/neoforge_tests/exclude_me/exclude_me_some_more/some_more_dirs_to_exclude/I_dont_want_to_be_included.file (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/neoforge_tests/mods/Ping-1.19-1.9.1.jar (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/neoforge_tests/mods/Ping-Wheel-1.6.1-forge-1.20.1.jar (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/neoforge_tests/mods/aaaaa.jar (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/neoforge_tests/mods/bbbbb.jar (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/neoforge_tests/mods/ccccc.jar (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/neoforge_tests/mods/ddddd.jar (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/neoforge_tests/mods/fffff.jar (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/neoforge_tests/mods/ggggg.jar (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/neoforge_tests/mods/hhhhh.jar (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/neoforge_tests/mods/iiiii.jar (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/neoforge_tests/mods/jjjjj.jar (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/neoforge_tests/mods/kkkkk.jar (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/neoforge_tests/mods/lllll.jar (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/neoforge_tests/mods/nnnnn.jar (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/neoforge_tests/mods/ppppp.jar (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/neoforge_tests/mods/qqqqq.jar (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/neoforge_tests/mods/rrrrr.jar (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/neoforge_tests/mods/testmod.jar (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/neoforge_tests/mods/uuuuu.jar (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/neoforge_tests/mods/vvvvv.jar (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/neoforge_tests/mods/wwwww.jar (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/neoforge_tests/mods/xxxxx.jar (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/neoforge_tests/mods/yyyyy.jar (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/neoforge_tests/mods/zzzzz.jar (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/neoforge_tests/scripts/testscript.zs (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/neoforge_tests/seeds/testjson.json (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/neoforge_tests/test.txt (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/neoforge_tests/test2.txt (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/overrides/config/testfile.txt (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/overrides/defaultconfigs/testfile.txt (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/overrides/scripts/testscript.zs (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/overrides/seeds/seed1.json (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/overrides/seeds/testjson.json (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/overridestest/overrides/config/testfile.txt (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/overridestest/overrides/defaultconfigs/testfile.txt (100%)
 rename serverpackcreator-api/src/{jvmTest/resources => test/resources/overridestest}/overrides/mods/aaaaa.jar (100%)
 rename serverpackcreator-api/src/{jvmTest/resources => test/resources/overridestest}/overrides/mods/bbbbb.jar (100%)
 rename serverpackcreator-api/src/{jvmTest/resources => test/resources/overridestest}/overrides/mods/ccccc.jar (100%)
 rename serverpackcreator-api/src/{jvmTest/resources => test/resources/overridestest}/overrides/mods/fffff.jar (100%)
 rename serverpackcreator-api/src/{jvmTest/resources => test/resources/overridestest}/overrides/mods/ggggg.jar (100%)
 rename serverpackcreator-api/src/{jvmTest/resources => test/resources/overridestest}/overrides/mods/hhhhh.jar (100%)
 rename serverpackcreator-api/src/{jvmTest/resources => test/resources/overridestest}/overrides/mods/iiiii.jar (100%)
 rename serverpackcreator-api/src/{jvmTest/resources => test/resources/overridestest}/overrides/mods/jjjjj.jar (100%)
 rename serverpackcreator-api/src/{jvmTest/resources => test/resources/overridestest}/overrides/mods/kkkkk.jar (100%)
 rename serverpackcreator-api/src/{jvmTest/resources => test/resources/overridestest}/overrides/mods/lllll.jar (100%)
 rename serverpackcreator-api/src/{jvmTest/resources => test/resources/overridestest}/overrides/mods/nnnnn.jar (100%)
 rename serverpackcreator-api/src/{jvmTest/resources => test/resources/overridestest}/overrides/mods/ppppp.jar (100%)
 rename serverpackcreator-api/src/{jvmTest/resources => test/resources/overridestest}/overrides/mods/qqqqq.jar (100%)
 rename serverpackcreator-api/src/{jvmTest/resources => test/resources/overridestest}/overrides/mods/rrrrr.jar (100%)
 rename serverpackcreator-api/src/{jvmTest/resources => test/resources/overridestest}/overrides/mods/testmod.jar (100%)
 rename serverpackcreator-api/src/{jvmTest/resources => test/resources/overridestest}/overrides/mods/uuuuu.jar (100%)
 rename serverpackcreator-api/src/{jvmTest/resources => test/resources/overridestest}/overrides/mods/vvvvv.jar (100%)
 rename serverpackcreator-api/src/{jvmTest/resources => test/resources/overridestest}/overrides/mods/wwwww.jar (100%)
 rename serverpackcreator-api/src/{jvmTest/resources => test/resources/overridestest}/overrides/mods/xxxxx.jar (100%)
 rename serverpackcreator-api/src/{jvmTest/resources => test/resources/overridestest}/overrides/mods/yyyyy.jar (100%)
 rename serverpackcreator-api/src/{jvmTest/resources => test/resources/overridestest}/overrides/mods/zzzzz.jar (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/overridestest/overrides/scripts/testscript.zs (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/overridestest/overrides/seeds/seed1.json (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/overridestest/overrides/seeds/testjson.json (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/quilt_tests/config/testfile.txt (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/quilt_tests/defaultconfigs/testfile.txt (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/quilt_tests/mods/Ping-1.19-1.9.1.jar (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/quilt_tests/mods/Ping-Wheel-1.6.1-forge-1.20.1.jar (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/quilt_tests/mods/aaaaa.jar (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/quilt_tests/mods/bbbbb.jar (100%)
 rename serverpackcreator-api/src/{jvmTest/resources/overridestest/overrides => test/resources/quilt_tests}/mods/testmod.jar (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/quilt_tests/scripts/testscript.zs (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/quilt_tests/seeds/testjson.json (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/serverpackcreator.db (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/serverpackcreator.properties (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/testresources/SCP_icon.png (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/testresources/Survive_Create_Prosper_4_invalid.zip (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/testresources/Survive_Create_Prosper_4_valid.zip (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/testresources/curseforge/fabric_manifest.json (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/testresources/curseforge/fabric_minecraftinstance.json (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/testresources/curseforge/forge_manifest.json (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/testresources/curseforge/forge_minecraftinstance.json (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/testresources/gdlauncher/fabric_config.json (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/testresources/gdlauncher/forge_config.json (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/testresources/kreezxil.properties (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/testresources/languages/de_de.properties (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/testresources/languages/en_us.properties (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/testresources/languages/langMissing/lang_de_de.properties (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/testresources/languages/langMissing/lang_ef_gh.properties (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/testresources/languages/langMissing/lang_en_us.properties (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/testresources/languages/langMissing/lang_uk_ua.properties (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/testresources/languages/uk_ua.properties (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/testresources/modrinth/fabric_modrinth.index.json (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/testresources/modrinth/forge_modrinth.index.json (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/testresources/modrinth/quilt_modrinth.index.json (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/testresources/multimc/all_the_mods_instance.cfg (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/testresources/multimc/better_mc_instance.cfg (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/testresources/multimc/fabric_mmc-pack.json (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/testresources/multimc/forge_mmc-pack.json (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/testresources/multimc/quilt_mmc-pack.json (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/testresources/plugins/disabled.txt (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/testresources/plugins/serverpackcreator-plugin-example-dev.jar (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/testresources/properties/filters/contains.properties (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/testresources/properties/filters/either.properties (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/testresources/properties/filters/end.properties (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/testresources/properties/filters/regex.properties (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/testresources/properties/filters/start.properties (100%)
 rename serverpackcreator-api/src/{jvmTest/resources/quilt_tests => test/resources/testresources/server_pack}/mods/testmod.jar (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/testresources/spcconfs/scriptSettings.conf (100%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/testresources/spcconfs/serverpackcreator.conf (98%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/testresources/spcconfs/serverpackcreator_copydirs.conf (99%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/testresources/spcconfs/serverpackcreator_fabric.conf (97%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/testresources/spcconfs/serverpackcreator_javapath.conf (99%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/testresources/spcconfs/serverpackcreator_legacyfabric.conf (97%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/testresources/spcconfs/serverpackcreator_minecraftversion.conf (99%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/testresources/spcconfs/serverpackcreator_modloaderfalse.conf (99%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/testresources/spcconfs/serverpackcreator_modloaderversion.conf (99%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/testresources/spcconfs/serverpackcreator_neoforge.conf (97%)
 rename serverpackcreator-api/src/{jvmTest => test}/resources/testresources/spcconfs/serverpackcreator_quilt.conf (97%)
 create mode 100644 serverpackcreator-web-frontend/src/boot/apexcharts.js
 delete mode 100644 serverpackcreator-web-frontend/src/components/ExampleComponent.vue
 create mode 100644 serverpackcreator-web-frontend/src/components/charts/AreaTimeSeriesChart.vue
 create mode 100644 serverpackcreator-web-frontend/src/components/charts/DiskUsageBarGraph.vue
 create mode 100644 serverpackcreator-web-frontend/src/components/charts/ModServerRunPieChart.vue
 delete mode 100644 serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/data/ModPackView.kt
 delete mode 100644 serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/data/ServerPackView.kt
 rename serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/{data => modpack}/ModPack.kt (86%)
 rename serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/modpack/{ModpackController.kt => ModPackController.kt} (84%)
 create mode 100644 serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/modpack/ModPackDownload.kt
 create mode 100644 serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/modpack/ModPackDownloadRepository.kt
 rename serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/modpack/{ModpackRepository.kt => ModPackRepository.kt} (72%)
 rename serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/modpack/{ModpackService.kt => ModPackService.kt} (76%)
 rename serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/modpack/{ModpackStatus.kt => ModPackStatus.kt} (97%)
 rename serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/{data => modpack}/ZipResponse.kt (93%)
 rename serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/{data => serverpack}/ServerPack.kt (95%)
 create mode 100644 serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/serverpack/ServerPackDownload.kt
 create mode 100644 serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/serverpack/ServerPackDownloadRepository.kt
 rename serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/{data => serverpack/customizing}/ClientMod.kt (96%)
 rename serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/{ => serverpack}/customizing/ClientModRepository.kt (90%)
 rename serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/{ => serverpack}/customizing/ModRepository.kt (94%)
 rename serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/{data => serverpack/customizing}/RunConfiguration.kt (98%)
 rename serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/{data => serverpack/customizing}/StartArgument.kt (92%)
 rename serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/{ => serverpack}/customizing/StartArgumentRepository.kt (91%)
 rename serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/{data => serverpack/customizing}/WhitelistedMod.kt (96%)
 rename serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/{ => serverpack}/customizing/WhitelistedModRepository.kt (89%)
 rename serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/{ => serverpack}/runconfiguration/RunConfigurationController.kt (93%)
 rename serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/{ => serverpack}/runconfiguration/RunConfigurationRepository.kt (83%)
 rename serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/{ => serverpack}/runconfiguration/RunConfigurationService.kt (91%)
 create mode 100644 serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/stats/StatsController.kt
 create mode 100644 serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/stats/creation/AmountPerDate.kt
 create mode 100644 serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/stats/creation/CreationStatsService.kt
 create mode 100644 serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/stats/disk/DiskStatsData.kt
 create mode 100644 serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/stats/disk/DiskStatsService.kt
 create mode 100644 serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/stats/downloads/DownloadStatsService.kt
 create mode 100644 serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/stats/packs/AmountStatsData.kt
 create mode 100644 serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/stats/packs/AmountStatsService.kt
 rename serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/{data => storage}/SavedFile.kt (95%)
 rename serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/{data => task}/ErrorEntry.kt (97%)
 rename serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/{data => task}/QueueEvent.kt (94%)
 rename serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/{data => versions}/VersionMetaResponse.kt (95%)
 rename serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/{ => versions}/VersionsController.kt (98%)
 create mode 100644 spc.install4j

diff --git a/.github/workflows/github-prerelease.yml b/.github/workflows/github-prerelease.yml
index fe25cf9cb..1a27f52d5 100644
--- a/.github/workflows/github-prerelease.yml
+++ b/.github/workflows/github-prerelease.yml
@@ -28,7 +28,7 @@ jobs:
       - name: Use tag
         run: echo ${{steps.tag.outputs.tag}}
 
-  jar:
+  jar-and-media:
     needs: preparations
     runs-on: ubuntu-latest
 
@@ -54,20 +54,26 @@ jobs:
         with:
           gradle-version: wrapper
 
+      - uses: luangong/setup-install4j@v1
+        with:
+          version: 10.0.7
+          license: ${{ secrets.INSTALL4J_LICENSE }}
+
       - name: Build release
         env:
           GITHUB_ACTOR: ${{ secrets.GITHUB_ACTOR }}
           GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
         run: |
           ./gradlew -Pversion="${{ needs.preparations.outputs.version }}" generateLicenseReport --info --full-stacktrace
-          ./gradlew -Pversion="${{ needs.preparations.outputs.version }}" build --info --full-stacktrace -x :serverpackcreator-api:jvmTest -x :serverpackcreator-web:test
+          ./gradlew -Pversion="${{ needs.preparations.outputs.version }}" build media --info --full-stacktrace -x :serverpackcreator-api:test -x :serverpackcreator-web:test
 
       # UPLOAD ARTIFACTS
       - uses: actions/upload-artifact@v4
         if: ${{ always() }}
         with:
-          name: build-artifacts
+          name: jar-media-build-artifacts
           path: |
+            media
             serverpackcreator-api/build
             serverpackcreator-app/build
             serverpackcreator-cli/build
@@ -87,283 +93,20 @@ jobs:
       - uses: actions/upload-artifact@v4
         if: ${{ always() }}
         with:
-          name: jar-release-artifacts
+          name: jar-media-release
           path: |
+            media/*.deb
+            media/*.rpm
+            media/*.dmg
+            media/*.sh
+            media/*.gz
+            media/*.exe
+            media/*.zip
             serverpackcreator-app/build/libs/ServerPackCreator-${{ needs.preparations.outputs.version }}.jar
             serverpackcreator-plugin-example/build/libs/ServerPackCreator-${{ needs.preparations.outputs.version }}-Example-Plugin.jar
           if-no-files-found: warn # 'warn' or 'ignore' are also available, defaults to `warn`
 
-  mac-01:
-    runs-on: macos-latest
-    needs: preparations
-    steps:
-      # GET THE LATEST CODE
-      - name: Checkout latest code
-        uses: actions/checkout@v4.1.1
-        with:
-          fetch-depth: 0
-
-      # BUILD PROJECT AND PUBLISH
-      - name: Set up JDK 21
-        uses: actions/setup-java@v4
-        with:
-          distribution: 'zulu'
-          java-version: '21'
-          check-latest: true
-
-      - name: Grant execute permission for gradlew
-        run: chmod +x gradlew
-
-      - uses: gradle/actions/setup-gradle@v3
-        with:
-          gradle-version: wrapper
-
-      - name: Build installer
-        env:
-          GITHUB_ACTOR: ${{ secrets.GITHUB_ACTOR }}
-          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
-        run: |
-          ./gradlew -Pversion="${{ needs.preparations.outputs.version }}" generateLicenseReport --info --full-stacktrace
-          ./gradlew :serverpackcreator-app:jpackage -Pversion="${{ needs.preparations.outputs.version }}" --info --full-stacktrace -x :serverpackcreator-api:jvmTest -x :serverpackcreator-web:test
-
-      - name: List After Build
-        run: ls serverpackcreator-app/build/dist/
-
-      - name: Rename MacOs
-        run: mv serverpackcreator-app/build/dist/ServerPackCreator*.pkg serverpackcreator-app/build/dist/ServerPackCreator-${{ needs.preparations.outputs.version }}-Installer-MacOS.pkg
-
-      - name: Artifacts
-        uses: actions/upload-artifact@v4
-        if: ${{ always() }}
-        with:
-          name: mac-01-release-artifacts
-          path: |
-            serverpackcreator-app/build/dist/ServerPackCreator-${{ needs.preparations.outputs.version }}-Installer-MacOS.pkg
-          if-no-files-found: warn # 'warn' or 'ignore' are also available, defaults to `warn`
-
-      - name: Upload
-        uses: actions/upload-artifact@v4
-        if: ${{ always() }}
-        with:
-          name: mac-01-installer-artifacts
-          path: |
-            serverpackcreator-app/build
-          if-no-files-found: warn # 'warn' or 'ignore' are also available, defaults to `warn`
-
-  windows-01:
-    runs-on: windows-latest
-    needs: preparations
-    steps:
-      # GET THE LATEST CODE
-      - name: Checkout latest code
-        uses: actions/checkout@v4.1.1
-        with:
-          fetch-depth: 0
-
-      # BUILD PROJECT AND PUBLISH
-      - name: Set up JDK 21
-        uses: actions/setup-java@v4
-        with:
-          distribution: 'zulu'
-          java-version: '21'
-          check-latest: true
-
-      - name: Grant execute permission for gradlew
-        run: chmod +x gradlew
-
-      - uses: gradle/actions/setup-gradle@v3
-        with:
-          gradle-version: wrapper
-
-      - name: Prepare wix-toolset
-        run: echo "${env:path};${env:wix}bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8
-
-      - name: Build installer
-        env:
-          GITHUB_ACTOR: ${{ secrets.GITHUB_ACTOR }}
-          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
-        run: |
-          ./gradlew -Pversion="${{ needs.preparations.outputs.version }}" generateLicenseReport --info --full-stacktrace
-          ./gradlew :serverpackcreator-app:jpackage -Pversion="${{ needs.preparations.outputs.version }}" --info --full-stacktrace -x :serverpackcreator-api:jvmTest -x :serverpackcreator-web:test
-
-      - name: List After Build
-        run: ls serverpackcreator-app/build/dist/
-
-      - name: Rename Windows
-        run: mv serverpackcreator-app/build/dist/ServerPackCreator*.msi serverpackcreator-app/build/dist/ServerPackCreator-${{ needs.preparations.outputs.version }}-Installer-Windows.msi
-
-      - name: Artifacts
-        uses: actions/upload-artifact@v4
-        if: ${{ always() }}
-        with:
-          name: windows-01-release-artifacts
-          path: |
-            serverpackcreator-app/build/dist/ServerPackCreator-${{ needs.preparations.outputs.version }}-Installer-Windows.msi
-          if-no-files-found: warn # 'warn' or 'ignore' are also available, defaults to `warn`
-
-      - name: Upload
-        uses: actions/upload-artifact@v4
-        if: ${{ always() }}
-        with:
-          name: windows-01-installer-artifacts
-          path: |
-            serverpackcreator-app/build
-          if-no-files-found: warn # 'warn' or 'ignore' are also available, defaults to `warn`
-
-  windows-02:
-    runs-on: windows-latest
-    needs: preparations
-    steps:
-      # GET THE LATEST CODE
-      - name: Checkout latest code
-        uses: actions/checkout@v4.1.1
-        with:
-          fetch-depth: 0
-
-      # BUILD PROJECT AND PUBLISH
-      - name: Set up JDK 21
-        id: java
-        uses: actions/setup-java@v4
-        with:
-          distribution: 'zulu'
-          java-version: '21'
-          check-latest: true
-          cache: 'gradle'
-
-      - name: Grant execute permission for gradlew
-        run: chmod +x gradlew
-
-      - uses: gradle/actions/setup-gradle@v3
-        with:
-          gradle-version: wrapper
-
-      - name: Prepare wix-toolset
-        run: echo "${env:path};${env:wix}bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8
-
-      - name: Prepare
-        env:
-          GITHUB_ACTOR: ${{ secrets.GITHUB_ACTOR }}
-          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
-        run: |
-          ./gradlew -Pversion="${{ needs.preparations.outputs.version }}" generateLicenseReport --info --full-stacktrace
-          ./gradlew -Pversion="${{ needs.preparations.outputs.version }}" build :serverpackcreator-app:copyDependencies :serverpackcreator-app:copyJar --info --full-stacktrace
-
-      - name: Build Image
-        run: |
-          $Version = "${{ needs.preparations.outputs.version }}".split("-")
-          jpackage `
-            --app-version $Version[0] `
-            --copyright "Copyright (C) 2024 Griefed" `
-            --description "Create server packs from Minecraft Forge, NeoForge, Fabric, Quilt or LegacyFabric modpacks." `
-            --dest "serverpackcreator-app\build\dist" `
-            --icon "serverpackcreator-app\jpackagerResources\app.ico" `
-            --input "serverpackcreator-app\build\jars" `
-            --java-options "-Dfile.encoding=UTF-8" `
-            --java-options "-Dlog4j2.formatMsgNoLookups=true" `
-            --main-class de.griefed.serverpackcreator.app.ServerPackCreatorKt `
-            --main-jar serverpackcreator-app-${{ needs.preparations.outputs.version }}.jar `
-            --name ServerPackCreator `
-            --resource-dir "serverpackcreator-app\jpackagerResources" `
-            --runtime-image "${{ steps.java.outputs.path }}" `
-            --temp "serverpackcreator-app\build\tmp\jpackager" `
-            --type "app-image" `
-            --vendor "griefed.de" `
-            --verbose
-
-      - name: List
-        run: dir serverpackcreator-app\build\dist
-
-      - name: Archive
-        uses: thedoctor0/zip-release@0.7.1
-        with:
-          type: 'zip'
-          directory: serverpackcreator-app/build/dist
-          path: 'ServerPackCreator'
-          filename: 'ServerPackCreator-Portable-Windows.zip'
-
-      - name: Rename Archive
-        run: mv serverpackcreator-app/build/dist/ServerPackCreator-Portable-Windows.zip serverpackcreator-app/build/dist/ServerPackCreator-${{ needs.preparations.outputs.version }}-Portable-Windows.zip
-
-      - name: List
-        run: dir serverpackcreator-app\build\dist
-
-      - name: Artifacts
-        uses: actions/upload-artifact@v4
-        if: ${{ always() }}
-        with:
-          name: windows-02-release-artifacts
-          path: |
-            serverpackcreator-app/build/dist/ServerPackCreator-${{ needs.preparations.outputs.version }}-Portable-Windows.zip
-          if-no-files-found: warn # 'warn' or 'ignore' are also available, defaults to `warn`
-
-      # UPLOAD OS-SPECIFICS
-      - name: Upload
-        uses: actions/upload-artifact@v4
-        if: ${{ always() }}
-        with:
-          name: windows-02-installer-artifacts
-          path: |
-            serverpackcreator-app/build
-          if-no-files-found: warn # 'warn' or 'ignore' are also available, defaults to `warn`
-
-  ubuntu-01:
-    runs-on: ubuntu-latest
-    needs: preparations
-    steps:
-      # GET THE LATEST CODE
-      - name: Checkout latest code
-        uses: actions/checkout@v4.1.1
-        with:
-          fetch-depth: 0
-
-      # BUILD PROJECT AND PUBLISH
-      - name: Set up JDK 21
-        uses: actions/setup-java@v4
-        with:
-          distribution: 'zulu'
-          java-version: '21'
-          check-latest: true
-
-      - name: Grant execute permission for gradlew
-        run: chmod +x gradlew
-
-      - uses: gradle/actions/setup-gradle@v3
-        with:
-          gradle-version: wrapper
-
-      - name: Build installer
-        env:
-          GITHUB_ACTOR: ${{ secrets.GITHUB_ACTOR }}
-          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
-        run: |
-          ./gradlew -Pversion="${{ needs.preparations.outputs.version }}" generateLicenseReport --info --full-stacktrace
-          ./gradlew :serverpackcreator-app:jpackage -Pversion="${{ needs.preparations.outputs.version }}" --info --full-stacktrace -x :serverpackcreator-api:jvmTest -x :serverpackcreator-web:test
-
-      - name: List After Build
-        run: ls serverpackcreator-app/build/dist/
-
-      - name: Rename
-        run: mv serverpackcreator-app/build/dist/serverpackcreator*.deb serverpackcreator-app/build/dist/ServerPackCreator-${{ needs.preparations.outputs.version }}-Installer-Ubuntu-amd64.deb
-
-      - name: Artifacts
-        uses: actions/upload-artifact@v4
-        if: ${{ always() }}
-        with:
-          name: ubuntu-01-release-artifacts
-          path: |
-            serverpackcreator-app/build/dist/ServerPackCreator-${{ needs.preparations.outputs.version }}-Installer-Ubuntu-amd64.deb
-          if-no-files-found: warn # 'warn' or 'ignore' are also available, defaults to `warn`
-
-      - name: Upload
-        uses: actions/upload-artifact@v4
-        if: ${{ always() }}
-        with:
-          name: ubuntu-01-installer-artifacts
-          path: |
-            serverpackcreator-app/build
-          if-no-files-found: warn # 'warn' or 'ignore' are also available, defaults to `warn`
-
-  ubuntu-02:
+  appimage:
     runs-on: ubuntu-latest
     needs: preparations
     steps:
@@ -410,7 +153,7 @@ jobs:
             --input serverpackcreator-app/build/jars \
             --java-options "-Dfile.encoding=UTF-8" \
             --java-options "-Dlog4j2.formatMsgNoLookups=true" \
-            --main-class de.griefed.serverpackcreator.app.ServerPackCreatorKt \
+            --main-class org.springframework.boot.loader.launch.JarLauncher \
             --main-jar serverpackcreator-app-${{ needs.preparations.outputs.version }}.jar \
             --name ServerPackCreator \
             --resource-dir serverpackcreator-app/jpackagerResources \
@@ -460,25 +203,15 @@ jobs:
         uses: actions/upload-artifact@v4
         if: ${{ always() }}
         with:
-          name: ubuntu-02-release-artifacts
+          name: appimage-release
           path: |
             serverpackcreator-app/build/dist/ServerPackCreator-${{ needs.preparations.outputs.version }}-Portable-Linux-x86_64.AppImage
           if-no-files-found: warn # 'warn' or 'ignore' are also available, defaults to `warn`
 
-      # UPLOAD OS-SPECIFICS
-      - name: Upload
-        uses: actions/upload-artifact@v4
-        if: ${{ always() }}
-        with:
-          name: ubuntu-02-installer-artifacts
-          path: |
-            serverpackcreator-app/build
-          if-no-files-found: warn # 'warn' or 'ignore' are also available, defaults to `warn`
-
   prerelease:
     if: ${{ always() }}
     runs-on: ubuntu-latest
-    needs: [preparations, jar, mac-01, windows-01, windows-02, ubuntu-01, ubuntu-02]
+    needs: [preparations, jar-and-media, appimage]
 
     steps:
       # GET THE LATEST CODE
@@ -529,27 +262,11 @@ jobs:
 
       - uses: actions/download-artifact@v4
         with:
-          name: jar-release-artifacts
-
-      - uses: actions/download-artifact@v4
-        with:
-          name: mac-01-release-artifacts
-
-      - uses: actions/download-artifact@v4
-        with:
-          name: windows-01-release-artifacts
-
-      - uses: actions/download-artifact@v4
-        with:
-          name: windows-02-release-artifacts
-
-      - uses: actions/download-artifact@v4
-        with:
-          name: ubuntu-01-release-artifacts
+          name: jar-media-release
 
       - uses: actions/download-artifact@v4
         with:
-          name: ubuntu-02-release-artifacts
+          name: appimage-release
 
       # GENERATE RELEASE
       - name: Create Release
@@ -564,10 +281,13 @@ jobs:
           prerelease: true
           fail_on_unmatched_files: false
           files: |
-            ServerPackCreator-${{ needs.preparations.outputs.version }}-Installer-MacOS.pkg
-            ServerPackCreator-${{ needs.preparations.outputs.version }}-Installer-Windows.msi
-            ServerPackCreator-${{ needs.preparations.outputs.version }}-Installer-Ubuntu-amd64.deb
-            ServerPackCreator-${{ needs.preparations.outputs.version }}-Portable-Windows.zip
+            media/*.deb
+            media/*.rpm
+            media/*.dmg
+            media/*.sh
+            media/*.gz
+            media/*.exe
+            media/*.zip
             ServerPackCreator-${{ needs.preparations.outputs.version }}-Portable-Linux-x86_64.AppImage
             serverpackcreator-app/build/libs/ServerPackCreator-${{ needs.preparations.outputs.version }}.jar
             serverpackcreator-plugin-example/build/libs/ServerPackCreator-${{ needs.preparations.outputs.version }}-Example-Plugin.jar
diff --git a/.github/workflows/github_release.yml b/.github/workflows/github_release.yml
index 8cb3599cd..091a93879 100644
--- a/.github/workflows/github_release.yml
+++ b/.github/workflows/github_release.yml
@@ -26,7 +26,7 @@ jobs:
       - name: Use tag
         run: echo ${{steps.tag.outputs.tag}}
 
-  jar:
+  jar-and-media:
     needs: preparations
     runs-on: ubuntu-latest
 
@@ -52,20 +52,26 @@ jobs:
         with:
           gradle-version: wrapper
 
+      - uses: luangong/setup-install4j@v1
+        with:
+          version: 10.0.7
+          license: ${{ secrets.INSTALL4J_LICENSE }}
+
       - name: Build release
         env:
           GITHUB_ACTOR: ${{ secrets.GITHUB_ACTOR }}
           GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
         run: |
           ./gradlew -Pversion="${{ needs.preparations.outputs.version }}" generateLicenseReport --info --full-stacktrace
-          ./gradlew -Pversion="${{ needs.preparations.outputs.version }}" build --info --full-stacktrace -x :serverpackcreator-api:jvmTest -x :serverpackcreator-web:test
+          ./gradlew -Pversion="${{ needs.preparations.outputs.version }}" build media --info --full-stacktrace -x :serverpackcreator-api:test -x :serverpackcreator-web:test
 
       # UPLOAD ARTIFACTS
       - uses: actions/upload-artifact@v4
         if: ${{ always() }}
         with:
-          name: build-artifacts
+          name: jar-media-build-artifacts
           path: |
+            media
             serverpackcreator-api/build
             serverpackcreator-app/build
             serverpackcreator-cli/build
@@ -85,282 +91,20 @@ jobs:
       - uses: actions/upload-artifact@v4
         if: ${{ always() }}
         with:
-          name: jar-release-artifacts
+          name: jar-media-release
           path: |
+            media/*.deb
+            media/*.rpm
+            media/*.dmg
+            media/*.sh
+            media/*.gz
+            media/*.exe
+            media/*.zip
             serverpackcreator-app/build/libs/ServerPackCreator-${{ needs.preparations.outputs.version }}.jar
             serverpackcreator-plugin-example/build/libs/ServerPackCreator-${{ needs.preparations.outputs.version }}-Example-Plugin.jar
           if-no-files-found: warn # 'warn' or 'ignore' are also available, defaults to `warn`
 
-  mac-01:
-    runs-on: macos-latest
-    needs: preparations
-    steps:
-      # GET THE LATEST CODE
-      - name: Checkout latest code
-        uses: actions/checkout@v4.1.1
-        with:
-          fetch-depth: 0
-
-      # BUILD PROJECT AND PUBLISH
-      - name: Set up JDK 21
-        uses: actions/setup-java@v4
-        with:
-          distribution: 'zulu'
-          java-version: '21'
-          check-latest: true
-
-      - name: Grant execute permission for gradlew
-        run: chmod +x gradlew
-
-      - uses: gradle/actions/setup-gradle@v3
-        with:
-          gradle-version: wrapper
-
-      - name: Build installer
-        env:
-          GITHUB_ACTOR: ${{ secrets.GITHUB_ACTOR }}
-          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
-        run: |
-          ./gradlew -Pversion="${{ needs.preparations.outputs.version }}" generateLicenseReport --info --full-stacktrace
-          ./gradlew :serverpackcreator-app:jpackage -Pversion="${{ needs.preparations.outputs.version }}" --info --full-stacktrace -x :serverpackcreator-api:jvmTest -x :serverpackcreator-web:test
-
-      - name: List After Build
-        run: ls serverpackcreator-app/build/dist/
-
-      - name: Rename MacOs
-        run: mv serverpackcreator-app/build/dist/ServerPackCreator*.pkg serverpackcreator-app/build/dist/ServerPackCreator-${{ needs.preparations.outputs.version }}-Installer-MacOS.pkg
-
-      - name: Artifacts
-        uses: actions/upload-artifact@v4
-        if: ${{ always() }}
-        with:
-          name: mac-01-release-artifacts
-          path: |
-            serverpackcreator-app/build/dist/ServerPackCreator-${{ needs.preparations.outputs.version }}-Installer-MacOS.pkg
-          if-no-files-found: warn # 'warn' or 'ignore' are also available, defaults to `warn`
-
-      - name: Installer Artifacts
-        uses: actions/upload-artifact@v4
-        if: ${{ always() }}
-        with:
-          name: mac-01-installer-artifacts
-          path: |
-            serverpackcreator-app/build
-          if-no-files-found: warn # 'warn' or 'ignore' are also available, defaults to `warn`
-
-  windows-01:
-    runs-on: windows-latest
-    needs: preparations
-    steps:
-      # GET THE LATEST CODE
-      - name: Checkout latest code
-        uses: actions/checkout@v4.1.1
-        with:
-          fetch-depth: 0
-
-      # BUILD PROJECT AND PUBLISH
-      - name: Set up JDK 21
-        uses: actions/setup-java@v4
-        with:
-          distribution: 'zulu'
-          java-version: '21'
-          check-latest: true
-
-      - name: Grant execute permission for gradlew
-        run: chmod +x gradlew
-
-      - uses: gradle/actions/setup-gradle@v3
-        with:
-          gradle-version: wrapper
-
-      - name: Prepare wix-toolset
-        run: echo "${env:path};${env:wix}bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8
-
-      - name: Build installer
-        env:
-          GITHUB_ACTOR: ${{ secrets.GITHUB_ACTOR }}
-          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
-        run: |
-          ./gradlew -Pversion="${{ needs.preparations.outputs.version }}" generateLicenseReport --info --full-stacktrace
-          ./gradlew :serverpackcreator-app:jpackage -Pversion="${{ needs.preparations.outputs.version }}" --info --full-stacktrace -x :serverpackcreator-api:jvmTest -x :serverpackcreator-web:test
-
-      - name: List After Build
-        run: ls serverpackcreator-app/build/dist/
-
-      - name: Rename Windows
-        run: mv serverpackcreator-app/build/dist/ServerPackCreator*.msi serverpackcreator-app/build/dist/ServerPackCreator-${{ needs.preparations.outputs.version }}-Installer-Windows.msi
-
-      - name: Artifacts
-        uses: actions/upload-artifact@v4
-        if: ${{ always() }}
-        with:
-          name: windows-01-release-artifacts
-          path: |
-            serverpackcreator-app/build/dist/ServerPackCreator-${{ needs.preparations.outputs.version }}-Installer-Windows.msi
-          if-no-files-found: warn # 'warn' or 'ignore' are also available, defaults to `warn`
-
-      - name: Upload
-        uses: actions/upload-artifact@v4
-        if: ${{ always() }}
-        with:
-          name: windows-01-installer-artifacts
-          path: |
-            serverpackcreator-app/build
-          if-no-files-found: warn # 'warn' or 'ignore' are also available, defaults to `warn`
-
-  windows-02:
-    runs-on: windows-latest
-    needs: preparations
-    steps:
-      # GET THE LATEST CODE
-      - name: Checkout latest code
-        uses: actions/checkout@v4.1.1
-        with:
-          fetch-depth: 0
-
-      # BUILD PROJECT AND PUBLISH
-      - name: Set up JDK 21
-        id: java
-        uses: actions/setup-java@v4
-        with:
-          distribution: 'zulu'
-          java-version: '21'
-          check-latest: true
-          cache: 'gradle'
-
-      - name: Grant execute permission for gradlew
-        run: chmod +x gradlew
-
-      - uses: gradle/actions/setup-gradle@v3
-        with:
-          gradle-version: wrapper
-
-      - name: Prepare wix-toolset
-        run: echo "${env:path};${env:wix}bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8
-
-      - name: Prepare
-        env:
-          GITHUB_ACTOR: ${{ secrets.GITHUB_ACTOR }}
-          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
-        run: |
-          ./gradlew -Pversion="${{ needs.preparations.outputs.version }}" generateLicenseReport --info --full-stacktrace
-          ./gradlew -Pversion="${{ needs.preparations.outputs.version }}" build :serverpackcreator-app:copyDependencies :serverpackcreator-app:copyJar :serverpackcreator-app:cleanTmpPackager --info --full-stacktrace
-
-      - name: Build Image
-        run: |
-          jpackage `
-            --app-version "${{ needs.preparations.outputs.version }}" `
-            --copyright "Copyright (C) 2024 Griefed" `
-            --description "Create server packs from Minecraft Forge, NeoForge, Fabric, Quilt or LegacyFabric modpacks." `
-            --dest "serverpackcreator-app\build\dist" `
-            --icon "serverpackcreator-app\jpackagerResources\app.ico" `
-            --input "serverpackcreator-app\build\jars" `
-            --java-options "-Dfile.encoding=UTF-8" `
-            --java-options "-Dlog4j2.formatMsgNoLookups=true" `
-            --main-class de.griefed.serverpackcreator.app.ServerPackCreatorKt `
-            --main-jar serverpackcreator-app-${{ needs.preparations.outputs.version }}.jar `
-            --name ServerPackCreator `
-            --resource-dir "serverpackcreator-app\jpackagerResources" `
-            --runtime-image "${{ steps.java.outputs.path }}" `
-            --temp "serverpackcreator-app\build\tmp\jpackager" `
-            --type "app-image" `
-            --vendor "griefed.de" `
-            --verbose
-
-      - name: List
-        run: dir serverpackcreator-app\build\dist
-
-      - name: Archive
-        uses: thedoctor0/zip-release@0.7.1
-        with:
-          type: 'zip'
-          directory: serverpackcreator-app/build/dist
-          path: 'ServerPackCreator'
-          filename: 'ServerPackCreator-Portable-Windows.zip'
-
-      - name: Rename Archive
-        run: mv serverpackcreator-app/build/dist/ServerPackCreator-Portable-Windows.zip serverpackcreator-app/build/dist/ServerPackCreator-${{ needs.preparations.outputs.version }}-Portable-Windows.zip
-
-      - name: List
-        run: dir serverpackcreator-app\build\dist
-
-      - name: Artifacts
-        uses: actions/upload-artifact@v4
-        if: ${{ always() }}
-        with:
-          name: windows-02-release-artifacts
-          path: |
-            serverpackcreator-app/build/dist/ServerPackCreator-${{ needs.preparations.outputs.version }}-Portable-Windows.zip
-          if-no-files-found: warn # 'warn' or 'ignore' are also available, defaults to `warn`
-
-      # UPLOAD OS-SPECIFICS
-      - name: Upload
-        uses: actions/upload-artifact@v4
-        if: ${{ always() }}
-        with:
-          name: windows-02-installer-artifacts
-          path: |
-            serverpackcreator-app/build
-          if-no-files-found: warn # 'warn' or 'ignore' are also available, defaults to `warn`
-
-  ubuntu-01:
-    runs-on: ubuntu-latest
-    needs: preparations
-    steps:
-      # GET THE LATEST CODE
-      - name: Checkout latest code
-        uses: actions/checkout@v4.1.1
-        with:
-          fetch-depth: 0
-
-      # BUILD PROJECT AND PUBLISH
-      - name: Set up JDK 21
-        uses: actions/setup-java@v4
-        with:
-          distribution: 'zulu'
-          java-version: '21'
-          check-latest: true
-
-      - name: Grant execute permission for gradlew
-        run: chmod +x gradlew
-
-      - uses: gradle/actions/setup-gradle@v3
-        with:
-          gradle-version: wrapper
-
-      - name: Build installer
-        env:
-          GITHUB_ACTOR: ${{ secrets.GITHUB_ACTOR }}
-          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
-        run: |
-          ./gradlew -Pversion="${{ needs.preparations.outputs.version }}" generateLicenseReport --info --full-stacktrace
-          ./gradlew :serverpackcreator-app:jpackage -Pversion="${{ needs.preparations.outputs.version }}" --info --full-stacktrace -x :serverpackcreator-api:jvmTest -x :serverpackcreator-web:test
-
-      - name: List After Build
-        run: ls serverpackcreator-app/build/dist/
-
-      - name: Rename
-        run: mv serverpackcreator-app/build/dist/serverpackcreator*.deb serverpackcreator-app/build/dist/ServerPackCreator-${{ needs.preparations.outputs.version }}-Installer-Ubuntu-amd64.deb
-
-      - name: Artifacts
-        uses: actions/upload-artifact@v4
-        if: ${{ always() }}
-        with:
-          name: ubuntu-01-release-artifacts
-          path: |
-            serverpackcreator-app/build/dist/ServerPackCreator-${{ needs.preparations.outputs.version }}-Installer-Ubuntu-amd64.deb
-          if-no-files-found: warn # 'warn' or 'ignore' are also available, defaults to `warn`
-
-      - name: Upload
-        uses: actions/upload-artifact@v4
-        if: ${{ always() }}
-        with:
-          name: ubuntu-01-installer-artifacts
-          path: |
-            serverpackcreator-app/build
-          if-no-files-found: warn # 'warn' or 'ignore' are also available, defaults to `warn`
-
-  ubuntu-02:
+  appimage:
     runs-on: ubuntu-latest
     needs: preparations
     steps:
@@ -406,7 +150,7 @@ jobs:
             --input serverpackcreator-app/build/jars \
             --java-options "-Dfile.encoding=UTF-8" \
             --java-options "-Dlog4j2.formatMsgNoLookups=true" \
-            --main-class de.griefed.serverpackcreator.app.ServerPackCreatorKt \
+            --main-class org.springframework.boot.loader.launch.JarLauncher \
             --main-jar serverpackcreator-app-${{ needs.preparations.outputs.version }}.jar \
             --name ServerPackCreator \
             --resource-dir serverpackcreator-app/jpackagerResources \
@@ -456,25 +200,15 @@ jobs:
         uses: actions/upload-artifact@v4
         if: ${{ always() }}
         with:
-          name: ubuntu-02-release-artifacts
+          name: appimage-release
           path: |
             serverpackcreator-app/build/dist/ServerPackCreator-${{ needs.preparations.outputs.version }}-Portable-Linux-x86_64.AppImage
           if-no-files-found: warn # 'warn' or 'ignore' are also available, defaults to `warn`
 
-      # UPLOAD OS-SPECIFICS
-      - name: Upload
-        uses: actions/upload-artifact@v4
-        if: ${{ always() }}
-        with:
-          name: ubuntu-02-installer-artifacts
-          path: |
-            serverpackcreator-app/build
-          if-no-files-found: warn # 'warn' or 'ignore' are also available, defaults to `warn`
-
   release:
     if: ${{ always() }}
     runs-on: ubuntu-latest
-    needs: [preparations, jar, mac-01, windows-01, windows-02, ubuntu-01, ubuntu-02]
+    needs: [preparations, jar-and-media, appimage]
 
     steps:
       # GET THE LATEST CODE
@@ -524,27 +258,11 @@ jobs:
 
       - uses: actions/download-artifact@v4
         with:
-          name: jar-release-artifacts
-
-      - uses: actions/download-artifact@v4
-        with:
-          name: mac-01-release-artifacts
-
-      - uses: actions/download-artifact@v4
-        with:
-          name: windows-01-release-artifacts
-
-      - uses: actions/download-artifact@v4
-        with:
-          name: windows-02-release-artifacts
-
-      - uses: actions/download-artifact@v4
-        with:
-          name: ubuntu-01-release-artifacts
+          name: jar-media-release
 
       - uses: actions/download-artifact@v4
         with:
-          name: ubuntu-02-release-artifacts
+          name: appimage-release
 
       # GENERATE RELEASE
       - name: Create Release
@@ -559,10 +277,13 @@ jobs:
           prerelease: false
           fail_on_unmatched_files: false
           files: |
-            ServerPackCreator-${{ needs.preparations.outputs.version }}-Installer-MacOS.pkg
-            ServerPackCreator-${{ needs.preparations.outputs.version }}-Installer-Windows.msi
-            ServerPackCreator-${{ needs.preparations.outputs.version }}-Installer-Ubuntu-amd64.deb
-            ServerPackCreator-${{ needs.preparations.outputs.version }}-Portable-Windows.zip
+            media/*.deb
+            media/*.rpm
+            media/*.dmg
+            media/*.sh
+            media/*.gz
+            media/*.exe
+            media/*.zip
             ServerPackCreator-${{ needs.preparations.outputs.version }}-Portable-Linux-x86_64.AppImage
             serverpackcreator-app/build/libs/ServerPackCreator-${{ needs.preparations.outputs.version }}.jar
             serverpackcreator-plugin-example/build/libs/ServerPackCreator-${{ needs.preparations.outputs.version }}-Example-Plugin.jar
diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
index 6b7c2c0ee..de0ebc572 100644
--- a/.github/workflows/test.yml
+++ b/.github/workflows/test.yml
@@ -6,7 +6,7 @@ on:
   workflow_dispatch:
 
 jobs:
-  jar:
+  jar-and-media:
     runs-on: ubuntu-latest
     steps:
 
@@ -28,16 +28,22 @@ jobs:
         with:
           gradle-version: wrapper
 
+      - uses: luangong/setup-install4j@v1
+        with:
+          version: 10.0.7
+          license: ${{ secrets.INSTALL4J_LICENSE }}
+
       - name: Build with Gradle
         run: |
           ./gradlew -Pversion=${{ steps.branch-name.outputs.current_branch }} generateLicenseReport --info --full-stacktrace
-          ./gradlew -Pversion=${{ steps.branch-name.outputs.current_branch }} build --info --full-stacktrace
+          ./gradlew -Pversion=${{ steps.branch-name.outputs.current_branch }} build media --info --full-stacktrace
 
       - uses: actions/upload-artifact@v4
         if: ${{ always() }}
         with:
-          name: build-artifacts-jar
+          name: jar-and-media
           path: |
+            media
             build
             buildSrc/build
             serverpackcreator-api/build
@@ -49,233 +55,7 @@ jobs:
             serverpackcreator-plugin-example/build
           if-no-files-found: warn # 'warn' or 'ignore' are also available, defaults to `warn`
 
-  mac-01:
-    runs-on: macos-latest
-    steps:
-      # GET THE LATEST CODE
-      - name: Checkout latest code
-        uses: actions/checkout@v4.1.1
-        with:
-          fetch-depth: 0
-
-      # BUILD PROJECT AND PUBLISH
-      - name: Set up JDK 21
-        uses: actions/setup-java@v4
-        with:
-          distribution: 'zulu'
-          java-version: '21'
-          check-latest: true
-          cache: 'gradle'
-
-      - name: Grant execute permission for gradlew
-        run: chmod +x gradlew
-
-      - uses: gradle/actions/setup-gradle@v3
-        with:
-          gradle-version: wrapper
-
-      - name: Build installer
-        env:
-          GITHUB_ACTOR: ${{ secrets.GITHUB_ACTOR }}
-          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
-        run: |
-          ./gradlew -Pversion=${{ steps.branch-name.outputs.current_branch }} generateLicenseReport --info --full-stacktrace
-          ./gradlew :serverpackcreator-app:jpackage --info --full-stacktrace
-
-      - name: Rename
-        run: mv serverpackcreator-app/build/dist/* serverpackcreator-app/build/dist/ServerPackCreator-Installer-MacOS-dev.pkg
-
-      # UPLOAD OS-SPECIFICS
-      - name: Upload
-        uses: actions/upload-artifact@v4
-        if: ${{ always() }}
-        with:
-          name: mac-01-artifacts
-          path: |
-            serverpackcreator-app/build
-          if-no-files-found: warn # 'warn' or 'ignore' are also available, defaults to `warn`
-
-  windows-01:
-    runs-on: windows-latest
-    steps:
-      # GET THE LATEST CODE
-      - name: Checkout latest code
-        uses: actions/checkout@v4.1.1
-        with:
-          fetch-depth: 0
-
-      # BUILD PROJECT AND PUBLISH
-      - name: Set up JDK 21
-        uses: actions/setup-java@v4
-        with:
-          distribution: 'zulu'
-          java-version: '21'
-          check-latest: true
-          cache: 'gradle'
-
-      - name: Grant execute permission for gradlew
-        run: chmod +x gradlew
-
-      - uses: gradle/actions/setup-gradle@v3
-        with:
-          gradle-version: wrapper
-
-      - name: Prepare wix-toolset
-        if: matrix.os == 'windows-latest'
-        run: echo "${env:path};${env:wix}bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8
-
-      - name: Build installer
-        env:
-          GITHUB_ACTOR: ${{ secrets.GITHUB_ACTOR }}
-          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
-        run: |
-          ./gradlew -Pversion=${{ steps.branch-name.outputs.current_branch }} generateLicenseReport --info --full-stacktrace
-          ./gradlew :serverpackcreator-app:jpackage --info --full-stacktrace
-
-      - name: Rename
-        run: mv serverpackcreator-app/build/dist/* serverpackcreator-app/build/dist/ServerPackCreator-Installer-Windows-dev.msi
-
-      # UPLOAD OS-SPECIFICS
-      - name: Upload
-        uses: actions/upload-artifact@v4
-        if: ${{ always() }}
-        with:
-          name: windows-01-artifacts
-          path: |
-            serverpackcreator-app/build
-          if-no-files-found: warn # 'warn' or 'ig
-
-  windows-02:
-    runs-on: windows-latest
-    steps:
-      # GET THE LATEST CODE
-      - name: Checkout latest code
-        uses: actions/checkout@v4.1.1
-        with:
-          fetch-depth: 0
-
-      # BUILD PROJECT AND PUBLISH
-      - name: Set up JDK 21
-        id: java
-        uses: actions/setup-java@v4
-        with:
-          distribution: 'zulu'
-          java-version: '21'
-          check-latest: true
-          cache: 'gradle'
-
-      - name: Grant execute permission for gradlew
-        run: chmod +x gradlew
-
-      - uses: gradle/actions/setup-gradle@v3
-        with:
-          gradle-version: wrapper
-
-      - name: Prepare wix-toolset
-        if: matrix.os == 'windows-latest'
-        run: echo "${env:path};${env:wix}bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8
-
-      - name: Prepare
-        env:
-          GITHUB_ACTOR: ${{ secrets.GITHUB_ACTOR }}
-          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
-        run: |
-          ./gradlew -Pversion=${{ steps.branch-name.outputs.current_branch }} generateLicenseReport --info --full-stacktrace
-          ./gradlew build :serverpackcreator-app:copyDependencies :serverpackcreator-app:copyJar --info --full-stacktrace
-
-      - name: Build Image
-        run: |
-          jpackage `
-            --app-version "6.6.6" `
-            --copyright "Copyright (C) 2024 Griefed" `
-            --description "Create server packs from Minecraft Forge, NeoForge, Fabric, Quilt or LegacyFabric modpacks." `
-            --dest "serverpackcreator-app\build\dist" `
-            --icon "serverpackcreator-app\jpackagerResources\app.ico" `
-            --input "serverpackcreator-app\build\jars" `
-            --java-options "-Dfile.encoding=UTF-8" `
-            --java-options "-Dlog4j2.formatMsgNoLookups=true" `
-            --main-class de.griefed.serverpackcreator.app.ServerPackCreatorKt `
-            --main-jar serverpackcreator-app-dev.jar `
-            --name ServerPackCreator `
-            --resource-dir "serverpackcreator-app\jpackagerResources" `
-            --runtime-image "${{ steps.java.outputs.path }}" `
-            --temp "serverpackcreator-app\build\tmp\jpackager" `
-            --type "app-image" `
-            --vendor "griefed.de" `
-            --verbose
-
-      - name: List
-        if: ${{ always() }}
-        run: dir serverpackcreator-app\build\dist
-
-      - name: Archive
-        uses: thedoctor0/zip-release@0.7.1
-        with:
-          type: 'zip'
-          directory: serverpackcreator-app/build/dist
-          path: 'ServerPackCreator'
-          filename: 'ServerPackCreator-Portable-Windows.zip'
-
-      - name: List
-        run: dir serverpackcreator-app\build\dist
-
-      # UPLOAD OS-SPECIFICS
-      - name: Upload
-        uses: actions/upload-artifact@v4
-        if: ${{ always() }}
-        with:
-          name: windows-02-artifacts
-          path: |
-            serverpackcreator-app/build/dist/ServerPackCreator-Portable-Windows.zip
-          if-no-files-found: warn # 'warn' or 'ignore' are also available, defaults to `warn`
-
-  ubuntu-01:
-    runs-on: ubuntu-latest
-    steps:
-      # GET THE LATEST CODE
-      - name: Checkout latest code
-        uses: actions/checkout@v4.1.1
-        with:
-          fetch-depth: 0
-
-      # BUILD PROJECT AND PUBLISH
-      - name: Set up JDK 21
-        uses: actions/setup-java@v4
-        with:
-          distribution: 'zulu'
-          java-version: '21'
-          check-latest: true
-          cache: 'gradle'
-
-      - name: Grant execute permission for gradlew
-        run: chmod +x gradlew
-
-      - uses: gradle/actions/setup-gradle@v3
-        with:
-          gradle-version: wrapper
-
-      - name: Build installer
-        env:
-          GITHUB_ACTOR: ${{ secrets.GITHUB_ACTOR }}
-          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
-        run: |
-          ./gradlew -Pversion=${{ steps.branch-name.outputs.current_branch }} generateLicenseReport --info --full-stacktrace
-          ./gradlew :serverpackcreator-app:jpackage --info --full-stacktrace
-
-      - name: Rename
-        run: mv serverpackcreator-app/build/dist/* serverpackcreator-app/build/dist/ServerPackCreator-Installer-Ubuntu-dev-amd64.deb
-
-      # UPLOAD OS-SPECIFICS
-      - name: Upload
-        uses: actions/upload-artifact@v4
-        if: ${{ always() }}
-        with:
-          name: ubuntu-01-artifacts
-          path: |
-            serverpackcreator-app/build
-          if-no-files-found: warn # 'warn' or 'ignore' are also available, defaults to `warn`
-
-  ubuntu-02:
+  appimage:
     runs-on: ubuntu-latest
     steps:
       # GET THE LATEST CODE
@@ -307,7 +87,7 @@ jobs:
           GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
         run: |
           ./gradlew -Pversion=${{ steps.branch-name.outputs.current_branch }} generateLicenseReport --info --full-stacktrace
-          ./gradlew build :serverpackcreator-app:copyDependencies :serverpackcreator-app:copyJar --info --full-stacktrace
+          ./gradlew build --info --full-stacktrace
 
       - name: Build Image
         run: |
@@ -317,10 +97,10 @@ jobs:
             --description "Create server packs from Minecraft Forge, NeoForge, Fabric, Quilt or LegacyFabric modpacks." \
             --dest serverpackcreator-app/build/dist \
             --icon serverpackcreator-app/jpackagerResources/app.png \
-            --input serverpackcreator-app/build/jars \
+            --input serverpackcreator-app/build/libs \
             --java-options "-Dfile.encoding=UTF-8" \
             --java-options "-Dlog4j2.formatMsgNoLookups=true" \
-            --main-class de.griefed.serverpackcreator.app.ServerPackCreatorKt \
+            --main-class org.springframework.boot.loader.launch.JarLauncher \
             --main-jar serverpackcreator-app-dev.jar \
             --name ServerPackCreator \
             --resource-dir serverpackcreator-app/jpackagerResources \
@@ -372,7 +152,7 @@ jobs:
         uses: actions/upload-artifact@v4
         if: ${{ always() }}
         with:
-          name: ubuntu-02-artifacts
+          name: appimage
           path: |
             serverpackcreator-app/build/dist/ServerPackCreator-Portable-Linux-x86_64.AppImage
           if-no-files-found: warn # 'warn' or 'ignore' are also available, defaults to `warn`
diff --git a/.github/workflows/update_readme.yml b/.github/workflows/update_readme.yml
index 0f5850e5b..7ba6669b7 100644
--- a/.github/workflows/update_readme.yml
+++ b/.github/workflows/update_readme.yml
@@ -12,9 +12,10 @@ jobs:
         uses: actions/checkout@v4
 
       - name: Add GitHub Sponsors to Readme
-        uses: JamesIves/github-sponsors-readme-action@v1.3.1
+        uses: JamesIves/github-sponsors-readme-action@v1.4
         with:
           token: ${{ secrets.GITHUB_TOKEN }}
+          active-only: false
 
       - uses: actions-cool/contributor-helper@v1.2.1
         with:
diff --git a/.gitignore b/.gitignore
index d18156163..9461539b3 100644
--- a/.gitignore
+++ b/.gitignore
@@ -377,11 +377,12 @@ serverpackcreator-app/src/main/resources/static
 serverpackcreator-api/main/resources/VERSION.txt
 serverpackcreator-api/tests/*
 !serverpackcreator-api/tests/.gitkeep
-serverpackcreator-api/src/jvmTest/resources/forge_tests_copy/
-serverpackcreator-api/src/jvmTest/resources/fabric_tests_copy/
-serverpackcreator-api/src/jvmTest/resources/legacyfabric_tests_copy/
-serverpackcreator-api/src/jvmTest/resources/quilt_tests_copy/
-serverpackcreator-api/src/jvmTest/resources/fabric_tests_server_pack.zip
-serverpackcreator-api/src/jvmTest/resources/forge_tests_server_pack.zip
-serverpackcreator-api/src/jvmTest/resources/quilt_tests_server_pack.zip
-
+serverpackcreator-api/src/test/resources/forge_tests_copy/
+serverpackcreator-api/src/test/resources/fabric_tests_copy/
+serverpackcreator-api/src/test/resources/legacyfabric_tests_copy/
+serverpackcreator-api/src/test/resources/quilt_tests_copy/
+serverpackcreator-api/src/test/resources/fabric_tests_server_pack.zip
+serverpackcreator-api/src/test/resources/forge_tests_server_pack.zip
+serverpackcreator-api/src/test/resources/quilt_tests_server_pack.zip
+
+/media/
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index e75fb4b8a..1f0cb09d3 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -39,6 +39,18 @@ Build Test:
   script:
     - echo "**** Building ServerPackCreator ****"
     - "./gradlew build --info --full-stacktrace"
+    - "./gradlew cyclonedxBom --info --full-stacktrace"
+    - echo "**** Uploading BOM ****"
+    - |
+      curl -X "POST" "$DEPENDENCYTRACK_URL" \
+        -H 'Content-Type: multipart/form-data' \
+        -H "X-Api-Key: $DEPENDENCYTRACK_TOKEN" \
+        -F "autoCreate=true" \
+        -F "projectName=ServerPackCreator" \
+        -F "projectVersion=$CI_COMMIT_BRANCH" \
+        -F "parentName=ServerPackCreator" \
+        -F "parentVersion=branches" \
+        -F "bom=@build/reports/bom.xml"
   retry: 1
   rules:
     - if: '$CI_SERVER_HOST == "git.griefed.de"'
@@ -64,7 +76,7 @@ Build Test:
     expire_in: 1 week
     reports:
       junit:
-        - serverpackcreator-api/build/test-results/jvmTest/TEST-*.xml
+        - serverpackcreator-api/build/test-results/test/TEST-*.xml
   cache:
     - key: $CACHE_KEY
       policy: $POLICY
@@ -135,7 +147,8 @@ Build Release:
   script:
     - echo "**** Building ServerPackCreator ****"
     - "./gradlew generateLicenseReport -Pversion=${CI_COMMIT_TAG} --info --full-stacktrace"
-    - "./gradlew build -Pversion=${CI_COMMIT_TAG} --info --full-stacktrace -x :serverpackcreator-api:jvmTest -x :serverpackcreator-web:test"
+    - "./gradlew build -Pversion=${CI_COMMIT_TAG} --info --full-stacktrace -x :serverpackcreator-api:test -x :serverpackcreator-web:test"
+    - "./gradlew cyclonedxBom -Pversion=${CI_COMMIT_TAG} --info --full-stacktrace"
     - echo "**** Listing build directory ****"
     - LC_COLLATE=C ls -ahl --group-directories-first --color=auto */build
     - LC_COLLATE=C ls -ahl --group-directories-first --color=auto */build/*
@@ -143,6 +156,25 @@ Build Release:
     - 'curl --header "JOB-TOKEN: ${CI_JOB_TOKEN}" --upload-file serverpackcreator-app/build/libs/serverpackcreator-app-${CI_COMMIT_TAG}.jar "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/${CI_PROJECT_NAME}/${CI_COMMIT_TAG}/${CI_PROJECT_NAME}-${CI_COMMIT_TAG}.jar"'
     - echo "**** Create asset links ****"
     - 'curl --request POST --header "PRIVATE-TOKEN: ${GITLAB_TOKEN}" --data tag_name="${CI_COMMIT_TAG}" --data name="${CI_PROJECT_NAME}-${CI_COMMIT_TAG}.jar" --data url="${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/${CI_PROJECT_NAME}/${CI_COMMIT_TAG}/${CI_PROJECT_NAME}-${CI_COMMIT_TAG}.jar" --data link_type="package" "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/releases/${CI_COMMIT_TAG}/assets/links"'
+    - echo "**** Uploading BOM ****"
+    - |
+      curl -X "POST" "$DEPENDENCYTRACK_URL" \
+        -H 'Content-Type: multipart/form-data' \
+        -H "X-Api-Key: $DEPENDENCYTRACK_TOKEN" \
+        -F "autoCreate=true" \
+        -F "projectName=ServerPackCreator" \
+        -F "projectVersion=${CI_COMMIT_TAG%%.*}" \
+        -F "bom=@build/reports/bom.xml"
+    - |
+      curl -X "POST" "$DEPENDENCYTRACK_URL" \
+        -H 'Content-Type: multipart/form-data' \
+        -H "X-Api-Key: $DEPENDENCYTRACK_TOKEN" \
+        -F "autoCreate=true" \
+        -F "projectName=ServerPackCreator" \
+        -F "projectVersion=${CI_COMMIT_TAG}" \
+        -F "parentName=ServerPackCreator" \
+        -F "parentVersion=${CI_COMMIT_TAG%%.*}" \
+        -F "bom=@build/reports/bom.xml"
   rules:
     - if: '$CI_COMMIT_TAG =~ /^\d+\.\d+\.\d+-(alpha|beta)\.\d+$/ && $CI_SERVER_HOST == "git.griefed.de"'
     - if: '$CI_COMMIT_TAG =~ /^\d+\.\d+\.\d+$/ && $CI_SERVER_HOST == "git.griefed.de"'
@@ -180,7 +212,7 @@ Sign Java Publication:
     - chmod +x gradlew
   script:
     - echo "**** Publishing Maven Artifacts ****"
-    - "./gradlew dokkaJavadocJar signJvmPublication -Pversion=${CI_COMMIT_TAG} --info --stacktrace -x :serverpackcreator-api:jvmTest -x :serverpackcreator-web:test"
+    - "./gradlew dokkaJavadocJar signJvmPublication -Pversion=${CI_COMMIT_TAG} --info --stacktrace -x :serverpackcreator-api:test -x :serverpackcreator-web:test"
   rules:
     - if: '$CI_COMMIT_TAG =~ /^\d+\.\d+\.\d+-beta\.\d+$/ && $CI_SERVER_HOST == "git.griefed.de"'
     - if: '$CI_COMMIT_TAG =~ /^\d+\.\d+\.\d+$/ && $CI_SERVER_HOST == "git.griefed.de"'
@@ -212,7 +244,7 @@ Publish GitHub:
       artifacts: true
   script:
     - echo "**** Publishing Maven Artifacts to GitHub ****"
-    - "./gradlew publishAllPublicationsToGitHubPackagesRepository -Pversion=${CI_COMMIT_TAG} --info --stacktrace -x :serverpackcreator-api:jvmTest -x :serverpackcreator-web:test"
+    - "./gradlew publishAllPublicationsToGitHubPackagesRepository -Pversion=${CI_COMMIT_TAG} --info --stacktrace -x :serverpackcreator-api:test -x :serverpackcreator-web:test"
   rules:
     - if: '$CI_COMMIT_TAG =~ /^\d+\.\d+\.\d+-beta\.\d+$/ && $CI_SERVER_HOST == "git.griefed.de"'
     - if: '$CI_COMMIT_TAG =~ /^\d+\.\d+\.\d+$/ && $CI_SERVER_HOST == "git.griefed.de"'
@@ -244,7 +276,7 @@ Publish GitLab:
       artifacts: true
   script:
     - echo "**** Publishing Maven Artifacts to GitLab ****"
-    - "./gradlew publishAllPublicationsToGitLabRepository -Pversion=${CI_COMMIT_TAG} --info --stacktrace -x :serverpackcreator-api:jvmTest -x :serverpackcreator-web:test"
+    - "./gradlew publishAllPublicationsToGitLabRepository -Pversion=${CI_COMMIT_TAG} --info --stacktrace -x :serverpackcreator-api:test -x :serverpackcreator-web:test"
   rules:
     - if: '$CI_COMMIT_TAG =~ /^\d+\.\d+\.\d+-beta\.\d+$/ && $CI_SERVER_HOST == "git.griefed.de"'
     - if: '$CI_COMMIT_TAG =~ /^\d+\.\d+\.\d+$/ && $CI_SERVER_HOST == "git.griefed.de"'
@@ -276,7 +308,7 @@ Publish GitGriefed:
       artifacts: true
   script:
     - echo "**** Publishing Maven Artifacts GitGriefed ****"
-    - "./gradlew publishAllPublicationsToGitGriefedRepository -Pversion=${CI_COMMIT_TAG} --info --stacktrace -x :serverpackcreator-api:jvmTest -x :serverpackcreator-web:test"
+    - "./gradlew publishAllPublicationsToGitGriefedRepository -Pversion=${CI_COMMIT_TAG} --info --stacktrace -x :serverpackcreator-api:test -x :serverpackcreator-web:test"
   rules:
     - if: '$CI_COMMIT_TAG =~ /^\d+\.\d+\.\d+-beta\.\d+$/ && $CI_SERVER_HOST == "git.griefed.de"'
     - if: '$CI_COMMIT_TAG =~ /^\d+\.\d+\.\d+$/ && $CI_SERVER_HOST == "git.griefed.de"'
@@ -308,7 +340,7 @@ Publish OSSRH:
       artifacts: true
   script:
     - echo "**** Publishing Maven Artifacts to OSSRH ****"
-    - "./gradlew publishToSonatype closeAndReleaseSonatypeStagingRepository -Pversion=${CI_COMMIT_TAG} --info --stacktrace -x :serverpackcreator-api:jvmTest -x :serverpackcreator-web:test"
+    - "./gradlew publishToSonatype closeAndReleaseSonatypeStagingRepository -Pversion=${CI_COMMIT_TAG} --info --stacktrace -x :serverpackcreator-api:test -x :serverpackcreator-web:test"
   rules:
     - if: '$CI_COMMIT_TAG =~ /^\d+\.\d+\.\d+-beta\.\d+$/ && $CI_SERVER_HOST == "git.griefed.de"'
     - if: '$CI_COMMIT_TAG =~ /^\d+\.\d+\.\d+$/ && $CI_SERVER_HOST == "git.griefed.de"'
diff --git a/.runConfigurations/Build All.run.xml b/.runConfigurations/Build All.run.xml
index 918c771a2..db5fec218 100644
--- a/.runConfigurations/Build All.run.xml	
+++ b/.runConfigurations/Build All.run.xml	
@@ -11,7 +11,6 @@
       <option name="taskNames">
         <list>
           <option value="clean" />
-          <option value="cleanAllTests" />
           <option value="build" />
         </list>
       </option>
diff --git a/.runConfigurations/Build without tests with version.run.xml b/.runConfigurations/Build without tests with version.run.xml
index b92c30a4e..2acc17c53 100644
--- a/.runConfigurations/Build without tests with version.run.xml	
+++ b/.runConfigurations/Build without tests with version.run.xml	
@@ -4,7 +4,7 @@
       <option name="executionName" />
       <option name="externalProjectPath" value="$PROJECT_DIR$" />
       <option name="externalSystemIdString" value="GRADLE" />
-      <option name="scriptParameters" value="-Pversion=5.0.1 --info --full-stacktrace -x :serverpackcreator-api:jvmTest -x :serverpackcreator-web:test" />
+      <option name="scriptParameters" value="-Pversion=5.0.1 --info --full-stacktrace -x :serverpackcreator-api:test -x :serverpackcreator-web:test" />
       <option name="taskDescriptions">
         <list />
       </option>
diff --git a/.runConfigurations/Build without tests.run.xml b/.runConfigurations/Build without tests.run.xml
index c580bcaf8..1bab9347c 100644
--- a/.runConfigurations/Build without tests.run.xml	
+++ b/.runConfigurations/Build without tests.run.xml	
@@ -4,14 +4,13 @@
       <option name="executionName" />
       <option name="externalProjectPath" value="$PROJECT_DIR$" />
       <option name="externalSystemIdString" value="GRADLE" />
-      <option name="scriptParameters" value="--info --full-stacktrace -x :serverpackcreator-api:jvmTest -x :serverpackcreator-web:test" />
+      <option name="scriptParameters" value="--info --full-stacktrace -x :serverpackcreator-api:test -x :serverpackcreator-web:test" />
       <option name="taskDescriptions">
         <list />
       </option>
       <option name="taskNames">
         <list>
           <option value="clean" />
-          <option value="cleanAllTests" />
           <option value="build" />
         </list>
       </option>
@@ -20,6 +19,7 @@
     <ExternalSystemDebugServerProcess>true</ExternalSystemDebugServerProcess>
     <ExternalSystemReattachDebugProcess>true</ExternalSystemReattachDebugProcess>
     <DebugAllEnabled>false</DebugAllEnabled>
+    <RunAsTest>false</RunAsTest>
     <method v="2" />
   </configuration>
 </component>
\ No newline at end of file
diff --git a/.runConfigurations/Clean.run.xml b/.runConfigurations/Clean.run.xml
index 1041fc8fb..cd3af3c69 100644
--- a/.runConfigurations/Clean.run.xml
+++ b/.runConfigurations/Clean.run.xml
@@ -11,7 +11,6 @@
       <option name="taskNames">
         <list>
           <option value="clean" />
-          <option value="cleanAllTests" />
         </list>
       </option>
       <option name="vmOptions" />
diff --git a/.runConfigurations/Debug Fat Jar.run.xml b/.runConfigurations/Debug Fat Jar.run.xml
index a492c8cd3..456ee778a 100644
--- a/.runConfigurations/Debug Fat Jar.run.xml	
+++ b/.runConfigurations/Debug Fat Jar.run.xml	
@@ -5,7 +5,7 @@
     <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$\serverpackcreator-app\tests" />
     <option name="ALTERNATIVE_JRE_PATH" />
     <method v="2">
-      <option name="Gradle.BeforeRunTask" enabled="false" tasks="clean cleanAllTests build" externalProjectPath="$PROJECT_DIR$" vmOptions="" scriptParameters=" --info --full-stacktrace -x :serverpackcreator-api:jvmTest -x :serverpackcreator-web:test" />
+      <option name="Gradle.BeforeRunTask" enabled="false" tasks="clean build" externalProjectPath="$PROJECT_DIR$" vmOptions="" scriptParameters=" --info --full-stacktrace -x :serverpackcreator-api:test -x :serverpackcreator-web:test" />
     </method>
   </configuration>
 </component>
\ No newline at end of file
diff --git a/Dockerfile b/Dockerfile
index e7712c360..e0842e87f 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -11,7 +11,7 @@ RUN \
   dos2unix gradlew && chmod +x gradlew && \
   sh gradlew -Pversion="$VERSION" \
     build --info --full-stacktrace \
-    -x :serverpackcreator-api:jvmTest -x :serverpackcreator-web:test && \
+    -x :serverpackcreator-api:test -x :serverpackcreator-web:test && \
   wget -O zulu21.tar.gz https://cdn.azul.com/zulu/bin/zulu21.30.15-ca-jdk21.0.1-linux_x64.tar.gz && \
   tar -xvf zulu21.tar.gz -C /tmp/serverpackcreator/java --strip-components=1
 
diff --git a/HELP.md b/HELP.md
index 1b4cbb7d6..15a19a185 100644
--- a/HELP.md
+++ b/HELP.md
@@ -849,24 +849,18 @@ That being said: You can delete a server pack by removing the corresponding file
 ## Keeping Data
 
 You can disable the cleanup of an already generated server pack in order to keep data between generations.
-This is useful if you ran the server pack and generated a world or similar things. Scripts, icon and properties will always be updated.
+This is useful if you ran the server pack and generated world or similar. Scripts, icon and properties will always be updated
 
 Keep in mind, though, that any ZIP-archived generated this way may contain data which is not allowed on platforms such as Modrinth or CurseForge.
-Turning overwrites off is probably most useful if the modpack from which the server pack is generated didn't have a change of mods or mod-configs
-between generations.
 
 You may also run the risk of having duplicate mods if the mods in your modpack change or are updated between generations.
-If overwrites, and thus cleanups, are disabled, and you run into this, then only you yourself are to blame. 😅
-You have been warned.
+If overwrites, and thus cleanups, are disabled, and you run into this
 
 ## Multiple Java Installations
 
 If you manage multiple modpacks and they require different Java versions to run, then you can make use of ServerPackCreators
-feature to store paths to your Java installations of different versions. Changing the Minecraft version for your server pack will then update
-the path to the Java installation in the Advanced-Section to reflect the required Java-install.
-
-This feature is most helpful when you want to quickly test the generated server pack without having to meddle with the
-Java path inside the `variables.txt` yourself.
+feature to use store paths to your Java installations. Changing the Miencraft version for your server pack will then update
+the path to the Java installation in the Advanced-Section to reflect the required Java install.
 
 Note: This path will not be present in the `variables.txt` in the ZIP-archive of your server pack. If you disabled `Server Pack Overwrites`, then the updated Java path may end up in the `variables.txt` inside the ZIP-archive. Use with caution!
 
diff --git a/LICENSE b/LICENSE
index 8000a6faa..20fb9c7da 100644
--- a/LICENSE
+++ b/LICENSE
@@ -456,49 +456,3 @@ SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
 DAMAGES.
 
                      END OF TERMS AND CONDITIONS
-
-           How to Apply These Terms to Your New Libraries
-
-  If you develop a new library, and you want it to be of the greatest
-possible use to the public, we recommend making it free software that
-everyone can redistribute and change.  You can do so by permitting
-redistribution under these terms (or, alternatively, under the terms of the
-ordinary General Public License).
-
-  To apply these terms, attach the following notices to the library.  It is
-safest to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least the
-"copyright" line and a pointer to where the full notice is found.
-
-    <one line to give the library's name and a brief idea of what it does.>
-    Copyright (C) <year>  <name of author>
-
-    This library is free software; you can redistribute it and/or
-    modify it under the terms of the GNU Lesser General Public
-    License as published by the Free Software Foundation; either
-    version 2.1 of the License, or (at your option) any later version.
-
-    This library is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-    Lesser General Public License for more details.
-
-    You should have received a copy of the GNU Lesser General Public
-    License along with this library; if not, write to the Free Software
-    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301
-    USA
-
-Also add information on how to contact you by electronic and paper mail.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the library, if
-necessary.  Here is a sample; alter the names:
-
-  Yoyodyne, Inc., hereby disclaims all copyright interest in the
-  library `Frob' (a library for tweaking knobs) written by James Random
-  Hacker.
-
-  <signature of Ty Coon>, 1 April 1990
-  Ty Coon, President of Vice
-
-That's all there is to it!
diff --git a/README.md b/README.md
index c76fbf1b3..b354e948b 100644
--- a/README.md
+++ b/README.md
@@ -314,8 +314,15 @@ Huge shoutout and thank you!**
 
 ## ✨ Thanks to all of my Supporters and Sponsors ✨
 
+### Sponsors
+
 <!-- sponsors --><a href="https://github.com/kreezxil"><img src="https://github.com/kreezxil.png" width="60px" alt="" /></a><!-- sponsors -->
 
+### Contributors
+
+<!-- contributors -->
+<!-- contributors end-->
+
 ---
 
 ## 7. Libraries and Licenses
diff --git a/build.gradle.kts b/build.gradle.kts
index 2ea76839d..60d54a1c3 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -1,31 +1,32 @@
 
+import com.install4j.gradle.Install4jTask
 import de.griefed.common.gradle.LicenseAgreementRenderer
 import de.griefed.common.gradle.SubprojectLicenseFilter
+import org.cyclonedx.model.AttachmentText
+import org.cyclonedx.model.License
+import org.cyclonedx.model.OrganizationalContact
+import org.gradle.internal.os.OperatingSystem
 import org.gradle.plugins.ide.idea.model.IdeaLanguageLevel
-import java.io.FileInputStream
-import java.util.*
+import java.time.LocalDate
 
 plugins {
     idea
     kotlin("jvm")
     id("io.github.gradle-nexus.publish-plugin") version "1.3.0"
     id("com.github.jk1.dependency-license-report")
-}
-
-val props = Properties()
-FileInputStream(file("gradle.properties")).use {
-    props.load(it)
+    id("com.install4j.gradle")
+    id("org.cyclonedx.bom") version "1.8.2"
 }
 
 idea {
     project {
-        languageLevel = IdeaLanguageLevel(props.getProperty("jdkVersion"))
-        jdkName = props.getProperty("jdkVersion")
+        languageLevel = IdeaLanguageLevel(properties["jdkVersion"])
+        jdkName = properties["jdkVersion"] as String
         modules.forEach {
             it.isDownloadJavadoc = true
             it.isDownloadSources = true
-            it.languageLevel = IdeaLanguageLevel(props.getProperty("jdkVersion"))
-            it.jdkName = props.getProperty("jdkVersion")
+            it.languageLevel = IdeaLanguageLevel(properties["jdkVersion"])
+            it.jdkName = properties["jdkVersion"] as String
         }
     }
 }
@@ -58,6 +59,36 @@ nexusPublishing {
     }
 }
 
+tasks.cyclonedxBom {
+    setIncludeConfigs(listOf("runtimeClasspath"))
+    setSkipConfigs(listOf("compileClasspath", "testCompileClasspath"))
+    setProjectType("application")
+    setSchemaVersion("1.5")
+    setDestination(project.file("build/reports"))
+    setOutputName("bom")
+    //setOutputFormat("json")
+    setIncludeBomSerialNumber(true)
+
+    val organizationalContact = OrganizationalContact()
+    organizationalContact.name = "Griefed"
+    organizationalContact.email = "griefed@griefed.de"
+    setOrganizationalEntity { oe ->
+        oe.name = "Griefed"
+        oe.urls = listOf("griefed.de")
+        oe.addContact(organizationalContact)
+    }
+
+    val attachementText = AttachmentText()
+    attachementText.text = File(projectDir,"LICENSE").readText()
+    val license = License()
+    license.name = "LGPL-2.1"
+    license.setLicenseText(attachementText)
+    license.url = "https:github.com/Griefed/ServerPackCreator/blob/main/LICENSE"
+    setLicenseChoice { lc ->
+        lc.addLicense(license)
+    }
+}
+
 licenseReport {
     outputDir = "$projectDir/licenses"
     configurations = arrayOf("runtimeClasspath", "compileClasspath")
@@ -70,12 +101,13 @@ licenseReport {
     renderers = arrayOf(
         com.github.jk1.license.render.InventoryHtmlReportRenderer("index.html", "Dependency Licences"),
         com.github.jk1.license.render.InventoryMarkdownReportRenderer("licences.md", "Dependency Licenses"),
-        LicenseAgreementRenderer("LICENSE-AGREEMENT")
+        LicenseAgreementRenderer("LICENSE-AGREEMENT"),
+        LicenseAgreementRenderer("LICENSE-AGREEMENT.txt")
     )
 }
 
 val appPlugins = File("serverpackcreator-app/tests/plugins")
-val apiPlugins = File("serverpackcreator-api/src/jvmTest/resources/testresources/plugins")
+val apiPlugins = File("serverpackcreator-api/src/test/resources/testresources/plugins")
 val kotlinPlugin =
     project.childProjects["serverpackcreator-plugin-example"]?.tasks?.jar?.get()?.archiveFile?.get()?.asFile?.toPath()
 val licenseReports = File("licenses")
@@ -128,4 +160,34 @@ tasks.register<Copy>("copyLicenseReport") {
 tasks.generateLicenseReport {
     mustRunAfter(tasks.getByName("cleanLicenseReport"))
     finalizedBy(tasks.getByName("copyLicenseReport"))
+}
+
+install4j {
+    //Set the install4jHomeDir-property for building on your own machine, or use the paths listed below according
+    //to your operating system family.
+    installDir = if (properties["install4jHomeDir"].toString().isNotBlank()) {
+        file(properties["install4jHomeDir"].toString())
+    } else if (OperatingSystem.current().isWindows) {
+        file("C:\\Program Files\\install4j")
+    } else if (OperatingSystem.current().isMacOsX) {
+        //Ensure your install4j installation is available under this location
+        file("/Applications/install4j.app")
+    } else if (OperatingSystem.current().isLinux)  {
+        //Ensure your install4j installation is available under this location
+        file("/opt/install4j")
+    } else {
+        file(properties["install4jHomeDir"].toString())
+    }
+    verbose = true
+}
+
+task("media", Install4jTask::class) {
+    mustRunAfter(tasks.build)
+    release = version.toString()
+    projectFile = "spc.install4j"
+    variables = hashMapOf<Any, Any>(
+        "projectDir" to rootDir.absolutePath,
+        "projectVersion" to version.toString(),
+        "projectYear" to LocalDate.now().year.toString()
+    )
 }
\ No newline at end of file
diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts
index f100f098a..8fa62c219 100644
--- a/buildSrc/build.gradle.kts
+++ b/buildSrc/build.gradle.kts
@@ -21,15 +21,15 @@ FileInputStream(file("../gradle.properties")).use {
 
 dependencies {
     implementation("org.jetbrains.kotlin:kotlin-gradle-plugin:${props.getProperty("kotlinVersion")}")
-    implementation("org.springframework.boot:spring-boot-gradle-plugin:3.2.0")
-    implementation("io.spring.gradle:dependency-management-plugin:1.1.4")
-    implementation("org.jetbrains.kotlin:kotlin-allopen:1.9.10")
-    implementation("org.jetbrains.kotlin.plugin.jpa:org.jetbrains.kotlin.plugin.jpa.gradle.plugin:1.9.21")
-    implementation("org.jetbrains.dokka:dokka-gradle-plugin:1.9.10")
+    implementation("org.springframework.boot:spring-boot-gradle-plugin:3.3.0")
+    implementation("io.spring.gradle:dependency-management-plugin:1.1.5")
+    implementation("org.jetbrains.kotlin:kotlin-allopen:1.9.23")
+    implementation("org.jetbrains.kotlin.plugin.jpa:org.jetbrains.kotlin.plugin.jpa.gradle.plugin:1.9.23")
+    implementation("org.jetbrains.dokka:dokka-gradle-plugin:1.9.20")
     implementation("org.panteleyev:jpackage-gradle-plugin:1.5.2")
     implementation("com.github.jk1:gradle-license-report:2.5")
     implementation("org.siouan.frontend-jdk11:org.siouan.frontend-jdk11.gradle.plugin:6.0.0")
-
+    implementation("gradle.plugin.install4j.install4j.buildtools:gradle_publish:10.0.7")
 }
 
 tasks.compileKotlin<org.jetbrains.kotlin.gradle.tasks.KotlinCompile> {
diff --git a/buildSrc/src/main/kotlin/serverpackcreator.java-conventions.gradle.kts b/buildSrc/src/main/kotlin/serverpackcreator.java-conventions.gradle.kts
index 2541e8415..d05544df6 100644
--- a/buildSrc/src/main/kotlin/serverpackcreator.java-conventions.gradle.kts
+++ b/buildSrc/src/main/kotlin/serverpackcreator.java-conventions.gradle.kts
@@ -106,8 +106,6 @@ tasks.jar {
     manifest {
         attributes(
             mapOf(
-                "Implementation-Title" to project.name,
-                "Implementation-Version" to project.version,
                 "Built-By" to System.getProperty("user.name"),
                 "Build-Timestamp" to SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ").format(Date()),
                 "Created-By" to "Gradle ${gradle.gradleVersion}",
diff --git a/buildSrc/src/main/kotlin/serverpackcreator.kotlin-multiplatform-conventions.gradle.kts b/buildSrc/src/main/kotlin/serverpackcreator.kotlin-multiplatform-conventions.gradle.kts
deleted file mode 100644
index c92bd8e7b..000000000
--- a/buildSrc/src/main/kotlin/serverpackcreator.kotlin-multiplatform-conventions.gradle.kts
+++ /dev/null
@@ -1,71 +0,0 @@
-import de.griefed.common.gradle.constant.JDK_VERSION
-import de.griefed.common.gradle.constant.KOTLIN_VERSION
-import java.text.SimpleDateFormat
-import java.util.*
-
-plugins {
-    id("serverpackcreator.java-conventions")
-    kotlin("multiplatform")
-}
-
-repositories {
-    mavenCentral()
-}
-
-kotlin {
-    jvm {
-        compilations.all {
-            val list = kotlinOptions.freeCompilerArgs.toMutableList()
-            list.add("-Xexpect-actual-classes")
-            kotlinOptions.freeCompilerArgs = list.toList()
-            kotlinOptions.allWarningsAsErrors = false
-            kotlinOptions.apiVersion = KOTLIN_VERSION
-            kotlinOptions.jvmTarget = JDK_VERSION
-            kotlinOptions.languageVersion = KOTLIN_VERSION
-            jvmToolchain {
-                languageVersion.set(
-                    JavaLanguageVersion.of(JDK_VERSION)
-                )
-            }
-            withJava()
-            testRuns["test"].executionTask.configure {
-                useJUnitPlatform()
-            }
-            tasks.withType<Jar> {
-                doFirst {
-                    duplicatesStrategy = DuplicatesStrategy.INCLUDE
-                    manifest {
-                        attributes(
-                            mapOf(
-                                "Implementation-Title" to project.name,
-                                "Implementation-Version" to project.version,
-                                "Built-By" to System.getProperty("user.name"),
-                                "Build-Timestamp" to SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ").format(Date()),
-                                "Created-By" to "Gradle ${gradle.gradleVersion}",
-                                "Build-Jdk" to "${System.getProperty("java.version")} (${System.getProperty("java.vendor")} ${
-                                    System.getProperty("java.vm.version")
-                                })",
-                                "Build-OS" to "${System.getProperty("os.name")} ${System.getProperty("os.arch")} ${
-                                    System.getProperty("os.version")
-                                }",
-                                "Implementation-Vendor" to "Griefed",
-                                "Implementation-Version" to project.version,
-                                "Implementation-Title" to project.name
-                            )
-                        )
-                    }
-                }
-            }
-        }
-    }
-//    js(IR) {
-//        useCommonJs()
-//        browser {
-//            commonWebpackConfig {
-//                cssSupport {
-//                    enabled = true
-//                }
-//            }
-//        }
-//    }
-}
\ No newline at end of file
diff --git a/buildSrc/src/main/kotlin/serverpackcreator.quasar-conventions.gradle.kts b/buildSrc/src/main/kotlin/serverpackcreator.quasar-conventions.gradle.kts
index 590b22009..ca45e0a55 100644
--- a/buildSrc/src/main/kotlin/serverpackcreator.quasar-conventions.gradle.kts
+++ b/buildSrc/src/main/kotlin/serverpackcreator.quasar-conventions.gradle.kts
@@ -11,7 +11,7 @@ repositories {
 frontend {
     packageJsonDirectory.set(project.layout.projectDirectory.asFile)
 
-    nodeVersion.set("16.9.1")
+    nodeVersion.set("18.20.2")
     nodeInstallDirectory.set(project.layout.projectDirectory.dir("node"))
 
     yarnEnabled.set(false)
diff --git a/docker-compose-dev.yml b/docker-compose-dev.yml
index ecdf86b5c..bbbfb25bf 100644
--- a/docker-compose-dev.yml
+++ b/docker-compose-dev.yml
@@ -36,7 +36,7 @@ services:
       - SPC_CONFIGURATION_AIKAR=-Xms4G -Xmx4G -XX\:+UseG1GC -XX\:+ParallelRefProcEnabled -XX\:MaxGCPauseMillis\=200 -XX\:+UnlockExperimentalVMOptions -XX\:+DisableExplicitGC -XX\:+AlwaysPreTouch -XX\:G1NewSizePercent\=30 -XX\:G1MaxNewSizePercent\=40 -XX\:G1HeapRegionSize\=8M -XX\:G1ReservePercent\=20 -XX\:G1HeapWastePercent\=5 -XX\:G1MixedGCCountTarget\=4 -XX\:InitiatingHeapOccupancyPercent\=15 -XX\:G1MixedGCLiveThresholdPercent\=90 -XX\:G1RSetUpdatingPauseTimePercent\=5 -XX\:SurvivorRatio\=32 -XX\:+PerfDisableSharedMem -XX\:MaxTenuringThreshold\=1 -Dusing.aikars.flags\=https\://mcflags.emc.gs -Daikars.new.flags\=true
       - SPC_CONFIGURATION_DIRECTORIES_MUSTINCLUDE=addonpacks,blueprints,config,configs,customnpcs,defaultconfigs,global_data_packs,global_packs,kubejs,maps,mods,openloader,scripts,shrines-saves,structures,structurize,worldshape,Zoestria
       - SPC_CONFIGURATION_DIRECTORIES_SHOULDEXCLUDE=animation,asm,cache,changelogs,craftpresence,crash-reports,downloads,icons,libraries,local,logs,overrides,packmenu,profileImage,profileImage,resourcepacks,screenshots,server_pack,shaderpacks,simple-rpc,tv-cache
-      - SPC_CONFIGURATION_FALLBACK_UPDATEURL=https\://raw.githubusercontent.com/Griefed/ServerPackCreator/main/serverpackcreator-api/src/jvmMain/resources/serverpackcreator.properties
+      - SPC_CONFIGURATION_FALLBACK_UPDATEURL=https\://raw.githubusercontent.com/Griefed/ServerPackCreator/main/serverpackcreator-api/src/main/resources/serverpackcreator.properties
       - SPC_SERVERPACK_AUTODISCOVERY_ENABLED=true
       - SPC_SERVERPACK_AUTODISCOVERY_FILTER=START
       - SPC_SERVERPACK_ZIP_EXCLUDE=minecraft_server.MINECRAFT_VERSION.jar,server.jar,libraries/net/minecraft/server/MINECRAFT_VERSION/server-MINECRAFT_VERSION.jar
diff --git a/docker-compose.yml b/docker-compose.yml
index 782f85064..e7f76af29 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -32,7 +32,7 @@ services:
       - SPC_CONFIGURATION_AIKAR=-Xms4G -Xmx4G -XX\:+UseG1GC -XX\:+ParallelRefProcEnabled -XX\:MaxGCPauseMillis\=200 -XX\:+UnlockExperimentalVMOptions -XX\:+DisableExplicitGC -XX\:+AlwaysPreTouch -XX\:G1NewSizePercent\=30 -XX\:G1MaxNewSizePercent\=40 -XX\:G1HeapRegionSize\=8M -XX\:G1ReservePercent\=20 -XX\:G1HeapWastePercent\=5 -XX\:G1MixedGCCountTarget\=4 -XX\:InitiatingHeapOccupancyPercent\=15 -XX\:G1MixedGCLiveThresholdPercent\=90 -XX\:G1RSetUpdatingPauseTimePercent\=5 -XX\:SurvivorRatio\=32 -XX\:+PerfDisableSharedMem -XX\:MaxTenuringThreshold\=1 -Dusing.aikars.flags\=https\://mcflags.emc.gs -Daikars.new.flags\=true #Keep an eye out for proper escaping!
       - SPC_CONFIGURATION_DIRECTORIES_MUSTINCLUDE=addonpacks,blueprints,config,configs,customnpcs,defaultconfigs,global_data_packs,global_packs,kubejs,maps,mods,openloader,scripts,shrines-saves,structures,structurize,worldshape,Zoestria
       - SPC_CONFIGURATION_DIRECTORIES_SHOULDEXCLUDE=animation,asm,cache,changelogs,craftpresence,crash-reports,downloads,icons,libraries,local,logs,overrides,packmenu,profileImage,profileImage,resourcepacks,screenshots,server_pack,shaderpacks,simple-rpc,tv-cache
-      - SPC_CONFIGURATION_FALLBACK_UPDATEURL=https\://raw.githubusercontent.com/Griefed/ServerPackCreator/main/serverpackcreator-api/src/jvmMain/resources/serverpackcreator.properties
+      - SPC_CONFIGURATION_FALLBACK_UPDATEURL=https\://raw.githubusercontent.com/Griefed/ServerPackCreator/main/serverpackcreator-api/src/main/resources/serverpackcreator.properties
       - SPC_SERVERPACK_AUTODISCOVERY_ENABLED=true
       - SPC_SERVERPACK_AUTODISCOVERY_FILTER=START
       - SPC_SERVERPACK_ZIP_EXCLUDE=minecraft_server.MINECRAFT_VERSION.jar,server.jar,libraries/net/minecraft/server/MINECRAFT_VERSION/server-MINECRAFT_VERSION.jar
diff --git a/gradle.properties b/gradle.properties
index 029e4b0bd..ce865f79e 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -6,9 +6,11 @@ org.gradle.caching=true
 kotlin.code.style=official
 kotlin.js.generate.executable.default=false
 kotlin.build.report.enable=true
-kotlinVersion=1.9.21
+kotlinVersion=1.9.23
 kotlinMajor=1.9
 jdkVersion=21
 
 group=de.griefed.serverpackcreator
 version=dev
+
+install4jHomeDir=
\ No newline at end of file
diff --git a/img/banner_installer.png b/img/banner_installer.png
new file mode 100644
index 0000000000000000000000000000000000000000..37555d353684ba8e8ee8113700fb064b6c28fce4
GIT binary patch
literal 104129
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
N002ovPDHLkV1l?nDjom;

literal 0
HcmV?d00001

diff --git a/img/banner_installer_fin.png b/img/banner_installer_fin.png
new file mode 100644
index 0000000000000000000000000000000000000000..0d53a1edba885fa95cb8e84900ffbcd1dac921b0
GIT binary patch
literal 85205
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
M07*qoM6N<$f-uzIuK)l5

literal 0
HcmV?d00001

diff --git a/img/install.png b/img/install.png
new file mode 100644
index 0000000000000000000000000000000000000000..cd0f847dbac7e3d540122536f53e5f68b340d48e
GIT binary patch
literal 175021
zcmV)EK)}C=P)<h;3K|Lk000e1NJLTq00IC200ICA1^@s7gMZ{~001sBdQ@0+Qek%>
zaB^>EX>4U6ba`-PAZ2)IW&i+q+O3>vc3iizrT=3TcL-<$z;Mv6RWqpJ*SC?RB+Ihj
zdsQXbB$doO4G^)LK;XFZzyH^D|M|~<g0D5YTxzp!=J}I*?s4!#^FRNbukYRatDiIf
zhp*Sdk9P(4mtTDU6!`n6*CXE(-_z&CALmOtQ2ONq_Tzi_)9a!9_Imnpn)sJ1YTpNn
z{QdRy7Q6rTPy6}*y}MoR+3DSRWMh2n>!!YM<^9APCj*n-$Be&~{|i6Y_qX%6`Qeuf
z*>Au6<nIbS#E|?AIqWdP4d;DdVR4B$o>=)F<BI9M)>4f<uH;il*`=IvxUr_5c4{f6
z6;DdM8h>0%c<1f!bSpGYyaVryfrAA;@&3B+AO2te{_#NfE)7xO?!U*1>xxm+5HyNO
zUwIc367F{#l{diOe}DhO#Bz|#yEM#=8ytRq4lzsk8C%J{iB7z+@I8M%T=&-j7$VMH
zxR{Wb0dFCdV5CHhH3Y`7F+YPVkICgYnSxMC++1bMDH)T~qR!1{YIyIBC4OEeg_wwv
zELEnar@>t1T(Y@bb0daENhOz3tklv<FT;{$D`r+rxj1U7xt40R)>eBREw$WAvsPPc
zy$#o6PvmOp)@yIQ_c1u>;K+kdk2ZK=#+hcGW!kK>%|6E>d{$m%*{Z9pzJ}Xzr=54%
zw(D-Y?{UH*lukb7*r}(Te#Rx#Zo2uFYq#EZ`yD@K?aiwD%bfjv=Kg)w!q==ZVeZXY
z=1t$T#>=&SA0h}&isp<Ni#agkRWm?9N6ndUA?K)>bDA^XBUw=*S6MVUJ7~t3!F)n2
zH~g5ppELKjd2{6b|LwfRUuVu~>i&PsoYU0(VdnlmZ-1DzEqq_fLl3Yi4K=7fk$$}4
zv=JNci2v~Yw3*8$MCP50;7EI&m9OKwr5#5*Lz%EjpNaWkz}sDm@#+WI^3!?<;qJAz
zoxMwkec}*U^;-zD<0`jO(pbCZv{tt`iXV-W9WqGA8S^&FV}{y@4?FX$dKVcw!uIE!
zV%&x;$K~9f%4ti0d1^Q|JJ2{TK{2_4HR2p?+V$g{&})dP-_?rs1r+DT{4L+FBjZya
zYj9<wgfnvH+<AwUn7G+jWVXV!&`0-W6i#<QhIG&8^p`QqJ+$Tg=GqC_bT2nhZynRu
z-g6x>`PvTS%0;$2>SmG_^FL48&1`sUoc2y`X5QjL8@EJ)Ch8y~bmG)+k|`0<d8FRs
z87)|vb1;Z}_;AqcC&LAYA98}P*E^eWoVwx&xh}#kTiuGm)0(BxGk2WY9JWpwv(&tH
zFq?;vCq0d$5WYlUbay4rI!Tkdps!0#H6JH|TxM)%i#M&zZ6syprWl10X79VMLd<lZ
z$UxZ7B|bo2$5xhv$KZMk@XWBM#4QoSle1n1cHGJd#@?%PX}umYW!91y67RP&UfSd=
z$#ATa+LNqf){o+t`B$|1_cKKQFW=qYenF~{=3vDE0vL-J^38B~zNAnqITIpAn8DrP
z$O?rIfCo-6Wdsld+;*-c=Gd1&-_e-w-8E+B+p3IBDHqr}W$h9s+&-AWXv-#-?nW;}
zo3}B>=0Bp(GEpAyPCXRiSoVPgvyr#8JZuNj=Gs2QX-cRP5|!8jAw3`3KJQ!x!ODSw
zK}L`PC6wpp7-Yu^X`T&YfEr;D0JHktz(M9OWoyxmw$9nJ^u^&welmQJmIKs1pkuBa
zws4{3c&d{bYWGxLxVw|s{K!<5S`&1nL7e<*gYs=#4ZFlivaTKp0uCC^%^>IPsMjfE
zKGsPnfN{33!|dz;CW~Z1BUXX_Ok6EKL)-y}iA%Hwk`yum;K;ps0*nLRs%t!;>qWjr
z10jv6W~y#tJbWdFpp?e2N0i+_o^eHkiD`wbWMCnwwqOtN{0P^^0R~svZp^j8@EUrV
zfYhph7n4B(-wcw+33yG20ZiJUklzA%;OeXuwiN&aUda}m2t%Qtm|~)F>^yVmajyx$
zLaYfy;BHPYfClu)dHk-Ei6q3hihLOv0@IPX2%uaTALvX!@cDoIPHcriT(mZr_(pPu
z4Cm%?nEs!y6#%Q1;koRD$|^*}sc;ap(7=|<F#^|401`k6uFPq~3v4h`4l19cfSlDd
z3%19CX-Yo6k|(fSA{ycZW!e(g+|syPn+672@_R~}?cyDi6#)7JlZa#?5AZuNX^80E
z8|>P6fq$9Cl62`zr>4Mjf*}6Ay|r~6zdS%4;ZaWHLK)QD2@=LTqs3=|y~buF+V&lo
zBp}P=Od9zoX_)a-3WLoxas=oA;3O3{OuEz6WRVlCR_5g-l1sXyfb#^`hMbr&#$>d-
zfssjMw=*YiEd@kpPT{_~l{7ep0u%1%S%gG`z(NL;>-h*daSjwlEW)8-jp7b^1Hm%t
zsa4EG<`OfR!*k#UOQ9xopb;v<f=Ln4^6w=9bSAzCx=FXWauy1!7KRs$PZQ`xgUy&G
z`kAz2e2?!WRlU&7ZA&7mhds%d2J0jOUHD2I*^9QKIAWsEVu+t~Pz+U6S0?zzJq@4%
zAqDW|q45XR8IyBm2BphfTM!ut0bYU;8?J$70m%bKaF0i!$6zvGU>-NlApnf@V9(Y>
zs=yCeF$XevG8T|XyOsjBSt%_LbG=p+K+V^$ej~Cglj?CG&+rt;M&BEkeFSK5g1bcP
z+{|QzLsx5{Ig~re)2pNcxNO8uS_>;Tk`kOjUFiNZe2ixFDG|AjaRF}*suk!Vc$f+@
zjSzxc0Rs42*}N>Y8DS~tlT6aPK@2o0G|@?$5L{OP1BTMgeFx=8LI7Y#!2(7^$<R^;
z$e9O7qM<Dz;OhBaB`K5CXh&x+QD7w#*8507*m)(o0+)e=%!;I2PWD9PUOWF?USc7X
zf)CJuStvHd#vovVWr)$QMdCOC%W#;em7mB7H1ktO23HlZ2CoaRB^04Bbta~Zxb(m+
zbQwFcn+Y}?a)5j}8~}3p=L{U7rHfeMULdGlTW~0KLcGKUVL@S#Kn%NzK1lZ~5f$s$
zHRz>0CAE}WXc2M}0M0$Fix`HEOcD@`(roh|BJpAj=0$zyJ<$VjM*;3|MOA47F?G9h
zgCk8B&l!Q>=2AP&czG}rZG$=;u|Ifs6ArG0G6KrF=&;NCNNbVk+$4GnY0Q8fT*Gvv
z6(o#MRnlfdKcl1~p-xz$1yyVa9JUTZroPk&8*6w`4=0i_D6Jcj46bqRYn>qkMSwBh
zc)?Y8U`CKYkwO3hl7vGn4Dw~38kDxt7EF_I0bIQY*iy$xVPvcp7zc;S0dVhdq$&mp
z2my^QT4iB75p`A)KjGx2-yXHg2#hja#>nsoFuf6XLT)BPD=~``xq1|CNYC3EC&N4;
zj1R1sfo(<qLXjZYLLAO_riXVh+u)R6SNX($+z>8}gqCMBz6QX3l+1u<4HG;>lp!@!
zEYMqbC1wa1dgi(-d<$G1?C0(m*yoz%h9*;w;5ms*!eGK1ump+9ospWSCMd%p4=_?f
zVU!cXhr8Pm{d5@4@di$=kasba0zupfig`9L7#KtU;Lki*=8S|}fs7*fNmbQpI&gsm
zCxS2{f?lFh20RH#ru>s301xB5WRSTg)T5i=)wn>i^uQN(|MopkSbz~BT!A4N7fR$m
zR9-)=f|{$1<PdRnzp+KVz@dHQ7Qx@vI<RsBY=6Mti=_f9fgZG4K>UC$IH-+B#&r_~
zt^q_Sw1a@Y*v}qunH6$CL%={>Jh%WFVVynpGXRXS;fplEcr(si1rfD4A5gonChDn8
z-b<7f=AT*Z1wuKXyy?;kqMRrIC-I^ejM*SMY5;MU6SwIazmzy9m#W0b$`S4b9Y4Ne
ztQkoHg02(iqzKe?B{z`B9v6w>1(V2H^bv@fRTkj7d2{0O;GL~fK?7J&vnZ4btf9S_
z`vP$tMvBbC9Fa&U4Xj#sSUF81HcNbrGv?kRv#$aP9tD9Ko}k4qGdEmikRq5~V@KQ@
z3H9{9!=PZV(KV1TpkYYd9jeT92puD|5n03-w;rGgFft{?JHQw3+Dp#6?-pZ_UFQx+
zh$cD6h_r_7TUa&}4aiHl%DZvj_*isHmepBN*)SU*UD5OK*<|`RuuL+_u&Xcwm~tl(
zOAK!^F|snCV&m+WJ7HwOphWC505wmTAQG$Qh#erwX9YSih>e^e$hEovAJhXHASn|`
zoIbHm;{YGAs0fJ=&OjKj0>?Nb?sh_q?1=`r+~|L0JVow?oEQ5bPsFYD;2`HAreVc{
zt^!F^k+`_R9l;Hd9%;*EphDsHgX#ildIQ<zD>0fdOINw;=s=5)LjMp55j<5mxGf&z
zgGHGK9)at~xz=Q5p?3HO@mq0%VX2-3y?Ga)xBX9!A$On262fnFf@~X73TY8CvVY@@
zrm{buj_7hqpUGM87SNS3CIH%otO=+iPnNL346`lt2T=|E5a~7J(!4-&;}A$07nC-{
z8i7IDu7P(Y=J<F9RJuV37&!S5gh?lAEW$_$C8+ue35hBYAdqW>?0)q*Xltsx0Z|~q
zfeGcr6~@S!rOcF*CSf<u%>*N7PZrPfXV&ZxpgtI+%zYif^h1;mMaty|A`9ll8l{E~
z<Dw#OgPII!Cp*4x4mB5)|H1$*+?=fpy^DR1$h3;N&|ScLLxl7CIM}=-6M~|tyuGIY
zxgz_(iFBP`L$xsDY8ql=E&dTiHhBT-s?Qt$?2Et;(R3(s8)M9e0wxO^iRlGoun=T3
zpo=j-*rKV^ps(>Y@FlZ=FoF1)NVGEE4ljTaMbm8<tyR<s>J8O3ToLOUYGabq`ZV?$
z!D$&VDOjI~TS^%fK`d{CLsW5bYbIZvdF6(y=LQ`*$5dFsDo?Nn&|F;5z>zYJULs^L
zTpdRSW@Eplr*O!sDk!5$ouP_U9oH5<*$qz#iNIV4dtU?+vLO|z3l%2NQxO4fh!Ydz
zVj+>Fya)G1tUKibVT@KJ<z$akasU`$6vC)hu$58g4shyesPe38Lx-r)NeXLaJtD+$
zAzaC2IIu%4la!1Fnjs)veUFIHi9{+=svXNs+S=LGZ$ia->EvbL2Jrn4f>9LJ?plx8
z2`m+dC6Ph6eDCuza8M=U2dW0!im0zRF>;E4ARm!_htV`+$TO->iYG(M3+0Di8zg_g
zs}W8~0s|MBG5#PRb9>~BN_jT~jJqHwO~^OA)WJ<1t)o?C5=7OZP$K*5x*!083hE)c
z1T4Z7g(Hk`x8qJK&J8a$C52&<rs6&#S*Rsv(RD$Vv0*VV?}eE<87Hff5Vx|(<~EPp
zNH?G^>S7V^NN?YX*QFA%M@7a#2o!;em=)rK1AA&%r3%51w$Ku=U2s~s=n)=dPDsQl
zj^L^;QHUMPegYUkBg_Qe9@1#GxXRHP7qTgK4={k74q(Kk3wkl;9$AE7KdP<5Rgr-Q
z;ak~@@Zl>{#gv!&9QwjdMbXq-SHaZ4@{nKduhw?(Na)pFdgVnGi;3dr^N~ebA-Nj`
zM@Zhu)p7C|n>?*|oc@*ThR0PE{Z#jQ2W1prH596j3A<k(QHEqp0zwGK_<7fUDdr&P
z%kb-6U++QRe%{4<FxQA-Wnbm)B*As|Kb_qDIQu7cu{`{I0Z_<&5?ND>-9Q(P##au3
zj)v{yLG31zoa^X-mV@6J<Z@N8ftv6VBzt8v<TM*^Q<(%4cDEJmXN~vICv@Lu#4Eyk
zRm$hISYU^{Ur|Hj65big4TVpNq@?eP$`&!5OE?2;@5U-fen&+kBX`B3__ET-8Vgk-
zdkE#@Uiuue4Xp>(^kQ1TlikU+xvbTa-)2@}aNdl4W><CWuMz$p-_O)?cTo3B#&<<w
zcqsuQvZ!$S79Ec61hJinDUzic1Tii+)A4J_tb~{-hJWKiQTWL%tP~6^=TGXx!!Ujz
zO6P?@kR}Mut7`gsv&yx+?+3b-)Fl|mVgx~SpbzpYO6Mah$JCNpU>HfTa85f6po+=T
z;40#iCy~iFay$0r56n6`Tr;5~iC+0794g!le?sRlb%|QtV|0;>;;ck=R^A~cgP0{M
za1iJ_@Q|yW*!7D;!3<Y{-ea%C!4YEE_o2lB^w~h&Vj@vn{%#dl@`0TsC>d}qbS^C(
zoD{U+#ql7wb~Mkh;NoaIa{-2W-DrA*GUJVG(F#g~;E{Ly2C_g_U?HYGH4A<#eyrgZ
znV23KEg62&D77H`A+wMXq$nx@%f{CvlumP^n#*yx$|N(a@aocl1jfSL;Y+ee<*T*_
zk)Ket#x(I@Q?)`a?dB?cCFhc3=J}Y{!XzJHo_amz7m$S*IO2CMl5|B%Ywgir6s5;E
z^q^Wn-k`r}UD0tZs4>D+f@k$4O`=7VBz=p8t675FqxT@X*7+SuuV@_y6HDU9%$?$E
zTucJt;iV4dbJ10WBq8FbT!l=T#up$X@fDO1_Yz%jEqYmISBAuar43cfAw0SVNdgZv
zq!!|*sQ;j8!3Ik^8S0TH0u2jKE=FmH#pJ6tfLwA_ONfY14C&mYv3yKDMJiKN0+fL(
zX#(Oy79ODF{`d%KP97op72e>Ns~`j-JHo`b%?`B@-H1{Yrgh|8OH~U3Ob>UVRmQ3^
ztzZ}_fV6?Ekkb3Qp!LbkAeD|_G_O)o&3K?1(4>u+C@NxrYm>w(T9i&%`Lh`_&<H2n
zWoI2x1X>8GX4FzFx=?E~nT$Y4B4G(}0xlEP6BDFbgSevb4Q{v+$p}IsJ7dcvTgH|K
zTB<F0*oqm4+xg_yft!}#7GueP$#0Sxr7cu^)fxeDh4Irbw@QgeOFgS9hBkQV4+w_g
z0H9M<N?#RAkR>E(mxAxHAT;5B68_HW$h4|r*X*FukaWW-qN`-^L0_yLuDx8Q0;EN<
zp-;xVwUT`o5(NLb?sJ!eHNe<eh~lo=E19oK=O9FJO+|%xj@7x|JhVFZ*4U;hru%b*
zuLHRJ*Ryw~xz53F&H;+L#7?<-Rf{8AHP>0to>;id-7Q{(Td)|8dBV3Rs3s6hssH6P
zc{H_4_?U!OI?7VDZYbx=WYlsjD`3Lwbdviak%Okn5}wT<Pm(_<$w&sRa1h%=(pV*X
z!oPh}4xG$%lo(23)|#vb5z9*uB56QIGTN~vGAw$ck!g-S8!r>bQIm1W*~@SQ^G{5`
z)sNTk3gpf5zzJ#>kJZ%gf)|6Dx!<?oa*|$y(TU!zWf+lV<`U8%mzt6N9fV1dlpyZq
zZgAKmkBEPRSF{jP_Kc=J3XWUVW<WsUHwp?E(;lRw&p|`tj%HJcfqB?<Op_Ef6ET@K
zQ_3<Nb;Q%TYX&rLEqj=GrR!D6xRV<WQ<1k<uK|j3f;BBLW=m+(ThOvP(D&(&NVpQT
z>DJQh(Z5qB6=TH6<<}5LM#Cj|2^i|C=)2^7XMU0flfrdb*4he&0ZEr%l}?Qn{?xY!
zV|i7_r{w~Z6cFH%kJjQi%6-Sj<Y+9gmGT~6i$isw1_RQug(_U)n0VTtm>B9OVXWsS
z5Q%_tAl#e~M-|si$_8eT*az9PSi;5GeljX<>?%^JF1Ps&E-BA|S_jbJ4`k=7GF&hO
z%I1oysxK#=g`F%TC%7GeD7ZL8O%gNV*VJAD{i-@nWVgORZ)P6&xpRLOP(4c0R1hv5
z(7%f8kW_tzLc?U7R6bO}C>XXxp7*WwD_N%s9%v)N6hQ!cMlB&;i73LKbDHcPu+s4r
zTK`E-f=X5XZU8x!T&wFU1fNdyX-Q+Mokfd9Hi%O32tFpMK@w~8gv8<Rb_OeQ&y6!O
zBn$*0wZb9Kxb@dk18^+jpEL|GGWH!kCsy{0D^eCObp{egX{a={VFvg)lcjx-XAE%6
zY1trb_9SPMq8;5Q18P$qZK=x&Q31n@;^0Pz7f_F?uWE$^BLgfTY`Um#662u7YnVy`
zv4f8y`5A(=v=-7;3Jl#D`iLPRiBYdQB06G1L!`pqO<GR!Pb;Md!77E;{Lxa-?7Bka
z!CA7B4)^^!t!m5&D&B$S@@n@S(o1U6*te(=2M9q<f<@{kJF0ULVE~{pS)`aFk;r*p
zkh4XV3kg@G>pggFGPL!y`Q7XBdFn`O)T$j4_Xr@b?kE#0I1qS+*Aaw#H!Yk%Q&?jy
zpJ0>g>KU*Q2+xd)9x5lDvpWapYBr(->4)cWn1SM_#M1h_^4wREN0SQz*JKrL<!jPu
zGUrSXFDkWj-BGJ^TKvYYt0b>gc~Y0x(Th!Gfv$oaSDn=CaaA>5IC%Y2Jd2b&VeO<=
zB{VDZ;B+r()sc{d0i9)83)WTy1L$@53yi!?a^C~VTYXJY^}Es;(IRODE<%uH@TtQH
z%nqb!C60jr5{bvRV6jxmB6>E=TGRl7;^<n(VR8pUg#tUeC<lcd#6L2gY`xqRm<$+q
zEtSUG)s=>}su6jFG2iOX61p6c$ux@HcMVN-F+2;h!&eDJrb{)+s?NBs+Mi0f0qHok
zxNn-?KT(tW<|Yn>669s9R%wb{xD?><QFSNSO&xM-=<>+&xBP{?5;dv)3wCvCCMJbK
z7e*7SnvRW-4!(yLE&2Lbg_{IHf{JWGy+m4B!y+k!8Pnji(_#~Tf0oB)ME6i`L-yic
zmA~$5AQ9J+HqbU&iQoeF!9`?dSD}RH14fE&suK}rZR-f&&#RlE01|QG#V|})X1>kK
z>p^G`)VnUYZjvswIKqNySGSMVgg!;#n79uu`o+45QLI|rQ!`#B=;l1$P}nN1ef5?J
zYS-^e+{6Ihpe=-H!U2S?@;KvfvKeR)M6a}@ddlz&kkMp9f*J>y6|@b$jwyv`n&uRp
zesuvFIHZhPVUL!gy=v!}-!ci!jp<8o1qM2ThISI=MU{KvMx+=_qB(<Um0_R`#^(Yd
zX^4qqZx{po+|wprJ(Or>hiEoJCJN9n2BD_f19*aTE?|~7pd3jBcnvLEf-4)sW~TE1
zn!y;5!WdTv<=)nSU@#wvX-AL(*dhH|tcr)eA6Z~+r`AIYgOwZUNrqUH4KgtOILtC4
zC=hSF2H-5AM7vm^w-&|;)g8urN{)<5?sA68*_6N+;}mT{$;vfN%-?>Y65d~5JgQMQ
z(4F7D-whxOx<f3JPZ3Wmxd6(oPfKYAuiIdhw0Mn6c!)W)uylZi4LlZgqWG0D$_5)0
zogl;gTH4|efQKjsL!$;vHI#iL2EzmfR6I5m!%vKvOko#LO=+9)OSOj3o;jcZP;x}h
z@kLz~TDk`M6$D?{q1E?a(L;5%4}7?P!Vm9%L6G@D5VS4PtiFNJN?t+_&MuWZyi0Mt
zO2osJPy?YiR5(e@>fK9*FDdJqIumh2`Lzfqm1U-E(1uf`IbBrCmD-dNGo@+`8dz<~
zTMIG$ExR%ha|k&KBr>@su4rlAGEihk2@gVQ*(9pjAR}VrhU=<FwiC^(!-UsjT^o>&
zHLfI+L8w}LQWFtMgquKbX`Qwgbr>TO)i1dj?2<Dn&b$$!x)p?o7KP9f?=8<}fHrcR
zQ8}T)OK~@sLi!*nc9$s764dRzej2ql7DBz`TT9B8u@<L&;06%>T1rG5fF151!Q)5$
z?h;bVo7@o5h#i6k_?K4D!KE0qf{hhblL?cAXGey={@v%7x)1wBwag+JIMAzp#^Ui@
zT2fZ4zHG>R#l`tB`$mu0`1mfQ!tN?EB>U8gPYG(UL~j+frX9Hi=5o$iB7ws7!=u)_
zIb=xY?s>z6$!F$zbJN=8QGX~1Q9cYZRD|WLS|b#pI$+7KGD?c%fryxc0|I(Wt*NMJ
z?2sDj)@yZ%QR^LRsXHjCNmhBlRB1?M?e(?D?79p(LWGs%TVg=&u~k*~bnmMD=oM7D
zu4ng8W~Pg0FWK%?=i&)!)%;jdlvTK&uMp+C85J~nyCS+BqTnU02Vv!tw-(kx(Rvz8
zi73q3ZIxR@r9;fDq95>XzmE(Tu!Ql*q)N1qoPbGGVduVf{<vM(zLL0jQRY}xQ6Vt$
zaD^<qkdYjH-d{!=li7x<xV;1Bc@=nJ;@7Y-<bW14j`~9P0#eS99I~I_271j;<r|G7
z_6MBM@Obd`wIJls+iwWDWy1O9-r_wztCu9jf2|#BW$>!h@@fF?*CN30HGuqTo+AS4
zDtR(DLmd-E9kJvpWGN-69#w4@Vy4Yvu0$ewcPXjW3o<~B+?vYUIJK&sCLPv`VH#RW
z3yj(T64Y(a-J>BTu%vPip-rft@W|az8s(t3?wSpE+My7C)M$ch!Wuvv@#Lhf5nY8V
zpB%7&iP8w-Kn{kL#A@p9$Hp^ZA&W@2b}@7qNekdwV1SNJ_eG^drpB}i!St)P(fh)T
zZ>?UdhKBb8Z_!6Zb>#pORCItoG8D+6X+h4bq&(CT%$%zE6t9EQSn6R}AJ;R~X4j#;
z!Vp6PT4uRwxvYedmi{9d4Tmh|jhjB@RyWoEpf(t-sd?ckK&d5&GP$wU#B#$pb4`+-
zQddI8%bcBGG1C2u!1^Cyq*E#Lzl)JCjR;qmDaLBrO%#-PVrmpyd%^z)oD>P8x)0>4
zj@qmM#df22wG!XdPeh2x{K0QdWo85>%o!0Mh((w$b(Do*GDb9POiZ+?ZAoQ5?ic9&
z^x_NDh<0X_?B6Kg(6zEHHFe-Jt*I*p85U9t0h$ntT*Xx_5@Rs^Y$`$`J34_ezZUA$
zXw6%Rn}>;bWGou<RPZqsoq+qQzk-N%GN49KE>#<hcq6HRrg8<xeYKvHVaC$yh9l5d
zBpB*&_4-$UlcOSzrq<q=>m9YbV86n6dh6eO!NT3w$E}SA`gp|2eT~Ey$RjVu%F$O<
zwwm_k_yUf+6(@(Oj7a*(ERt%Cks)XCK;#ow&V(HG8Xh%s*k|QUeW^yYtF`hn5>*}4
z#1WFI+f%#h7zEPPGeVvOh=b&U6<=SLB)qH-c?Fh5*-qesJ67i_vFxNCWROLDS>`)4
zPB=wkWT@{Ul1Jfai&)hnaV1Ps#U~$`zM)3DPxO-_YFNcdPtgF<-@_watD@?{ien<Q
z5H(A?zf|qfW+&~|_*%NxB1KeP$8{NiK2#-4=;*AKNmR}H6cE13u}_A6df7in+@?B!
z)Hh@5KsOx-j#s0D8kz8&S|E=>+-HW-fqi!}1k&QQ1bhV5#)G=LA|IPTL?rgWWrvnX
zHpmY!B8<=W;;6d-Z?cNyn0HWvV2l2Q1a*x9#`#*7nrq&krh->;%vAqc9FnzCPma`O
zQ+xK()<UdmsUc{|Tiq~Su}adRR9`1=<K1e=abSu%7tU)HBI(j=6}qogD5D0o^C$aP
zPMunu8Dao~N<8$9u78^?`sxlvvJX1Pih7s2nvhp*L?R9o$X4-rdnS(iCVA|cM)I&}
z9f~_iZ@o06<JMuQw&HbG2$f8QdmuQea^_NfofUP<&sfZ%da>936Qcf*)WC?Hh1`v<
zeRXd!Nmb3CMRy8-s12VB;-qtP3Uw_j8;W+<^ffv|%!G6tY;3@Ha{!(;0N|*vdX1Uz
zQ*BB+HLc!g-x5>Tx_0yYMGyZ5_3q!WUIF<*djat0mETnH55RZ7ApR@jJj8!^4-N_O
z2SAlR2CJ*8@G3eChg1z$6+VcSov$AutjZy|)wKs;`41gLI2dht_t%HB65pdwu&?Oi
zuRB0!LI8qVbQdwA#{YM*?T5Zf?QNY<!#!AS5fA}dyYK?%E&RFQvKmPOf?X>hSMaI@
zp3k{=f?7DJtWp17m&xCwGH{i7n)?1uJ^18SZmf=EB#$ys3cixJ*qH$J7px4ZxKzIp
z@xLV&)$D)2Y`k32LcNw(jSvF>uis^Augy@CjNy67tND?7Ije><x3+Ie>yY-PMUT|=
zTHfPQun?g3@2APyF^D$NQppFv{O>pT^S$kDiRIR0i|we*L;Jlx8*|7+@c4Vsfst1r
zRb0)X77I0E-tD#QI6i~ubms}@(?DawdekH4t7_>om;{3gnWKFY>QdD>yQn2V1U*h#
zUM|cO@!3Jpi9A=YsEjtjLXf2m$-Ol&NzA;EdU>i}j-ibQEqCtQu_>(VZx12|!VrVN
z00`<Isih7pm`t6`Q2z|IR^$iRr<xhqt}Ozll}TI*WPQ}v=#e?-?1{`#(Wxn>1sa$t
zQ}f8yDmt29+pjlfDw{UgXj?JP7VT`nrNp4t8MiYW3>IYUo%8bQOq^JkiQ3#Mu};kk
zHlSpGiC1Ki=K!se4XTzird|C7=en8(>>GP7`)Fg;uRBCl7_KEGkHX*Du82DK&uD0Y
z+>7g@w!LUmjVpYBctt(rqo1bMIMMT3-4t0|wOeYT6-4eB_7vLg9W;ue>l1yfcRI&l
zY1@ak2(RSHht~qTNVBBAiv;>wP?1X;`96K=a?D?S>AePk-sgi~gQWO0*hmmhb<0bs
zcPWvkHD36n22!TME&f#nliD_$Juye3)Xz>Hha^a9r2!1Il=oSQ%gp;x-6|08x%#cL
zJF4zw9@P1xS?H_!1OolHbT-a`Y-$bv&A>Ko=ijIYaAJGo&elYYKo-%i7IZN*P&_K(
zZ4>URq9n8}XCJ>f3SLNkQtItc)iAxL2n-;DWe~JeIc+w{OOj#zkSi#nC2(n5>x@zT
zg!*^hJ7^&aCB(q3O42sb6vhuAhNIdOIa*lLJ`wf%_P6cQGGZ7f_F7uHI*pS8Q(M5)
z3;lgsZGs1TPROP<Rw4rd!8rzw9h=!K9dP;VXZ+RF(Mr(z6S}A6Who|P)$qt3)X3#E
zA~p>z)?whlk)`Kyw5Yo6p6ho+o5;&_FbIuc;Nlq=HRC$%_nF${gvvJctA4hXiobAw
zmGo1Aw@>h=Vnt%|pDE93ZSoSs=Z8D`$v^!yqaAI|USOu~g9Cc)Kg0%_R>%=-SPJm2
zS=DgxI}>lZVj2}4`R~wOxxjb+T1({!0EV9c{im9<@7pz!ROt-EX)_q-_Sy*HaaXV)
zP{yP!t;0_BJZT4=h6^@Vqm(wbCbVM>Wle=8$My9+C!*Ymqu6_Stn;3*l=_gc0{6b<
zJFpU9K!GZvm~3@)>wjC?jcBjb^Lj?tc^gNygi7+yw>3xC93|}b()NW=7?`ekxO#j4
zY+0>3wU*5`Vl-inWMc+&x8ABeM@Y3{R89(dR0d*Nrjv*bfX3Bx7|v8Twf3{9hJV$h
z6I78#U(}|}VVoQJmZcQBo(KfU5rB*ao}7$FgO?$nkbKda$x!ce3@}HA*Yr4>=Zj!v
z=H=~u;-U>#SNqlDZ4d&co!Dv=&;u8$8hW@C8PV9Q`m~bM&u=U7Ud^sn@71JoW{5Um
zu^R{M6&CWCJjWyisimqdH5-vRmX}OwUaRYSsD_o^Hv6}4XlYLk9-#z5Z)k5#p}kEA
z1Eq~+9`)@hE@UR?j$Yr@RnSVszQ(+0)8b?(-!AN(Lqb`n*CJO`-&G|d0F=-LY#4uR
z1A0HWUpIoN@#gx^vl&)S5%NVDfLmH{tRAo<(~!DdF|Eq-!vs){m~c}p0Rj&#w-RPW
zY||OWjOBdX#Du+lq3!Jp)%GgwhYt~)A^JA=rA1(;O(i?bq6c?`w*{WWikwCbXys}X
zT@b#i3v8;S54yr;&4~Y?mS(a$6ZEdaNgflVy(L+laOgpBRu2pyv2f+BsFKr@9^66%
z+XLcFEW!kah5)e1lkW65o~ji{0;e-w>MFv6M|G9(GiqAf0c#4^tM6Jnu00C-plsCS
zkMBybh>`sPO&Z{&rQOw%x2e5;m;CC2UMmBtvJ7=6GvjLKooX{X<X$sVXSjAII&JI3
zqBYreul2-XDV_c1E4`j%29bzhh^)kAtEjyU=l0uq+^1Rkb1EUz@c(ut;$E&cYMU2K
zp)OsJ<N$CE*qY+m&k}(iFrkIjAtRf#fTQK9XKHX!{j2FZe02ez_VX?7e!t`MdwvUD
zA(LP&4!(qzO<kLbK+0yHwn`QF#5>3{ZI!(h!Cth;qgE=f?g+w}=|jR~^+IWO*L!5c
z1@wkmNTPZ{@a_!KM2V|bG_iDHevOfq)KL#!Lv*#dUaMvL{p%$E^_RLO)dpbXf@kfY
zeeWuaYvcRj+<2&L3M!NL$x9_m6xY=wO@K<2)=&ci5*1%bxJNxX0~L!YE(Cy+B;M*3
z90k5HJ@$pzH$AnZYOhFDl=;sx8JXWw{&b9E#kKYBT(ZEV{JS>vn92*<*^=AW69gD=
z^nl7Y{tPjC$3+J|Nf;6m(8=Zqb>s6<l(;H{R?Kg&G%O4Zz*k96`O%sgo{jgHx!&`I
z#I+1>z<KSce#@?|Wpw1$B93<+ssYs0Uyg_nj6fN>@u>!f)z_4q6D(@Y9E+gsHusiR
zv|ulFzdeW>9b6S*Kwx&LBb8)mp{IR_Q^-+WE^7ZkRlN!7s#sOw!_lL9IG2$I3x0t6
z{cHX7;04L9Z4x`HthO5T((xZ5*(6QR(kb6lC|16&=)RayZQ0QyOE5KN>P%8&1G-IR
zN7b+D=-T;yxm)cr*EVb5`aSCbDfflf*vubQ1^16T`SMSPpzfiqp5+T`2bB>!Skt4P
zJ;Ko&{sWtZ;WB1gPml2p?}ea8a!pRFb~RkBHykFQ2XFe<M_06#`SfH2-@I0*({b>)
zXd>#VB!s?SDz4`7HUUUpDWfp~;J7-h)y|<uP@x*N^|0G#2km=ASXFNj4oI7=@_oX3
zXo%5)6MVoY-lDBtT?q<WtFoqtt!N=mB|yxsFx|mSBoO)~>%l$wwH9qX+J;E5+Vz~4
za>meBSM}LzE$BTE$F!Uy--N~U+9@7Gj#@v50gDEcIrK-{f3=HF+xbZDsI9x%YioPH
zYWjh{?px9BStVI*qjK5~yke_r$C<e3s<yk85IgE3u>~MvDz#y>sZ%Ma<AK1)3I#pq
z@3V~Gfm&{m>poF^kI?`82&M7bzCD^a=!sRUtCT*pyH%=5oUh$w5!<WAH=m-z5fS$c
z?#4i?^X@%Xq6R~SVk4MPz~qd{L5WG;12$=04FxlF2k<MC(vu^@wM!5%EvlF$xp;Jo
z>ZkyL9$%t%Cd|mxMp4zpa7GZ|dlZd!P3O;l#8FheMwQ@J-t&wGUUK@D-<G4#dh?7c
z{ufUUbHBf^wQF;7Gu9Qg@VB34o3L&#V#j-Gmn@wgd8j8ph1)OL4?It;!`d`-mT3#z
zQkzFUh5}@qhBgzPWM2K|rp;=o*fim46*#pJhnG>$C`X2(v$h@zd$bW`;u7`H3O(jZ
z{UYCwxneS*aa=iBRJ9qnBX6}gdadJB7G2s2rmd1)Qq#!w$$@cWHE5%gT!PfGFdz|F
zdPbexl-KgAddtpeAS7=hK9BlIlUnN~Sr}|B9cb<1voi~MAGH!;rU!_<-WC-Hhl~dA
zu$_tQt!*`c#3lvuD|}`(UYMFZaI1)S-vKzt7eQi5gtxbZc-Rfkq+W^5t;tX+a0u>>
z`&YvYLj2Rs!kiSf7-BCD0Za@QL#%pj^oQ8Iya^7FnbmV^;9LLp5}^1O5q|V2fQ4R<
zXy8%j*PgAT2fS$eryi#VCU5Y!NLXlVGdb_%sFxla_a11ZI!wHh4Qgx3D0Qu6>ZzEw
zO!draxj+x93+hLkLaqsv+})fS6zr(UtGym$EubQ&wb@!7h^^|u8`ws4C2qTZo?Zf$
z5U78NW%p~Bm)7Up{{cz)K<T6wuxbDR0flKpLr_UWLm+T+Z)Rz1WdHzpoPCi!NW(xJ
z#a~lJk&1&AMI16zaj=Vu=vJy&1Pi6D(5i#UrC-pbAxUv@6kH1qek@iUT%2`va1{i>
z4-jVuCq)-2@qbC7MT`f>{djlparX`o>Sd;y9T7m)EF&3<ika-H*!2nlgBZX#<|Jn7
z@zi1(p5yBtKEB?Cd6xINKS!^UGa29$i6cxmEaDB~nN3UQyiXitMM)t(C!R3qg2azp
zmtB72TyR+6nL#6+oF@(vi-k6p+n5y%m3W#sq^KI@3mKOc&Rd+-a+Njj$zK@AX)7tN
z(;PtzONb)@5i+VMp$rRQS~XHkBxyhD;U9MV33AEgDuIz>0Trl_96$IU{O;DwPffZ>
zfhf@VV%s01K-VtNsM+@Sv28a_0RJ;^rM3K(Ixzc5dab2}j)1;x;NrTa$$P-%4lwkj
zONQh~ewso)54@kzH)VnTTcBsn?X9_w(+40;T`k`L2Zz8|fwI><-re2a+rMX;{rvzU
z+;Z)>#2z^S000DMK}|sb0I`n?{9y$E000JJOGiWi_5k((_S>LF$p8QV32;bRa{vGf
z6951U69E94oEQKA00(qQO+^Rj0v8o4D?#jPy8r+n07*naRCwC#eRsTFMYaET&FsBT
zzvuRv-a`s0kVr?ADufggkgli{eS%;C#iu@>f?Xae>Qg`vDG8}c6BOy45E4S_O})LJ
zzW1J4zdz2oE%)4(dsBEn*XNVZzBzmE*)wacS+m-#k@yHg;Ua{LQkbb-aE98J7>*8=
zE-`N@UW8GHWAJ4co1Z8--dFD{kQ0ZaJ!3c;F@rQccb5Mro{)Xd-j(i`5C!-3e939>
zIHgwDByBM`XabUzXmo3w=DHV=%KFkQh*5K_`*UX*mqUQ0hb9A9e^ekq_%NDGP~JT2
z2CLM#II=4_t?n_@0suY+SyC!zlOb*v9y;F)BVgr`Fnt1m1c(4;XvJ_R2>50&J1x-K
z#*6Hz@6{#MOC>?%2giBW`$vnij&B-t9DqlU4g^?K-2Qi9lqm3*`KwInK1&A92u_lQ
z875GllZ^lnEC8qgr7?rkSsAAX_9*yE1caZuzhPnKQ8NV$9}2p4&V(p9(Kst!rC<aB
z5&$be#~F4jvmMip>!1w+ni&$BB@rxXlE?Crv~mSxfRLzF2#%InC6(!?$wv(W$U`~V
zi0ZG9&~Zk?o6c4@rmu6PTHoA&R@7u<gb5&uG-*9xGyymkR2(*E<W7|@`YU9pw{Oaz
z7@7Aegqr_`$PrxyN|#v64KMk7{eYiPFxMO}O!1lKm1xEb(AWybRxmb!u^Sq@Gru)}
z@f<W*7rM5tgNE)^@aB*xoZ)RNU1B~kB;p<Hi}{~23Iau<Hg}F8IRyw`&u7?y6WwV)
zAFI=!uX|MQ9@GcQL8T|j$=(w2tDJG>X|TF;E2q-@O8^?*bXB6wE^JzhmcxR8vPH&4
zp{d4lZ@B;~fOLkPI|r^?KXlf`TAVL7K8pQA<+A(>Q4lINz8xB8UM)ft1^{*er;TCd
zr-u;RsSw-63u{)|YX;M{9Q5Fqn7_+E!TgbxF8~Ib-*S|%LJA0glTgj?+K<(3NS#pk
zh<-4!X=wAa9THoRXnjXNl?b?Zs}`;l2F*77l+*l{bG6gL3%w<Rtb74a9$g}Hg)h2U
zJ$pzvp!6bRMbSyt5;6g{f%?~+O;YiK@bTt{Z67$lt*UjuuAfHokgJ1}A<Jf($14SD
ziaBo<<(e%;Cz=6BK*fQ^*WCMRR@$E(Rs@tTvF<B6*|?faKqnZDuem?3e%!ewv;e_a
z3zGT;xE)h~*#xi-Kv&_&0InvY%0q#Z(u>RwicT`8k_o67(D=Ih-I|s5_l5-lWs8j~
z3Qn*d5I#U97>%#E->g~X+|k?f%sdCc+gWa1K}3H(WOl+u*7JoY8>f*0*i9PE@2XGM
zu5z9m(lS`MM3(1FGae8=K-)m$YtE1Q8hi#$>gD&@hjM0Audq+Af63j!8nE&O{1xKa
z(nSa!JOVxe@`dGIPf1$fHNN7$Tl2VkYZpojW*)=Lp)S8!0M6*8#d*x^@A9mVnMX6T
zF<eNfSz%9TeAP(-Kxm4D@R}_LjexQ|>*>7Nh5&%ZHypQmg+1qhN2UST4xpNu?`Gyn
z05$`-un*4I#muKL^GyJ%0qg|unc+e}$%V3*ZJyq`(PdUZ!8}uzE;4^HXc<tn2<7=R
zef!NYkg8)O_PN(PaZ1*%bneekPXc%Yz?=gF-NEP<)c__DQFN#X$h#1siqrfpLPD@k
z>kHauxJi!c6t}7b8kMc<IE6~P6|Ygr1?EWM$0wzaW=RibN<T(hAyF*-<QE<yl9?fC
zaQ!RE>D7<w4>Ab20>A^qIE8;rL|+<?hDKj&z7U>ap3>JdI?ihQzY@7dBRjPdrh0#A
z6^fj`UWnJKZPicd4>N=J1Ng6g`k?^42cRB64uH8p+T!g6u4Lx#5mEh65fEu`mWGvC
z4cQAfGSKv{``P5*5EbrUVYh8jC$ZDJ;Q@eS``z2n+VM;fK%kH3V*ut8(Oe=rhloxD
zFcQGNewO5-;oyL#$5Gqzp}VoS`)!-uja3gj4|E8@s)wD8E$=u#=*^MkHgjX!ZuLY*
zPl@UPOabs_w#Na?Bcg74K<1r!Kvqq02Y@L=^uch=r&P6lUN(}dC_8nH_Pne@aO@X7
zn?qCOlmlOCe#idLz4yA`&!X`70PF%#+~w!30H#(}J(!iF#+F}k5`f$Tetxa8>cPh0
z)CtB_T#0dCvEC1kH>P(^e4y?n`&%`Sxj)S65NX|)I^J9AYcunx12LS0-PY*-GAqv#
zB{E3p#$iOHcka(FA1kXKe7XJa-<Dl<=5xo-`D12!3<O%0Qu!<YcC#MH!|^(GO>ms?
zDk#nAvHc3f^lbpy5zv%CvLMc6gb0+m)3(i7)4C?RRhJQl2>@L^H$i3=y>Y<O1$TV_
zU@8Ed{)&llw?$F;iySn5Faj!?T_2J@g}m|mKthG3lxpdMyE>S2`Pv)vdsT}5uHFoe
zQrrC%a+1@e(;li6yuG@_N`lsD-ZFt?orbSefE84#+4*WOgD(W|^a1P-0OJ5u0N8uL
z!0!QYoqwi6TWk!#1YifoF4+R3;3PC&WdOZs0V*NUuyJ$`ky$ijXWr5UcQJsS%h%pG
zzQ>Do;7FzVoUc$m-?~|=!jps<7$K2=0Y)~hOZTrE0!ZQ;Bmi%|K&(>j*NW?E9>bn2
zgC7gvEdbfDZvl9JZ21*)Dytsc+2!}^>NkwTC2uY7;m#j<`YQ-LeJq}tIfz&X1N9rm
zrIogsJID3*SnVV3i^3JZ1H%u-Rl);UhIu{Ue6xotYy{Fqj2mS{cBW2^@6n&@rQK$r
z&#+V&z{auVSNwHs`4!=Tj3$4|dzk$|(?JWpr3>!z^<gC4z^w0KCnNSPT%6SwFvIWx
zfZeLOt_izpSGw=?BK%qgpa|6h_)cZjgRNuBugF`zd^w6{?#w=XZDH5bC*$2K^9Se8
zv$&(p<!f(D^oe5E-Kt{gbzXRBWDglo_DNVqFfIL^6g$}3cX$iH9|7D1ARFJl58%wo
zst0SwmR~Uzz%!#qkH)RXwBpX==5{=E`YRhjWMRvr^YPwi^9JO;DV)9wM4j^WbK_$8
z!_Gjzuh!)v5^U8l@+8b43`_!HE4rAWL3j)+z4~dFlc??+0YsEy=F0)RmQik=2Jnjv
zQZA~jdQguozv7t8{g4m>7d@~I7iHdm=<>;U#}(N4voUB`(~P2-%>$<V^%G(k8S1J}
z^^X940Iq!<a{wSKNQBY@5Rf9vPX=Y!h2jJ3%i92^XRNsvB4Pk9WCZ2;03Ob$%{{G6
zpN&uapa^HzMGmo>q^kv#u~rE%Qy{0S46s;*y9ihV)B87TiAWLA2Sn7I8T^6MU~6CR
z8+8JQ6S#fm2m+U;$8L1FDLQm#Vh`-0eXO$T!QErauQ(IHg8<HBX6%3WH5^GG%1mo!
zaP$BnXlT(n37I_oiok&(p=oUS6$=5}ueHAPgL^JLq6iRHn(EpCR2Zro0#cUKYDWc(
zJPE^-nF8B}j)uyr2c0#KHC{Dq)~rjv`ECIw`ZYc?xp`Oy^w73kY>Eynwj)0Q!}MoX
zxi~X6rpMNSfQFSw`mSa6j|6$bLWH-#+X}>oqoWrtD{z-C_$uDNZa47T(fH=Ooze7L
zr?n!-atG9oqY2-6ue+|W>DoP*_PhSGbNspRn!&WpQE{mDW!~s+E5iX`d2$F=j!^-)
z+lG?`mC#s!LuXuM)^Eq+&Q0M#xAWfhm1$FAppMdu<X50+gAvFq^9ioXY7FTV-Uj0Y
z;Ufspr^`NVoml;_ea@kplk2amJoFQPDP-<6^V?3dHehAkwl<b$cZ)0j5i0-^FoSe^
z;e6xFvP<N2e1xIgl;?U1MP6`%5lS{_s083@=kDwXh&fN%O&Ti6$eU%DWI*`K<h>u+
z(MynTr16V(HQJXa5Z&RTehqeKML^9nu%p{FJ1q>#_;3AVjJZXZVB$w{{KXfEDS-;v
z=_fD&U%6oadGKYG0RTWIZ}66iW4rhWM4-UDuO80HL+#M4-;7N!xl<f$K4agI+M4oW
zIlS+C`g|r(EPn~nU8A)M1Qn05UfKnFZVv<$FBMbs=9)dy&q9;T6N?u(`E_g2G?Y#+
zUwb3s@f5DQ<hPjh;n+^S%VKQ$%pSNhyQ@!Xf$4u51xj=m{lC5MvnVJCp^J;G)7H2I
zrJ=Fr>Dk)LnQF`#aV39s-viE1I}tD)GVd7Ao0KJ(KoaCBGFJf38AIg)zu$x9Yj5oM
z|Fh4m$M1giFHHa4=ziZl`@CcDx$Djx(09CH^Hx~B1Y!utpJm=@C!EzC2pB!j{Hv#k
zdbKNar<<p>Ep|e!D~BiTr5!$b)+~JTtXac4_vc)FrN816{=NgQ7G&OJ-<w8SQ84C)
zXPJGj_hdrkgpGS!;VwPeg<qh^__Pcl#4Z2@D4SuoX-7qPubbe_+QxgV@Rpm<TaAn*
z=xKPx`GW9ZBAGNsT0Dw8qRjNsDCq-)NgxwCXR5U@aIWi#J=se_^HBnB3Onnccka%g
zZ+=;LfcQ?ud)~2q`qi`n)Wa=ax6*wDz$*vdEM06qQ+%3vCIryB(G{sGyD(|>Y~*MI
zZMz!-6FmQr{&X@|qKZG8ZSXx6p#z|1rE^xp8!m%@@N@$rVAiNLa1XX)pI&nJun+dY
zHYZ+orL=Ob+TeHzFwpRZ(^|VKozpOA1ONa<?BdvVm3By;U|MAtSqHU%FJF5jxsJxt
z1$SZTg1Zol9(*=kESl_S$8|K8uf4Hj<ti?*q6PEPzP*+WF4ymM3i|Q0_77!?jL+uI
zG5=`h5!eM9UUD{6uW*j->z&?Wg8;B}!Cj5W9#k0=9+t1Yv75i~q_14lSa`CTPXb8p
z(`ekB9MQO@?@ZN!=Ls&d?khOKxLW!Fc7TSL+}i5L?b3rmKsLDOf?u9OMBfH*Y8M5~
z0q`O-e|N>Yn|jEo<8QdK2!yuQW;jKqR;2JG!%qUR8#S8Vb3akH()~xj96p#%mM%8e
z6wEUh$Y9#R*zk(0+M4V@C}dnOyu7P+pL#<5EA34jECL1t^KZU-e6UEa4vaOAseLIv
z+6q~F3XV4j1lSE4E$_LP)~s?L9+01Kupcj5Z2c~Gw)}#bmwvT%g9|63e_eQ@b%WE&
zjnQ51|3q4xU$v}2^KcKmbcsC1H&Q+k8gGmOfpn5NS*yuEI_(yV?@@?uQ)kz#a-SKn
zqx7IUve>-XKT13joRI#o-I&SR&a}n}PPFZG*Tw6duhp;U8C)F{oDNw&!uW*0LjJFR
zgdEki$12K@881)EdKa-qdu-!s>>8A(_+a}LUW~$k&#Wyt-W04ELQ>D%a|IpU?QTfy
zcfVBql70pI2jOHr9-?fLd120Yd6%b1j7Wzwx`W-MVFm~due;H@xRa;;I`}1;hRl|W
z%|8dmip%^Jvcrdv1vpWoYuYwBH`M@uK!3lkQjZO2s$FWWE1GY7s@F^}0EvAXkq_19
zYgRjdIN1KvaLi55*$9mPxG&NkT<tl0pmmemlC0IsWYT@3wg@rx09;%Pfv3PA0CRz|
z7MME6%mXlsBwZ_gSdcqSN*T=FY-F3Nth_5VZYX`H;Sx|&zU^(ZN<@!MPC5xVaSczd
zfKCB!RKtleoCGtwU{D$XBp|FHkrk3K{AuqE2+%H&s8$G!?CJk+-Q>Kq`yS_%q4ay$
zl9cT>uC+?K<q9FbUuieOA~-s|xkvZ_%O_wJbs)cY0_b#Ver%6Isv5Dx9{ZmB<E)#7
zr&D{?4(%OkzlRM0Zh|WTOvrSeTi$d2wtu&?NNtBMKGvNkrEwE1Tqpv_m0k!dK-3<M
zhGqcZRD{`$!R9!&v*L$scJ6ChiR$)mq#XB-+|k|*fia>21ZbNpj~WDM8|wj_sblOk
zZE!BFddOYTey?tqejl)}0dNffU>Zn_h8dKwC;=U5g3=y1XaM&Wj%!?jrbZ-3jJU%3
zue{mD?QHYbqs9a+UuIl3;cK3~CChqbjU5_~?_v}cE|jzI|09$vw1zEOHS`RHNuaW2
z<^#ybA<uU3odw^R>#gTQ6Y0L;YIDdkK+c9NoM&Dh952sr-fquqSg!l^7nCeO4h77h
zE7-Ce4k?%7N!P7!tw9uTWY1bJzgSMrnQFdf6^dM^S;s&i@X*8eLq<T*fuAJcs}OnK
zBJUoL$GKzwKb_m#)!w2DQ6LTLN)r498Km)^0y3-+5y^JjfdI{LQU(epGE&o+brfx^
z_#Q_)ziixux{7)7w*2Ef-zPJZ*5VZ&oC=A59lUpH*c73Xi%?N=ntyLsT|HK*YvOyf
z<1NRCz(|9H=ODhsfE!~Z_9=v>bf*(5aOL0PIniejJ@Qk4Wd4D}3yc+|zES}@ra_)A
z8ev2u)vC3!Ij%u*1_+uZ0fvy|6%wW=EXc|g&<+DGdJG-_NPzqS3P(FKeU2akm}o>c
z>Ixs=^$J9`xhhem?@*5ZW0Rw+)myNU3!nvnAB3?0c7x#q5C`NanB`;4`}1a-m%!+S
zZwQcv@f9F@BKKjN0)-1P$`i777R)zfU#y(i$Bj+f5>pyiqM_eq=>mAl3(b4NQ;dsc
zp!d22$y$wArB-g-9#gv#2OVjZ2m4~#67!*gxt@Dv0KyDqT>;r?;`)~Nott;PV_%;5
z`@rTaZ-r`Guh%Hy{=#YH8pA`!Nk91yB$gA=$eC&gGazp^3#cNxS+6@h9B>w7d4bhZ
z_%S003B>m*_`6za45VsxV|2Is#p)J!rCvA0Vn?SzmR1<22S<vZ`^$}KkZGc|ZE=w^
zDQ#r23pBjyM5}i>VZ07~$Pkco76RcBR$Jbj^lnn8m66!%w&YAVa{(Z}Th+DgahB9=
z)GuSxaAX>GfvKR<IbyOWU*3^3+Bi4apz9;swNp6H94q{3#5ca?>Z*wC<+TGx`hXEo
zZ~=0HBdnJ2w6qBq+3Ip)k3HQt+VeCCsQ7-hsOB;E-NT^@7cN1rLFO$rE1YkaEHW<7
znJgdljYxB0)0-|wciG;Se+?|xbwCIxIs+d6L@OSiVF)nL{En+z+U%Uj<A@b3L`CE3
z?!gCU{vLpjAJEK3BD&#_*aiz|jBkWlnR85fQEPhL<*K-C>c{(!WA=}LGeH$)mR&H<
zFaV(GEmzgXY@f3{JDX*SC+tV|O^{(CYC9B2$U7fJ;gMEd&NL&vo#tiNt$xHdhinX$
z<(WGRj!zH1dA-Zgmfi>7?jl6*TVxNJsoeZm)JOK&<<TAOaZJM~U1GgABm|T$wmx5Y
zf;k414mu>Nor0Ftor7m)KQotSc9Mgc2|!5(3E5x*GmG|TnYoym^M?xwjq6Yy-=)uR
zS{WpPyt#5_$wK+@gF-;=h42T)(eKCvbP8zOs?KZp8y^_$c?#*BqZ^s|Gyq=#uo39K
zH?Iq<1#mAjPeeK&VGn@y!&yLqH1BPGN3GEgU<3)CLirq>)caKL?FN-yY*rSWV2);&
z(e$QU#{xg5Cg<+zr_<7vna>39On04cz^lrE&whu9{%bf8F!HnJb9uAOGoaHRWp)|b
zX5}WhRoiG*39i>k-sdK;qq^R?or;&pGcB)}OCHP?0h(e4sKN}2py4GC44}P!Kx~Km
z-i}|`voeGCBE4Pam|-GZJ%H(%4c0?~q6?^?^pn1Nl6@1S<t=CBp8K68hUpP=@;_$Y
z(dXj~PSokIbou3r0~mZ2fGtSZ5f}$xY#$s_1mHK!yfn+!o55jn9XAF>xNqc4Gv@d9
zOsYn=?rC<G0f5;57w1QjE!p=6cD&G__g2-rFCNfg)dzd81Tc<>&LE;Qk=|PO%Rb)G
zK;P9~1_P;TdtqjSRL{;SaLb48Y^+K5C0!t;%0AU;(!H+F(cSJ3@k}@G%Qpe^w*O@-
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%0A1ORS>=O=_oHiV2cBJX2w4+B
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

literal 0
HcmV?d00001

diff --git a/img/install_128x128.png b/img/install_128x128.png
new file mode 100644
index 0000000000000000000000000000000000000000..7cf8809ceb13b4f501334342ccf83a916c2e3908
GIT binary patch
literal 32583
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

literal 0
HcmV?d00001

diff --git a/img/install_16x16.png b/img/install_16x16.png
new file mode 100644
index 0000000000000000000000000000000000000000..c262353cdd7eeb3a9f0c89dd03e747991fcaa27b
GIT binary patch
literal 3155
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

literal 0
HcmV?d00001

diff --git a/img/install_256x256.png b/img/install_256x256.png
new file mode 100644
index 0000000000000000000000000000000000000000..052d56c047d9623ce028eda6d581cc0dde7c7d11
GIT binary patch
literal 68721
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%0D#s!WUBlcYpkG=Oe6+u4PkYk
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%0D3@-_N#
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
Hu0mjfc>$3g

literal 0
HcmV?d00001

diff --git a/img/install_32x32.png b/img/install_32x32.png
new file mode 100644
index 0000000000000000000000000000000000000000..d9c7cbc6c289ea0acd6d4f804a31bd57cca65d55
GIT binary patch
literal 7103
zcmV;w8$jfVP)<h;3K|Lk000e1NJLTq001BW001Be1^@s71bs?k000jjdQ@0+Qek%>
zaB^>EX>4U6ba`-PAZ2)IW&i+q+O3&qk|Vnjg#Y6dIs&{o4s3*OpyTUHG|4qH&%~34
zu|u+_8>T8NGYf0>fBt>UzxW9?S`$;Lx#ev6i7htY`B3eTpZ$7o)*gM1{By5s?sJzj
zzx?6-$?^K`y5~Lc9-fPz`GN)tKRu8?@9w+nF8y{re5Ucgtf;;R^1Ob!UczUCKbG?P
zch0JZJsaH}d(6Zqzc%&W%KgNRgTRFQSmssum-t-ntMRI~+i6_1%T7CZP1l@v!5$ag
za@`%b@B4I<B}Tt};obY`!@X8R@y*X*gA37w7@|AAgceq)!H4O02we4_wYWQPyVFfq
znRq$w^p3$CPu!PzfB0Wt-wt%nREQkAf5(b-d9O4$MKS0%caacx-Z)A(!0*@ZKO~kx
zB6lgwl?`?~o*_nZKd=?dO?2SK#Cv=mF6%V_A!6>tVq72tHoK5qcD8t5oFk5v{B&0C
zgNc5S0+*6stkTC2GRdi4bMs7b_g<g;bD0t%5h>(QNKFf!T*a7THnGGChI$Gqrj&9j
zsiu~C4mswOb1qr6*h?s}q>@W1wY1VJm0DBHwbWW$?WXw_sMXYRE3LNHdS}wk$epKq
z?OYgsgb_y?d6ZE{8+`(w8E2Y#mRV<;-7LStiYu+W%BriazTE~&JMOgeF1zlw`vGbv
zoOsg7r<{7)>7T6KteRhP_BC^Vo;CN%8VNHuXOWxUS>tjk?;)J%Bq?WP%tuGYi!uP9
zy>e!&i_t4{Mme+1Qx(ax%B18hr;L%oxSdbOeRB6Bb6@gisQZ7KH~(|yj8gai$edB?
zzRBFzynU0kC4Qf(LkqE~3>8!xC_ir4wfo8){tw<yoSlu%lv+QnmJp^Zl*l9k{UrWU
zc<Z5_ozDnN3Izm+XNwJ>?Q&eG1bi&N`&ynLtg+|WL4S_sxbZyL=1!^iwL1}QdyjP>
z$H>>_=2=X&du}cIe)5K0dm7#CIM6emN+$IaT?QMkW!z1VM9Mzvn2Tk^-N<B0vsAWK
z6!n(D&Z%r@FK<?N%-T|3DcQa=3Eid6di+pK{Mc=tQvF{<&YQ1)U~{|m0qnBpH#5ye
zo{K;5hr*Kre@!PW2tGHvx?*euBA;z*E(H&KX6{<#0VoZXawX*57_fH0c}^+^WjGmN
zlmznoPQIPEwsB|9umEBMM}B3X-BSs%Qv*yf;Kaa4ibn{pC5VuC6N+YYn(^H2FXzp$
z<Y(9HwFb9GEG~dSZ6rA|lHH2#ex#27=shj?$fYq7C`R=NMqc(1f|Pe2xdw8+LMOeY
zjk0s7;Mz}B0UMw;2kbcGfT@ih8Y}ow8K~})9rvmXg3rnCh+yV1$>AQ25VBV14uy9%
zWy4(p30i&(!>v6x*AJ3B>w0#yhTE&AyLfBCoD)h}{yd4nZt)Vfy1*7FVr$f+HZo=*
zR^E@<L9-+LiJR9vVUO(&g*>33-W}}G+bSN*Q9`F?h(GD+W<WC2`&D=9qf&>!az@}j
zETG+KFn{6NnghApzF)wdR1ehn69~=yFc@;@P8##52kbC_n~d9_%Q`5&-3A(pOFU}_
zh-ZQ-m^2-jm>kS$a#?Y-ves6j4trn3u=rhqU{@HlO!z53(H^#g@}{Vs!OZ+#ig!1i
zMN-3OjCaY}SB+(W@Tsu_WwRp{qkij7LUB}xJkD4+w$<An<>Yn_tH5O7#%}h?Dj^*o
z$k_qPtXFkMenG2WqqFpJn%}de>`ZZ_Zy$m*AE1`L#s2TaKksf$@k42lv7U(8<LoA1
z<HfJrhM@EU7q^3r5PODJMla5jqL4>Z0s~hk@C)b`fdnzxQIO-AF0ERUGrI*~1mFwd
z%sz>NTdV-kr=)CFu0pF774ajhUMbv&q=B_3f~Ssviu@&I{St0Hw~9S|JUOYa+*E>1
zU0x_c8GXgFx-gyUq*MWccCJ-SMuF7IT(h<9V-u6WU0^9p=)~Z}y6A;EA^5}Q++3#M
znYZqRI;H|M;GQ=yggw!iT4#XanS!Sr>Lj%=yP)cT6Iw$A86e`q0Wg9Jr{pl$M+_|U
zKyVk5r0fD}Z0MGi4#`F{VVwul5lrV3%0iaNHAb>Nb^D5_w>#c=!0AWsyAr9z17oqU
z0kSWw+G;gTe->297G}0$yu*YkZQ+mbg2S<Nb2&H|O%~phji!E$bf;Vg%6Fj;Ysfpt
zIcQfjgJ^F8Y>JzpX}Y-z#d~gT-Fx>mHK#QfAvyFf*j$p6A*zBNc(>^qP#{z&p{N-P
zh1SDN4ou>K1a$NwNLx&>LTb3e3kK<U2KD6{2-n_=Sgg54T~Id|go?N$5_8`aGK<DS
zdCbm8YluQF$Qc7mW1)vRZNyDArG}#BA_YV0n`jp=#+C~;=I2Zc7TU!e%%ua9b3pf#
zHMs=VcAT<yB+wzM5b?>ETA-C=;VGa&>8-{F2SEfH=3+xPArt|&`C1ukOLQko#Y~*!
zrVQBtTX@?g4~GdEkbg(Gn9EU-8J)=5IomHv$8jickaChj86t>*Fv3!l2t<Goil6W~
zgB9&4Vgkv41sQAju}amSW&JD*>VRM9Hc%1x-z7?2gkw9~bJ$1_)@XSRm4O?O*O{x~
zL~%=Sd=cAFq5N%2ElA~-jx{-ht79a9a)m>o`Guu0DOM@PagZ4|@<1lKl<~$U%WOdN
z;0(-16-Io%1>j5Og&e%<Ams-5ZWViGwh3+^OQM;!>r_$2nNoZCF{t>hljBPOV5h4q
zXYQfWHBaq+Q@R-3KdoIjEkM^881Wq|+6}}s{}O)!(wDNd7SVvi0q@|Rc=m8b_W~x=
zTHj9TOo~c_Pt0gxBZ>TX8q=T}4<)HwbEgcc1(h-d3c{cAMD6n!MfNJ=LWAT9i)>Wx
z^K?vb6TTW*ToRQzaCpx>w~t0hS@kK~s_Xy`^?)8$XforShG{Qro-4OVf2-Ig(3gRz
z&Ah-7Jq^SR!NWxea&8}$HuZ*r-4EH|3-IK$S%gdpm8V)Z%Xje@USjKn391v(#=h}b
zv^euvR_A>s3kWihHc&e9hTXCwv*t7`mLc|WX&HlJA&ladV>S_>q<Ek${&yc~B=BNM
z7!?>FJN%@bD+HJLytwk*Ze%>a&wKONUt<zrWtuXBWbI!mmQHTMiK3x85`=>h%BWJB
z)E$mNga*2{g;V+3gfggBU5Q8t)~ojUtj1R#JS$e{Ag~4`C^?XtFxvnhBMF@bSujcY
zTBbXNv~4HGgTJuH-Ac1?4r&|qfzU3xnw&8MI6i{sMNu0iQ8HPTQ!9$fsoFzIi_v6B
z7?pY{vC%)e^P_}W*Fv^Lf(L^Y!w9N4ht_lhr-!s`f<3lK3<;B!h3828ktQ&DV;t&`
z5eUduJF#J9##pG}<DuXqo98=+_||r_x6|vLzI$VXPN0^7U6x58`hk$r&=X{z=$Ue^
z2GEE>OAJj`$UWv=#dXQHt5XQj$WT{|Rql|sg!gz-?H=Fn==P2BgFNC4$jOC4FXbs4
z?;a~d4}Rzx;e;A7Av)3E*92?UIXE~<sSR6gnu(kqnu$yP>rMW!X{7~diB@4x8YK{f
zJBx)h)8>AvZM$KhMb^J3^1xjTO$a5U7z7AOZ7Q39W-wP6isIEMB~p-h=X*!mFZCFN
z5e|2gH1Tzk+qc+iOs7$xA{__NcgFq*DbEHr#3Z&2d}@YjDF*0gQxv#TNF-w8ghRY7
z>xOQQ!cUU&yJRVn{WZ<zOP=o$!>YGI&RriNgI3F9Cv8LEXjt(|Nt;pEK|kL#(7DY7
zws2c)hfB9h1}0l&LEB+v5*E~$AbI+%*x})zg1N0S`vjWFAOzSEhp^HrW9M|BkshY-
znTLiJK!UKN6fB!+xya*PH&q(VYotnJqJ;?BlUGK2^i6BVdqS1<Hq%r5n7|fgQ8G=^
z8Auj@ib%9NO7*7LS^N=2Hs$7F*y(Y?G>^y|x=0^S%PiLt-AMhWgZ`lPT&It9faMf1
zTD0vQ&Yn6g>2eCJTv~_pQ3KFE!M%MNodU{}Y3k(jP`#x7_Fb(>a&n^aFL#&UE>HCy
zG3zg9)-U+*1EpIZvTp<Uh>~D%&_sjQ8}@t~T3lHcCW9O2^ugbw26;E1C*7S6$YPH{
zhesz^nC+;A;+>TzkANVBlfHk^NLdIhOpABZ0BkX{`N}0+I3AU_vUeT*C0E<d@0LEW
z!FMZfKnNyb(!|ttKz*9nM{q&~LLnB~2jBIqC7XpOAd6O{nQkGs>~z3HyJ0K^8Yu9r
z^Q-WL4~MX2x&A1AG)ZXthWZzdP^*VVNDV2bs);V?jf-4vog&U7BoBnU1I$emP<0GJ
zxCoIa>u}(}MeCq|nWSscMg8Z-b0el40|Jxfdx%2#DU&3BQIM>pW4JTi$SP{O;*Ai<
z*DeF!!f8=c(}*GbMQqiUggnX1j#A|gPe8Th<MOAKrPl4Ii8k*p8qdVTfDY_Fr$BVk
z<95+oUG#0DSx{2lQu5>uQ?c!;w_%`YDONO3K0jbsAhj`ZnqA!_gG0iR(uwLAMg0f3
zUDHdqL+Q}>0Q!ZGMror?U!!ir!_gGdg!)F}3-Rpb(i$|FOP1M?3&|`O8P-W&$E;KB
zV|#NCcvPc0rAvqVSpdCXxnv6oj2UxKFN(k;kMo`c(ZTDADjj77RMyaY_vY9qr3{M;
z#6i{$g~K)vi==Ic3p@sCGb<qxXqQeq((4$7a$m;%*1vyw$3uvDPZ&HxZ&AaG`{+;T
zAf7JlKx}!4BuT$-old0TM(#m2`-+Ydq4eo{baXdqb(<qrD);MJxlBTksKwTZ1T8@w
z%Be&ZPd)Alq9yIrjTBOCjE+Oqwy0NP%u>8g#B{EP-$486!yJHA*8%*Cv$eqvvTC3Q
zs-&Iv5B*kAJMnp100gZ6+}xSJcP_#l;|~8E#fWquwuqS1ZhCdeMkf{+;UQq%h93pd
zi3Pyw;zpeWJ!fzjGhilRk_m}a_Q%4D*zQR%I!FcSP&B|1)KyTp@w+;q^B6j)@m4TB
z6;TlZQ)_r`n0C=1p^3(}RfkQlj4o;CwF&zFtqBjmZ?v#@4LTje@EkG)eBn3Gda2ce
zJ&sWe_#0>7=d6Y?|1W#DIECiZ_euZ&0fcEoLr_UWLm+T+Z)Rz1WdHzpoPCi!NW(xJ
z#a~lJk&1&AMI16zUF>2-97`38V4<`XT6HkF^b49aBq=VAf@{ISkHxBki?gl{u7V)=
z0pjf7r060g{x2!Ci1FaKAMfrx?%n}Hqrz0PD+;KZWu)RUF`HWzdtM=67(<9)Qevi_
zNH1pKIlk`U<Lh0RXL+CdbMz~DlL0=FILdUxBHkdL-L!Ph`@}(3k`&@|;wghJNc_lk
z+2uFRMTZ5R88kAfdEy|kSnOcAgIUQ?iD!sIimFk*kabz%yv13q)L84D{DpzMwvy&L
z%`wEWganchA)|&eDzFfyRU^ejiuPk3{!z!DB$rICG8j1)P=yM~@q_=t?{3XPWZF#%
z#DMM>+x{2_dUk<k-L}7vZM%5__@99*t?jQifVof7>uoJ`1Pp8g7uRh~-UBXofRQI%
zG9*Xx(-aB?;QfrgDF+PR0)1<4Z>@ctJ^&f&YWW5@I0Pn&l)dip?%vMc{yo#`?*|cw
za^{ST$DjZJ00v@9M??Vj0QLa(+n`3t00009a7bBm000XU000XU0RWnu7ytkO2XskI
zMF;2t7Zo-%Gl&aP000V-Nkl<ZSi_B0d32S<760A&=3CyH<>loCA%Tzu!fFkRQ4klj
zhzJPEQPe6@N)LE&&k<Q_Wl>WL3SwJZP|;)S@l>fCfx1+zu~r}`27wUv5C~)=?<McO
zZ=2~Kd5LUd??2x+Gxy&4&AoGfa}@x{e@Gvy7qVnWwJ_0Vt`;emNR~@%0RWyjCCv(g
zv2}J|nLg3?Js~BvhhLL#zOl6u7f8vop4M^+2>|_<7zY6WPbBn)t+V?|Jy+puz_Xqh
zo}Mzh*ZjqZ{9GB+Z94FIkDEJ_2LYgXp?=SR=R9oyKmgEdhT@;T&W(ODWK92(7u}lb
zsXf8->YwSDvg29?0KVSpJrx9&Hq;#deoZwFEZ+iUSo?H6#71>*(eF3LjseekzV(e@
z>X21lH+QBs_JSj1-pUPtSieQal5-XcpD<<({Jm#e*LcuMPitfn*8zZv7w97=FEzgb
zkN|L^f{+UUMNjH)C|;^%JjlKR-~;e@?fNqRkl>y2XMHEcYM(RjGn=H%oP_+ig3t=!
z#oG!Frmwnd8&=-9#}5ETgiYg$Mq>e>f*`Y2kQ*P`tf&qL09dW!RRBQF6wMC++jg$*
zIB?{3`Q4sBiJ}F@`tC?(UeBo46hqX1V0n!Q>m3@&_kQ<aoVpdxN#`<S75B5b!j`6+
z#Mjc5rlL`Q#e?1ewN*bHPshci@Cjpf(R|~j@MMLROH3`7h+j-EXDas&tnkD$#_&!A
z#q;$dqo=Z8B;}{$A4}W?;1qx*0DcRg2Egu5hn3zAKvY##NdU;7r-lN>YE!a7%%spQ
z+z6McoAxbCTwgBX0niL!vvV|((RM6cW(zN?zPl%wBJE%xVfGE5Ze6?eo5IjI?#aGN
z{U>k!(6J(;)t;$PCjfW>V8|VjId)0xnzFsrG~w#~9nF$(Jmh45NpuEVfj|Kp?OO5_
zFD%y!xu1#$ukt3V=f#b#vyLkm#D4X_O-eKxkDNT&k_e{xv>rJb%GS@SeHEcYqx7({
z1p@WmS;(HqjqoV7wd068MM72{eZ`IeKxt_y2M__!+A-<-al*tTVdLb1isX|QO=Hnh
zMxmZX8#@k*xAZW(g*a5FLmr497ArD_@xShVG+u~HNnyEOocg86J!&xPR_+CW;`w?}
zpSfD(e0_fYgf~yADOv7uiJ``|<PjqBXOB{^;XVS$ElZ`jTh5MwmQ|)UC_eI9E#l#t
zr;~r|TI)4K@uv^eHn<jsTP<SY!57Tc=j<B1lF`85dD?Ss?}S?}5i6INcd;WDJ*lrL
zcuenJqoSvbLZ;y@vq>zTw%WQKz*qqJ03?7ofXgZf(Jq7VWQApyX|{0Wn&fG@mg!lv
zQO{x{rI23%@T81205btJ2usT<EiF~L95ill1vsj>pUpk|lDUh;kBYxI?Q&Nt?=7jF
zY1_Q3XT%N<==;TlDF@x!{?6r*Y2u1O*Y7JWE!CoX?6Ja<7633k%qBE^ZjJ0h2%rwY
zfI;J%M-p=!GOeT%G)=>Aw&nZmFn~ziS|{ozuq|{G_i!+zIdPJyT9}>+;`rR+({lJr
zY1*`sZ&j240CWIYv@?SNfOKU{@sh@!c6lI>#|omr-mY_25H{sL<3BT`)vJ}nDar}<
zQAvUASG0uFc67cSia~=;Z?I#$<A``6>q@@6{!L3chow9G;`8ArGCm`b(KVMA^CyEo
zNyQ8Gdpa2kf(EVd9$*>@tQIkK-{RzZUCNdJUC|JUq(|!Nnk+MEySaH`k71~I=)u?X
zkKVBD8zLgBS*+%}AB`90&d|nrda%0zbUWDd{qfe!%s?bBFRTH85CU~|O)XI+Y6}yz
z=gCfP?7qr{j~gpVLx`Asb^lVcGF8e1ART~yW@N3)g60caCcC4t(#|;jfn#1!&UrJn
zacM*NCSs7$ea<bXcetN=vxtX=^DTN7yT)o2hfjXw6tsQe$P0?8O9rp>*2U}HWr|KW
zDqhNmKrGoPHmgBuWEy(xTbx{a(Q5oL>Hmzeko(#FR;yUvamcOGLhL#<jV@Po>J0@x
z0+?`+5T-ogw8@=JN2_redxVJm$wqNq?egS-OZop%0KUOQp^@q+Z*R6v%V3=>CLqif
z@kRSVF)P_3>MS8$CW%xA#h=ecdvlcv?xVpVFzG^CEn<73UMz_26`!8@@`tcp5<vDu
zt_4f@B0Y;9w%g=8(v@8C&<EK$&VR0)<v1y|SOvlSG4Q?Tr~y5b4YgXOUrlGzv^2WY
zY?Lp@YMe!<Qpvw4fV^4Swf+L-eWydd6W!}P@{4z!3;+cHssStoFgK<84*;_O<N}CS
z5cXXv%sErJH`t%Q!u@nxtk#`cx6b;c8$iEB#u6=)-48+lgn$$>YBh^nCoeJM0JfwE
z1}Sd*DAfs#2atBw{Im+fhd*(brl{%cZDO6AA}kzCHn`)dv#-#9>FLQ{C52@2lzZR)
zrRG~HQYrzk3xERPiVDIm0GQX5p*2)St|h4Vo_H^q9sid5J9S8cL=up7VCKKT+>KRL
zRn6U<;?u^j^-Q+LZkLGec1F~{ZC4QhR=mhq&%Jb2qTZc-_+{(k)aJud5eTL1TL3KF
zKIxiJ`ebEc(f$9{K@!4BL+!dTI9472L4kz(!&fCx&tpfV8XL27XVozP=y|W!FKwW*
z!H&sYwab#zdCncGpL?m;wdC$o+uhI3V$>bw5+eZgOEpOrfaiyA_~K6PFiJn^L*(6_
zj=j@k_l_NRoEu0I08J6nuL&cdCG~)AVta!(y6L3eeb<^Q-GlzV>=5@-VPul(=T3)o
zgaeBRnZ7XTalknX#32BO&PwIo_r6hFr*6|`<~2Dy+iwL8PtpU=x%n0nXfwI^`n0!o
zN1O-Z0-|fpUrd}7@<|s-$CNg2+T_Fo1<EFG9$TC_jBhp~m{7OYiT>DS`u0P;zWIt4
z@wY+k=>VVz2JR|gf=NJ<s|YxX3qg_r2<7h1IpN#sWnJw>u%B89hM|c%v7mX2li&cL
zrqL;;k*a%WG!Lks<j<p<53jPDF9zVo-X&BN$#I+7qYdBG9;MSVDjJQbZW@k{39>v1
z%?x)0levLRbNIjlrL|YPzWwMCYM!G80)6@W%%GtF;LB(C7SGq;<@pckLz#viPP<qm
zUEHeZG>m)MituD*M&kxooDV?diX2?hhv(#EgzxI?AG-Po08$4iaMl=GKigeX?Kw^a
z8s%CTVaLRFY0G&M)MQ6x>>MHr-M}b)sQQSJ!<Jbs@{RUd_py_Iw>!?(DJ?DKWmosP
zGA+$JNz?df31sUUXPU;z6~av>ZD}U$cBZfcuH#m2-MMFD<B;zk(=yq8$wv8j^H<g%
z&QuC{$+sXfksJO(WsVkRzlDTUJaFNn$~q%nkJmdJj=$!%U(7CdCJ%aZ`E(wj2bfAj
zL_%s(AZ9j;1?@HNpHFRc%>Vl_`k~#{%ZzMgGjXIzN5VA$xTq5jj!0L=B_J7xkEs+U
z1$~4Kjr$0sfZ1(g_1*=^d6)9fe+q!zCJ!-1td@>kzyDdYwi7i|LN_x*F_;RH!bwQG
pd9z~zKa^WxxnAs==NIUO@;{(<fp+)ewABCr002ovPDHLkV1mlWnP&h1

literal 0
HcmV?d00001

diff --git a/img/install_48x48.png b/img/install_48x48.png
new file mode 100644
index 0000000000000000000000000000000000000000..3829d100f57d4160c4c6a6aeb35e7d0efce0f9d8
GIT binary patch
literal 16241
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
bL|6YW1I;0+7G_Pv00000NkvXXu0mjfv3DM9

literal 0
HcmV?d00001

diff --git a/img/install_512x512.png b/img/install_512x512.png
new file mode 100644
index 0000000000000000000000000000000000000000..56e9c0ec5d9811dc9847ad3222196ef30290b7c7
GIT binary patch
literal 171015
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

literal 0
HcmV?d00001

diff --git a/img/uninstall.png b/img/uninstall.png
new file mode 100644
index 0000000000000000000000000000000000000000..a445bf092be8335306385bdee377d6bc2d27ca11
GIT binary patch
literal 174513
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%0DKR=L9Jo%)OAE?WCepB@~4G+
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
JPDHLkV1jF`im(6x

literal 0
HcmV?d00001

diff --git a/img/uninstall_128x128.png b/img/uninstall_128x128.png
new file mode 100644
index 0000000000000000000000000000000000000000..6c4e5ef784ccba66f461b2c5e665ada62f17ea7f
GIT binary patch
literal 32391
zcmV)KK)Sz)P)<h;3K|Lk000e1NJLTq004jh004jp1^@s7v^h~-001qddQ@0+Qek%>
zaB^>EX>4U6ba`-PAZ2)IW&i+q+O51<b|g2jZTXK;+#$fwV>oEnsu{fDzkT3LNvWnj
zZk4D^GJ_G`0A{B#7~Gxz^Z#7;KmYST=4(tY<=RRw#q(e4sfWQ2&Hwq|`T5?xzxp}x
z$9`V3Ki*~Tw_p7F$@u!W*8|@p-{be<ALolYQ2fgW${*kD-(I);x7XtzrwPAZQTuhE
zz}H`1FBZE0>woRfKlko-xo4+$r;!TdQ+{sh*R8ytc;jSX;`><PtMVuFbA4Z(ujYqe
z&XV7L`N`L^Zo#6zmTcRwYv+Amwz$L;PN;kjVTJf!Yq5qNR`k)BwU}bE8*1!v#}-3e
z;l#+R;g4&vci#R^x2$pEZM-uW2QxnLzTB@L{=a_x>w)fF8Y1KFe~lH_6@sS0G>TDw
z^DZXD?yoq?Z-9S&{rx{CmV+eTrD1N|;PCT1#LV_*Y(@7bI`YQM_w;?Z?w<oNM4UTw
zF&3Et;vi-#q(lhSjB#wt&)~{KbSX@xz;X_os|+c|!sN7|bMu*M@4X?1?`2YmiO8|U
z%GC5Yn5&d>DlXO3h@p{VPC4h2Yi_ycQDR9Ymr`m`E{+;&s=1b0YpcDE7F%k$l~!A8
zy$#nxkK}6ZrPtni?_+S%!I1}_9&PZ#3^UF&^DMK@Hv1fl@L6f)RaRYX^)=iMJMOge
zF1zlw`yR&*p>)#8r<{7)>1SL*?Z%sKzU9{2ZolJ?S$nhUew(v@&fNd|tl7`3F=6h_
zS>jE<W{sC?{dEWvoMg?JGB+7BUNr**bkLmnW+?^DoYS279>|IuxXP@_*`^s|2Gg;S
zul+H1f6m-L=FO4!|J!*Bf1Np}sr&z9=A5SPUuN!~^Y$;ZwuSFYdFTN)rJ)AZN79cs
zoHjz^9pOK|pD}^3xJ#Kn*OYHRX`SO@KeLfJ`wY$tlpSt(&gJWlT=VU<hI(zBSsAfY
z@49oBzE>V0ow?enyUZ0`FEM04#^%72TV_IR#>EJZvu`GUQ(C>n8>YW=+|4;-TwD*6
zx#C#+awp-scrORlKk}J7jN0a4j`yC^HXxi<NaHL%5_qNE6>9-d(|n&{nE5<cnB6Qb
z6>I#(4H0h1`g(^Qjf-WzHq%(b@r{_WX|wn3<H~kUj@zH(!^rn6*XOy6m+8YzQ_*%E
zHVXVxbG(BS=kwk=Gjq1NgK_gZH-=pS^r}JfH@eDO+CLALY9uTdNY#5tZI;o_Aa&wp
zXm?nrmwD!8P~vF&CgSL(@^hXP)|yP=s*w-%x-Fk}L*b7<-whK!yD<32=B%7^GgL$z
zbLj}wR^sV%uRUU$E$(&VAbiugTyh$#-Pmv5+bVal?5;9%Oq1WPYI7*-(r~jYN^4%X
ztgTeKrFEv$xCLA3#2#*iVKd2F%MPAgyNDO2Ev&uY+%Xv0jpHvfln+Tl{)WiQZIhuJ
zEXgDq*B5=~E^9s^<&}shO+2tP$Z$p=l{1PPr2+=C^6oD=ZXu)oGeQ3IyKAEo6mc=2
z?ZnIgRV2X)8YBWT#Zk&B8aM_i#<u4s`{UZB<}g<2gEVP<yVRC}6<H&F!4h3|+-DN!
zWczM;0Cu@B)%VP?xpAQkVZ@!}Oo~EI-AAUMTMA<kDY+Q~I8Gu9#{qenybX>5fTIu!
z9Vme%*92I~AgMu9@~+<(7;XV!J27@S-CHMg!BK*;HRa=#9g~nMGaP_%GskJwY<c%a
z%5nu~0VOt~JKJ_UtIu37`ex|pOk<B1mY789x+gPbt!B_cF!UvB0^YKZdeL?$*WI7j
zz~W1Y3@-M<&-}o@iA$1=iy!DY!U9nH<5Y89olJmv>a6Z6jPJ3e&uwy!$o$U9C8Ekm
z#dDLtTw~k;f+*Y|qQN*m=g-Zra(p$$XxDI=V?uqCo@tdmITi!dgwW%3C~>!e9ISkL
z*RDISGu9Cz*O&o!esn0pL^3o^KI)d7y<!hS$G}%e5Jlh5Z5*zK5(#l&4@@GnLCUrW
ze(MKdBO}S|f<D@D2!1+InOhozaUo{FD+3E=?4%>p6eh!%CSr-h&5~f8xpM@w_ug@K
zFt7ME32`)aJBa{g@JKXZ2X5uiTV|sJx&bj=I8tZY6GH}W@m=!R>xX~+9*;E?IP*_R
z<(DR8KXf1c;@o5M<D7lZK|qpLGlMmWtA#j>cig&R3ofaVQsn(4rAYBxqm2!lM~IUF
zj)#%u_@iHL%`O4KurVd#n9-H3?d%R11EwHB=3gZc0*J&z<RC+g4==>8uxM^VDs-2G
zGpY6*&=H^^cm|F!6cA9g46YGVoiyhJ7c`r7`IG1U0u%fsmyk=%byK`?mta<f2^X;p
zumso#Ob84nqmvoglcifWaE{{7Fg`=j9$n<ZygC~s3GNQdSGH!bErNi|BV>kRJ=i6~
z7|MMuFxtR-_hmyGs0^45<?)mK^ZkH$A!&egWfBO@sW}08%n+bv4vBwG@v|WWGD7xZ
zTKoo`!bRiEOs?tVX99dhVy0XOc5&-a(e8JL8OEGNdBq@I!s2CO2lbEUKa!H9&~?!E
zfyo)eJ;BIw&l3e>_C+r4O*HJJ5CP555o2F6x7P#t^h44DKn9^TS2=xWve9dI!!wAf
z812LK!-)L}??A>TeUNJ$pSy(fxCxl>UAALv8Zm(uEj<Ks4*8vjB8e$tcqIVM&%&#K
zIB6TnEryB6HBt!iw9f(loDK&Cb9Vmf)e2ad`3y5ukz!c%%B68jy^`94AOgQyBv6|^
zr7wxw0k0v&0EZRP01Bd``(~H{4j9T4qQqZCAS2uczngm}iv=#pg#^BtksbcJB&r>Q
z@npKVBb3ZsBb)`62MN4|_9KhXG*F93!N3^io9Qlg!8*Z2sgAsq>R}cIqGTi&C}up-
z$hDnkTas>2%J3Wb%o+C_z?wwLqEkW#*f3=dP1!+y)FFAWc4VRfDhQ!zF4sxuk9xqq
zZj#BZ5RyNi{q3U;3BomS@dZJOE7%!1+H;aUd?C<c@#FpM|NQ=o=Gz}M@5J-HXYQqO
zt7DGASQBhpLZ1kj4DGp(>I;6L+9?Ic*axcfl)-S|5mt&0x<aCXGfx^;>r5zQ9A|E5
zLqC{upkdDhV_Y<WO_A_6X+kg?l|$eYT&^>q<o?KEaiX{?wuIPZ4hWT`_&g+R2@E!8
zA@0TKgdlkWFOm<8`r5s_jm3#m0*kSVX@QD|j3&g_Ccn|>{96(o5(N^VZqgpk!H97D
z!KjkwEni2vkUQLP<+2bq%`^unQ-oMonFcgUS6<-~P<sIe1+xzSqKxKU9XJAamxGvE
z=B)+^Wf>39E*1`l3t%`#-sDJ(iAZJ)BKn?#+z7xE9W@ea2Lkm|*$*_g4i+%074(<>
zJP5!54}c7HO<#d<ggM4yk@ZHL4`c{OgKJ42BEBQoL2W`1KIJ6X%(e=qK&ORhH`t1{
z!BxUufRM=vAmDoSf}VN6!3tK@?SQn1nyLd0s*8Vm6j)9G8-O1+`Ac$$QidFK6QFRJ
z?Tc4VEUXFBfoe>;hZ75Fez7nYM45yma{*#jDKva!e1hxgrS>j<E}UDLm&mQyU&l4_
z`T^RTLLDE)e3Q+Ly(w`CUt+a9GW78j)IY-$7}?A$Ln)29Bu3oE&<NHS0$UCQ5zIvC
zz(A3moydl?;tU19Xz+suzJmuGVnG783if6})t*rL37i8T21IUVZzDhed2WTMEl;&#
zV?dtv<OSe>yZC<e{`>A^@kk(|c_~c>Nl)fM^-HN2W#7skOhN-5L26lB=JHc>S1>rq
z$CcbgVR<AD(QpB6v^Ug`JtP#X>U@OF=v<9*YjWElpsYPw0q(|Y6tor4kX+5386_N)
z?ZCif0Ex+nPDG}kj`YMvZ8<uW4v0y-<k=gri88?fd&CFI(_Pp#NQ)SJ4FX(JPErx%
zLup3%foQ~$+|n1fcS&!!IU{8er?n<eoIoAd$&lkt8u(v3M+0p;Nyz(tDLa4_)I<NH
zd9lS6W`)Bgi50;sU%ywA&dyIbkYVrQ54;41a!SP7lFuZuL`<>@GPGcF?+q+QWOU*b
zJxa!ThhvHX+hQZ33Yk=pzc5C~d|;hC8>)<oO@Y9rBW3hnlR~Y~cn`w4nlmhtG!2Vm
zje?bDGNC?l1N99rpl>VEyhFeSbl#Z)LCNtu;=eCBdnS{(bJ!?YR=j!*hTet{1AP>=
zybF2W@TXlc7jbTl;SmiX4u6mUi0?uI6%dg2{XxN0(IP)2P#CEY61K!mL<<p>6R*NM
z0W)&4M@FD9l7;Du%V{LgniEt`D88{t+CnU02=F@jhA6JaqZ>{SNp-f0Whx}~isp)7
z7AoG7d#S_C&h~rm{N;OQVozwBV@^~OVk4j$Ftq2Xx6D|agJ5SIs)|H_>??x+TX>pQ
zy@WCjs3Vp;Be#JMBnkY8UbW6pH`CP4>aBHmk@lPd6g!HeD<TMpK=dyH9$!_Y5D6s?
zR0VDWmjd}cn}Iq>0F?i{$ZvN+`oY(Mu@I>M9;Vtm(GYVM00i=7dzc8wASsI#1va7T
z5GnZFjewg8j*>LuM0hqPb18y2t~C#*Bk3XbRpd6%%qlkFCV~jSqB$%ISU01pTqFC(
z!AN&JI*?3Q^jAVsy=(Y55C97ktr~#JKX`c94?Ti~$eCPRfR*6~`e%HJ3uqITEa+iQ
zDlx~U*bJ%#R8?ajq)LkT*4`A=>#zv2{gc-$yy+ZI@)Fg$e#lYh>;*9~;6oKZ`I#Hw
zR2@AG0U<7TbtDKfMVbVUhBoq`+5*uLbszywAAw2Am?x@9g5QQ|L=c{UhJ3n1u^`~l
z>ZotbWel+zdK)+r&VrQauu}{>f~Z-HX8DWr->-lGQf`<Q)p$-5&YpJy&LHw6G7mwV
zLPAavX;_Lv65<e%*+f;1nEZ%PJ(bsIb5YeKs0vQQ6P~YP08W#$`yRXygTOR!PqN0?
z8Ju-D!s7xwVr$+Em8zscvWlfu{)2%C8^kBF6G?=&-9$4U`P6{$DzZA&SC|ClR`<Zs
z0KtgZbR0whXy9dD_5wbzKbH^Q-FmBH6xBe`p_BpWMutJJWGjL33Nx($Z75<FNKZy<
zu1RF0;=oi4ZNoAwd^1u(!b{|Ih;HS79RdFY=92R&aYFBf7<Jt1Pz6hFXQ4h{MNB{>
z(U3rH0*wGc@mJ)o2h41$q{;OXm*5g9%`G*DYq;3aOZ+u*Jii+Ho&ntDUhYKWp=L>3
znMM_Brigpss9Vp73X2{$To-YK%<QVNsPKtcL2gf7BB02)5yi9kqMKJL7s7~uB`D`?
z&9(t3DnVq#XhsWj1zBqfVXch;vm%R*j>%r&%LVf7-1JqhVbM(Js#-Fk$72NPPA+7q
zALd1UaX8>yDZ_D5!>=|Av!4WM0AS=gU^=wILe?M5-xT<wtQj`P6d;{AE0zg{>&u>$
z;qnRYZAeMr<*06t|A&SjeZsrrz;cBPDjDfMx{G`g5W^G^?g;tahG+(OCK@L0zHm?2
zLB`ihIHoKsaD^kFBc`6Tzyb{dG7n}3{+ptAEEYJm8wxv<G&`$O0oG5IE1}xdu0Sww
zH+YoK+A}wCJ4~HM5}EWOXMkexnGEb@9JJn4$v?OO^xn)Hcm5R+@{jbumBBg7Nj<5g
zP#G&obs@~lEBC#!J4a@~Rq7Z|*BaVTB|_jEH1lsBkuI>0BX)6TXk)G%JqD0{YZ8p%
z)=by4l@V1{LsSu>s5U~K&>T+=c?9UnI#9CwbFq!zASPt5=BUUVUt0VW?O!fIqmsXZ
zIM-mm2E_eyL}c5}Z4-Ex*uuF07?t2Es>e*N7f2@Xfy9)MBJT@Ti!iDBBx;I$2V5Az
zAvb@x<ghzQsj!p!@Ll5H_lC%9inoIJETIG&j#0?}+xY@l>fBh*UAQ8|rs|vwxb7q#
z(~>|#YmlZ`w(Pe)UO=7zZK<S<IaFN)NX#nkfF3wd=h1y{H3km5ZM|s1PaqdT>o=rY
zQy_qC_%gVD3}L{o@OGlU##gRrC%7WMh_{fW@R{ayA{F?kCHT}g>B)psV^sQJ%)#zM
zrg29SdZzL<0yA&dRYeuqG3Q<Ma^WrjGd`SY4GDKu{#99#s|1yHn4ars7tIe|O1v^%
zZfY?S{|QZM-Af`RlhI&2xQsn1&jEmkTkC2;IPjLCx>kDDL~SRn&=rSGL{D;W^|Mo6
zo&jnLi17Pjm#b<BX#&Zk{O^+F0d<iKd&C(__gal}DzU&Es*^Gv356nEN(3gT7v7YH
zV;UyEY3Qxv`QgI-!9%Q%!T_z{i6i4*9F1XZVi8WH!h$NXI$=?<UCHsT&B(elF=Xh%
zro=Y_bmjvOAVx1(eS_~a8ACfD40w!80F0nERS6<_ax0fj4hB3pz_qndF;q&#)^gRy
z;dVtf@Fl~!LJH^$8KDh2lK24})mrM0S*m6#=~c!)39k{O4V=UfI}jT$aS<{bV#h3Q
z$X&870q&b&XPgC9i(r#WI1#jhqYz$I672%27#0LOQ7&JKp~wHDz-CYos>ZZ=cZah8
z5c~}~jL|{(J%F>gvh1s^>9y3iFn&ncjlD;YSO+4p*!j^=3y=`QqXH8dtN6O$W)>BZ
zu5iDSf-HnE4C&X9dq-^n$&;y-sKK`q1X&@Dg3<>t1Avimvx2>tb?ySBNhw^&l=s+v
z3%(G?O%p3>*`o)i7RRI3M2ZSdMN~2fB<O-!8VIG`rxuz{ln;RAqv!~z0~eI`XR5X&
zmGo+?V`j`KgJf4Vt3~Ec94@grbiFxRl%CK!<<c^J{Z^yNrz&#Jm=fa#w4VBwWHI(g
zdw(}Cpt`k`3iM*#76FIa0=6f>;HK)*T0uaYk-NY;NsJG}51{mk4Xm{HawvqIR_Qwq
z2)p6Q;q%<`L0ex4lEl6oHi>NCZ~DRiw`h&zX}{jy{y1tt>_XLObg_+LYhZ1l78F8(
zD{?CGl~Ci(@%O(@JO=R4yvaubh^>qoP@VE39-Ey6(eRn!vNr>X85^Z#mFp!AWN!~s
zi@*1()D|+)8ib-%Nud598q|F;FnflXBhZhlc_wJOX)+GxH2AAllATQ1i7O0pSycxB
z#pA<t3<XM4KdGdJZU^z*sY)3j^Abif^OFElItj#iFI0+!H|cFD0h49voN=lCd6cjh
zmmf2fO<EMFxSNVS_jo}mmV^spfbc=M6715%<fzyi@pjm=GE{hy*Ph>Mwo}Stc#+d&
z%+;dIY+ehRU`gQ$!4#4+8XSSnRh2YBz}2*5SX5-FulNw$wAiW?{-_PKBE7T--#az~
z;0zl{^`NUakvMW(MWf3drN6i&h{)}TCy=^Z0)?Rb;NpvUd5CYJJ`6?mQL%(<RgxEp
zAE2d+Z6BqY3r*t!NUIkD+~h4|$&_XpM!=$QTQ%0{1-&m-wM5ks{0s_$JoP}T4hWLN
z2Q@9of#0s46PYM2FC*V7@}y^id~lT?+Ky5=4wtVQheANr31%&#^!_YQJkV8jLj3Wn
z6Z=&s4hkNG6u)2x_zYT=Ge9Y-solLC<~~B=z3?#-su2nrO)}X_NXX-Gba49(E#Fk{
zMj-Z)pnQlKH3NqMY+|kewTtgzA;M5j3c3D-+0c?dG=kgM`_)Knsxpn?ATQhb&>tee
zK?ac_x%p5jtxt-I8kkTbTBSb2psFNsg=l=vw)AgS)%bRmS?YB8sa7rmCTT?lJLWX6
z9Kejjxo^j$y}V+Oh~PyiU<_bP+XBx;P7%4$W!10G#i>9#S}fwsRRtp)yv!)%Y}QT_
zj!d--AkGO}3=(<Fz#U<f9dp&RKpShsVQ#`tHfs|qgyxk?50DV}jpHjmX>B^c^*Vfo
z)#x$Um}d-Cc4zPOVLrxP?G|x2tP2j7L=QOQ9bsa!EetL;$Civ&FB7c#HK8|Df5rHz
zo=r+W#R>`GaEvQn;LwB}Q7MFnR{3QjJfwtf?H06b$T=?=9*5ezhKpV91{Z#gn!}7t
zQQ_iC$hW@S$!L^!=9mx`W2H1O+_{!b;47p(qv^VeCg}HL_{O-EkMHUL$P#_+ZF5a2
zszQb;0<eUwxR0ceR54i%b;LK6ePz$#7cFq$Ubr!a<P-5|y78Jo&@foffm7>h^pcIZ
z@`8ZEhB*<a9H=Un$bLzn8Br2U0-quT(&;GH!_6`pU?%Ab*MHYL&4`|oNnK{g6WJ({
z?^lc1II2QjkHL7xP<=A7Y5A;sRT;J57_=VErKw(1wE_}gxEdVd5Ccgh$3((fZ73jB
z?hwlb`AC{$qpx2R$5%FY6;NK&(o~lV(Y1*UP_((v&1-0J5aJDBstD1`{xJ|!m03wq
z6?AaP+#YZl@Z~Zt&*-$4-FP>)RcF{7E|0g;(<+IOKPE%7hoH_y;G!L6!N0MN`)Fqh
zd;i<gknyBTOW4`2dIfH1bT5G!QbW2RIowzE6wu=Gv;Ba&09-9&;=hOAsAaC@yv3j^
zy1`t>%%M@A<So-LF1d#Thg%T69%LpEqnb5g0<<9EO>k)Wxf1?z#9HoE&lm&6JpqY8
znz?9IZBX3<GcO3k8#A9oD&-fcs7eB{;%);h$yl|nE}zFxq#aD)V51JLskodUL&7@k
zF0H)3i{Ne&Y;?77vI$#Q1TiaB^A0a=s0^}q(ncsD(|fRMWCKb@s|atESh`)UsK2iq
zM_E>nwn@Y_NT%|YBU5@OA$tbYRl-sKG46CW**PE|ox2S;ryjTOtr89R2#}qrHAIuD
zy$<S!x$)%9>?7Z>f7KJolu1sK1cA>_l=>cAD;gG!_UpX$JFOckMqdy#;WSPqssPpg
z1OXu0$TyODE-e#GEqTm=L_zIfmDO{{7ztFsBP4o{C&)FUznaR3wV`v69e8q(v<pFT
ziwX|X5U}ACdlT1$rdM%W9R<xD*?Ry8;WN-4)qM7d%+nLeqB?(9XZ=cs006i!nO)0;
zufD^3(eAJOZVrA`=_J7^TGBmgqp5G<TFYP@5Ve(oS`;nuumsxZ`gbsHjJN?R_zn69
zR<M7(j7I<aizoi}D#@q5Lww;P277gyDvS3k=^3I!>y-FX_>nX`YOEWQ*Hi6LWDgd^
z$XG;42x{f{1ugF1u;uU2qQyM|j~Pr_V<N0c)v4vB*?vi8_ivh6&ex04RteHEqH9zP
z16{QY0S^2Va@=p2Lr%`Cg|U+eviH{Za!RcoXR6%1!Pxsmq2K}8gKtv*tMi|8uK=)x
zCDp!)^rsq`i1xu)?_m1%2UUn-+<gV(m%30v0~jBaaY7sQ#HlBAjBk{Zh((w3w53!j
zobyYCV(*rEiBMgE$Qx5UYUlMs2J}_Oh6J@707CF_DCBs3<&=XWkmre*wvbF~C@TNO
zImI65sEkvWgKB2innqOb3RYKZo&-t<HUkha7m<n&UvsTc-lE`AhgMlKI<>=J02NmB
z>k;MiCh0D61qZK6@Qj@L5>RqUT_d5XQw9sjcx~kJL`NZMWN^s$>Ev)!hXz>)NmLc*
zRRfz0gxc-9oXpp>m(^PMb?=#qc|K@*1E@;8xd}WfYt_x9CdmEU?-iE6zX8RKje+%2
zZ7Ra6Mu<hr^8K?s?J?BAZ^#nAN6@+`vpE2%@Rbd*hNJ&F^i`!h``uM!957Nu9^;b3
zR~_=wp-D|KGfpiO93n~`ZJw7lbMS-~ERqE?tI2(-EPL(?NOD5b_QY1?KM;B9Ta0KM
z((-Kefq_}DxSF~IrsU6S3nC0<T<&~r)#|b`DOhaP3GMZ-CKcr+-O1MeL<ZjQsv%ZL
z$8>a$2^mdsDltV~9j8iS8+e2rM9u{~#pVZ%Vp>a-IMf<sTDt>dz~G}gF1A1Qre$FD
zL?bVp8iZj!uVsxc(Tok?Y9z%=sWKzO9~mRqv?;hMamuMxuhfx}8b}EY7u9w|KJ(dl
zwB*ik+y-dG@-mO{eS(N&)DpCWOiE!#F&1w)k{jxea{@0Umo7F)3_pDPg>Dbqm~f#R
zPEJ2pEm~!AWT;z?po2{$nOsR<N#IY_<ozFR{ZHBSgJ9|uuUh(f0LJy?qH&!wIvGaK
zPbESQCfowyv`&|_`jfOQ*<)0j&SV}DrtrT1%Kvh)ql*YoL#}I$Q46c}8xc`qRym)1
zdatO@W%%SbLu~-D)}ql#S(a$4y(UZEX4lmH%G|!y;OCxeftoQYXpNYraT?)<t*0xP
z3}m;L6~G;VkNPEpvE5=ORL*3y&$q9D%bFF7D8ZCf$S!KMoqsgiVm?MUL=eM6%vhB0
z%C3WEd-5;D5Ew{&db!oCb@&h(zE=&y7w=PH{x;CnU9DxWO?msNm1%Mkm;KYWx;eM9
z4w|-87Lw--311W$StGBufmH-e(rLA-%bjUem&l(0zvHgG+Oe>#;dGp6Dqp*QLPPv1
z(G(g<)gUb)e=LYZ#r(rNS|3Dc&EMYf_urE)UrDv6hRp)fzO@=D<<E}`NXRdjvj==m
ztE(eM`;=qc?JHKa_AN5~eCmD1D=S~~A`l72H{wd>%PG)s)mnC*>a`_&RlthXWA2gr
zfS8g#$dr*C5xeD8#RUHdZ{WKX-k<RO>L$GEeOK2IYC>y}Lsn8QF{!)`uW4~wEAn*!
z3Fu2ztB99Af+X7@z#PWv^$ANnsV==nz__E%z<MPF7LQEz7{2(*LtGb8q|-`;o*(1t
zha;mb=%xZ9b$U}<@$NyenWIX9Oqf)PrfMW|E6@6+Q+ldOMKpZHa@wFmm^?p_m!fhD
zpp)1h`5x6h*oPW28O_4&sp<Tx+v{-c>Z!$I3>!{cFc~`anYA6r!Gr>D926XowkUwu
z3XoDJog17@wwU;QUwzZc(U$ks`kGl*5#B)4^5Zb7iu>9a@*ufsC+Q0XZD*_Mj-8>A
z4QNLd6h?+=SI7%k9;Df~Icj`c82;0i0u6{v<i=71E+1_{!p;TlW<oQqr5;Ws0kf$F
z&GFw3H*eML3!uvVUtx0z-Dw})3F;C78uo9xPg3jCd{EqqLh%k_fE+}U3PWH5qq8dT
zueIzp)nNd|c)$ujdM@Y{51;dQF@>8kOI7ty%s3;UGL;(4ztXBoJ_KrTASM?O#6B1z
zg7GxtYZRCyFbD(qQmYfPNW0wlWYf-=l3`WIgt=a7Q|wM{VZ@$LQBCYvd{g;=P}Vl8
z!iT}!uT6)*idU_4OsDpVq#-#F6&|@d=zJG#q~qVHL+kr|lyr)kJlpG+@Ifus+R6IP
zq8&0B|JJm*W>0O`sV;mQ^C}@XRjvNvx%-vp-tq|griQKRL6EIWYSU8xWd~E0l=AD6
zHOfLUOH;=YpM4t&-&VNUvhoA4(wcNg>LCL~w3v8NzGQiUDp6&po0jQ;ZS_%B^|q;R
zGo0MtVgXSyTVv$V7l}~&)>6kY{4|OlovCddfzdyxTJeV%PlabpGr!cn804}?B(K-*
zs~7i1Iw3%$h`vr(HSGKe<?dgR`fot~PpE%T{u_|H|G;EE^0P$$np-}N`PrMIWimvd
zsi6S05l3&e3<HEo%K%q8V`<-+#H(66k+%@t(;)W5jJChYNg%(1kA>`HGVqvc8_Mce
zNf@Hkv^Q~Gh@_nF3ZN7Tf@du~UgIJG!YlTuok-PqB-xO6RS)|WkHW~vUt0}#StT>n
z_ch+dYX)^#)O4teT=Y`YYhsrr+CBrgveWL_pGA8H17@yfO^ZVoHvdCHX=}NP3DJVF
z+O!i2K${Xu2uYe&TWz;HN&<XWSD)olH6Zgs`}xyRNl{x(0EGnCsnbf#YFZ!qO(weE
zbm9WPA;sIhwkiIlnv?@3>A#__<n(M-Rap;A5R7}Sl|)y8u|mfuEPw>W9{|d}Gx9g{
zRkV3iE%aT@quNvD)PX<XW}mKh1P!boGt;zp4<oUYe(bZw@;2Ic(K#Q0nsR<ks&%zZ
z$`_|b0_||T6@R9^-Qj8nGWL`S!xg{fcye>Z2zTNv)ORN--9L4n5O#%Rb+47y@EU5R
zEpOF0A<?v<E25fiz-hrR>PNQCn5VIZwk-8Z)L~j~Qwy@G{Vd=RUo2?Lr4}IsYa2=c
zP{-A8yP8I{iC|+Vq8bP0+mxCT(4ie)dU6HE<)@maDv??b#c(MDeqpN-9S@-<l#11_
zv#MWNRT3@0^prXRa%*Q%b=HL;8}%Ht-KeSJ8JilpwQ;Gv4(hnIVOb`qsH0UqB=gg2
z+B_zQkF1&KChZB)*5uRGo>)!&8H0dAef~6a!{I7)dks|@T1eouGiG#!wjGSHo%TfR
ztEUZknF-t6+R&;~Q&mjMFmDC&?T^t8C#61FamOkMfUXA?sH^%o?YGu?Bvz_Dnkmd^
z8G?861)*JJZiD*1#2HBp`FE=>Bkul}Rvpo{v;`OekIimLJ)@!Z`K|QA?Lake>9~!Q
z&+P@2NVb?T3@o{`$WJ1=i1C_aRo~hHaG`8eNW(K`45ljS^;LG!UFto}s?0E?&jb_(
zwk+VdUJgk5>Cql*K~Ys-?waUJgbtLbEdUvnJ3^qS01R(xn`!(uo4qc&!Nq77DSkxW
zPy105x9K|c+O=s%+bFTeUTMl%@H&{mfb%?hdWZJoAdJxsRn3gL{v*~OpA%@^X#>3`
z6Xx*REo=6HInvL3#U*JYl4+yXyJw{`(*caDo~ngQt@%O&UyW^l>wJhwfBhuPyfUHx
zz~o$?-!`Zj(=V)k3xmayq*>L<p}9X_*CSIHWupG)K>3dYHTaQCsoJa;V38st&2YqT
z<kYU?m=}q173jb%P7V!}oxVyWgRai$5xuqw2DO-5kVQUK9hi(_w-NCMJ-8x2|2CmY
zGBHW72pCk#K#~({>aCN!k#bhQsyYNY8JVqBit;LP1TLmV^_Hle!UM`HTAwC{YYl|0
z)*VO+@eFEAt;QrzQ$-v=Q4wxeb!U6+6o0FN+H1=Ftj1})dW*bTg!t5}>qc!lA<#DQ
z2x?%+&`VPi146*nOr%A3jGOu%ykT9kHr3|gbuA4a_ck)WO^}Kd28`4zm5~E54r-|$
z#TwvO1465)B-z2B*z{lzB(~Nr)q00ehLm)-YNO=zIDJW8WGtct=20UKN(;7((`oxW
zzC>+_MTQ0pl)r1M>lp)vR-1A4rta(%xcaD2|7q#jPj&5yJ~%Kf_@$kJgKOn9H3)m3
zi`j2c`4x(^;r8onTUXX8pI3}inQ^Eq?P{Htct<*^O%!7b+kq%IsTm@EK%Z5|?P)=&
zs;s`24vgl-3FWl4dr`aAwJl#8rS{Jjsm-PQZCxf5v4Ga65j)I_I-jn#cpx^B5-}|@
zy1IhGQBgu0_vg1`ae0v|1QZEVoC!|opgq)Ur<K}??x|Tiy0^FQZ-lsu>m>IaO?v_v
zC3SPOtelc=L1gB)yF?w2l|Y8B)ck?q(ue{!vNZTJxoqtT0stoip$*>J02ELfD{8l-
z7B|$#vV?VT%7j);TNCtDg1g`TvdH**?Wi-~-m-If3xRKqbZXbMiqN@R)Sjm`wELVF
zaL~lvc?}2?i~==s>r&zHT2K=i4h<UA=4fb=jKl?NiHqdCK575O0sz%Jrkc`-U6r?^
z2S*@G9t62ypSnieR&5RM+Twkm^m=<&>U-!5^EFUn014Jn-ON?*)Gi3qC-DbPYjN63
zKGbi0leRD++PKV?RfpBGB1HOa<~FYBZ<q322gh<>JCGhVAcv{$KBTr*NVQM<iELE>
zmR9n|Tp49z<0*W&K#wQ+b<Pj7Kdt;u3|Z;fLu4&t9QIvmxDNU4Oe05L$CS1Y;u8CU
zb4YxY@9^ksBz#gyFzA61LmPZ?C1`Q=TvaV~)UV{JXGOec8T{*Sw80w^Z)1X*piD)}
z{_RNq^$Xm8InrN$qXrZm>Ft$9qqNzySK6+&O%3(k<ZqX>L@Psp+Qk!_mN}YgOMe{H
z{q20(4K4q*JW-B57zpMAyb}MQj@sO{ARs0?Y6j7xT96_L9&Sz2f<b%jFqmyE;CI!t
z$uCuJE3az(Gif0W&OSA(*p*=-VW=L=0Kx{hku};9fAxF?^ax<MwPcGO#LZlh3&~{w
zfLsM6;E4(@NfmCSjuqe4=A*9q?+G+-X=aA^$gD8bXXww;Ham`PaAuFfM8CAzS|n27
zLJ}FD1Rydd?&}ZHCg5TU#N6h$Ll|cQH?OxPTf2~^I(ZZG0TCXx^wzBX*jl$=gp4bu
zu2$c)<GN@Y<`y7=6-Qj4MU_7rk+l)Aqj<1lDz$;eS&y7B1|c}@#7f^nm$rDSyn+FQ
zF~InqB+#@(6$#n+vlp|Rvi`ZV%>DiXny2T#XnNC@@t7x+Di?2&3Dl+@Jp#$}tcp58
z811pdX6fN7dI|_v_PTvkvqn7>ZM!FbC3N%sy4ARF7!8^EK=EjO&!)OiqPeNfdnhiI
z!$OKZJ)M8mmyosdbVLMbQY&~>U$%TY6p^$5Kp;g^^9bHhNee%Y(Di7G_E@3|mz3rK
zHdXJlmV626SM<&vE?eq#&3eSk&{IWp`|tTjre})8j5@$m3TH=GA~CNWC|Bc?IvqM9
zW}vG2Ua$K_CG)Pw_}oE=eR#AL4HD8?Q|r2{9h#mva^U}?R*9YMlumAx-fOEPeYF6L
z;nfPP$3mbFHInLjN=-%T(ci;|RESI3GTqcMsbi^uSPhB&Jq9Yq*IJ1b*M_li9ZZHa
zhs`SEN}|eIa!8DC(w^1$?P&wgwY|vWAVKs|W@Ac%kd$c(QuoA>wvl_L4lIDi;ZQAy
z_ZeQLw&%rJ32y>h4>E{dOSS-jx|Sjcrq;s!;So+)>L13o%j~O5lL_fTE3}duNBtQ?
zWla>E746v5wrA~Rl2%6x^GTHdPxdI3|HvLaZQ$zhU}!N8HE^?t6g`<?`~Ofa?ynCd
z`1kLz#s%{>Nyk@qMPXxDJb+B_YEM_jp*jRehEP<pu2rRf^|p!xN^gi@k@&BtE{V*r
zz(eM8d*rzh#vqCYZ@ZDaAP2xX+FH?IdLbuctaANK7ww6wT6&PxN&(dzhZ=aJ3Ta(K
zga#%p(b;}CwQH_L6c!_VS35hXh|{#3(2i0Lk;MD7B094k4bpx69z3QeXkb}55HaMr
z339I&6|0IoLdCmfbv$eJD9Ie+^J`V;zQr>x5GuwLr~qW@1#o{p9SG7^ab2XL6MJp;
zL(>j)Mbp+sH9qb8Gh#?F^`4@#e-7?QejO>RK+16I;X_eNy6S7+U{1^0PJ?Lvo@kK5
zQdcCSVq43oSBsf?c#zYxkKVJoWK^oO*tZert%K;PJY20cuZMuhC0p>SAR6qfr?tIe
zy#&v7-^ydw?sD?jb0yjeuIG02r~{n{N$81*N|&g;CL9H;hYM(>=|OjT@<Gw#9ke;Z
zS9Rqwapl=AbptI}3nyhV9NKKEvWA`lR@4bL)Ix-qk(ZAW_u9K&xOWAj+3UC}+UXc@
z@QEAAtvom<-R9TlJ3*s=A(5XQzE#bu2+IEp2%DgU5WvdO0004mX+uL$Nkc;*aB^>E
zX>4Tx0C=2zkv&MmKpe$iQ$>-AgB3*_GE`mcVnrNF6^me@v=v%)FuC*#nlvOSE{=k0
z!NHHks)LKOt`4q(Aou~|?BJy6A|?JWDYS_3;J6>}?mh0_0Yam~RI@7zsG4P@;xRFs
zTNQg=Az&Coh+tA;rk+SIX5cx#?&0I>U6^NipZjz4D|wRvK9M-ebi*RvAfDZ{bk6(4
zK~|C!;&b9DgDyz?$aUG}H_k<e1)do+GO2muAhB5NV7Y@?$xw-Bh(n61QNECMS>e3J
zS*_Gq>z@3DfxNbo<~q$W#Ib|~k`N)IhB7L!5T;cl#YBqsV;=rd$DbsZOs+B*ITlcb
z3d!+<|H1EW%|c|_O$x+-?ibts7zcWGfo9#dzmILZc>?&Kfh(=;uQq_WPtxmcEp!A7
zYy%h9ZB5<-E_Z;DCtWfmNAlAY3I*W(jJ_!c4Bi5LYi@6?eVjf38R}~J1~@nbCW@53
z?(y#4&ffk#)9UXB5r=Z-jEu*i00006VoOIv0QLa(0QTFUM#%sG010qNS#tmY3ljhU
z3ljkVnw%H_000McNliru=mHlNIXJzhTebiIAOJ~3K~#9!?0t8fT~)RJckO-3tuuFe
z&7?vCDTGXrQECuDAU&Z72sUi+Lu{z1=tGew3MlZ@XT<_fARz%lQA7|$Mv@5-LJ~-C
z(`W9?+<wm4d;R{nclu1)49NR^e%sGw%(>_8z4qE`ufEp?j-o}Dk{J5T82X@iIhmE`
z_#N#4!U9+WB!J{Tg+Pr&*V-fve1BMvrSJ7Q0MN75`PioGlJxrZN!oN>l2lUP0|2vs
z6yQ-ooO4frix<lv0B{|eM}6<!{!VD%!%f#EiR<72hy%z6&;+1}>R}J;pkjr2asFKS
zP;|XxilIFMkO1<j9t5BQfHf3?rq%AlR)Ik2xjx4LfK0naa-X|A_k9w;8UUE@*7khY
zbMuamR51|{oYcW2)Wn8{hW$>5-koaV5*i48ZtlI%hz$F+O({&@a$(=-;p1A+(9l4=
zI5U9kQuQGv3p%(C+NKo#Hg^hsK6hK+_Y7b`Lq7%ukX`4Yjp`w0Po0IQ_Jmk7;Az55
z4Fy;_v%CK#om+(yzvt&nySjhpoz9g5I|=?IGHlI>3Gr*AH1l?UPuC{ZO#@e<7Z1H{
z*S_CzQ)4G?`s#yRQX1m#-+rY40aGVlO})SA`@!tH0=(zhl!&ck9@xQ92$a$|Zt_QH
z+Lvu_#}6{bs1(-QYHMp{ZEfxH+S=M$04Q20%{ljsK#9F==Iwr#0Yau#ZGH2W%!z#v
z{xA?HAA*V9O6|O(e`Fes*1KL;smLtp2W6Kzy20C1_#R`@P&^$~D_$i0hvf%z?hSC)
zt6pPdu2IPvAnJ!Ry3zd-pzj#8tb=yhCD!dFXBuCIhTe32QuaR2KNn)+l7Q!SYl=3g
zlbhGLuMPvR<`Y&^*>YoMj*Jg*9kz}%jmpc+Co5K(HxGJPxJcL)mzqE0ItZ@AZ@3Pe
z`#dpHCsS^)b;&Xj0st}l&VW;WzAw$D`aXa+0DJ^M34qxEF625qJ+uSq$D0-J_r-=0
z5Z8eQY-hZ;ww9+CUBJgjF5nYu&gI(L+P-~z+}CUd08zGFRvvgf)w>_Ro9pPlf4yfC
zKPTV9hx{2p6TB`9$;Kk8t*s3JKy15S2mn-msriL?r+ZiYnf{Tv4if?Fd13Ap45jTa
zt}h5SG&CejmKp`FLQLq4{)24`a|kckJGb;C^@a5XNV)>dz#AQY{l!g@emt0TVb|lH
zXSA+Wt#j@PaL2k~Br3Ljd?zj*B12~UYHC(~oMrx@`C<2dQFVoJ8VH#9Df7;Ozdo&I
zD!;z)ZhUIj`8@Z5>HMpb>+t%*y8!^xZ?-oAz|8Oa6UM>&y%!JO@6n{s*l7S?=<T4Z
zD+|$e*Iz`}T|b2WL*nG#P1Of>`AX~O!bEN3|2VZn_`zfV?*p)E-^7h(c#_o>+vSzC
ztyR%sd!cNZQB!t~wHE|5KbOjDUCl87DF2W=q4YF+3jiE=HYGaO@aPO>#x4FfBTNPG
zSPFmkYqyIL+u?n>u-5$PrvH-^qwdC$TK+;%%{c+L`S0nxwlzB0`@CeCES6z;Hi3)S
zLz7DI-`gJbq5x2Fg)yh3&U&r=C1+ma1Kul#>i@6+lwB-~%g(af`j~Q(x%DMyvZwSu
zm1K~gAP9hhtXkkt3m^K}NbD`IXZPJs{xJbi^9k!<WUf)!QSZK1c#1i@V}0fWjek&o
zJyPyj^>Mj4GSzw@zE@HHY$MS2H}}q_hutq8_J<XhT0fq1Z-C2|87B;Uo?}(LY>JPT
zomX9M{e8~80WMo^lnuf_#R~K4;52cqnJ=ar0m>r@c-^{n%Qw<xT!&QvRvbb9U!r>4
zai|vxE+R4E0>2vgEV)O$LRs=BtL**$3;?hP_w^f+)_|FJ0w@4*H`U{F1D;pqbTKvG
zt!*42pHxFbgB}rxrDRSx*Y5y8>+{b0n^$>%B>*T`L^R=izfK+0JGbAKo;F|*2f#o^
zcP`cA+1h#Yd4si~@8Ro-Sy;KZX2h8bpF(g#dqG1(Ll*!PEf+pt(0Cy-Tb}a9jVUq!
zzz!J~K?4H^&v8|Y>ktEQEr1w+7r71@U;~&4>!u%vKW`7>UzR}lxR$=(g#>WPq%>w0
zrN98bw7$UU{jTE?oi16fE|dYIt>{7_vS{-V0D%1W6Lmk!JOqgF5MqqHDXNmqb8O_n
z!^+v+Sb2!GS9<tHBg$fxP0lK)8OM7VWIpIGHa_Q_=lwYGXC9TxsUE4578mOsbM_A6
zXi{hYsfoeFgVf3C4gGSc;tDx4P-eX5^)NagW$pv-_?vuDU!{nQq-G9nXP)(5P9z<)
zEN(-zsAt4?3?(sTbq#{r(y4?OZfIyomS0NY(lh*hKREDI$}ocGf~G7CD3ZfXmeBy1
zHM^3(bmNl4>v&55W)_z$zZ>BTK}EH`Hm6e~-KwAQ68wOjCnpc<q<oqAzS8%bFSh@~
zd!g}<&RHY%TU%Qj0ua0W!>3}=;!|K4a?tl$Gq!HohwuK!WAHrv!-j^2FHiZr?FA=F
z+4$$Q=y+1|VOep-O7n*$XPaM)?^HT8MN(|H_sg#B&S#>JLmgIrTqeqjPquf;AO%&D
zAxuKc-!et5YgOk_3nKuSb*EnmtKSsr+~9S3alTr4`V|QFh(%CZbfFB=SHn|9m6_j9
zpNFF-<46EV9n{YYiNN;TGw<!Q_ufxr1W1wwF{{?rHGD6Cdk1hmS#gRlj<L4LLXyYw
zyNXN9D~{y7!(yOxmi1~u4X@w*6X#>S&x#fb!wia3;HOEX5Y`E7(5`;1?Qx~DTAy#1
zRVXGlJ>=ehxc(1I11EgP-)0t2vChEDv}@t76athrnS0q)uMwm(3}Fy@Rgxny#}11D
z;YS1jgbl-AB@o@{u1iGK%2bLS+YfL8Fd6Vw8MhVAH@`AyH!L?!Zh7PwRkFg1NR-UC
zJ*z+v<-l~>^_#7)JM%hM_v?m(c*qrEO5rSfy%DCuULQoyW-qq)=T6>H0Z_V3M9R<h
zMco*)nNO5Ds9tN|;?zbTV|65iRdNXhB2%qD#kT7om7HO&a=RJZZcZJUbzHny2It%p
z;3+rQDFDd7u+MvP9@n8c_bEDJ%X+bpGk@Uc6Ta&oQNRuJvy`80$CLY&x9dk4KLB(;
z*{A<q4WKOd`OuL9(EgZKO@B*EBSe_|e{A=V08IL{)ky^GxIJU$W_=6Sp@-}66#$nH
zc=c|s!?j$8G}mF_;ehB|$2z*v{kFfFjPjM{SBh7Xowq3GYMOGr{fJpW^UV;IlT9WO
z(ELI=zh%Ep0&tIDlA7vqSY|cttM>XpwVXfj+5W$z4B>R^pV=j1g7A|`0?-+bwLYwS
z08AXx#}he>2>@>n(UJ-di-paZx`F?WHn^XRu4P34FzrVB)j*9r2>?1?&b;T~@6`HS
z$HANn695F&qt}@r0aWFlADr*j_AVzkG&Fdl0Wtk%dz)P<r@LK@t>4J*3IhP*JM}mH
z74k8X(7l8A+L}YQEa$wLO8~6?hp`oBA3P25gwe+pXOw&pR#6gWFu?#eH#9WN>6`Ty
zXI^=!KVjw*3Ko)xuH&pCXBUfKI8n{f*WIrUK<kA7HVgn@C)XiVTRZ=rg)RB3H<%6Z
zQ4%jzKZ}`y0Zo7==!`(RF@)ImGKy_4n_XL5+qeB%S8=lCdFM0$uq}CE-!2GLQfab9
z@7@0k_Xh(8e7bkWz2+hS@lDY)1Lf_=a2Nm~rb@8c6(h2^;N)TY2U=En|5Pc42#Bxs
zErARWDVNs|(S9}8;c5U^0=NmlD*(Q+M80+IVj^fEu-7cZ<?*UPHh}~%H&0{5v>0ru
z@x}GS>C@?AHp4WtUl<VpJzOwRJ$?`1_XCz?QC8Jv5Ht472;h5&9<{E(8Vt(1)QvuG
zG*i`KWp_PJdF#~5EeB8bop9`KPe9tBjE6)Y0O<~9E01O$$&WweRlKzCxPvFu{ILol
zV*Qb+DN&Q>K!Cv@#2kqy_Xc=Fx1`wV@xf*lfXEUu&9ES~-QCa!K&nyi%RfO*thvVe
z<Gx=wmmLm>q(6;qAKeK6VnfdQ5lmnJT4>;ueknWSAE80Ntv<^iCj(F^{#M^E@M8L6
zm0?6qGA<1+#8G3HiJ^qf4t^MQU0AT#VR$ObZv?VXZ?=oGTd8D{^^3y|IP<sDF!irB
z5G+Q0r+iOwpIfm{$(dy}WKDKL-ehY{-x8Fa=IgW9@@5zx2b@nF3V=U8e0^UO;f24w
zfk#%Y*IivHvMh<y&pZyxme)~aVGy_uxOmx*vugTsvdxI7>JQ_{C6$-U6OEcrS`P?w
zur#arg!%1#zjVKSSZbC63(lF11?S8bhgI(@%{6Wh!;5KT+V%HUlAm@{+-&UoxpVnG
zIG1M~ROVkxPB#~%+w@Nk(U*5DTQA+rTf;Nxf{yj7x^<0ra8#Y}xEpP4mrH7TE+so2
zXFZB>`bJ*9eZno@y_hPi3PCiun^eld&wlbWUV3r2W`=QK;%jru&apPO|I>S}@d4+Y
z!z!gG-0Ej(6PjO0`?UwR^GQ9bGFn?(8w7B2PJieGuz{J|H*Va>m6sWx*Dh@-U0^=l
zy=i3actijq7ZH`sv$b6+(EYmiW@xG`iEehzZ2Y}?<8Y`BT>vVYX#Q9JEb}wzCe6MI
zL7f}CmIL=W<wtE9RbOQt2+t5zW?qiQ6jXGx^Qry6@P0M)UHc4B^(odv!70Yd{&iRA
z*`~kLyvn`fm`$_ti{){pXW4J{QD6@v`igg_R``t~)kzF3g*aYV;yPbBtqe_(eSLPn
z?%lcfznw3R$ux5_yr(aUu*uuzFBj8`PdC3n0$%``eW6wD0LezB+Me^i8JRD?ZiXqS
zoWUagm;gw`v<D4t`)8)6>5u9_A6HvUL@Z1%$=Xq@QqT8$)|yu1wwjNd*XtC&c3575
zacI?7TkFEJsZmeXd)+tjwzcw=B3yc|`Mav+*8Nn-zfQctv9b1PjJ1ROr6hwjVzymo
zJXgdPGIMle&n|CiBI<4MTOvq8o*`_yN(OP7l}DvUm`uY@g3JNifEla-b^$NR?Dnwh
zcJl$1;>WeezqJbK?ED$#ZNi^RYGAP87pDN~(Xql$W9^`H1^J6l@wFQv3Jf;afJ~=`
z3=)JOcyY~cj2$n*9m>T{O*jaGV9gdW3?hVxsY+T@ZiXpn1RzKPX2Hl(uICN!mwSHd
zT=Q>5K-qG0u2n$KL}nVrWR0dPL1)_Z!LB#FPqnP}o;qBgfhC|kznmYalK&B?G|mz>
z0wapnHVpze_NIQ+OR39SA62P$1Odg1Wx$s&pO4HnP7yZX_Gp+P(eGtY;B>3no@`WK
zOC;2j(T6xaW-7Zx6#5IrmHrCjTB|@zfq>z~SbIqpzOwAVsr_2VcdBcfR=GcWTM$sX
zOceM_jqUlfj3N+_+^<x8hrUz>Fws{gE=e`28xlS0<?eM^{e|m>_uXsRkAvgZ@CD=y
z&*cMxq0EqYsbHQtQ&@o8!{~ZN{a4e&&UNF0fZ~Nx`U>TS!uiHr2q3;)r4#$r%$7&I
zT_aL_cH%b!7)hNyi|X;h+aVze7nAS>j8%p6&1J#|q?<MOY*mY!SG((u83E-hjQ2+7
z7%y5yg4`%`^i^+B^J@2r0h7(og;bvfu&-C40YW~#!3D4`_jhP}62R3|k9Mwu05B)_
zd64Rn84pAhFBZ1H*w|fgvQYsBI$rj6rDEQ3osVjLNCbq=Co*ja5E+(1K4FMk@@E^@
z1B_Ioc7&kEQ%&lp&8xj<bCaJ4U?YISae#XlfLf|Y*H}BMxJ;g0e5$>kBqVdro39wG
zkYNvL<#38!#8r~J5_{Fxjk1-pwD2VB4YPoXM<Ws|BFvsQ-CaHH-d}T*uLbaT0RB;V
ze>NfUj{pt=m<iw#0HIOdp8{Y9*I^FTqj4+<X!@gig$!pw@hR5xBy&z!g8;w=U>l%(
z73XBnPWPPVN7Q}-fV{<^!fNvec_)}(01e+3$vxicmTk@@v31Y`$iD=@uK`>%WGfv2
zFqi7lF#>;h4}j-@L88q8@KXRcQ9Y95#S<z&EH5ZJ#eRas;Q7RNslP|}IA=#6$ujFf
zUzT5H%qW;`ZZY%wP0Vzo+R(Bk^WN^Y!%g9wpSBx7aKPiQQ$4<SDBx;qYb`%;-WNse
z8@KE53@1w&;t)JZ=e*@D$R?cr9Kg2GvLkxiglmk;3uarthk#%YaN`<1udB6<54y`n
zWP+7fSZj+<HI}5?6nv!;PE_yf+>|+?brmOvOxyr)DS#gV7`k=h02WYvziYR)wpIdY
zpA8*Z?r9+H0~oldAe)@}&)6LNM^hR0sUufQgstH#?`CN^1mOOLhK4IgM8YS`YXX(>
zmUJ5z<j<6LrbTn-CbzupQPnyK0mVy%FEZWi4%A31zC$Gwd%arC+}O5O_l&Ue6LY@n
z;zPig0`LfcPt14b|Gb*?hv&9L@a^i6vyW0bf*&@{!ykHlN9X4ZdI(f@06<<tLqlwI
z=4gGdxX$<*0JQzn{c-a{?hS*CA;TwUS%ty^15TV9qRr|}=cSPq7plizuER6{F9A4V
z0GV>`?{@%vAAkaIO}+KXWqU*!zjjW7R=hP2Q5SGPc;0*s?WzRdiynu+#Qo5&07)J!
zqXa|P8q()N`W#3*10n_iIJH1w@#Hve+L({rSfe)O=-+ug`fFyPfElKh`RCK;yZ@BS
zS^)qOm@Z5LGoU?eA8qmjkkHL_m<=EgK%D9aN3^&OHv{+<0AWC3nr_6jx3Wruwgvt%
zXA)lG8fXGm;6Pt~79XXicBHB$duaC3&?X>+NfA?!09Y9VeD=lJKo0@TRpxm_?jh25
za!63X$N>VX$1Plkp8)t3gBCT3Vv0_)`=bE>nBE5Sbaca?1`NWz=}i3yaJgQm0mBA_
zL9+q|Q#Zz@yHh>d0W3MY_T=AQK<-r!zhPl+p5pUsQdA80m?x{4usv$yk$paNxJTBD
z5H#5gk^loL$t`I&D+c=z;JNyhM5E5+N2DDn6BSN}EQu`CU0v&V%qnUO<ULR+^o|ei
z6k7rM9{{Fjpy*%(!R-MUO$NxN(a|jcwi(W32R&2ch!*$sMIwj^(|<i>)Um^hAR?va
zYA;D_gb3^bD#`aHpUF~p9|Afa*N%0u{w*u{NxMXdyyJ~MzA_1aer9gd{c1cMU4xd&
zH9Ry=Y#$zu9>*433M!dw{Vp`sSPBJXx;4CRR<5J&8i3mYK&AC{-EVj<dyGJh^a&fj
zqLZzL@+-uou>vDICFOUA#&v>%1<H4iE{TgP%x{IJ8dvmsKkY&RBS=x0{mj4b|Kz<N
z6sVGSM`jx4z_k)S3Kq_>w`eyrq4go%ajd}B&7Gvbbj1y#vonS#)-~YiCpW{%C_sXB
zSR+&8z$tXe4Z6@qmb|4SVZ}^XZ5CVmO;Cye28F_wchyHv7pI+ef-p^qOP;%X*myOc
zG_J}&(fsBx2Y#t2t}OC*1|sgY`+n*E%m9Fr6(U$T%i3X=h!MjFMv(l)^X%Q=%!Jm5
zb@!O;_QEheeAU_b@Kt9Y4dbWLoVh%LpsKoBo{@i|^-Iw3bR00i1j?Uj-aGXMd4rMN
z2ckH(-CGpjL*+uEf(%rVq!Xl{E-`}Cn-nJUCR%TJi=1hlkLzP_a}nVkX!#csxp6ws
zx!!9oJjIv*0d&6XZH`CXIo(eT$JQZ%DqSi=cCl<NILYvXfsXa=u1uGn-u}2csu*Ey
zZEX<|+D<!TDn9+$^U1c&ahYu6!47=w#s@i__L|nO-%ter<;%^*c_+%XzH&icoDtpN
zeXePhd-s@pf)y*wujJ1${?jTV=oF)~!Fwj1QWtbSs@2f~U0Yjg0k}*Ex=~1);kjA@
zfME!jreM>O5P}E*d!B~tD7daBtr?U}1V{mRk{RCv@M=Rt17|(d#!10yu|9OXVL}7Z
zSG|L&c5iC?V>&Y~PSK)^1X%%jU*sg?Dl<Z07l^**bvWJn6e~}BSNiz%bdS0()~;KU
z&y0`rbEH;su_*8t${Rxy<!7}=y8CtS=Xo>am+dk^&_LH_FP3gq$F;6iEpJ;~pnQe-
zA%C^_eR!IbARyhU;VTh+y>W)qsaE}Bs>QoC71u9zu43m{#>ra@3gyXZz7lbhztXrw
z`UeMJGOZeRiGUYpbZt`qbW+|q?Q8W>DQ;t8OvM)oX$0g=z7lbBc)B!3%`#?ircF0@
zZ}vXY{D}AG!}VM6K{CTN=CAT+7?+bZdi=6`vua5<d-Ge?_6JSh@z59m6fdJ-S)H$4
z2FW*6<YYQDj4(l3Sv6E=7}{m1G+1kJuWTR*GW<l+M<AnLMbj>jX;bi(Neo4B^fmX3
z`+woyIW`+<9Ga6x%I)SoGDtH3!0Y19?zh~l5}n?Y5JFf&R0&CEkb#SYMJJJk5^0g2
zBm@JB7>XI0WJ<TIG;f86ziGuUcv^4oSgZR&Ugej{@=&$0CNNQ+3IICI4dbexkEPXo
z%=#G_+?nW5-)>*69lXu0Y=x}x6nA#4)p7j0Tku@aJ2h6>N?BU5!n}Ii?1{0jgfX#b
zigka<3K4ueC!V($RDHF1Ug1gB8~!S>Wc>UjW3}>Zl;odiT;`981(wfS8Ef|b+4Jmh
zJ)rO+LDGazNKs9GnhuE|02_=DY4m7^55mPBt+-jcobGt4|D;jbGP3*?#`nV0%<IX5
z>BdnVI-e;1C+2@U0?4Ftl7L+z%FTT1dHI(3r5*7;&kkI}5EIFu%Y>hn86i5(%BPSS
zA|b4tnL;_gm}Y1X&<?|kv39x;vp>WewZp%H!LNoU%KHNo<ec81jr38uX+s>&5&DiG
zKuA>dGE-r}h|DxT?Q0e*Gi^E$oFoG>M1xCF^v3H3abkk-W$h)a2qFOFLt{avQ!fxE
z!OW*2F#*a4kpb|(9|2^bY7h$~z*ixPtq8$QFr+4UNru<M%8hZtOY=d+{3ZmY!7x~}
zMSv|p#UxN=_^Hr}kj2cf3ngd-yGfexTL$@nu}750jsQthN2Clt!S)f7`&CbTufE1}
z^i#^^BzvqAV1yiiErPZI>1I7PM1X0CX-2^Kv%gAC8cnv4Nv1Hw?Zr#@`u0cln2>PH
zX>!Gjg_S?o_=#00K4KLJ8coZPK4LG%Myf|W+_jFq^bSDp0MfgG^bR2NCXn6^q~8Kk
zZvy_~;E*6li>6DP!XpK10l<uiTEX-=Uk&{$zE$sjM-`#6WyWN?Sk&jAXq09;HG1=O
z1~#4MM5<A(O}41-^t9`@5=Y6gOIK3B&J*YR%Z;1tQh5>?15S1`;B;$P5do(|qkD_K
z-%WZSX@6XMZ#x1iRvJq}Q{*cD1erYx-KJre_9MVca4NZ9J&=xi-;H(ay@_>WGmZ0?
z!U*Nbll`UgE534hp72o!4C>zMsl4M1NoF=pHTsIT+l{G{Ti2@Yw+#Um7n@(mpJn{e
zDk6dgdbWB!cBvq{M1;LK#}d1}U#6n!*0DHGNA>S7ga}5&L|=jYOrT6&ooeQPX4*98
z%`%o*1q5iIYm?WL?$Fa)*Lcn2j)00wjGH2J&F`9dMA`wmUiBI>-QEZCkF#EPy3{Yz
z-RiD^4%4AoV&jz|7B~wODivX&#VN_O`fI>vTp5}w?hDjN0S3BW_mWPVp4xnbNT4HJ
z`A<boGJa}Ch;)k4xzSslPI;HQ9<)hh4|I~|k|zEHVAhaseh=Wr@j}EPp0wPk4Ned*
zg{B!M0Cc_T^`tvhP3xM&Z->L@tFJK6$Ujm3%`Ow9(?Dl~`@3}7`^dl&FN0hF*?Je-
zF+6{01Ax=VD;sPC#(ZM1M!p(4PMT0a$9iwK6Z4L5d-TwZ@sP$)=`vXqs1|>=%LK6p
zbZ&H?%p^yje6CfGB3>gHJ*jHUt!0h3CAnX{H@RPFNTA?kW3pix_Z_n}ShSpkl_&oi
znkIc<pzAenrxRC8Iv(YLMWN2-I-JjS=sk981Nguw3RWqA({oz{T!(zF!zEld=$Pi1
zTJs}bLwtw+sN2O5HjsCsxT1WydCoCyfr^#pCkx+W{I?7c;=7a+-|1DiKC0RVka{_Q
z^#ICqB!4fmsc@$sLcwwX{7>%v&mwy$dJ}*%s6Km~Z%nSa#WHB;i%)^+lX)kK>0}aO
zTUFfYQB#?9Ofx)JL&Ia;ofFRl0KNqv%SU9IBuTPmNLl796>s>fg-@k{OpE@PN@HiT
z&AY1eNv(2Oo<9NbsUc?0u_#swz{jW_zZ)w8@-GAxpJ=}noG4EP=L!mHKx_8cgTpS8
z+TkR-+>>nLz3~or3Dtbe`k7fk$4Q$ig^!A*jS!hINs=63#c}s$_olu7?fz$O^=AU8
z$LNWVN86eJ%%gfVkF}%9%Z<9CQ>_<!lO#uE)DBeVM(5mvfAF3cWN>G2qFmss6f>+s
zDwaX=35z7j+<FqAk{nI<sQYr0w~$SbJJjS|Wb=Z*f^42pLv}4j7d8MsJyM4G(Y8d7
zdO6*sULW-Z2I4!s-*v^jzX5<qbf|Bq4yb<}s?%hPS{-ZGy^$6T;N?S@qFn&40I-DW
zaXYdZW2XbS1*4Y+=mAD95O}n$dmZb<0q+Y?BkLQPR^1qH@~%rfn*Cn1uhvd{pLem>
z#hoJ}EW_zcoBDBYxQpuHA)5~WDFCg*@ryeEtjfIyss~d&(g1D)@V60$*p`zV4~>_S
zl<LucOSh`+!wj?xyq;a&(t*X|`be(o!^TAg^Q=dQ9%W7LSI>5A$(%n@K_9NejR5|0
zKtC>k<Eb8dMp2UTk*(}HX!WTcUA48fy>%J}ZUbg!wQ=Ldqee{iM~&r$CtD9g<amJw
zqOW=Fu@<+qYe03;K6%~2c>@Ok03ZNKL_t*3qn?yoy;mZ$jrn~bD5zA6ck3al8R-!y
zVAP-_)uVgfym>uDRPkAn`o{CxK4%NWq}p1Tqv<3>)LUpWmD_s11MqM|L&G5xs}l+J
zWT;bbw~EDdAbWtzS1O7!ogyDlUBeJyC?X<E%XDb;9_P+<sJBva{o*LAX#zNL$cl;F
zvtbdN+$r0K09*ioBFwm5wBfta+4x6K5bVm4*`#11pC>7h2?>9E0a=L!Ail4*wl)Lc
zTg?1}jT<)(`(^YYPKU4YzHb#-zf>tE86-0Eh{RiTK~5JLtO=SXMSSHV&j=H|9tIek
zY*KfO6xq$``>T+xFFMr4c0(?idf?=*1`xjynG3&_3evY?`IzAZP%aPP*2o)JVY+}v
zef2N~eLMk<ThOgxczY|z-9C-n9n+vXD{L^`Mnvh_+S(CoDaJeXgHD@1(6h~ZK?s5{
z0bz-cj_4B<Qq0S`tO=cOczc4?!p=n1LnBN+2;eaQ^G2b*%K>z89exO4f3DQYeX64p
z=M`^4ByaOz<;B>CFIOc|WSoj$c7~74&#ei%Jp|o8jf^S#4KmW3Fhasz=W3la;eCoV
z@ABe$n^h#p2%@&&d=k+=WfLX)C_otWe#%8~Rf6yC-t1l7x@yFusi~1je8@Jq7TJRl
zbpWUs3@JySnk}MuZ@3-uShN7rbSNF8WwrOT$Gp$&VGjVzFy#rK@D1An!iV`JvcU<~
z{IBLmyk|yXWE#LX(SJy4M7spQM*-A7W$X^$C0kJwX@)Bk$Z$R~x&R&rb6nKKKYHGW
zn+{HdbELdpGGuu-%;R@}qyym4CrwnE9XF0{05HNN4cUJ@$N+%CMMUsrNl3fQ%){jS
z(AJvM2JaZa1XT{9uL1Zd)#FvJLq!R7K3Ggq+%Vh1&zh?7e2atw;0q#wMRFIOPM(Y(
z#EQ@@bD8!7GpLC{mInD8kS`7L#X*JxfDshH)l*YA7?=ELlXXa7GhkL}J^)6s5g;O>
z3B3zw<YbvJOv(cR%7NCBdk#r;^<b{UPXSzpY?0;10Ne*)K7e&pkLFw|{X+m|5Ey4{
z*^M&*e8U2E)|8_q?Z?yIlW~vskSW^_lSfV!761$aicMf%p@&&T85H|nh+HAbgNeh(
zWYbTB`3gS3jJae2M1AF$vIrm{L|^Gk4NV^OVYgmA(p-mga<V^_)8byuG0GYMPocl=
z6KH@BMG`|-0C^QIzCI+|o{!#Pd1SBY0p>RMpK;1b0c~)9$$SBMWS*Nt*zk?W7Qwy)
z82Rusk7uCb2pV&a-(_>{1|vW-vj5AzN>IWaOW>92;c*>)j_jGi-vTJuGPN3<Q?e75
zF>Vv1BSc!CY0nH$|H26X5DvMl;N(<KB4&HcfMun{IuFK@Zq7rqZKES#p(9`+ZHRG0
zK*~EZnjuMrL_k&;_WK>OOQBh-BuBw0GW<kDs2&gVl<L8?wI}`aT=MYpYZ6)#FRjkd
z?BWzmacqVk1Bf{i&m9QhADsr&5p)wikBAJ^0NE-Pto!X10|26bX7*jiJD4#|`UoUw
z9)M@YYnA@O26kM%8%2!;^!u0cL3?dT0#6HQKBd?dHDMR|wg*W74d4zM1Wyy%k_PYW
zG5Mu-liD025a3pOXkE~Z$euhE*bo?X?BGHWNtn`4rJ!ty4$b<&Fjbg6yudC#C`^D1
zIxBJ!-I-$cGEa_=jjjcwsiqB0HEj?~$m<DFY<C`Q-R^@pV2{pn2!I5sLPg2<#L+RS
z3rV{_Sv?<lhuj0<kUYikixp;=LIB{#*=0`;w+5m48I|Pki2{P~<2`wK=C6F+>b7R6
zt>ev+H8HyKW9XV21LpS5lln@d^^!W1h9*877aSD<`R76etBh~?E97}zJe!p5c5@SR
zzh|nC8!4r?WTM&ZZ!1ED`7?~mgH`gDyv6TK3LJx>Ny8Hgo={Li9e(nMk(~ZAG09&k
z&lWxyWMs2cRf_-AF~A|xhk&+6bu!b=joJn5A|f&&0~N*vp*%Sa@Aftd3j77~hTbA9
zW<(&}qM<$h^{9~{oxm?LZ3?}mqREG#uSDDwx?t>7P`R}XhL+<x?@-bY-yVBJ6qH^f
z3jI~apkmK~DhaEAP8-o5001(~t-i9sN{YYIxFp!5z8Z&a84Ive_LL%29|Zdu@!B}r
zCU+uj9bHDPU_v+^MA7C#__o;q1CfZ2yO9~TSNw(IN+U#r>uO3Me}?%z?+X4))BWD2
zK?o?nRF;RQ8+Q!N$d-Nz_#*OKfd1@Q5OBv`SAvMJ>9sw0;14e$@5OMI(OJx1rN@~v
zM>zQoJfD{hF=>L8G+}j{u=m?6J0#$NND!ZL$^`F{JKk$nRu$sUPrpjP{Z0L#u}UtX
zfWN}Hb|eNV{IK(;8f$r_KB;+?ju}9<FnOrjSYw81MAIrX*|@6YV)ga5hjnx;NRU$C
z<atwY^1LZvW~9?DcI|AYty>S$mNyRS#%<kj97U`FX%KAN;7OB<XyyggIN^jUs-92`
z)0Bk4H$i}gOw<aCbFBg~>Ty!LL`)7;8o!7vbuTvnAY5cz+na(uBH%#^`U~Zafd1OJ
z@hu|w{T61<s=>@zHNeFqdWDag_e2(w5hyjj3^7UyAcI+f166Was+m7zl&z38p()1q
z`()85ay2wjezs(}cWc`t9Dg?p1YbbTu)^YGFUFb`3*`cCRL9uGgDS(@w89Q{d7tvQ
zMWr}uc#1o_UU%n_iBdACf(%p&K~*5S+Ac;B2?8syut}Siyaw>@dN(7$bNN8WM)#V$
z6O0G!5&_+zIeAboXj$!z=*Kj&2M+Ysp~g?yGUF#kK)w~6EQCrib*}e*=cM@FV+G7{
zykU1!j7N(`6TR-Z>~_^4yHx(#S0=z75PMUt8Ex`8!7xf>Wt)!LmBO-%#hFHkApLZz
z7sdMcR{hq|0NB*j#MRYRA6WO;D-&kTuB5`E@US|l$F$O(!m5W};<b-#B4%9F)YQ~i
zyhxZ<p4=3fYm|@xx;J~>>8N^N@=f-R$(>ZPNC-11UoAS-oJ}SW-=%b7k9tqbBi>P;
z)v2wm{Uj0Y1<0H|r<^aiXf7Rpd?kE-3qsIgyg3Y|G&(zCc;%Jdc>K}V(9xbmE(|xn
zp`qbGu9nze3g2Tc5LULjT+dtHtd=$2)-n0hN|(rxRUi)(&NK2MfcRUUmpGv7js*!h
zL`(+o4QYr=wc;Q%LkQ|SHEKvf46xP=*HuuShU;bvUJ$_p=m0a{3E)?~@xh{nB<zs!
zSV66Ek@ORsPDb}8@5-iC<8b3fjvrLoC1Ph}w&4Q-@tsO1_v$6hkGSjdFC@}n#E!vi
zuC1*lWPOoAWUIKB0w~I<=$V}Ry)oy(N%t1fFSv+=FDy=iE2g=wdfW;b&lS!y>V&Vi
zoSyfcria~|$Iqh*plpdT*)9`XBC`x11dwjlh;37MDCYkPR*3&{V(PYJOurm`gfnj!
zhc8?R>5CZe3slQH{blmx=&SB`NYZB_bBr=FvbW83z2@D~^sxJ-G1^h1AYrLdX%&b!
zA}1LUG60oibiJk;BPYpXVG%i<YICYt{mAK7YnmS%d&Sq@R<M*ze^{IwtTyiSm&@ZJ
zA)tZyF2$j#l0ez|fw67srlwWdJf^n=0lhrI2#SA3<`}bki;{RrhS}?wVQ9BoHzg0M
zU#6q#r}4CIO{_gOuTtqs3fKj5X`n*hY!%Dn2Np(S1*o)!;TMQ+S8lRVFK%A#K0QvB
z^r2hPA|WhW{zq`KxXC|33b#wcDjcrKswBr!P3o~!tGX@TqqfE#KYYLi0E(6hf1p@i
z8Jr-$W)+BueOVp@C4&dJF^$-pYNwOn)7sW}$7HRJt*Y!YV~P<Je+o>XY5uCwl^mUc
z)4j!gI@av1?0SL^dxuKd3gfiMOygm@R8)-KC!^yf?<U9bzTfc}>tmh6m^G5fLLnlP
zj6dbgFwPzE1qCGbDxGTNzq7{=vgX$qXw+J}EWiTr7-R|(#UwD9B;F@1I@1W!Nmc=T
zzETMq!K_h9&a}RiDQ;UcwxhFS4$*Y2(>m`OZU8V00XofalZ?P5DS{JmmiBO#&M;Jl
zIU9xUt4~6P4H7<run2uQin*gP1cDi%p<5u$lHIYwKQ1vU?P1%{MA=N6Zj0~Ij<1x;
zrNL7Ads9>hMjj21XmS7ERw;%TV@|hm%8lyhwZc7t8gWx_l03ba5h{mM(jhg*YG31n
z0Cso}Gnfbj1s&U^9*-Y%u69%CNq1Aw+%0E9;zD84S!80WuqiAJm=FLnJOW(ha6+ZA
ziyeNIJv^sbzwEl)8ht!l4Ypu8{n?EgAJ3a^{78l<z%Jq`)_Sb4kBiH@;zP!?;`dnF
zw8NR$cJGVvChr%WPmFx3v*-gvY?EM>%|%uU8d7V+1$X@U@F&a4FOw5O)yAW&pmyGs
zIptkpgO@B5g;Q_vZL7Rop7>6TSFn_1`EujDx6z~i&bFeZB4i5jJ|^DgD19)xcI;<@
z-wmyJg|IA}rkNper4f+J-5&jXD(c<TwnlfpTVOQa4M5mFF~MIUZ?%iXEGMeBhCi<F
za}s(@CaoLCgBXIRfy^KgY$6B<CJ+mdU=~6^GJ%AK@)RkdpcHG(8RFPqj=nrW;YB3v
zu&6LYVxe6quC|KA9O)-NE9m3_KIo=Ip>KhXrk{KJN-h1bB7nR_5M-iM1}I{L$u{!k
z$$=U<S0(wjOq<>m`l$Z3o79hIT;1AR3wjXuSWE<vl#={J$R|)a1Wh1;NsyRECMF1r
zDujU|vM4|z8-~vDKO#VYvq=f8p|pb19=mXn41XBi@X*X29|Yqq*4V+|ovgV{GxspV
z?RZS<@M0p{LZ0oHr(1>c8h?p6!w6FZgU_r8X;Y;TsJ48xD-Hht1ONbj5`qk>AQPcJ
zfh0gOM1ep^*7+yOQ@sS=m1)xr!H?+Qd2!wXrW1sLGlh+L(k~_$K?IE;N#P?B7KmiO
zE=_a{0*{9}B#}+v^cdO&REpV4u=Zle_^#wO=|_*hLX?{YqHyS8i@u==Bz#m%7ELlu
zdNFsN>;DsgvRGOMDy2pKks?wgKxUYNW>}ud6Xls+jNv6UWPo4<1%xqVVSDS7=&Tj0
z6oWl5dkm$rIT$=}k##RG$Sx8IkT3ueL?p9i`AKF|?8qjN4Uh$bgfzkkm?1Gy*mQW}
zB0$;*2?H}ovV|kNR`vgV0w6`E5L8754qH&2Bw$7eW<+Maa0!h}oT1XtDvgB7a0|QG
z%P#gXcn>u8GxI?PIzfoD&?yiYL<B)XXcEkjy&@pHOe{#l29qB^7(fLPCK1s*;lrs`
zA(i+_g|s8$sB4dq2~*f~vLR)8!G&s9^vQp}82GmlK+$4Bh7^S)X(<FPCkgAQkZAyB
zzJQqzumg6wbRyNv^_d?1Q`c4NJ0In7*<po?$*>Ihexm@V2CAemBSH%k;!t^MqZ2Sm
zGfd|}i!HK8Z1b(;-zdcoE3KM39{u--gm=^o%)d~O&!jwIiN(T)>wTqSju|0KXBc+z
z$WFh}{ZG*BAmt`>tJ|X+oNoTJm(YKAGQ6kb5uF}y*ux7U{5A!pPt+Izsxw1kff=TG
zMo3gkn*xwWzz-O3q8elXMo2)X8JRY%(k*(AO5vx<<@-HHwRFCNoZ%fIfYK$x6o#yo
z7QSYeh!6NGgx?5e<))X^Pzk^)5}-q%kTqCmIOWCkemACHa^w7rO7VIxtq-OhPW3$Y
z&YD%hr6AiN(=@2S@X?8eUz}y;iPOz6%`p5_L>5`YDq1t(#uzHiunR>$!870`80jYM
zrrWqdXZU-H^<UZ^Ikt=A-ZcbJx=e<pl$RP|eAQnqCfkLg|9(ZzI(<`(TAM+FT_y&H
zeH64xbIR$``<<wM&Q0jYmCGBQG<Uig_To>yJM8E|9=b)4c7OuH5;caOYGp{AZiQ&R
z5fl@JO<|HSREnMW4z=A&AY_-)1b>B)(%-K{vIjUFnv(}~yBFhomC`?HU8CCnR}nzz
zQc)l+@mZ@t+z^-`i_ARg+Y7k~>f}Ma&x`RdWB?SJYJABIQ&^>R!s+3+oT&bbm*6Me
zjNYtLx~Fp;{#SYi10Mj{VX`cn3Ji;mGkoGSVbYmy3{fYpzfOuhVTfyFh&~yp7G-vk
zpuP>Fvl$M_eJbH};WzB)+uW3D>iE<6iidF}fRbf0&oITOtOB|*Fi{qn;r_%;od!}(
z%1Jfr=T!=~Xh*HrAhv9=luWK>@bjLdw|f~RqfZQ1h`0`g04C=&^FzVyAe%6>r?+y$
zyQzgQ1ep**fpvFI))y}owiNPoY16lT6;v0flt$l)Ud|FiVy{ZLQT~~7^?$am9Y2mR
zKIOER3(F94iJ3>=4^EPktVsWkS1Cs7fKH`b^eUC%?>Mg78C`dD8ZXx&4B$!tw<24G
z>QHcd$d>207Ql|&{YU>RTH#_6rj#d2n{M%y(nWy@(h`2^;|NZa5#O!aRgAysdHTM#
zM^*aYN&tn61(}98&hU#L2dc%nz6xRVDmK~yk_VKNZqkpa41dF8wX0*z(X+2yHJup%
zJ_Fzy07r5G+h$}7)jUP@h~s}*E4)Yu(-J32AKmV&5FZFsOGD(0WOjjclhTR(yk2Mc
zQ?BD}8hGmG9V39!CDJD?ag|j_w}vLmVj0Sv?@~afP3y#7wO%FpdN-{$bUZQgj?We0
zqF(>qNQHB9<<{O0;EMnjV94o!QQ84y&#&J@^&=nt&k<Iy+Ns};%7$YWsSAY^mRw*2
z>Bpf-;sm=yWH~DXUYrrzsp4)I-{L8KZ~K~e=&ES|C|hcjOF#V}P%SR?S4p#X*Q+EW
zzDq@&4!+rQ)UVne)u~aCF9Ey{+3HKD0@#ggDZ1B?EiJb<x6|k57JUJ-H?<z=^@|!n
z2eKC+J_q1M06UQ_U^q3`S8c9;AF_oFehuK@yNM9O3yCZULmJ4JmiU5QM4t;zmI0X)
z3+w^O14<?L^ApO^pJ`p|HNLF`kiUq?XUbVdQ2Zh^MZCu<%B6K{Ak(2au}i<IGW=!D
zyhCg5b~C!Wdx%pbS7h-505@QGtwEJj;!?Tift<H;ETT&1`b_6`yf4@1K%=t@z=Htp
z0kG}eqBj&S5<Xv0d?rwBe9_3GAS*W5Ly%+^AK8198D0`lNi>7_uh3{_<`^@2pb%q5
zj5XrW9Akw9G!n{1(o?#lW37%;@gm_T1AbwWPe=+7AxwmP7?e)}1w<$!i4tK@5hNy%
zz^O)%B4iOnE=U4FAc7(Z4<5W^qk19Ls&7ohy*CCXjpvlPO8{Jl><!!EUBq#d$lefs
z7l8He79uEFP9cAx@ukod`FSHx<Q<&?HTb`*0hQoPe6L!Q=}=#dcdPwWafx|Fpi+L*
zUqO?}BAG4i-*<-Ps65{6!A-ZQe<d5en-U%RrLJ}T2UEBXMF2jQWBXIau&Z-%J}C5;
zOX`*9y*v9@`*xANK>UXQo_V*Jk);=ld|#pbYG|@?tr4Q|F=CA~9l9lTK;4$=Qom|j
ztrGxXq#W;ms8zqhTHfrhl8a=30>^|t4bSORo0F~H50Wwc@{q;%<>c;V045#70x_~B
zCSO6eF6S#bJ)tXS_W6-LS~3H`naJkoPR7v(y9@yD1#ljKx3~_w-VHiI>%+Rc<YL@T
zfE}7*d{PGKsBW*(4!rb1wIS84zLZR;`hi(ieG5^(QiQFDyux28Z?ucVM98CH&kXH!
z>K)00-mR%FwW{qQPL81XnaEamTLEBcjv$VNnw^|7_Y(k507xEcQF03AlpMGDNRBWL
zHy4F$72CffTUYQ!0MU1wWl(yFDDoG|?*u0sA2EXDKay?Z#yOGLtA6i9)qf=0Rm;%Z
zerT}$Nz#tUnZ9CqOR!pgQ21dV!658*>&D~(@Agbo{pN7Tf^z0pFsJ>08o(l8)NvHD
zMd^P8;JKq=$y|q004o731W<5@SG$odj<XiPeyWFqcX2DbOqBVHja!2g<%fpeG&pGf
z3dpqR&SazdY9^+B-?n<>2<eEdxOgSy`}2*D1*+v&?Ltv{s6eL|<IcoB@19hLy1VtE
zBhPlt?bOdBTVgpl3M>w?)yM7{PlrzQ)O@>zL%!QosoD&YhirMb8e~g37v;Q-1<00(
zwhsYY20(jGJVkRZ=mWV=Th8)u8yXtME!H2p02C?|69c94TY)O$V&NMu4s?o<iE3op
zIpcKj*IZBC(=p100wc=E_Ep?nwv3<Bj=n~vxYSoFAbi7dppqO*9rW%`N7YY{X7O`P
z=9D=1FlK51fS>D-I9isRyUBGbfDh(AwHA=SPA84iL=;O!0zwC|9g<U=(<7NcY=Jc(
z*ar<40w(4D_WqkSTnLiTlm-a~Q*Ij6yViXrAP3g}-2vcPWNQk(%*^qlEsh+23d{@j
zUP1IdB4q|DjiuzvmBC}c?a|OKV3$akA+~!`>a$3QX8^tVh&e#XB54_Z@%2EB_?o{$
zm~NaQBw&X7)1Y()$>afVO|sRyIhN47kK_<!&hr<_DO$^O%G#tu$Y>4V^_+eF0M+A=
z-mZD`=1C%YAF_4J-)8}4_SOao_I!|;5>SfpdB2B?BF};VM7;`ZPR_uey8L)GS&SAH
zho8boacpdV5rbcZkP<!c`7LDp?T|i~wbcm-ua`h{j$7P;?4j=?zDpr*F(??8#|O&g
zcm0)eArYCWW|h${{K1K`@5Z&nKIJ9%>AT&u{(8sb!(#^{5<uAs<9IVqtjar1&NA|d
zSOadShTFrgzfuweIC)S#lWO*EOtz@4-G4ds!OvVh<w^icazUM0InDh@tO3qx{Er}8
zgYiuO&QNYpTU%R~+gTA}6N^$|To*ime7QHrY*gQ0A`OA`fB`HdRSC8xXW?%>A*@f7
z;w>jRK7=sZU(o|QpWqhkVi-xv0eCxrZ#FbE9FY$qcs^0MP)xT%@)iIYr-z?20(5KM
zbXjiXT=Q-hqvuWamKWD6TGn`*4=Vx+779a1I@8LdDbk<y1`q=(1uxa4AIwDc0TMLB
zO{o7&B-GZ}UykV1ubtESKbms@9ZfnV<+#M>09=i1(fwz+4lf~F#<^p@TT8^|7ns}#
zlnra&Nr1ltGPn<tl1DIrgP=T!`Qawa2^HYY<VkokT8O85!brVcc7P&?Xc#&=h0N+M
zsK5b<?CmOd<@ATcw#1*96HwbCi}jTRut6duq&(m2;gv>!1O&3#(_u_dDLSX{BC)OW
ziNU(SFxG1rB1k6AHp1lVP0`XW;KsR|J*-W%csD0o-AfWt_41J(`OcM?eICF~$kxF>
z76*&WDP}WrKK$NojVmcbQ^-kOP8odK>_TwT22erU0C{{QY{o!R)!_BSiFl@K0{$8I
zL%*FypsArsIw7WRhYIvnu{;PI{gpahkFgVdj9oW_xc2yYC&sB>FAN!gl_z{;;%sRS
zcOnhq0C}eqNs}sspH46Wxs$jIXop!j+^8AbT?H?G3`vVrj}+J8uQ}(<H*)g-NGsGT
z0Q&(v4&Z)d?;lF%xI_N+#+HR2;(~MXDS<sygai2&-t6wi18l*sP5@W{Y=XRekS8%q
zYMkV+hom$V`_ZkYpdnU?7kX+?pLCJby{!5e7ngEuQ)s~YzwKRXkY!bM{?^*(eednQ
z-97#88IWNnqktAD4@C`v5`}Rb1ksouq)<~*1oH3)(NrE*nTke>qSTa$sXQbxCXtsy
zv>=KgDu_76n*n*vFf-jf)6>uUI_K=YR(_n@uVIFPVW1n!Rds6r=(?xxJ$vnS*7N&v
zNIVOQCXk1_z}_5E5-^H+;@2lm4JjV3nU~$0VM(kCZ?kpX=UQ6w{9^RUFB6%7-XJND
zl+Tvw+U*Bn(EtGI2Eo&Q4yl*Cb{bd#m#eDkPBCuc<<R-kJ;?M7`~twI+h*=UEHd&4
zfLhyAejJO06q5k1Z)X5^&^>VNq|$NigwjVCaza1tj{%?$b$qOn0i8v$#0jIB`lzQK
ze%4allKHrd=CFwv6WWh^rHWfM!1nSanx*N5tTHQ*sSj2~1|JNI3|@ORV9JmYfyp8T
zz!0RQZG;<LK)Nv~u;B(g#cx#vuj|M#QqE8b91JNGpu2XL_2Jsf2hys2Up3h(&q-#U
zu?;=OD;JG990De$9$VLuAi~3kv;Zo^Q0g~^;(7D03W$Y>qe;li&yBY?@DTu?1+cAc
z&YwiVP4#d)F=H_gnOiu4wvAbzv~lS#Y8RD;5A-LxbsF8H2MH&b(LK_OH&qjqGKVK^
zH>M&VRphupW|2BZ(-v3i7^x%V!pIz8m7uC^ofLRX@L3SB!Z(V@C?X?>yy6OtfC*sI
zSAG0iiCQW;rJ}0ylW|3LBqT*Ig9tc;1uzOGpaTSNnS(A+$f3xYjz|dvz_S3pqGy0!
zAih7)8?K_@<#;a&D!L;&HnqT@7MQkUp@>-#dxC0+6%nGNs3!^`MgF`1OJM+t954UF
zawpJNql&5syk*0y1Ow7uz$C%BbX1l4r6hOg9_#_|_w8cMr6_v;=CEX()4{;{9`XY&
z>w6GhP1WaDOqo;xx9mk-%s@j4Bxbn+cn5e94gsb~4>0u#QlSz=SnDfWA8FSEM)eGQ
z3q}3@GzDFfA-FI=7C+7X*u61a;A(hHZ65IQjV!58hAPZU2BVz<f*jCk*5#4gavwm&
z!tpMbYEvz$^UC9eAT}5<gf$(V^vwQMP$X+xj#&UdxaYKEetNHzMo#9&SxyMwdb|V2
zbz2<QnV~DRVAj<Eg);v}RYE;C*fHnhfyn@m)sBv~#_t3Xs7i(gO}Oa9iv?V+btrb{
z`En;mm2Hv$01muKL_t)3nF6#L(7?x2u8G~Yse`6HzQqy2gw*et)?1=&3p5<7L@swd
z8Gxt1<)X8^4$-N#Io-F@2aSe+6elZU=tv~GvBT2Zvc;OnQptB<Djc7q>WH;BIdg=`
zmWR>0kEiB5JXL4RIx09n2tc5k4_Qz})!Xgy%RN?cLLfsU9AKCOS}-Y+Dm25Gh>q93
z|3V7zBWU>pI;NT4Z)f%7pbLh)0^7?kp^{JIZGnfI+u_=(lMFzkBKq9vqm;hY!UIDE
zNYW6c$%H1yBig<z06*u0a$4voA^=QKpMa26%LZEY6%|jAcuD~;IBG>uB+!N>H)lzv
zbEY{9(-LB<U{~-((ZY=lfLLJ%b2Nq<nCq>hRZ5W>3j-pjien!fQg8Q>4{ER3LKWkg
zGZeau7;pCy>gKTBI4XdxtCLJ0RMD}+rh;8d8=i+B=5zWXNww3o0TTQQdF<1>DCOh(
zFXR#d<=n}S_unK<tYUF2XvQh#hMVw)8TJ%uNAm(-4OA7O_2IXC3Y!7Eh9R%zfm;mI
zU{J>3MP(rXte!#w@ikP~#6m)aO>)@Sp&6&Jp+&|HhJYN4|8ME4%aHZ-$lLQTqDt81
zeKHv|e<GPSo8uY<ofOP>YHOy*X0)yrw@FLuhgE>7TgCNnrMqn1JY;Knrb!Cj_bLpp
ztQ*;<uP1BGS}3x{9``wX5Z~N?gEa6O6eWeFB3oAvQg|KD->4&91#&Qu(--ppj%4$b
zu*+OrT5J9==;8qY<aa1+Q{Xa%@d^2ys-43_B6`>UTb~ascu>2OJ00UxuWjwsH~U?P
z*#|@vK^Od>>b=DzL{JDBe40qDxk&$e?{&I5lz>*1zxRqs_eB(h9sE1Vp!rl#<&pW{
z?R5}LY>>?eEEKJAZAzx!$gPYX>^=uo(aD>|In^7pX}v4mCz{O&TwM|M8JJ|DUzmd~
zJ|-FVt_r)%)~<^wS{=t4AbsuV04+5DFH(6sx5A6dd}ci0eJ1QN8xJ%!<O5+3gMEUE
zJ`1BiFBn;#FNcgjg5$Mm4DE-*`9T*)LG>U24g@k0b+f@qXkw>1R-bHb$Eyx?GBh;A
zD0&M|<~gSB2de0Oqzj#s6+{|>e874RL`71QK`XL)$_Uc{-Q%6;e{>D{ezFFAzvza)
z+n;})69B$GIy!pDE~&2f!<4G#lz71VY&2j_C+`rQ&jgr=5cF_2dpMJGJeRE39rf+Y
zv#SUFaMuTkqu9JT?l*sy44X2)P>Phn!5Xts9sX9VHnBx+oBHm`A$`8(w6${S$Is!N
zJN9DRFQ37-U+%!vR1?l>anL+K%7T0#N46$Mt20Gb&e4ogfQvlpOU-qX5*Q3m41zpB
zQV$W#1&H>C>W}&`Qw+)oZFnj~ktZ8B_32wL*~ptV4bgq~J&phP#yudA>I>vpDx1M^
z)ohCU%vEt8pGn@~=Oo#ON!FS-1|58DV-Nl7;78<|dc*CWM^t&90`y+MNz`e6FBvg^
z9rW@b@!`!9F(~RY8&q&L)Lu@T-JL51>cC9s>`dA;RqOGwPZZv^a}KRmj<L}x?A$ql
zCx11H$G4ARYO0B}Ws&D{aJOu6%tV(3`imDWPsJ7-Af<Ak>(+H))7eA1e*FNAjC6Bn
zwG3kjM9gSM0jdJOO{qh)jB<FHB<}&0s(eh?YyK!2Fy~VE5?;9k@~YHbN&GAQF?XgJ
z=f4UrbazZ#FWG_uls*8e#AYP!HlIz_nGc)NOB@g}pm@M+gyL#|uISwCemZl@>HtFo
z3huH}DZ={W2eAJ5LA>ki6PF}ki;Yk%RuRBji?o#^&kN;Hm4(cTF$R8M5codA$OE_Y
zuDp<cB`QL@#rrQ`Uz#Mp4XUi+{;11bmh_toIim6r`5OWJc*LCURrs6cIsB8kh^|>6
zkW0$u9r1v<Ivz4_q~OS^Y%t(x(43^e)ev04=ev8S{&)2#!3!5rs67wIFoxj!j5rPt
zv4MwMkFJ#axDs`k-%t9@B_^S+1FeoOu}CT^aBywd+e|Gob=uS%b#XeU7IT_oMlE%-
z^838%W-=k0bI9<O>fqA7?lBmOh!MabU_%}m_+a?NFkl!Wc+{>i&6~^l_a-qo?l&i^
z#WgB=S?77~{+aK+s>Op}t1z(pJT@$Rs%z0n%`y3z?34}guqj-_hJ#`_SB22pBYC!8
zt`#SrSH(UjVx5p>g$Pt!4i$mgOtBQG+MB*b9bj(*a2o)0ZU!lV$Ph(B<h;VeVFjy@
zVZ&ttU*UJ)PfM@kh$AZK*d37WRZS=KSunl{)hXnByzk)&z}0`V|3@a1-xJqyp57iQ
zo^eh3YCO!ZFRe2RXlt&as6XxI(h2>`JeRLce8;8Bs}hGZ+6PGb1du)fO}9hqkE=8u
zgESt6t3L+Y*sfXqQK^L+^iE{-U_Og?`emvF9bAMQT}*z3y7C!4!PRkVp1c2<`0gv8
zDjpgd0)Sy6df)iiEJrb8-MTgKeeVFJSY4~Nf(Pz@2H*I%pCC&e*zgZj^t#c}(S_G$
z?-q`t$osfo;s5N|<h>~#WTJMTR5mG?dt4sRrsbn~Cg0xwU9qp~ap}LnTgN_sHR`AH
zO2-;AA1<l|ntPlycIo}n(kor&?%8*Xyy8(oo0;z`L^xL!ejIyx!byWT<E<O$_zi>T
z>FI#)Gl=*I-|a`XssheA%+5Bk<JrCV<$X`%-k(3KGt;g4;gH7xT&}8j%ufn+Z)M|?
zIo(9`<zy|L91kv@ddYys4wtpY<XV^MXU1=|`&P_e_HAXK*<552`cmmw9*TOGOb@ky
z#&gcL#^rX&^r}qVgOfMD@=oC?r<_7W)P(|x<ikWb6F`S*5%zi>BZ@q9bc7gL+l8Uw
zE_C;l(b18hQi%{nA;Qpu=X>xBfsI+Vp(22@7S;)}G)J?Uqh4=ecD9MB$r{E+r*-Gf
zNlZ^S(QM>P=pRXqp_ZyX?3`W);M)LpE*%8v*~07@KGB5q`KX`XldSa?A>#x{_lee?
zmF=z}S7ai0Oy2nN4%Sh7VfJn{J)Xy(@jB^~<=2_S?_7+6Tuag1<!ozQf9f**b7$q}
z6GvdKj)H|SC?H~ne4kHbrZ<S_22mWVssm8;s3HV(DbNHT@T}&$E!!*t3xE|F5lyLL
zTvd0VXmouHz@sQIkQ%D$wr$&{o#%m!;gE?;D$<y{MRm;<_B@YI;gCKT_3^us5%xG*
ze1`dqqW-L#%BJ;itdoD7xX~SzlKfHin7Ym<3Iel^J^GyAMIS01YeK)W2!kpa&>C~n
z+@sI9rhZYJ{#VPo*}&&ckLk@Y7#EeDSyLO?oVv!Hs}H&BNThQ!aTrs@^ZE5&Lhtpf
z{9Xc$G{@c5`K(;a9=+crbX7dW8=`*0^N?`!Ad!t7u9i*fKe$}}Ztsn5-_iVTuZYXs
zy_w1Ld7Uxz7k(%GZgPxCg6d+}sIK^7&0UgaQ*x&Yu8jxiqGZUtM@8#-U7yHna(CX4
zpSV;Xa+!{|8rqt>1+R&mLe~~DeneF-pf~v?-W+uC*?yIeGclFOfT2J-A+_35vd61n
zZ8B_Pzhg;Q?SO1r(b(yx^I83x%jKHAH@Us9$(X6{0@K6HpD+nskqq%**w4gEm;p2g
z(n&$OU!=6wkXK%4l2!<uWZJZK9kp}vP+pTC+lJnqxAdtrli8V@RvyErv>6m66ox(x
zcmbc{mH51%liuNV@LDgT2<9NqSb%gwz)^eRdSL<!NXMNt_UKctsb3H)-`@KjH~VW5
zH1}@dz!*N2e7?%B;@!zG$9`u4nXXdIwG#>wh(mrWg{p&fO`WrI@^n5cciV>iC{OhP
zNp&op*4E4qURf(qI+rM_P#i?G)=%hdeudBRJNPYLnMOFE_{DUAs0GsfQq=A}LN+aE
z?v^<_i<`vCmt3xo?z`E&D$2bgS(DxiOxZA>%|5OSs{FRFpJMU}k}JX<E}-XLtO!JM
zv}{fG<+J)oHY<1Jb8@F^$YV{_TJ7ee<407_r!b7nSz$L{8V~Xrekb+u!8ie4glGoT
zcRA!UTC+9$P_2B~S-pGTcigMqUbo_Dv!1Oc_Lxp)pDv5~>4NfcUWtyRKT-in;nE4W
zt2rh&WHa*5Hq&2`s#OckOffrmxZ6Z$fnq~Y19Bdb9}u&sPed^p^m4#&_Y-_HT*Ie@
zYdA6SOP}j;Ew#0$+;y$J?vKZ>cjGJh{8vrhwEsfW8TXklm5(!*a7_M--uJv9k8+uU
znF=t(7R040k|UK|8){Kk!K^A~p=haU289$A`ofP;AOOfGMnVQvGU#BR67~_B0D%d}
za0ud%h<ySv;H<*62W9*cfkS#x(3iHRjoQ=pi>>|k3wy8E6>X~ZR*M2;R$D=;+g*+(
z$A@Wja6n#D<TC;j6Z{In@8G2mpRouWS%RW>sin}vod|k?<1tTjEdUz=0wAALo!#Rs
z9BN@dQ`p004&WW?^O~cf7Q01P-ici`3IJ6r4o^y|Gf=8LuRl(q(n8jnaF3<?<=^v~
z-i{0jh)yJfQ^}(f*vBx3R5cM|6T)y%5J|EjV4nMLKE1Qh_Oo0gR0}6fT`?9fDO55Q
z*V0@vG+l;C&9PIhKB9vARP-Szb~x2Jn~C*jDD*-;$*=IGaW8N2ySR`2Wy+wEX+s=F
zb6NSYcGW0Ao<cO&ovx*0>M%@Ro6a>yo=wZHbi&<`&giw$blb;o(4|;@KLhY}0H~fz
zL;*1~JT?@QA|aw~0#!jMgV6<01%#LYRzQf*RMnh-R13V|CRA&xGy|1sRn$e0s?|)P
zGI`kk25kZIi;i<}Uvr#46(oFe(8(VQdii}pC-;KEn(M6QItIJ)y%MXccG`cj87d8U
zUrmPje3xN1-RFLo&FH__y1ToPN$u5U20Ln@;|D;A$4L<LsV3n+kQ5zxO)ek5-tPE~
z0xXd=@8{SL%*8OUBJzK!m5J$_UK<@nFIpMi4e}%6q7P%`<^KU;4O{aE#oCwv0000<
KMNUMnLSTaSe8-Cb

literal 0
HcmV?d00001

diff --git a/img/uninstall_16x16.png b/img/uninstall_16x16.png
new file mode 100644
index 0000000000000000000000000000000000000000..c0134adbf5ed98a523348d205e8ec2213caa54f5
GIT binary patch
literal 3129
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
TO@8Y~00000NkvXXu0mjfj=tst

literal 0
HcmV?d00001

diff --git a/img/uninstall_256x256.png b/img/uninstall_256x256.png
new file mode 100644
index 0000000000000000000000000000000000000000..997be7f993ae620701d78c56b43e31ed65199eee
GIT binary patch
literal 68400
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

literal 0
HcmV?d00001

diff --git a/img/uninstall_32x32.png b/img/uninstall_32x32.png
new file mode 100644
index 0000000000000000000000000000000000000000..c01447c08d858526883137584324487a2bee3650
GIT binary patch
literal 7104
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

literal 0
HcmV?d00001

diff --git a/img/uninstall_48x48.png b/img/uninstall_48x48.png
new file mode 100644
index 0000000000000000000000000000000000000000..db091b3510240757b077889a12da7467cb251173
GIT binary patch
literal 16056
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

literal 0
HcmV?d00001

diff --git a/img/uninstall_512x512.png b/img/uninstall_512x512.png
new file mode 100644
index 0000000000000000000000000000000000000000..7a8d2d124ed8656ba4e50abb0dc0d79ca814999f
GIT binary patch
literal 170342
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%0Aq+555(@pQ+
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

literal 0
HcmV?d00001

diff --git a/licenses/LICENSE-AGREEMENT b/licenses/LICENSE-AGREEMENT
index e1d820cb1..02abccda1 100644
--- a/licenses/LICENSE-AGREEMENT
+++ b/licenses/LICENSE-AGREEMENT
@@ -469,52 +469,6 @@ DAMAGES.
 
                      END OF TERMS AND CONDITIONS
 
-           How to Apply These Terms to Your New Libraries
-
-  If you develop a new library, and you want it to be of the greatest
-possible use to the public, we recommend making it free software that
-everyone can redistribute and change.  You can do so by permitting
-redistribution under these terms (or, alternatively, under the terms of the
-ordinary General Public License).
-
-  To apply these terms, attach the following notices to the library.  It is
-safest to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least the
-"copyright" line and a pointer to where the full notice is found.
-
-    <one line to give the library's name and a brief idea of what it does.>
-    Copyright (C) <year>  <name of author>
-
-    This library is free software; you can redistribute it and/or
-    modify it under the terms of the GNU Lesser General Public
-    License as published by the Free Software Foundation; either
-    version 2.1 of the License, or (at your option) any later version.
-
-    This library is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-    Lesser General Public License for more details.
-
-    You should have received a copy of the GNU Lesser General Public
-    License along with this library; if not, write to the Free Software
-    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301
-    USA
-
-Also add information on how to contact you by electronic and paper mail.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the library, if
-necessary.  Here is a sample; alter the names:
-
-  Yoyodyne, Inc., hereby disclaims all copyright interest in the
-  library `Frob' (a library for tweaking knobs) written by James Random
-  Hacker.
-
-  <signature of Ty Coon>, 1 April 1990
-  Ty Coon, President of Vice
-
-That's all there is to it!
-
 
 Used libraries / dependencies licenses:
 
@@ -546,8 +500,8 @@ URL: https://www.apache.org/licenses/LICENSE-2.0
 (2 of 41)
 Group:   com.electronwill.night-config
 Name:    toml
-Version: 3.6.7
-POM Project URL: https://github.com/TheElectronWill/Night-Config
+Version: 3.7.1
+POM Project URL: https://github.com/TheElectronWill/night-config
 
 
 POM License: GNU Lesser General Public License v3.0
@@ -733,7 +687,7 @@ Library.
 (3 of 41)
 Group:   com.fasterxml.jackson.core
 Name:    jackson-databind
-Version: 2.15.3
+Version: 2.17.0
 Project URL: https://github.com/FasterXML/jackson\n\n
 Manifest license URL: https://www.apache.org/licenses/LICENSE-2.0
 
@@ -976,7 +930,7 @@ from the source code management (SCM) system project uses.
 (4 of 41)
 Group:   com.fasterxml.jackson.module
 Name:    jackson-module-kotlin
-Version: 2.14.2
+Version: 2.17.0
 Project URL: https://github.com/FasterXML/jackson-module-kotlin\n\n
 Manifest license URL: https://www.apache.org/licenses/LICENSE-2.0
 
@@ -990,7 +944,7 @@ Embedded license:
 This copy of Jackson JSON processor databind module is licensed under the
 Apache (Software) License, version 2.0 ("the License").
 See the License for details about distribution rights, and the
-specific rights regarding derivate works.
+specific rights regarding derivative works.
 
 You may obtain a copy of the License at:
 
@@ -1005,6 +959,10 @@ been in development since 2007.
 It is currently developed by a community of developers, as well as supported
 commercially by FasterXML.com.
 
+## Copyright
+
+Copyright 2007-, Tatu Saloranta (tatu.saloranta@iki.fi)
+
 ## Licensing
 
 Jackson core and extension components may be licensed under different licenses.
@@ -1024,7 +982,7 @@ from the source code management (SCM) system project uses.
 (5 of 41)
 Group:   com.fasterxml.jackson.module
 Name:    jackson-module-kotlin
-Version: 2.15.3
+Version: 2.17.1
 Project URL: https://github.com/FasterXML/jackson-module-kotlin\n\n
 Manifest license URL: https://www.apache.org/licenses/LICENSE-2.0
 
@@ -1076,7 +1034,7 @@ from the source code management (SCM) system project uses.
 (6 of 41)
 Group:   com.formdev
 Name:    flatlaf
-Version: 3.2.5
+Version: 3.4
 POM Project URL: https://github.com/JFormDesigner/FlatLaf
 
 
@@ -1294,7 +1252,7 @@ Embedded license:
 (7 of 41)
 Group:   com.formdev
 Name:    flatlaf-extras
-Version: 3.2.5
+Version: 3.4
 POM Project URL: https://github.com/JFormDesigner/FlatLaf
 
 
@@ -1512,7 +1470,7 @@ Embedded license:
 (8 of 41)
 Group:   com.formdev
 Name:    flatlaf-fonts-inter
-Version: 3.19
+Version: 4.0
 POM Project URL: https://github.com/JFormDesigner/FlatLaf
 
 
@@ -1729,9 +1687,7 @@ Embedded license:
    limitations under the License.
 
 
-Copyright (c) 2016-2020 The Inter Project Authors.
-"Inter" is trademark of Rasmus Andersson.
-https://github.com/rsms/inter
+Copyright (c) 2016 The Inter Project Authors (https://github.com/rsms/inter)
 
 This Font Software is licensed under the SIL Open Font License, Version 1.1.
 This license is copied below, and is also available with a FAQ at:
@@ -1830,7 +1786,7 @@ OTHER DEALINGS IN THE FONT SOFTWARE.
 (9 of 41)
 Group:   com.formdev
 Name:    flatlaf-fonts-jetbrains-mono
-Version: 2.242
+Version: 2.304
 POM Project URL: https://github.com/JFormDesigner/FlatLaf
 
 
@@ -2896,7 +2852,7 @@ Embedded license:
 (12 of 41)
 Group:   com.formdev
 Name:    flatlaf-intellij-themes
-Version: 3.2.5
+Version: 3.4
 POM Project URL: https://github.com/JFormDesigner/FlatLaf
 
 
@@ -3142,7 +3098,7 @@ URL: https://opensource.org/licenses/BSD-2-Clause
 (14 of 41)
 Group:   com.miglayout
 Name:    miglayout-swing
-Version: 11.2
+Version: 11.3
 POM Project URL: http://www.miglayout.com/
 
 
@@ -3162,7 +3118,7 @@ URL: https://opensource.org/licenses/0BSD
 (15 of 41)
 Group:   commons-io
 Name:    commons-io
-Version: 2.14.0
+Version: 2.16.1
 Project URL: https://commons.apache.org/proper/commons-io/\n\n
 Manifest license URL: https://www.apache.org/licenses/LICENSE-2.0
 
@@ -3379,7 +3335,7 @@ Embedded license:
 
 
 Apache Commons IO
-Copyright 2002-2023 The Apache Software Foundation
+Copyright 2002-2024 The Apache Software Foundation
 
 This product includes software developed at
 The Apache Software Foundation (https://www.apache.org/).
@@ -3390,7 +3346,7 @@ The Apache Software Foundation (https://www.apache.org/).
 (16 of 41)
 Group:   de.comahe.i18n4k
 Name:    i18n4k-core
-Version: 0.6.2
+Version: 0.7.0
 No license information found
 
 
@@ -3399,7 +3355,7 @@ No license information found
 (17 of 41)
 Group:   de.comahe.i18n4k
 Name:    i18n4k-core-jvm
-Version: 0.6.2
+Version: 0.7.0
 POM Project URL: https://comahe-de.github.io/i18n4k/
 
 
@@ -3419,7 +3375,7 @@ URL: https://www.apache.org/licenses/LICENSE-2.0
 (18 of 41)
 Group:   de.jensklingenberg.ktorfit
 Name:    ktorfit-lib
-Version: 1.9.0
+Version: 1.14.0
 No license information found
 
 
@@ -3480,7 +3436,7 @@ URL: https://www.apache.org/licenses/LICENSE-2.0
 (22 of 41)
 Group:   org.apache.logging.log4j
 Name:    log4j-api-kotlin
-Version: 1.3.0
+Version: 1.4.0
 Manifest license URL: https://www.apache.org/licenses/LICENSE-2.0
 
 
@@ -3707,7 +3663,7 @@ The Apache Software Foundation (http://www.apache.org/).
 (23 of 41)
 Group:   org.apache.logging.log4j
 Name:    log4j-core
-Version: 2.21.0
+Version: 2.23.1
 Manifest license URL: https://www.apache.org/licenses/LICENSE-2.0
 
 
@@ -3935,7 +3891,7 @@ Copyright 2005-2006 Tim Fennell
 (24 of 41)
 Group:   org.bouncycastle
 Name:    bcpkix-jdk18on
-Version: 1.77
+Version: 1.78
 POM Project URL: https://www.bouncycastle.org/java.html
 
 
@@ -3955,11 +3911,11 @@ URL: https://www.bouncycastle.org/licence.html
 (25 of 41)
 Group:   org.javassist
 Name:    javassist
-Version: 3.29.2-GA
+Version: 3.30.2-GA
 Manifest license URL: https://www.apache.org/licenses/LICENSE-2.0
 
 
-POM Project URL: http://www.javassist.org/
+POM Project URL: https://www.javassist.org/
 
 
 POM License: Apache License, Version 2.0
@@ -3994,7 +3950,7 @@ URL: https://www.mozilla.org/en-US/MPL/1.1
 (26 of 41)
 Group:   org.jetbrains.kotlin
 Name:    kotlin-bom
-Version: 1.9.21
+Version: 1.9.23
 No license information found
 
 
@@ -4003,7 +3959,7 @@ No license information found
 (27 of 41)
 Group:   org.jetbrains.kotlin
 Name:    kotlin-reflect
-Version: 1.9.10
+Version: 1.9.23
 POM Project URL: https://kotlinlang.org/
 
 
@@ -4022,8 +3978,8 @@ URL: https://www.apache.org/licenses/LICENSE-2.0
 
 (28 of 41)
 Group:   org.jetbrains.kotlin
-Name:    kotlin-reflect
-Version: 1.9.21
+Name:    kotlin-stdlib
+Version: 1.9.23
 POM Project URL: https://kotlinlang.org/
 
 
@@ -4043,7 +3999,7 @@ URL: https://www.apache.org/licenses/LICENSE-2.0
 (29 of 41)
 Group:   org.jetbrains.kotlin
 Name:    kotlin-stdlib
-Version: 1.9.21
+Version: 2.0.0-RC1
 POM Project URL: https://kotlinlang.org/
 
 
@@ -4063,7 +4019,7 @@ URL: https://www.apache.org/licenses/LICENSE-2.0
 (30 of 41)
 Group:   org.jetbrains.kotlinx
 Name:    kotlinx-coroutines-core
-Version: 1.7.3
+Version: 1.8.0
 No license information found
 
 
@@ -4072,7 +4028,7 @@ No license information found
 (31 of 41)
 Group:   org.jetbrains.kotlinx
 Name:    kotlinx-coroutines-swing
-Version: 1.7.3
+Version: 1.8.0
 POM Project URL: https://github.com/Kotlin/kotlinx.coroutines
 
 
@@ -4092,7 +4048,7 @@ URL: https://www.apache.org/licenses/LICENSE-2.0
 (32 of 41)
 Group:   org.jetbrains.kotlinx
 Name:    kotlinx-datetime
-Version: 0.4.1
+Version: 0.5.0
 No license information found
 
 
@@ -4101,7 +4057,7 @@ No license information found
 (33 of 41)
 Group:   org.pf4j
 Name:    pf4j
-Version: 3.10.0
+Version: 3.11.0
 POM License: Apache License, Version 2.0
  - https://www.apache.org/licenses/LICENSE-2.0
 
@@ -4118,7 +4074,7 @@ URL: https://www.apache.org/licenses/LICENSE-2.0
 (34 of 41)
 Group:   org.postgresql
 Name:    postgresql
-Version: 42.6.0
+Version: 42.7.3
 Manifest Project URL: https://jdbc.postgresql.org/
 
 
@@ -4270,7 +4226,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 (35 of 41)
 Group:   org.springframework.boot
 Name:    spring-boot-devtools
-Version: 3.0.4
+Version: 3.2.5
 POM Project URL: https://spring.io/projects/spring-boot
 
 
@@ -4483,8 +4439,8 @@ Embedded license:
    See the License for the specific language governing permissions and
    limitations under the License.
 
-Spring Boot 3.0.4
-Copyright (c) 2012-2023 VMware, Inc.
+Spring Boot 3.2.5
+Copyright (c) 2012-2024 VMware, Inc.
 
 This product is licensed to you under the Apache License, Version 2.0
 (the "License"). You may not use this product except in compliance with
@@ -4495,7 +4451,7 @@ the License.
 (36 of 41)
 Group:   org.springframework.boot
 Name:    spring-boot-devtools
-Version: 3.2.0
+Version: 3.3.0
 POM Project URL: https://spring.io/projects/spring-boot
 
 
@@ -4708,8 +4664,8 @@ Embedded license:
    See the License for the specific language governing permissions and
    limitations under the License.
 
-Spring Boot 3.2.0
-Copyright (c) 2012-2023 VMware, Inc.
+Spring Boot 3.3.0
+Copyright (c) 2012-2024 VMware, Inc.
 
 This product is licensed to you under the Apache License, Version 2.0
 (the "License"). You may not use this product except in compliance with
@@ -4720,7 +4676,7 @@ the License.
 (37 of 41)
 Group:   org.springframework.boot
 Name:    spring-boot-starter-data-jpa
-Version: 3.0.4
+Version: 3.2.5
 POM Project URL: https://spring.io/projects/spring-boot
 
 
@@ -4933,8 +4889,8 @@ Embedded license:
    See the License for the specific language governing permissions and
    limitations under the License.
 
-Spring Boot 3.0.4
-Copyright (c) 2012-2023 VMware, Inc.
+Spring Boot 3.2.5
+Copyright (c) 2012-2024 VMware, Inc.
 
 This product is licensed to you under the Apache License, Version 2.0
 (the "License"). You may not use this product except in compliance with
@@ -4945,7 +4901,7 @@ the License.
 (38 of 41)
 Group:   org.springframework.boot
 Name:    spring-boot-starter-log4j2
-Version: 3.0.4
+Version: 3.2.4
 POM Project URL: https://spring.io/projects/spring-boot
 
 
@@ -5158,8 +5114,8 @@ Embedded license:
    See the License for the specific language governing permissions and
    limitations under the License.
 
-Spring Boot 3.0.4
-Copyright (c) 2012-2023 VMware, Inc.
+Spring Boot 3.2.4
+Copyright (c) 2012-2024 VMware, Inc.
 
 This product is licensed to you under the Apache License, Version 2.0
 (the "License"). You may not use this product except in compliance with
@@ -5170,7 +5126,7 @@ the License.
 (39 of 41)
 Group:   org.springframework.boot
 Name:    spring-boot-starter-web
-Version: 3.1.0
+Version: 3.2.4
 POM Project URL: https://spring.io/projects/spring-boot
 
 
@@ -5383,8 +5339,8 @@ Embedded license:
    See the License for the specific language governing permissions and
    limitations under the License.
 
-Spring Boot 3.1.0
-Copyright (c) 2012-2023 VMware, Inc.
+Spring Boot 3.2.4
+Copyright (c) 2012-2024 VMware, Inc.
 
 This product is licensed to you under the Apache License, Version 2.0
 (the "License"). You may not use this product except in compliance with
@@ -5395,7 +5351,7 @@ the License.
 (40 of 41)
 Group:   org.springframework.boot
 Name:    spring-boot-starter-web
-Version: 3.2.0
+Version: 3.3.0
 POM Project URL: https://spring.io/projects/spring-boot
 
 
@@ -5608,8 +5564,8 @@ Embedded license:
    See the License for the specific language governing permissions and
    limitations under the License.
 
-Spring Boot 3.2.0
-Copyright (c) 2012-2023 VMware, Inc.
+Spring Boot 3.3.0
+Copyright (c) 2012-2024 VMware, Inc.
 
 This product is licensed to you under the Apache License, Version 2.0
 (the "License"). You may not use this product except in compliance with
diff --git a/licenses/LICENSE-AGREEMENT.txt b/licenses/LICENSE-AGREEMENT.txt
new file mode 100644
index 000000000..02abccda1
--- /dev/null
+++ b/licenses/LICENSE-AGREEMENT.txt
@@ -0,0 +1,5595 @@
+ServerPackCreator license agreement:
+
+By using a dev- / pre-release version of ServerPackCreator, you agree to do so at your own risk.
+You agree to take responsibility for distributing a possibly faulty server pack
+and will not hold Griefed, or any other party responsible for ServerPackCreator,
+accountable should any issues / problems / errors arise from the use of said
+software's dev- / pre-release version.
+You may, however, report issues encountered when using this version on GitHub:
+https://github.com/Griefed/ServerPackCreator/issues
+
+ServerPackCreator dev license:
+
+                  GNU LESSER GENERAL PUBLIC LICENSE
+                       Version 2.1, February 1999
+
+ Copyright (C) 1991, 1999 Free Software Foundation, Inc.
+ 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+[This is the first released version of the Lesser GPL.  It also counts
+ as the successor of the GNU Library Public License, version 2, hence
+ the version number 2.1.]
+
+                            Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+Licenses are intended to guarantee your freedom to share and change
+free software--to make sure the software is free for all its users.
+
+  This license, the Lesser General Public License, applies to some
+specially designated software packages--typically libraries--of the
+Free Software Foundation and other authors who decide to use it.  You
+can use it too, but we suggest you first think carefully about whether
+this license or the ordinary General Public License is the better
+strategy to use in any particular case, based on the explanations below.
+
+  When we speak of free software, we are referring to freedom of use,
+not price.  Our General Public Licenses are designed to make sure that
+you have the freedom to distribute copies of free software (and charge
+for this service if you wish); that you receive source code or can get
+it if you want it; that you can change the software and use pieces of
+it in new free programs; and that you are informed that you can do
+these things.
+
+  To protect your rights, we need to make restrictions that forbid
+distributors to deny you these rights or to ask you to surrender these
+rights.  These restrictions translate to certain responsibilities for
+you if you distribute copies of the library or if you modify it.
+
+  For example, if you distribute copies of the library, whether gratis
+or for a fee, you must give the recipients all the rights that we gave
+you.  You must make sure that they, too, receive or can get the source
+code.  If you link other code with the library, you must provide
+complete object files to the recipients, so that they can relink them
+with the library after making changes to the library and recompiling
+it.  And you must show them these terms so they know their rights.
+
+  We protect your rights with a two-step method: (1) we copyright the
+library, and (2) we offer you this license, which gives you legal
+permission to copy, distribute and/or modify the library.
+
+  To protect each distributor, we want to make it very clear that
+there is no warranty for the free library.  Also, if the library is
+modified by someone else and passed on, the recipients should know
+that what they have is not the original version, so that the original
+author's reputation will not be affected by problems that might be
+introduced by others.
+
+  Finally, software patents pose a constant threat to the existence of
+any free program.  We wish to make sure that a company cannot
+effectively restrict the users of a free program by obtaining a
+restrictive license from a patent holder.  Therefore, we insist that
+any patent license obtained for a version of the library must be
+consistent with the full freedom of use specified in this license.
+
+  Most GNU software, including some libraries, is covered by the
+ordinary GNU General Public License.  This license, the GNU Lesser
+General Public License, applies to certain designated libraries, and
+is quite different from the ordinary General Public License.  We use
+this license for certain libraries in order to permit linking those
+libraries into non-free programs.
+
+  When a program is linked with a library, whether statically or using
+a shared library, the combination of the two is legally speaking a
+combined work, a derivative of the original library.  The ordinary
+General Public License therefore permits such linking only if the
+entire combination fits its criteria of freedom.  The Lesser General
+Public License permits more lax criteria for linking other code with
+the library.
+
+  We call this license the "Lesser" General Public License because it
+does Less to protect the user's freedom than the ordinary General
+Public License.  It also provides other free software developers Less
+of an advantage over competing non-free programs.  These disadvantages
+are the reason we use the ordinary General Public License for many
+libraries.  However, the Lesser license provides advantages in certain
+special circumstances.
+
+  For example, on rare occasions, there may be a special need to
+encourage the widest possible use of a certain library, so that it becomes
+a de-facto standard.  To achieve this, non-free programs must be
+allowed to use the library.  A more frequent case is that a free
+library does the same job as widely used non-free libraries.  In this
+case, there is little to gain by limiting the free library to free
+software only, so we use the Lesser General Public License.
+
+  In other cases, permission to use a particular library in non-free
+programs enables a greater number of people to use a large body of
+free software.  For example, permission to use the GNU C Library in
+non-free programs enables many more people to use the whole GNU
+operating system, as well as its variant, the GNU/Linux operating
+system.
+
+  Although the Lesser General Public License is Less protective of the
+users' freedom, it does ensure that the user of a program that is
+linked with the Library has the freedom and the wherewithal to run
+that program using a modified version of the Library.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.  Pay close attention to the difference between a
+"work based on the library" and a "work that uses the library".  The
+former contains code derived from the library, whereas the latter must
+be combined with the library in order to run.
+
+                  GNU LESSER GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License Agreement applies to any software library or other
+program which contains a notice placed by the copyright holder or
+other authorized party saying it may be distributed under the terms of
+this Lesser General Public License (also called "this License").
+Each licensee is addressed as "you".
+
+  A "library" means a collection of software functions and/or data
+prepared so as to be conveniently linked with application programs
+(which use some of those functions and data) to form executables.
+
+  The "Library", below, refers to any such software library or work
+which has been distributed under these terms.  A "work based on the
+Library" means either the Library or any derivative work under
+copyright law: that is to say, a work containing the Library or a
+portion of it, either verbatim or with modifications and/or translated
+straightforwardly into another language.  (Hereinafter, translation is
+included without limitation in the term "modification".)
+
+  "Source code" for a work means the preferred form of the work for
+making modifications to it.  For a library, complete source code means
+all the source code for all modules it contains, plus any associated
+interface definition files, plus the scripts used to control compilation
+and installation of the library.
+
+  Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running a program using the Library is not restricted, and output from
+such a program is covered only if its contents constitute a work based
+on the Library (independent of the use of the Library in a tool for
+writing it).  Whether that is true depends on what the Library does
+and what the program that uses the Library does.
+
+  1. You may copy and distribute verbatim copies of the Library's
+complete source code as you receive it, in any medium, provided that
+you conspicuously and appropriately publish on each copy an
+appropriate copyright notice and disclaimer of warranty; keep intact
+all the notices that refer to this License and to the absence of any
+warranty; and distribute a copy of this License along with the
+Library.
+
+  You may charge a fee for the physical act of transferring a copy,
+and you may at your option offer warranty protection in exchange for a
+fee.
+
+  2. You may modify your copy or copies of the Library or any portion
+of it, thus forming a work based on the Library, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) The modified work must itself be a software library.
+
+    b) You must cause the files modified to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    c) You must cause the whole of the work to be licensed at no
+    charge to all third parties under the terms of this License.
+
+    d) If a facility in the modified Library refers to a function or a
+    table of data to be supplied by an application program that uses
+    the facility, other than as an argument passed when the facility
+    is invoked, then you must make a good faith effort to ensure that,
+    in the event an application does not supply such function or
+    table, the facility still operates, and performs whatever part of
+    its purpose remains meaningful.
+
+    (For example, a function in a library to compute square roots has
+    a purpose that is entirely well-defined independent of the
+    application.  Therefore, Subsection 2d requires that any
+    application-supplied function or table used by this function must
+    be optional: if the application does not supply it, the square
+    root function must still compute square roots.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Library,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Library, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote
+it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Library.
+
+In addition, mere aggregation of another work not based on the Library
+with the Library (or with a work based on the Library) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may opt to apply the terms of the ordinary GNU General Public
+License instead of this License to a given copy of the Library.  To do
+this, you must alter all the notices that refer to this License, so
+that they refer to the ordinary GNU General Public License, version 2,
+instead of to this License.  (If a newer version than version 2 of the
+ordinary GNU General Public License has appeared, then you can specify
+that version instead if you wish.)  Do not make any other change in
+these notices.
+
+  Once this change is made in a given copy, it is irreversible for
+that copy, so the ordinary GNU General Public License applies to all
+subsequent copies and derivative works made from that copy.
+
+  This option is useful when you wish to copy part of the code of
+the Library into a program that is not a library.
+
+  4. You may copy and distribute the Library (or a portion or
+derivative of it, under Section 2) in object code or executable form
+under the terms of Sections 1 and 2 above provided that you accompany
+it with the complete corresponding machine-readable source code, which
+must be distributed under the terms of Sections 1 and 2 above on a
+medium customarily used for software interchange.
+
+  If distribution of object code is made by offering access to copy
+from a designated place, then offering equivalent access to copy the
+source code from the same place satisfies the requirement to
+distribute the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  5. A program that contains no derivative of any portion of the
+Library, but is designed to work with the Library by being compiled or
+linked with it, is called a "work that uses the Library".  Such a
+work, in isolation, is not a derivative work of the Library, and
+therefore falls outside the scope of this License.
+
+  However, linking a "work that uses the Library" with the Library
+creates an executable that is a derivative of the Library (because it
+contains portions of the Library), rather than a "work that uses the
+library".  The executable is therefore covered by this License.
+Section 6 states terms for distribution of such executables.
+
+  When a "work that uses the Library" uses material from a header file
+that is part of the Library, the object code for the work may be a
+derivative work of the Library even though the source code is not.
+Whether this is true is especially significant if the work can be
+linked without the Library, or if the work is itself a library.  The
+threshold for this to be true is not precisely defined by law.
+
+  If such an object file uses only numerical parameters, data
+structure layouts and accessors, and small macros and small inline
+functions (ten lines or less in length), then the use of the object
+file is unrestricted, regardless of whether it is legally a derivative
+work.  (Executables containing this object code plus portions of the
+Library will still fall under Section 6.)
+
+  Otherwise, if the work is a derivative of the Library, you may
+distribute the object code for the work under the terms of Section 6.
+Any executables containing that work also fall under Section 6,
+whether or not they are linked directly with the Library itself.
+
+  6. As an exception to the Sections above, you may also combine or
+link a "work that uses the Library" with the Library to produce a
+work containing portions of the Library, and distribute that work
+under terms of your choice, provided that the terms permit
+modification of the work for the customer's own use and reverse
+engineering for debugging such modifications.
+
+  You must give prominent notice with each copy of the work that the
+Library is used in it and that the Library and its use are covered by
+this License.  You must supply a copy of this License.  If the work
+during execution displays copyright notices, you must include the
+copyright notice for the Library among them, as well as a reference
+directing the user to the copy of this License.  Also, you must do one
+of these things:
+
+    a) Accompany the work with the complete corresponding
+    machine-readable source code for the Library including whatever
+    changes were used in the work (which must be distributed under
+    Sections 1 and 2 above); and, if the work is an executable linked
+    with the Library, with the complete machine-readable "work that
+    uses the Library", as object code and/or source code, so that the
+    user can modify the Library and then relink to produce a modified
+    executable containing the modified Library.  (It is understood
+    that the user who changes the contents of definitions files in the
+    Library will not necessarily be able to recompile the application
+    to use the modified definitions.)
+
+    b) Use a suitable shared library mechanism for linking with the
+    Library.  A suitable mechanism is one that (1) uses at run time a
+    copy of the library already present on the user's computer system,
+    rather than copying library functions into the executable, and (2)
+    will operate properly with a modified version of the library, if
+    the user installs one, as long as the modified version is
+    interface-compatible with the version that the work was made with.
+
+    c) Accompany the work with a written offer, valid for at
+    least three years, to give the same user the materials
+    specified in Subsection 6a, above, for a charge no more
+    than the cost of performing this distribution.
+
+    d) If distribution of the work is made by offering access to copy
+    from a designated place, offer equivalent access to copy the above
+    specified materials from the same place.
+
+    e) Verify that the user has already received a copy of these
+    materials or that you have already sent this user a copy.
+
+  For an executable, the required form of the "work that uses the
+Library" must include any data and utility programs needed for
+reproducing the executable from it.  However, as a special exception,
+the materials to be distributed need not include anything that is
+normally distributed (in either source or binary form) with the major
+components (compiler, kernel, and so on) of the operating system on
+which the executable runs, unless that component itself accompanies
+the executable.
+
+  It may happen that this requirement contradicts the license
+restrictions of other proprietary libraries that do not normally
+accompany the operating system.  Such a contradiction means you cannot
+use both them and the Library together in an executable that you
+distribute.
+
+  7. You may place library facilities that are a work based on the
+Library side-by-side in a single library together with other library
+facilities not covered by this License, and distribute such a combined
+library, provided that the separate distribution of the work based on
+the Library and of the other library facilities is otherwise
+permitted, and provided that you do these two things:
+
+    a) Accompany the combined library with a copy of the same work
+    based on the Library, uncombined with any other library
+    facilities.  This must be distributed under the terms of the
+    Sections above.
+
+    b) Give prominent notice with the combined library of the fact
+    that part of it is a work based on the Library, and explaining
+    where to find the accompanying uncombined form of the same work.
+
+  8. You may not copy, modify, sublicense, link with, or distribute
+the Library except as expressly provided under this License.  Any
+attempt otherwise to copy, modify, sublicense, link with, or
+distribute the Library is void, and will automatically terminate your
+rights under this License.  However, parties who have received copies,
+or rights, from you under this License will not have their licenses
+terminated so long as such parties remain in full compliance.
+
+  9. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Library or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Library (or any work based on the
+Library), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Library or works based on it.
+
+  10. Each time you redistribute the Library (or any work based on the
+Library), the recipient automatically receives a license from the
+original licensor to copy, distribute, link with or modify the Library
+subject to these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties with
+this License.
+
+  11. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Library at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Library by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Library.
+
+If any portion of this section is held invalid or unenforceable under any
+particular circumstance, the balance of the section is intended to apply,
+and the section as a whole is intended to apply in other circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  12. If the distribution and/or use of the Library is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Library under this License may add
+an explicit geographical distribution limitation excluding those countries,
+so that distribution is permitted only in or among countries not thus
+excluded.  In such case, this License incorporates the limitation as if
+written in the body of this License.
+
+  13. The Free Software Foundation may publish revised and/or new
+versions of the Lesser General Public License from time to time.
+Such new versions will be similar in spirit to the present version,
+but may differ in detail to address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Library
+specifies a version number of this License which applies to it and
+"any later version", you have the option of following the terms and
+conditions either of that version or of any later version published by
+the Free Software Foundation.  If the Library does not specify a
+license version number, you may choose any version ever published by
+the Free Software Foundation.
+
+  14. If you wish to incorporate parts of the Library into other free
+programs whose distribution conditions are incompatible with these,
+write to the author to ask for permission.  For software which is
+copyrighted by the Free Software Foundation, write to the Free
+Software Foundation; we sometimes make exceptions for this.  Our
+decision will be guided by the two goals of preserving the free status
+of all derivatives of our free software and of promoting the sharing
+and reuse of software generally.
+
+                            NO WARRANTY
+
+  15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
+WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
+EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
+OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
+KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
+LIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
+THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+  16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
+WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
+AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
+FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
+CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
+LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
+RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
+FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
+SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGES.
+
+                     END OF TERMS AND CONDITIONS
+
+
+Used libraries / dependencies licenses:
+
+-------------------------------------------------------
+
+(1 of 41)
+Group:   com.cronutils
+Name:    cron-utils
+Version: 9.2.1
+Manifest license URL: https://www.apache.org/licenses/LICENSE-2.0
+
+
+POM Project URL: http://cron-parser.com/
+
+
+POM License: Apache License, Version 2.0
+ - https://www.apache.org/licenses/LICENSE-2.0
+
+
+POM license(s): 
+
+
+License: Apache License, Version 2.0
+URL: https://www.apache.org/licenses/LICENSE-2.0
+
+
+#######################################
+
+(2 of 41)
+Group:   com.electronwill.night-config
+Name:    toml
+Version: 3.7.1
+POM Project URL: https://github.com/TheElectronWill/night-config
+
+
+POM License: GNU Lesser General Public License v3.0
+ - https://www.gnu.org/licenses/lgpl-3.0.txt
+
+
+POM license(s): 
+
+
+License: GNU Lesser General Public License v3.0
+URL: https://www.gnu.org/licenses/lgpl-3.0.txt
+
+
+                   GNU LESSER GENERAL PUBLIC LICENSE
+                       Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+
+  This version of the GNU Lesser General Public License incorporates
+the terms and conditions of version 3 of the GNU General Public
+License, supplemented by the additional permissions listed below.
+
+  0. Additional Definitions.
+
+  As used herein, "this License" refers to version 3 of the GNU Lesser
+General Public License, and the "GNU GPL" refers to version 3 of the GNU
+General Public License.
+
+  "The Library" refers to a covered work governed by this License,
+other than an Application or a Combined Work as defined below.
+
+  An "Application" is any work that makes use of an interface provided
+by the Library, but which is not otherwise based on the Library.
+Defining a subclass of a class defined by the Library is deemed a mode
+of using an interface provided by the Library.
+
+  A "Combined Work" is a work produced by combining or linking an
+Application with the Library.  The particular version of the Library
+with which the Combined Work was made is also called the "Linked
+Version".
+
+  The "Minimal Corresponding Source" for a Combined Work means the
+Corresponding Source for the Combined Work, excluding any source code
+for portions of the Combined Work that, considered in isolation, are
+based on the Application, and not on the Linked Version.
+
+  The "Corresponding Application Code" for a Combined Work means the
+object code and/or source code for the Application, including any data
+and utility programs needed for reproducing the Combined Work from the
+Application, but excluding the System Libraries of the Combined Work.
+
+  1. Exception to Section 3 of the GNU GPL.
+
+  You may convey a covered work under sections 3 and 4 of this License
+without being bound by section 3 of the GNU GPL.
+
+  2. Conveying Modified Versions.
+
+  If you modify a copy of the Library, and, in your modifications, a
+facility refers to a function or data to be supplied by an Application
+that uses the facility (other than as an argument passed when the
+facility is invoked), then you may convey a copy of the modified
+version:
+
+   a) under this License, provided that you make a good faith effort to
+   ensure that, in the event an Application does not supply the
+   function or data, the facility still operates, and performs
+   whatever part of its purpose remains meaningful, or
+
+   b) under the GNU GPL, with none of the additional permissions of
+   this License applicable to that copy.
+
+  3. Object Code Incorporating Material from Library Header Files.
+
+  The object code form of an Application may incorporate material from
+a header file that is part of the Library.  You may convey such object
+code under terms of your choice, provided that, if the incorporated
+material is not limited to numerical parameters, data structure
+layouts and accessors, or small macros, inline functions and templates
+(ten or fewer lines in length), you do both of the following:
+
+   a) Give prominent notice with each copy of the object code that the
+   Library is used in it and that the Library and its use are
+   covered by this License.
+
+   b) Accompany the object code with a copy of the GNU GPL and this license
+   document.
+
+  4. Combined Works.
+
+  You may convey a Combined Work under terms of your choice that,
+taken together, effectively do not restrict modification of the
+portions of the Library contained in the Combined Work and reverse
+engineering for debugging such modifications, if you also do each of
+the following:
+
+   a) Give prominent notice with each copy of the Combined Work that
+   the Library is used in it and that the Library and its use are
+   covered by this License.
+
+   b) Accompany the Combined Work with a copy of the GNU GPL and this license
+   document.
+
+   c) For a Combined Work that displays copyright notices during
+   execution, include the copyright notice for the Library among
+   these notices, as well as a reference directing the user to the
+   copies of the GNU GPL and this license document.
+
+   d) Do one of the following:
+
+       0) Convey the Minimal Corresponding Source under the terms of this
+       License, and the Corresponding Application Code in a form
+       suitable for, and under terms that permit, the user to
+       recombine or relink the Application with a modified version of
+       the Linked Version to produce a modified Combined Work, in the
+       manner specified by section 6 of the GNU GPL for conveying
+       Corresponding Source.
+
+       1) Use a suitable shared library mechanism for linking with the
+       Library.  A suitable mechanism is one that (a) uses at run time
+       a copy of the Library already present on the user's computer
+       system, and (b) will operate properly with a modified version
+       of the Library that is interface-compatible with the Linked
+       Version.
+
+   e) Provide Installation Information, but only if you would otherwise
+   be required to provide such information under section 6 of the
+   GNU GPL, and only to the extent that such information is
+   necessary to install and execute a modified version of the
+   Combined Work produced by recombining or relinking the
+   Application with a modified version of the Linked Version. (If
+   you use option 4d0, the Installation Information must accompany
+   the Minimal Corresponding Source and Corresponding Application
+   Code. If you use option 4d1, you must provide the Installation
+   Information in the manner specified by section 6 of the GNU GPL
+   for conveying Corresponding Source.)
+
+  5. Combined Libraries.
+
+  You may place library facilities that are a work based on the
+Library side by side in a single library together with other library
+facilities that are not Applications and are not covered by this
+License, and convey such a combined library under terms of your
+choice, if you do both of the following:
+
+   a) Accompany the combined library with a copy of the same work based
+   on the Library, uncombined with any other library facilities,
+   conveyed under the terms of this License.
+
+   b) Give prominent notice with the combined library that part of it
+   is a work based on the Library, and explaining where to find the
+   accompanying uncombined form of the same work.
+
+  6. Revised Versions of the GNU Lesser General Public License.
+
+  The Free Software Foundation may publish revised and/or new versions
+of the GNU Lesser General Public License from time to time. Such new
+versions will be similar in spirit to the present version, but may
+differ in detail to address new problems or concerns.
+
+  Each version is given a distinguishing version number. If the
+Library as you received it specifies that a certain numbered version
+of the GNU Lesser General Public License "or any later version"
+applies to it, you have the option of following the terms and
+conditions either of that published version or of any later version
+published by the Free Software Foundation. If the Library as you
+received it does not specify a version number of the GNU Lesser
+General Public License, you may choose any version of the GNU Lesser
+General Public License ever published by the Free Software Foundation.
+
+  If the Library as you received it specifies that a proxy can decide
+whether future versions of the GNU Lesser General Public License shall
+apply, that proxy's public statement of acceptance of any version is
+permanent authorization for you to choose that version for the
+Library.
+
+
+#######################################
+
+(3 of 41)
+Group:   com.fasterxml.jackson.core
+Name:    jackson-databind
+Version: 2.17.0
+Project URL: https://github.com/FasterXML/jackson\n\n
+Manifest license URL: https://www.apache.org/licenses/LICENSE-2.0
+
+
+POM License: Apache License, Version 2.0
+ - https://www.apache.org/licenses/LICENSE-2.0
+
+
+Embedded license:
+
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+
+
+# Jackson JSON processor
+
+Jackson is a high-performance, Free/Open Source JSON processing library.
+It was originally written by Tatu Saloranta (tatu.saloranta@iki.fi), and has
+been in development since 2007.
+It is currently developed by a community of developers.
+
+## Copyright
+
+Copyright 2007-, Tatu Saloranta (tatu.saloranta@iki.fi)
+
+## Licensing
+
+Jackson 2.x core and extension components are licensed under Apache License 2.0
+To find the details that apply to this artifact see the accompanying LICENSE file.
+
+## Credits
+
+A list of contributors may be found from CREDITS(-2.x) file, which is included
+in some artifacts (usually source distributions); but is always available
+from the source code management (SCM) system project uses.
+
+
+#######################################
+
+(4 of 41)
+Group:   com.fasterxml.jackson.module
+Name:    jackson-module-kotlin
+Version: 2.17.0
+Project URL: https://github.com/FasterXML/jackson-module-kotlin\n\n
+Manifest license URL: https://www.apache.org/licenses/LICENSE-2.0
+
+
+POM License: Apache License, Version 2.0
+ - https://www.apache.org/licenses/LICENSE-2.0
+
+
+Embedded license:
+
+This copy of Jackson JSON processor databind module is licensed under the
+Apache (Software) License, version 2.0 ("the License").
+See the License for details about distribution rights, and the
+specific rights regarding derivative works.
+
+You may obtain a copy of the License at:
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+
+# Jackson JSON processor
+
+Jackson is a high-performance, Free/Open Source JSON processing library.
+It was originally written by Tatu Saloranta (tatu.saloranta@iki.fi), and has
+been in development since 2007.
+It is currently developed by a community of developers, as well as supported
+commercially by FasterXML.com.
+
+## Copyright
+
+Copyright 2007-, Tatu Saloranta (tatu.saloranta@iki.fi)
+
+## Licensing
+
+Jackson core and extension components may be licensed under different licenses.
+To find the details that apply to this artifact see the accompanying LICENSE file.
+For more information, including possible other licensing options, contact
+FasterXML.com (http://fasterxml.com).
+
+## Credits
+
+A list of contributors may be found from CREDITS file, which is included
+in some artifacts (usually source distributions); but is always available
+from the source code management (SCM) system project uses.
+
+
+#######################################
+
+(5 of 41)
+Group:   com.fasterxml.jackson.module
+Name:    jackson-module-kotlin
+Version: 2.17.1
+Project URL: https://github.com/FasterXML/jackson-module-kotlin\n\n
+Manifest license URL: https://www.apache.org/licenses/LICENSE-2.0
+
+
+POM License: Apache License, Version 2.0
+ - https://www.apache.org/licenses/LICENSE-2.0
+
+
+Embedded license:
+
+This copy of Jackson JSON processor databind module is licensed under the
+Apache (Software) License, version 2.0 ("the License").
+See the License for details about distribution rights, and the
+specific rights regarding derivative works.
+
+You may obtain a copy of the License at:
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+
+# Jackson JSON processor
+
+Jackson is a high-performance, Free/Open Source JSON processing library.
+It was originally written by Tatu Saloranta (tatu.saloranta@iki.fi), and has
+been in development since 2007.
+It is currently developed by a community of developers, as well as supported
+commercially by FasterXML.com.
+
+## Copyright
+
+Copyright 2007-, Tatu Saloranta (tatu.saloranta@iki.fi)
+
+## Licensing
+
+Jackson core and extension components may be licensed under different licenses.
+To find the details that apply to this artifact see the accompanying LICENSE file.
+For more information, including possible other licensing options, contact
+FasterXML.com (http://fasterxml.com).
+
+## Credits
+
+A list of contributors may be found from CREDITS file, which is included
+in some artifacts (usually source distributions); but is always available
+from the source code management (SCM) system project uses.
+
+
+#######################################
+
+(6 of 41)
+Group:   com.formdev
+Name:    flatlaf
+Version: 3.4
+POM Project URL: https://github.com/JFormDesigner/FlatLaf
+
+
+POM License: Apache License, Version 2.0
+ - https://www.apache.org/licenses/LICENSE-2.0
+
+
+Embedded license:
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+
+
+#######################################
+
+(7 of 41)
+Group:   com.formdev
+Name:    flatlaf-extras
+Version: 3.4
+POM Project URL: https://github.com/JFormDesigner/FlatLaf
+
+
+POM License: Apache License, Version 2.0
+ - https://www.apache.org/licenses/LICENSE-2.0
+
+
+Embedded license:
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+
+
+#######################################
+
+(8 of 41)
+Group:   com.formdev
+Name:    flatlaf-fonts-inter
+Version: 4.0
+POM Project URL: https://github.com/JFormDesigner/FlatLaf
+
+
+POM License: Apache License, Version 2.0
+ - https://www.apache.org/licenses/LICENSE-2.0
+
+
+POM License: SIL OPEN FONT LICENSE Version 1.1
+ - https://choosealicense.com/licenses/ofl-1.1/
+
+
+Embedded license:
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+
+
+Copyright (c) 2016 The Inter Project Authors (https://github.com/rsms/inter)
+
+This Font Software is licensed under the SIL Open Font License, Version 1.1.
+This license is copied below, and is also available with a FAQ at:
+http://scripts.sil.org/OFL
+
+-----------------------------------------------------------
+SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
+-----------------------------------------------------------
+
+PREAMBLE
+The goals of the Open Font License (OFL) are to stimulate worldwide
+development of collaborative font projects, to support the font creation
+efforts of academic and linguistic communities, and to provide a free and
+open framework in which fonts may be shared and improved in partnership
+with others.
+
+The OFL allows the licensed fonts to be used, studied, modified and
+redistributed freely as long as they are not sold by themselves. The
+fonts, including any derivative works, can be bundled, embedded,
+redistributed and/or sold with any software provided that any reserved
+names are not used by derivative works. The fonts and derivatives,
+however, cannot be released under any other type of license. The
+requirement for fonts to remain under this license does not apply
+to any document created using the fonts or their derivatives.
+
+DEFINITIONS
+"Font Software" refers to the set of files released by the Copyright
+Holder(s) under this license and clearly marked as such. This may
+include source files, build scripts and documentation.
+
+"Reserved Font Name" refers to any names specified as such after the
+copyright statement(s).
+
+"Original Version" refers to the collection of Font Software components as
+distributed by the Copyright Holder(s).
+
+"Modified Version" refers to any derivative made by adding to, deleting,
+or substituting -- in part or in whole -- any of the components of the
+Original Version, by changing formats or by porting the Font Software to a
+new environment.
+
+"Author" refers to any designer, engineer, programmer, technical
+writer or other person who contributed to the Font Software.
+
+PERMISSION AND CONDITIONS
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of the Font Software, to use, study, copy, merge, embed, modify,
+redistribute, and sell modified and unmodified copies of the Font
+Software, subject to the following conditions:
+
+1) Neither the Font Software nor any of its individual components,
+in Original or Modified Versions, may be sold by itself.
+
+2) Original or Modified Versions of the Font Software may be bundled,
+redistributed and/or sold with any software, provided that each copy
+contains the above copyright notice and this license. These can be
+included either as stand-alone text files, human-readable headers or
+in the appropriate machine-readable metadata fields within text or
+binary files as long as those fields can be easily viewed by the user.
+
+3) No Modified Version of the Font Software may use the Reserved Font
+Name(s) unless explicit written permission is granted by the corresponding
+Copyright Holder. This restriction only applies to the primary font name as
+presented to the users.
+
+4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
+Software shall not be used to promote, endorse or advertise any
+Modified Version, except to acknowledge the contribution(s) of the
+Copyright Holder(s) and the Author(s) or with their explicit written
+permission.
+
+5) The Font Software, modified or unmodified, in part or in whole,
+must be distributed entirely under this license, and must not be
+distributed under any other license. The requirement for fonts to
+remain under this license does not apply to any document created
+using the Font Software.
+
+TERMINATION
+This license becomes null and void if any of the above conditions are
+not met.
+
+DISCLAIMER
+THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
+OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
+COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
+DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
+OTHER DEALINGS IN THE FONT SOFTWARE.
+
+
+#######################################
+
+(9 of 41)
+Group:   com.formdev
+Name:    flatlaf-fonts-jetbrains-mono
+Version: 2.304
+POM Project URL: https://github.com/JFormDesigner/FlatLaf
+
+
+POM License: Apache License, Version 2.0
+ - https://www.apache.org/licenses/LICENSE-2.0
+
+
+POM License: SIL OPEN FONT LICENSE Version 1.1
+ - https://choosealicense.com/licenses/ofl-1.1/
+
+
+Embedded license:
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+
+
+#######################################
+
+(10 of 41)
+Group:   com.formdev
+Name:    flatlaf-fonts-roboto
+Version: 2.137
+POM Project URL: https://github.com/JFormDesigner/FlatLaf
+
+
+POM License: Apache License, Version 2.0
+ - https://www.apache.org/licenses/LICENSE-2.0
+
+
+Embedded license:
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+
+
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+
+
+#######################################
+
+(11 of 41)
+Group:   com.formdev
+Name:    flatlaf-fonts-roboto-mono
+Version: 3.000
+POM Project URL: https://github.com/JFormDesigner/FlatLaf
+
+
+POM License: Apache License, Version 2.0
+ - https://www.apache.org/licenses/LICENSE-2.0
+
+
+Embedded license:
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+
+
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+
+
+#######################################
+
+(12 of 41)
+Group:   com.formdev
+Name:    flatlaf-intellij-themes
+Version: 3.4
+POM Project URL: https://github.com/JFormDesigner/FlatLaf
+
+
+POM License: Apache License, Version 2.0
+ - https://www.apache.org/licenses/LICENSE-2.0
+
+
+Embedded license:
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+
+
+#######################################
+
+(13 of 41)
+Group:   com.formdev
+Name:    svgSalamander
+Version: 1.1.4
+POM Project URL: https://github.com/JFormDesigner/svgSalamander
+
+
+POM License: BSD Zero Clause License
+ - https://opensource.org/licenses/0BSD
+
+
+POM License: The 2-Clause BSD License
+ - https://opensource.org/licenses/BSD-2-Clause
+
+
+POM license(s): 
+
+
+License: BSD Zero Clause License
+URL: https://opensource.org/licenses/0BSD
+
+
+License: The 2-Clause BSD License
+URL: https://opensource.org/licenses/BSD-2-Clause
+
+
+#######################################
+
+(14 of 41)
+Group:   com.miglayout
+Name:    miglayout-swing
+Version: 11.3
+POM Project URL: http://www.miglayout.com/
+
+
+POM License: BSD Zero Clause License
+ - https://opensource.org/licenses/0BSD
+
+
+POM license(s): 
+
+
+License: BSD Zero Clause License
+URL: https://opensource.org/licenses/0BSD
+
+
+#######################################
+
+(15 of 41)
+Group:   commons-io
+Name:    commons-io
+Version: 2.16.1
+Project URL: https://commons.apache.org/proper/commons-io/\n\n
+Manifest license URL: https://www.apache.org/licenses/LICENSE-2.0
+
+
+POM License: Apache License, Version 2.0
+ - https://www.apache.org/licenses/LICENSE-2.0
+
+
+Embedded license:
+
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+
+
+
+Apache Commons IO
+Copyright 2002-2024 The Apache Software Foundation
+
+This product includes software developed at
+The Apache Software Foundation (https://www.apache.org/).
+
+
+#######################################
+
+(16 of 41)
+Group:   de.comahe.i18n4k
+Name:    i18n4k-core
+Version: 0.7.0
+No license information found
+
+
+#######################################
+
+(17 of 41)
+Group:   de.comahe.i18n4k
+Name:    i18n4k-core-jvm
+Version: 0.7.0
+POM Project URL: https://comahe-de.github.io/i18n4k/
+
+
+POM License: Apache License, Version 2.0
+ - https://www.apache.org/licenses/LICENSE-2.0
+
+
+POM license(s): 
+
+
+License: Apache License, Version 2.0
+URL: https://www.apache.org/licenses/LICENSE-2.0
+
+
+#######################################
+
+(18 of 41)
+Group:   de.jensklingenberg.ktorfit
+Name:    ktorfit-lib
+Version: 1.14.0
+No license information found
+
+
+#######################################
+
+(19 of 41)
+Group:   io.github.microutils
+Name:    kotlin-logging
+Version: 3.0.5
+No license information found
+
+
+#######################################
+
+(20 of 41)
+Group:   net.java.balloontip
+Name:    balloontip
+Version: 1.2.4.1
+POM Project URL: http://balloontip.java.net/
+
+
+POM License: The 3-Clause BSD License
+ - https://opensource.org/licenses/BSD-3-Clause
+
+
+POM license(s): 
+
+
+License: The 3-Clause BSD License
+URL: https://opensource.org/licenses/BSD-3-Clause
+
+
+#######################################
+
+(21 of 41)
+Group:   net.lingala.zip4j
+Name:    zip4j
+Version: 2.11.5
+Manifest license URL: https://www.apache.org/licenses/LICENSE-2.0
+
+
+POM Project URL: https://github.com/srikanth-lingala/zip4j
+
+
+POM License: Apache License, Version 2.0
+ - https://www.apache.org/licenses/LICENSE-2.0
+
+
+POM license(s): 
+
+
+License: Apache License, Version 2.0
+URL: https://www.apache.org/licenses/LICENSE-2.0
+
+
+#######################################
+
+(22 of 41)
+Group:   org.apache.logging.log4j
+Name:    log4j-api-kotlin
+Version: 1.4.0
+Manifest license URL: https://www.apache.org/licenses/LICENSE-2.0
+
+
+POM License: Apache License, Version 2.0
+ - https://www.apache.org/licenses/LICENSE-2.0
+
+
+Embedded license:
+
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+
+
+Apache Log4j Kotlin API
+Copyright 1999-2023 The Apache Software Foundation
+
+
+This product includes software developed at
+The Apache Software Foundation (http://www.apache.org/).
+
+
+#######################################
+
+(23 of 41)
+Group:   org.apache.logging.log4j
+Name:    log4j-core
+Version: 2.23.1
+Manifest license URL: https://www.apache.org/licenses/LICENSE-2.0
+
+
+POM License: Apache License, Version 2.0
+ - https://www.apache.org/licenses/LICENSE-2.0
+
+
+Embedded license:
+
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright 1999-2005 The Apache Software Foundation
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+
+
+Apache Log4j Core
+Copyright 1999-2012 Apache Software Foundation
+
+This product includes software developed at
+The Apache Software Foundation (http://www.apache.org/).
+
+ResolverUtil.java
+Copyright 2005-2006 Tim Fennell
+
+#######################################
+
+(24 of 41)
+Group:   org.bouncycastle
+Name:    bcpkix-jdk18on
+Version: 1.78
+POM Project URL: https://www.bouncycastle.org/java.html
+
+
+POM License: Bouncy Castle Licence
+ - https://www.bouncycastle.org/licence.html
+
+
+POM license(s): 
+
+
+License: Bouncy Castle Licence
+URL: https://www.bouncycastle.org/licence.html
+
+
+#######################################
+
+(25 of 41)
+Group:   org.javassist
+Name:    javassist
+Version: 3.30.2-GA
+Manifest license URL: https://www.apache.org/licenses/LICENSE-2.0
+
+
+POM Project URL: https://www.javassist.org/
+
+
+POM License: Apache License, Version 2.0
+ - https://www.apache.org/licenses/LICENSE-2.0
+
+
+POM License: GNU LESSER GENERAL PUBLIC LICENSE, Version 2.1
+ - https://www.gnu.org/licenses/lgpl-2.1
+
+
+POM License: Mozilla Public License Version 1.1
+ - https://www.mozilla.org/en-US/MPL/1.1
+
+
+POM license(s): 
+
+
+License: Apache License, Version 2.0
+URL: https://www.apache.org/licenses/LICENSE-2.0
+
+
+License: GNU LESSER GENERAL PUBLIC LICENSE, Version 2.1
+URL: https://www.gnu.org/licenses/lgpl-2.1
+
+
+License: Mozilla Public License Version 1.1
+URL: https://www.mozilla.org/en-US/MPL/1.1
+
+
+#######################################
+
+(26 of 41)
+Group:   org.jetbrains.kotlin
+Name:    kotlin-bom
+Version: 1.9.23
+No license information found
+
+
+#######################################
+
+(27 of 41)
+Group:   org.jetbrains.kotlin
+Name:    kotlin-reflect
+Version: 1.9.23
+POM Project URL: https://kotlinlang.org/
+
+
+POM License: Apache License, Version 2.0
+ - https://www.apache.org/licenses/LICENSE-2.0
+
+
+POM license(s): 
+
+
+License: Apache License, Version 2.0
+URL: https://www.apache.org/licenses/LICENSE-2.0
+
+
+#######################################
+
+(28 of 41)
+Group:   org.jetbrains.kotlin
+Name:    kotlin-stdlib
+Version: 1.9.23
+POM Project URL: https://kotlinlang.org/
+
+
+POM License: Apache License, Version 2.0
+ - https://www.apache.org/licenses/LICENSE-2.0
+
+
+POM license(s): 
+
+
+License: Apache License, Version 2.0
+URL: https://www.apache.org/licenses/LICENSE-2.0
+
+
+#######################################
+
+(29 of 41)
+Group:   org.jetbrains.kotlin
+Name:    kotlin-stdlib
+Version: 2.0.0-RC1
+POM Project URL: https://kotlinlang.org/
+
+
+POM License: Apache License, Version 2.0
+ - https://www.apache.org/licenses/LICENSE-2.0
+
+
+POM license(s): 
+
+
+License: Apache License, Version 2.0
+URL: https://www.apache.org/licenses/LICENSE-2.0
+
+
+#######################################
+
+(30 of 41)
+Group:   org.jetbrains.kotlinx
+Name:    kotlinx-coroutines-core
+Version: 1.8.0
+No license information found
+
+
+#######################################
+
+(31 of 41)
+Group:   org.jetbrains.kotlinx
+Name:    kotlinx-coroutines-swing
+Version: 1.8.0
+POM Project URL: https://github.com/Kotlin/kotlinx.coroutines
+
+
+POM License: Apache License, Version 2.0
+ - https://www.apache.org/licenses/LICENSE-2.0
+
+
+POM license(s): 
+
+
+License: Apache License, Version 2.0
+URL: https://www.apache.org/licenses/LICENSE-2.0
+
+
+#######################################
+
+(32 of 41)
+Group:   org.jetbrains.kotlinx
+Name:    kotlinx-datetime
+Version: 0.5.0
+No license information found
+
+
+#######################################
+
+(33 of 41)
+Group:   org.pf4j
+Name:    pf4j
+Version: 3.11.0
+POM License: Apache License, Version 2.0
+ - https://www.apache.org/licenses/LICENSE-2.0
+
+
+POM license(s): 
+
+
+License: Apache License, Version 2.0
+URL: https://www.apache.org/licenses/LICENSE-2.0
+
+
+#######################################
+
+(34 of 41)
+Group:   org.postgresql
+Name:    postgresql
+Version: 42.7.3
+Manifest Project URL: https://jdbc.postgresql.org/
+
+
+Manifest license URL: https://opensource.org/licenses/BSD-2-Clause
+
+
+POM Project URL: https://jdbc.postgresql.org
+
+
+POM License: The 2-Clause BSD License
+ - https://opensource.org/licenses/BSD-2-Clause
+
+
+Embedded license:
+
+Copyright (c) 1997, PostgreSQL Global Development Group
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+1. Redistributions of source code must retain the above copyright notice,
+   this list of conditions and the following disclaimer.
+2. Redistributions in binary form must reproduce the above copyright notice,
+   this list of conditions and the following disclaimer in the documentation
+   and/or other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+
+Additional License files can be found in the 'licenses' folder located in the same directory as the LICENSE file (i.e. this file)
+
+- Software produced outside the ASF which is available under other licenses (not Apache-2.0)
+
+BSD-2-Clause
+* com.ongres.scram:client:2.1
+* com.ongres.scram:common:2.1
+* com.ongres.stringprep:saslprep:1.1
+* com.ongres.stringprep:stringprep:1.1
+
+
+Copyright 2017, OnGres.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+1. Redistributions of source code must retain the above copyright notice, this
+list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright notice,
+this list of conditions and the following disclaimer in the documentation and/or
+other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+Copyright 2017, OnGres.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+1. Redistributions of source code must retain the above copyright notice, this
+list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright notice,
+this list of conditions and the following disclaimer in the documentation and/or
+other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+Copyright 2019, OnGres.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+1. Redistributions of source code must retain the above copyright notice, this
+list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright notice,
+this list of conditions and the following disclaimer in the documentation and/or
+other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+Copyright 2019, OnGres.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+1. Redistributions of source code must retain the above copyright notice, this
+list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright notice,
+this list of conditions and the following disclaimer in the documentation and/or
+other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+#######################################
+
+(35 of 41)
+Group:   org.springframework.boot
+Name:    spring-boot-devtools
+Version: 3.2.5
+POM Project URL: https://spring.io/projects/spring-boot
+
+
+POM License: Apache License, Version 2.0
+ - https://www.apache.org/licenses/LICENSE-2.0
+
+
+Embedded license:
+
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        https://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "{}"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright {yyyy} {name of copyright owner}
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       https://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+
+Spring Boot 3.2.5
+Copyright (c) 2012-2024 VMware, Inc.
+
+This product is licensed to you under the Apache License, Version 2.0
+(the "License"). You may not use this product except in compliance with
+the License.
+
+#######################################
+
+(36 of 41)
+Group:   org.springframework.boot
+Name:    spring-boot-devtools
+Version: 3.3.0
+POM Project URL: https://spring.io/projects/spring-boot
+
+
+POM License: Apache License, Version 2.0
+ - https://www.apache.org/licenses/LICENSE-2.0
+
+
+Embedded license:
+
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        https://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "{}"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright {yyyy} {name of copyright owner}
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       https://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+
+Spring Boot 3.3.0
+Copyright (c) 2012-2024 VMware, Inc.
+
+This product is licensed to you under the Apache License, Version 2.0
+(the "License"). You may not use this product except in compliance with
+the License.
+
+#######################################
+
+(37 of 41)
+Group:   org.springframework.boot
+Name:    spring-boot-starter-data-jpa
+Version: 3.2.5
+POM Project URL: https://spring.io/projects/spring-boot
+
+
+POM License: Apache License, Version 2.0
+ - https://www.apache.org/licenses/LICENSE-2.0
+
+
+Embedded license:
+
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        https://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "{}"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright {yyyy} {name of copyright owner}
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       https://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+
+Spring Boot 3.2.5
+Copyright (c) 2012-2024 VMware, Inc.
+
+This product is licensed to you under the Apache License, Version 2.0
+(the "License"). You may not use this product except in compliance with
+the License.
+
+#######################################
+
+(38 of 41)
+Group:   org.springframework.boot
+Name:    spring-boot-starter-log4j2
+Version: 3.2.4
+POM Project URL: https://spring.io/projects/spring-boot
+
+
+POM License: Apache License, Version 2.0
+ - https://www.apache.org/licenses/LICENSE-2.0
+
+
+Embedded license:
+
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        https://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "{}"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright {yyyy} {name of copyright owner}
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       https://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+
+Spring Boot 3.2.4
+Copyright (c) 2012-2024 VMware, Inc.
+
+This product is licensed to you under the Apache License, Version 2.0
+(the "License"). You may not use this product except in compliance with
+the License.
+
+#######################################
+
+(39 of 41)
+Group:   org.springframework.boot
+Name:    spring-boot-starter-web
+Version: 3.2.4
+POM Project URL: https://spring.io/projects/spring-boot
+
+
+POM License: Apache License, Version 2.0
+ - https://www.apache.org/licenses/LICENSE-2.0
+
+
+Embedded license:
+
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        https://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "{}"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright {yyyy} {name of copyright owner}
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       https://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+
+Spring Boot 3.2.4
+Copyright (c) 2012-2024 VMware, Inc.
+
+This product is licensed to you under the Apache License, Version 2.0
+(the "License"). You may not use this product except in compliance with
+the License.
+
+#######################################
+
+(40 of 41)
+Group:   org.springframework.boot
+Name:    spring-boot-starter-web
+Version: 3.3.0
+POM Project URL: https://spring.io/projects/spring-boot
+
+
+POM License: Apache License, Version 2.0
+ - https://www.apache.org/licenses/LICENSE-2.0
+
+
+Embedded license:
+
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        https://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "{}"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright {yyyy} {name of copyright owner}
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       https://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+
+Spring Boot 3.3.0
+Copyright (c) 2012-2024 VMware, Inc.
+
+This product is licensed to you under the Apache License, Version 2.0
+(the "License"). You may not use this product except in compliance with
+the License.
+
+#######################################
+
+(41 of 41)
+Group:   tokyo.northside
+Name:    tipoftheday
+Version: 0.4.2
+POM Project URL: https://codeberg.org/miurahr/tipoftheday
+
+
+POM License: GNU LESSER GENERAL PUBLIC LICENSE, Version 2.1
+ - https://www.gnu.org/licenses/lgpl-2.1
+
+
+POM license(s): 
+
+
+License: GNU LESSER GENERAL PUBLIC LICENSE, Version 2.1
+URL: https://www.gnu.org/licenses/lgpl-2.1
+
+
+#######################################
+
diff --git a/licenses/angus-activation-2.0.2.jar/META-INF/LICENSE.md b/licenses/angus-activation-2.0.2.jar/META-INF/LICENSE.md
new file mode 100644
index 000000000..e0358f972
--- /dev/null
+++ b/licenses/angus-activation-2.0.2.jar/META-INF/LICENSE.md
@@ -0,0 +1,29 @@
+
+    Copyright (c) 2018 Oracle and/or its affiliates. All rights reserved.
+   
+    Redistribution and use in source and binary forms, with or without
+    modification, are permitted provided that the following conditions
+    are met:
+   
+      - Redistributions of source code must retain the above copyright
+        notice, this list of conditions and the following disclaimer.
+   
+      - Redistributions in binary form must reproduce the above copyright
+        notice, this list of conditions and the following disclaimer in the
+        documentation and/or other materials provided with the distribution.
+   
+      - Neither the name of the Eclipse Foundation, Inc. nor the names of its
+        contributors may be used to endorse or promote products derived
+        from this software without specific prior written permission.
+   
+    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
+    IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+    THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+    PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+    CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+    EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+    PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+    PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+    LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+    NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+    SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/licenses/angus-activation-2.0.2.jar/META-INF/NOTICE.md b/licenses/angus-activation-2.0.2.jar/META-INF/NOTICE.md
new file mode 100644
index 000000000..81a6d3390
--- /dev/null
+++ b/licenses/angus-activation-2.0.2.jar/META-INF/NOTICE.md
@@ -0,0 +1,45 @@
+# Notices for Eclipse Angus
+
+This content is produced and maintained by the Eclipse Angus project.
+
+* Project home: https://projects.eclipse.org/projects/ee4j.angus
+
+## Trademarks
+
+Eclipse Angus is a trademark of the Eclipse Foundation.
+
+## Copyright
+
+All content is the property of the respective authors or their employers. For
+more information regarding authorship of content, please consult the listed
+source code repository logs.
+
+## Declared Project Licenses
+
+This program and the accompanying materials are made available under the terms
+of the Eclipse Distribution License v1.0 which is available at
+https://www.eclipse.org/org/documents/edl-v10.php.
+
+SPDX-License-Identifier: BSD-3-Clause
+
+## Source Code
+
+The project maintains the following source code repositories:
+
+* https://github.com/eclipse-ee4j/angus-activation
+* https://github.com/eclipse-ee4j/angus-mail
+
+## Third-party Content
+
+This project leverages the following third party content.
+
+None
+
+## Cryptography
+
+Content may contain encryption software. The country in which you are currently
+may have restrictions on the import, possession, and use, and/or re-export to
+another country, of encryption software. BEFORE using any encryption software,
+please check the country's laws, regulations and policies concerning the import,
+possession, or use, and re-export of encryption software, to see if this is
+permitted.
\ No newline at end of file
diff --git a/licenses/byte-buddy-1.14.12.jar/META-INF/LICENSE b/licenses/byte-buddy-1.14.12.jar/META-INF/LICENSE
new file mode 100644
index 000000000..9bc5efde0
--- /dev/null
+++ b/licenses/byte-buddy-1.14.12.jar/META-INF/LICENSE
@@ -0,0 +1,180 @@
+This product bundles ASM 9.6, which is available under a "3-clause BSD"
+license. For details, see licenses/ASM. For more information visit ${asm.url}.
+
+Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
diff --git a/licenses/byte-buddy-1.14.12.jar/META-INF/NOTICE b/licenses/byte-buddy-1.14.12.jar/META-INF/NOTICE
new file mode 100644
index 000000000..929cbc6b1
--- /dev/null
+++ b/licenses/byte-buddy-1.14.12.jar/META-INF/NOTICE
@@ -0,0 +1,13 @@
+Copyright 2014 - Present Rafael Winterhalter
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
diff --git a/licenses/byte-buddy-1.14.16.jar/META-INF/LICENSE b/licenses/byte-buddy-1.14.16.jar/META-INF/LICENSE
new file mode 100644
index 000000000..b6ee4d1dc
--- /dev/null
+++ b/licenses/byte-buddy-1.14.16.jar/META-INF/LICENSE
@@ -0,0 +1,180 @@
+This product bundles ASM 9.7, which is available under a "3-clause BSD"
+license. For details, see licenses/ASM. For more information visit ${asm.url}.
+
+Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
diff --git a/licenses/byte-buddy-1.14.16.jar/META-INF/NOTICE b/licenses/byte-buddy-1.14.16.jar/META-INF/NOTICE
new file mode 100644
index 000000000..929cbc6b1
--- /dev/null
+++ b/licenses/byte-buddy-1.14.16.jar/META-INF/NOTICE
@@ -0,0 +1,13 @@
+Copyright 2014 - Present Rafael Winterhalter
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
diff --git a/licenses/byte-buddy-1.14.9.jar/META-INF/LICENSE b/licenses/byte-buddy-1.14.9.jar/META-INF/LICENSE
new file mode 100644
index 000000000..9bc5efde0
--- /dev/null
+++ b/licenses/byte-buddy-1.14.9.jar/META-INF/LICENSE
@@ -0,0 +1,180 @@
+This product bundles ASM 9.6, which is available under a "3-clause BSD"
+license. For details, see licenses/ASM. For more information visit ${asm.url}.
+
+Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
diff --git a/licenses/byte-buddy-1.14.9.jar/META-INF/NOTICE b/licenses/byte-buddy-1.14.9.jar/META-INF/NOTICE
new file mode 100644
index 000000000..929cbc6b1
--- /dev/null
+++ b/licenses/byte-buddy-1.14.9.jar/META-INF/NOTICE
@@ -0,0 +1,13 @@
+Copyright 2014 - Present Rafael Winterhalter
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
diff --git a/licenses/checker-qual-3.42.0.jar/META-INF/LICENSE.txt b/licenses/checker-qual-3.42.0.jar/META-INF/LICENSE.txt
new file mode 100644
index 000000000..9837c6b69
--- /dev/null
+++ b/licenses/checker-qual-3.42.0.jar/META-INF/LICENSE.txt
@@ -0,0 +1,22 @@
+Checker Framework qualifiers
+Copyright 2004-present by the Checker Framework developers
+
+MIT License:
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
diff --git a/licenses/classmate-1.7.0.jar/META-INF/LICENSE b/licenses/classmate-1.7.0.jar/META-INF/LICENSE
new file mode 100644
index 000000000..522a4db09
--- /dev/null
+++ b/licenses/classmate-1.7.0.jar/META-INF/LICENSE
@@ -0,0 +1,7 @@
+This copy of Java ClassMate library is licensed under Apache (Software) License,
+version 2.0 ("the License").
+See the License for details about distribution rights, and the specific rights regarding derivate works.
+
+You may obtain a copy of the License at:
+
+http://www.apache.org/licenses/LICENSE-2.0
diff --git a/licenses/classmate-1.7.0.jar/META-INF/NOTICE b/licenses/classmate-1.7.0.jar/META-INF/NOTICE
new file mode 100644
index 000000000..d706cadf5
--- /dev/null
+++ b/licenses/classmate-1.7.0.jar/META-INF/NOTICE
@@ -0,0 +1,9 @@
+Java ClassMate library was originally written by Tatu Saloranta (tatu.saloranta@iki.fi)
+
+Other developers who have contributed code are:
+
+* Brian Langel
+
+## Copyright
+
+Copyright 2007-, Tatu Saloranta (tatu.saloranta@iki.fi)
\ No newline at end of file
diff --git a/licenses/commons-codec-1.16.1.jar/META-INF/LICENSE.txt b/licenses/commons-codec-1.16.1.jar/META-INF/LICENSE.txt
new file mode 100644
index 000000000..d64569567
--- /dev/null
+++ b/licenses/commons-codec-1.16.1.jar/META-INF/LICENSE.txt
@@ -0,0 +1,202 @@
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
diff --git a/licenses/commons-codec-1.16.1.jar/META-INF/NOTICE.txt b/licenses/commons-codec-1.16.1.jar/META-INF/NOTICE.txt
new file mode 100644
index 000000000..e6d6ef34a
--- /dev/null
+++ b/licenses/commons-codec-1.16.1.jar/META-INF/NOTICE.txt
@@ -0,0 +1,5 @@
+Apache Commons Codec
+Copyright 2002-2024 The Apache Software Foundation
+
+This product includes software developed at
+The Apache Software Foundation (https://www.apache.org/).
diff --git a/licenses/commons-io-2.16.1.jar/META-INF/LICENSE.txt b/licenses/commons-io-2.16.1.jar/META-INF/LICENSE.txt
new file mode 100644
index 000000000..6b0b1270f
--- /dev/null
+++ b/licenses/commons-io-2.16.1.jar/META-INF/LICENSE.txt
@@ -0,0 +1,203 @@
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+
diff --git a/licenses/commons-io-2.16.1.jar/META-INF/NOTICE.txt b/licenses/commons-io-2.16.1.jar/META-INF/NOTICE.txt
new file mode 100644
index 000000000..e7dbcdc22
--- /dev/null
+++ b/licenses/commons-io-2.16.1.jar/META-INF/NOTICE.txt
@@ -0,0 +1,5 @@
+Apache Commons IO
+Copyright 2002-2024 The Apache Software Foundation
+
+This product includes software developed at
+The Apache Software Foundation (https://www.apache.org/).
diff --git a/licenses/commons-lang3-3.14.0.jar/META-INF/LICENSE.txt b/licenses/commons-lang3-3.14.0.jar/META-INF/LICENSE.txt
new file mode 100644
index 000000000..d64569567
--- /dev/null
+++ b/licenses/commons-lang3-3.14.0.jar/META-INF/LICENSE.txt
@@ -0,0 +1,202 @@
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
diff --git a/licenses/commons-lang3-3.14.0.jar/META-INF/NOTICE.txt b/licenses/commons-lang3-3.14.0.jar/META-INF/NOTICE.txt
new file mode 100644
index 000000000..307ec45cf
--- /dev/null
+++ b/licenses/commons-lang3-3.14.0.jar/META-INF/NOTICE.txt
@@ -0,0 +1,5 @@
+Apache Commons Lang
+Copyright 2001-2023 The Apache Software Foundation
+
+This product includes software developed at
+The Apache Software Foundation (https://www.apache.org/).
diff --git a/licenses/flatlaf-3.4.jar/META-INF/LICENSE b/licenses/flatlaf-3.4.jar/META-INF/LICENSE
new file mode 100644
index 000000000..261eeb9e9
--- /dev/null
+++ b/licenses/flatlaf-3.4.jar/META-INF/LICENSE
@@ -0,0 +1,201 @@
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
diff --git a/licenses/flatlaf-extras-3.4.jar/META-INF/LICENSE b/licenses/flatlaf-extras-3.4.jar/META-INF/LICENSE
new file mode 100644
index 000000000..261eeb9e9
--- /dev/null
+++ b/licenses/flatlaf-extras-3.4.jar/META-INF/LICENSE
@@ -0,0 +1,201 @@
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
diff --git a/licenses/flatlaf-fonts-inter-4.0.jar/META-INF/LICENSE b/licenses/flatlaf-fonts-inter-4.0.jar/META-INF/LICENSE
new file mode 100644
index 000000000..261eeb9e9
--- /dev/null
+++ b/licenses/flatlaf-fonts-inter-4.0.jar/META-INF/LICENSE
@@ -0,0 +1,201 @@
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
diff --git a/licenses/flatlaf-fonts-inter-4.0.jar/com/formdev/flatlaf/fonts/inter/LICENSE.txt b/licenses/flatlaf-fonts-inter-4.0.jar/com/formdev/flatlaf/fonts/inter/LICENSE.txt
new file mode 100644
index 000000000..9b2ca37b3
--- /dev/null
+++ b/licenses/flatlaf-fonts-inter-4.0.jar/com/formdev/flatlaf/fonts/inter/LICENSE.txt
@@ -0,0 +1,92 @@
+Copyright (c) 2016 The Inter Project Authors (https://github.com/rsms/inter)
+
+This Font Software is licensed under the SIL Open Font License, Version 1.1.
+This license is copied below, and is also available with a FAQ at:
+http://scripts.sil.org/OFL
+
+-----------------------------------------------------------
+SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
+-----------------------------------------------------------
+
+PREAMBLE
+The goals of the Open Font License (OFL) are to stimulate worldwide
+development of collaborative font projects, to support the font creation
+efforts of academic and linguistic communities, and to provide a free and
+open framework in which fonts may be shared and improved in partnership
+with others.
+
+The OFL allows the licensed fonts to be used, studied, modified and
+redistributed freely as long as they are not sold by themselves. The
+fonts, including any derivative works, can be bundled, embedded,
+redistributed and/or sold with any software provided that any reserved
+names are not used by derivative works. The fonts and derivatives,
+however, cannot be released under any other type of license. The
+requirement for fonts to remain under this license does not apply
+to any document created using the fonts or their derivatives.
+
+DEFINITIONS
+"Font Software" refers to the set of files released by the Copyright
+Holder(s) under this license and clearly marked as such. This may
+include source files, build scripts and documentation.
+
+"Reserved Font Name" refers to any names specified as such after the
+copyright statement(s).
+
+"Original Version" refers to the collection of Font Software components as
+distributed by the Copyright Holder(s).
+
+"Modified Version" refers to any derivative made by adding to, deleting,
+or substituting -- in part or in whole -- any of the components of the
+Original Version, by changing formats or by porting the Font Software to a
+new environment.
+
+"Author" refers to any designer, engineer, programmer, technical
+writer or other person who contributed to the Font Software.
+
+PERMISSION AND CONDITIONS
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of the Font Software, to use, study, copy, merge, embed, modify,
+redistribute, and sell modified and unmodified copies of the Font
+Software, subject to the following conditions:
+
+1) Neither the Font Software nor any of its individual components,
+in Original or Modified Versions, may be sold by itself.
+
+2) Original or Modified Versions of the Font Software may be bundled,
+redistributed and/or sold with any software, provided that each copy
+contains the above copyright notice and this license. These can be
+included either as stand-alone text files, human-readable headers or
+in the appropriate machine-readable metadata fields within text or
+binary files as long as those fields can be easily viewed by the user.
+
+3) No Modified Version of the Font Software may use the Reserved Font
+Name(s) unless explicit written permission is granted by the corresponding
+Copyright Holder. This restriction only applies to the primary font name as
+presented to the users.
+
+4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
+Software shall not be used to promote, endorse or advertise any
+Modified Version, except to acknowledge the contribution(s) of the
+Copyright Holder(s) and the Author(s) or with their explicit written
+permission.
+
+5) The Font Software, modified or unmodified, in part or in whole,
+must be distributed entirely under this license, and must not be
+distributed under any other license. The requirement for fonts to
+remain under this license does not apply to any document created
+using the Font Software.
+
+TERMINATION
+This license becomes null and void if any of the above conditions are
+not met.
+
+DISCLAIMER
+THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
+OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
+COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
+DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
+OTHER DEALINGS IN THE FONT SOFTWARE.
diff --git a/licenses/flatlaf-fonts-jetbrains-mono-2.304.jar/META-INF/LICENSE b/licenses/flatlaf-fonts-jetbrains-mono-2.304.jar/META-INF/LICENSE
new file mode 100644
index 000000000..261eeb9e9
--- /dev/null
+++ b/licenses/flatlaf-fonts-jetbrains-mono-2.304.jar/META-INF/LICENSE
@@ -0,0 +1,201 @@
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
diff --git a/licenses/flatlaf-intellij-themes-3.4.jar/META-INF/LICENSE b/licenses/flatlaf-intellij-themes-3.4.jar/META-INF/LICENSE
new file mode 100644
index 000000000..261eeb9e9
--- /dev/null
+++ b/licenses/flatlaf-intellij-themes-3.4.jar/META-INF/LICENSE
@@ -0,0 +1,201 @@
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
diff --git a/licenses/index.html b/licenses/index.html
index cc14d0017..da5161f76 100644
--- a/licenses/index.html
+++ b/licenses/index.html
@@ -124,7 +124,7 @@
 <div class='header'>
 <h1>serverpackcreator dev</h1>
 <h2>Dependency License Report</h2>
-<h2 class='timestamp'><em>2024-02-13 21:42:38 MEZ</em>.</h2></div>
+<h2 class='timestamp'><em>2024-05-26 14:44:22 MESZ</em>.</h2></div>
 <h3>Dependency Licences</h3>
 <ul>
 <li><a class='license' href='#Dependency_Licences_Apache_License,_Version_2.0'><span class='name'>Apache License, Version 2.0</span> <span class='badge'>28</span></a></li>
@@ -152,70 +152,70 @@
 <div class='dependency-value'>Apache License, Version 2.0 - <a href='https://www.apache.org/licenses/LICENSE-2.0'>https://www.apache.org/licenses/LICENSE-2.0</a></div>
 </div>
 <div class='dependency'>
-<p><strong> 2.</strong> <strong>Group:</strong> com.fasterxml.jackson.core <strong>Name:</strong> jackson-databind <strong>Version:</strong> 2.15.3 </p><label>Project URL</label>
+<p><strong> 2.</strong> <strong>Group:</strong> com.fasterxml.jackson.core <strong>Name:</strong> jackson-databind <strong>Version:</strong> 2.17.0 </p><label>Project URL</label>
 <div class='dependency-value'><a href='https://github.com/FasterXML/jackson'>https://github.com/FasterXML/jackson</a></div>
 <label>Manifest License</label>
 <div class='dependency-value'>Apache License, Version 2.0 - <a href='https://www.apache.org/licenses/LICENSE-2.0'>https://www.apache.org/licenses/LICENSE-2.0</a></div>
 <label>POM License</label>
 <div class='dependency-value'>Apache License, Version 2.0 - <a href='https://www.apache.org/licenses/LICENSE-2.0'>https://www.apache.org/licenses/LICENSE-2.0</a></div>
 <label>Embedded license files</label>
-<div class='dependency-value'><a href='jackson-databind-2.15.3.jar/META-INF/LICENSE'>jackson-databind-2.15.3.jar/META-INF/LICENSE</a><br><a href='jackson-databind-2.15.3.jar/META-INF/NOTICE'>jackson-databind-2.15.3.jar/META-INF/NOTICE</a></div>
+<div class='dependency-value'><a href='jackson-databind-2.17.0.jar/META-INF/LICENSE'>jackson-databind-2.17.0.jar/META-INF/LICENSE</a><br><a href='jackson-databind-2.17.0.jar/META-INF/NOTICE'>jackson-databind-2.17.0.jar/META-INF/NOTICE</a></div>
 </div>
 <div class='dependency'>
-<p><strong> 3.</strong> <strong>Group:</strong> com.fasterxml.jackson.module <strong>Name:</strong> jackson-module-kotlin <strong>Version:</strong> 2.14.2 </p><label>Project URL</label>
+<p><strong> 3.</strong> <strong>Group:</strong> com.fasterxml.jackson.module <strong>Name:</strong> jackson-module-kotlin <strong>Version:</strong> 2.17.0 </p><label>Project URL</label>
 <div class='dependency-value'><a href='https://github.com/FasterXML/jackson-module-kotlin'>https://github.com/FasterXML/jackson-module-kotlin</a></div>
 <label>Manifest License</label>
 <div class='dependency-value'>Apache License, Version 2.0 - <a href='https://www.apache.org/licenses/LICENSE-2.0'>https://www.apache.org/licenses/LICENSE-2.0</a></div>
 <label>POM License</label>
 <div class='dependency-value'>Apache License, Version 2.0 - <a href='https://www.apache.org/licenses/LICENSE-2.0'>https://www.apache.org/licenses/LICENSE-2.0</a></div>
 <label>Embedded license files</label>
-<div class='dependency-value'><a href='jackson-module-kotlin-2.14.2.jar/META-INF/LICENSE'>jackson-module-kotlin-2.14.2.jar/META-INF/LICENSE</a><br><a href='jackson-module-kotlin-2.14.2.jar/META-INF/NOTICE'>jackson-module-kotlin-2.14.2.jar/META-INF/NOTICE</a></div>
+<div class='dependency-value'><a href='jackson-module-kotlin-2.17.0.jar/META-INF/LICENSE'>jackson-module-kotlin-2.17.0.jar/META-INF/LICENSE</a><br><a href='jackson-module-kotlin-2.17.0.jar/META-INF/NOTICE'>jackson-module-kotlin-2.17.0.jar/META-INF/NOTICE</a></div>
 </div>
 <div class='dependency'>
-<p><strong> 4.</strong> <strong>Group:</strong> com.fasterxml.jackson.module <strong>Name:</strong> jackson-module-kotlin <strong>Version:</strong> 2.15.3 </p><label>Project URL</label>
+<p><strong> 4.</strong> <strong>Group:</strong> com.fasterxml.jackson.module <strong>Name:</strong> jackson-module-kotlin <strong>Version:</strong> 2.17.1 </p><label>Project URL</label>
 <div class='dependency-value'><a href='https://github.com/FasterXML/jackson-module-kotlin'>https://github.com/FasterXML/jackson-module-kotlin</a></div>
 <label>Manifest License</label>
 <div class='dependency-value'>Apache License, Version 2.0 - <a href='https://www.apache.org/licenses/LICENSE-2.0'>https://www.apache.org/licenses/LICENSE-2.0</a></div>
 <label>POM License</label>
 <div class='dependency-value'>Apache License, Version 2.0 - <a href='https://www.apache.org/licenses/LICENSE-2.0'>https://www.apache.org/licenses/LICENSE-2.0</a></div>
 <label>Embedded license files</label>
-<div class='dependency-value'><a href='jackson-module-kotlin-2.15.3.jar/META-INF/LICENSE'>jackson-module-kotlin-2.15.3.jar/META-INF/LICENSE</a><br><a href='jackson-module-kotlin-2.15.3.jar/META-INF/NOTICE'>jackson-module-kotlin-2.15.3.jar/META-INF/NOTICE</a></div>
+<div class='dependency-value'><a href='jackson-module-kotlin-2.17.1.jar/META-INF/LICENSE'>jackson-module-kotlin-2.17.1.jar/META-INF/LICENSE</a><br><a href='jackson-module-kotlin-2.17.1.jar/META-INF/NOTICE'>jackson-module-kotlin-2.17.1.jar/META-INF/NOTICE</a></div>
 </div>
 <div class='dependency'>
-<p><strong> 5.</strong> <strong>Group:</strong> com.formdev <strong>Name:</strong> flatlaf <strong>Version:</strong> 3.2.5 </p><label>POM Project URL</label>
+<p><strong> 5.</strong> <strong>Group:</strong> com.formdev <strong>Name:</strong> flatlaf <strong>Version:</strong> 3.4 </p><label>POM Project URL</label>
 <div class='dependency-value'><a href='https://github.com/JFormDesigner/FlatLaf'>https://github.com/JFormDesigner/FlatLaf</a></div>
 <label>POM License</label>
 <div class='dependency-value'>Apache License, Version 2.0 - <a href='https://www.apache.org/licenses/LICENSE-2.0'>https://www.apache.org/licenses/LICENSE-2.0</a></div>
 <label>Embedded license files</label>
-<div class='dependency-value'><a href='flatlaf-3.2.5.jar/META-INF/LICENSE'>flatlaf-3.2.5.jar/META-INF/LICENSE</a></div>
+<div class='dependency-value'><a href='flatlaf-3.4.jar/META-INF/LICENSE'>flatlaf-3.4.jar/META-INF/LICENSE</a></div>
 </div>
 <div class='dependency'>
-<p><strong> 6.</strong> <strong>Group:</strong> com.formdev <strong>Name:</strong> flatlaf-extras <strong>Version:</strong> 3.2.5 </p><label>POM Project URL</label>
+<p><strong> 6.</strong> <strong>Group:</strong> com.formdev <strong>Name:</strong> flatlaf-extras <strong>Version:</strong> 3.4 </p><label>POM Project URL</label>
 <div class='dependency-value'><a href='https://github.com/JFormDesigner/FlatLaf'>https://github.com/JFormDesigner/FlatLaf</a></div>
 <label>POM License</label>
 <div class='dependency-value'>Apache License, Version 2.0 - <a href='https://www.apache.org/licenses/LICENSE-2.0'>https://www.apache.org/licenses/LICENSE-2.0</a></div>
 <label>Embedded license files</label>
-<div class='dependency-value'><a href='flatlaf-extras-3.2.5.jar/META-INF/LICENSE'>flatlaf-extras-3.2.5.jar/META-INF/LICENSE</a></div>
+<div class='dependency-value'><a href='flatlaf-extras-3.4.jar/META-INF/LICENSE'>flatlaf-extras-3.4.jar/META-INF/LICENSE</a></div>
 </div>
 <div class='dependency'>
-<p><strong> 7.</strong> <strong>Group:</strong> com.formdev <strong>Name:</strong> flatlaf-fonts-inter <strong>Version:</strong> 3.19 </p><label>POM Project URL</label>
+<p><strong> 7.</strong> <strong>Group:</strong> com.formdev <strong>Name:</strong> flatlaf-fonts-inter <strong>Version:</strong> 4.0 </p><label>POM Project URL</label>
 <div class='dependency-value'><a href='https://github.com/JFormDesigner/FlatLaf'>https://github.com/JFormDesigner/FlatLaf</a></div>
 <label>POM License</label>
 <div class='dependency-value'>Apache License, Version 2.0 - <a href='https://www.apache.org/licenses/LICENSE-2.0'>https://www.apache.org/licenses/LICENSE-2.0</a></div>
 <label>POM License</label>
 <div class='dependency-value'>SIL OPEN FONT LICENSE Version 1.1 - <a href='https://choosealicense.com/licenses/ofl-1.1/'>https://choosealicense.com/licenses/ofl-1.1/</a></div>
 <label>Embedded license files</label>
-<div class='dependency-value'><a href='flatlaf-fonts-inter-3.19.jar/META-INF/LICENSE'>flatlaf-fonts-inter-3.19.jar/META-INF/LICENSE</a><br><a href='flatlaf-fonts-inter-3.19.jar/com/formdev/flatlaf/fonts/inter/LICENSE.txt'>flatlaf-fonts-inter-3.19.jar/com/formdev/flatlaf/fonts/inter/LICENSE.txt</a></div>
+<div class='dependency-value'><a href='flatlaf-fonts-inter-4.0.jar/META-INF/LICENSE'>flatlaf-fonts-inter-4.0.jar/META-INF/LICENSE</a><br><a href='flatlaf-fonts-inter-4.0.jar/com/formdev/flatlaf/fonts/inter/LICENSE.txt'>flatlaf-fonts-inter-4.0.jar/com/formdev/flatlaf/fonts/inter/LICENSE.txt</a></div>
 </div>
 <div class='dependency'>
-<p><strong> 8.</strong> <strong>Group:</strong> com.formdev <strong>Name:</strong> flatlaf-fonts-jetbrains-mono <strong>Version:</strong> 2.242 </p><label>POM Project URL</label>
+<p><strong> 8.</strong> <strong>Group:</strong> com.formdev <strong>Name:</strong> flatlaf-fonts-jetbrains-mono <strong>Version:</strong> 2.304 </p><label>POM Project URL</label>
 <div class='dependency-value'><a href='https://github.com/JFormDesigner/FlatLaf'>https://github.com/JFormDesigner/FlatLaf</a></div>
 <label>POM License</label>
 <div class='dependency-value'>Apache License, Version 2.0 - <a href='https://www.apache.org/licenses/LICENSE-2.0'>https://www.apache.org/licenses/LICENSE-2.0</a></div>
 <label>POM License</label>
 <div class='dependency-value'>SIL OPEN FONT LICENSE Version 1.1 - <a href='https://choosealicense.com/licenses/ofl-1.1/'>https://choosealicense.com/licenses/ofl-1.1/</a></div>
 <label>Embedded license files</label>
-<div class='dependency-value'><a href='flatlaf-fonts-jetbrains-mono-2.242.jar/META-INF/LICENSE'>flatlaf-fonts-jetbrains-mono-2.242.jar/META-INF/LICENSE</a></div>
+<div class='dependency-value'><a href='flatlaf-fonts-jetbrains-mono-2.304.jar/META-INF/LICENSE'>flatlaf-fonts-jetbrains-mono-2.304.jar/META-INF/LICENSE</a></div>
 </div>
 <div class='dependency'>
 <p><strong> 9.</strong> <strong>Group:</strong> com.formdev <strong>Name:</strong> flatlaf-fonts-roboto <strong>Version:</strong> 2.137 </p><label>POM Project URL</label>
@@ -234,25 +234,25 @@
 <div class='dependency-value'><a href='flatlaf-fonts-roboto-mono-3.000.jar/META-INF/LICENSE'>flatlaf-fonts-roboto-mono-3.000.jar/META-INF/LICENSE</a><br><a href='flatlaf-fonts-roboto-mono-3.000.jar/com/formdev/flatlaf/fonts/roboto_mono/LICENSE.txt'>flatlaf-fonts-roboto-mono-3.000.jar/com/formdev/flatlaf/fonts/roboto_mono/LICENSE.txt</a></div>
 </div>
 <div class='dependency'>
-<p><strong> 11.</strong> <strong>Group:</strong> com.formdev <strong>Name:</strong> flatlaf-intellij-themes <strong>Version:</strong> 3.2.5 </p><label>POM Project URL</label>
+<p><strong> 11.</strong> <strong>Group:</strong> com.formdev <strong>Name:</strong> flatlaf-intellij-themes <strong>Version:</strong> 3.4 </p><label>POM Project URL</label>
 <div class='dependency-value'><a href='https://github.com/JFormDesigner/FlatLaf'>https://github.com/JFormDesigner/FlatLaf</a></div>
 <label>POM License</label>
 <div class='dependency-value'>Apache License, Version 2.0 - <a href='https://www.apache.org/licenses/LICENSE-2.0'>https://www.apache.org/licenses/LICENSE-2.0</a></div>
 <label>Embedded license files</label>
-<div class='dependency-value'><a href='flatlaf-intellij-themes-3.2.5.jar/META-INF/LICENSE'>flatlaf-intellij-themes-3.2.5.jar/META-INF/LICENSE</a></div>
+<div class='dependency-value'><a href='flatlaf-intellij-themes-3.4.jar/META-INF/LICENSE'>flatlaf-intellij-themes-3.4.jar/META-INF/LICENSE</a></div>
 </div>
 <div class='dependency'>
-<p><strong> 12.</strong> <strong>Group:</strong> commons-io <strong>Name:</strong> commons-io <strong>Version:</strong> 2.14.0 </p><label>Project URL</label>
+<p><strong> 12.</strong> <strong>Group:</strong> commons-io <strong>Name:</strong> commons-io <strong>Version:</strong> 2.16.1 </p><label>Project URL</label>
 <div class='dependency-value'><a href='https://commons.apache.org/proper/commons-io/'>https://commons.apache.org/proper/commons-io/</a></div>
 <label>Manifest License</label>
 <div class='dependency-value'>Apache License, Version 2.0 - <a href='https://www.apache.org/licenses/LICENSE-2.0'>https://www.apache.org/licenses/LICENSE-2.0</a></div>
 <label>POM License</label>
 <div class='dependency-value'>Apache License, Version 2.0 - <a href='https://www.apache.org/licenses/LICENSE-2.0'>https://www.apache.org/licenses/LICENSE-2.0</a></div>
 <label>Embedded license files</label>
-<div class='dependency-value'><a href='commons-io-2.14.0.jar/META-INF/LICENSE.txt'>commons-io-2.14.0.jar/META-INF/LICENSE.txt</a><br><a href='commons-io-2.14.0.jar/META-INF/NOTICE.txt'>commons-io-2.14.0.jar/META-INF/NOTICE.txt</a></div>
+<div class='dependency-value'><a href='commons-io-2.16.1.jar/META-INF/LICENSE.txt'>commons-io-2.16.1.jar/META-INF/LICENSE.txt</a><br><a href='commons-io-2.16.1.jar/META-INF/NOTICE.txt'>commons-io-2.16.1.jar/META-INF/NOTICE.txt</a></div>
 </div>
 <div class='dependency'>
-<p><strong> 13.</strong> <strong>Group:</strong> de.comahe.i18n4k <strong>Name:</strong> i18n4k-core-jvm <strong>Version:</strong> 0.6.2 </p><label>POM Project URL</label>
+<p><strong> 13.</strong> <strong>Group:</strong> de.comahe.i18n4k <strong>Name:</strong> i18n4k-core-jvm <strong>Version:</strong> 0.7.0 </p><label>POM Project URL</label>
 <div class='dependency-value'><a href='https://comahe-de.github.io/i18n4k/'>https://comahe-de.github.io/i18n4k/</a></div>
 <label>POM License</label>
 <div class='dependency-value'>Apache License, Version 2.0 - <a href='https://www.apache.org/licenses/LICENSE-2.0'>https://www.apache.org/licenses/LICENSE-2.0</a></div>
@@ -266,26 +266,26 @@
 <div class='dependency-value'>Apache License, Version 2.0 - <a href='https://www.apache.org/licenses/LICENSE-2.0'>https://www.apache.org/licenses/LICENSE-2.0</a></div>
 </div>
 <div class='dependency'>
-<p><strong> 15.</strong> <strong>Group:</strong> org.apache.logging.log4j <strong>Name:</strong> log4j-api-kotlin <strong>Version:</strong> 1.3.0 </p><label>Manifest License</label>
+<p><strong> 15.</strong> <strong>Group:</strong> org.apache.logging.log4j <strong>Name:</strong> log4j-api-kotlin <strong>Version:</strong> 1.4.0 </p><label>Manifest License</label>
 <div class='dependency-value'>Apache License, Version 2.0 - <a href='https://www.apache.org/licenses/LICENSE-2.0'>https://www.apache.org/licenses/LICENSE-2.0</a></div>
 <label>POM License</label>
 <div class='dependency-value'>Apache License, Version 2.0 - <a href='https://www.apache.org/licenses/LICENSE-2.0'>https://www.apache.org/licenses/LICENSE-2.0</a></div>
 <label>Embedded license files</label>
-<div class='dependency-value'><a href='log4j-api-kotlin-1.3.0.jar/META-INF/LICENSE'>log4j-api-kotlin-1.3.0.jar/META-INF/LICENSE</a><br><a href='log4j-api-kotlin-1.3.0.jar/META-INF/NOTICE'>log4j-api-kotlin-1.3.0.jar/META-INF/NOTICE</a></div>
+<div class='dependency-value'><a href='log4j-api-kotlin-1.4.0.jar/META-INF/LICENSE'>log4j-api-kotlin-1.4.0.jar/META-INF/LICENSE</a><br><a href='log4j-api-kotlin-1.4.0.jar/META-INF/NOTICE'>log4j-api-kotlin-1.4.0.jar/META-INF/NOTICE</a></div>
 </div>
 <div class='dependency'>
-<p><strong> 16.</strong> <strong>Group:</strong> org.apache.logging.log4j <strong>Name:</strong> log4j-core <strong>Version:</strong> 2.21.0 </p><label>Manifest License</label>
+<p><strong> 16.</strong> <strong>Group:</strong> org.apache.logging.log4j <strong>Name:</strong> log4j-core <strong>Version:</strong> 2.23.1 </p><label>Manifest License</label>
 <div class='dependency-value'>Apache License, Version 2.0 - <a href='https://www.apache.org/licenses/LICENSE-2.0'>https://www.apache.org/licenses/LICENSE-2.0</a></div>
 <label>POM License</label>
 <div class='dependency-value'>Apache License, Version 2.0 - <a href='https://www.apache.org/licenses/LICENSE-2.0'>https://www.apache.org/licenses/LICENSE-2.0</a></div>
 <label>Embedded license files</label>
-<div class='dependency-value'><a href='log4j-core-2.21.0.jar/META-INF/LICENSE'>log4j-core-2.21.0.jar/META-INF/LICENSE</a><br><a href='log4j-core-2.21.0.jar/META-INF/NOTICE'>log4j-core-2.21.0.jar/META-INF/NOTICE</a></div>
+<div class='dependency-value'><a href='log4j-core-2.23.1.jar/META-INF/LICENSE'>log4j-core-2.23.1.jar/META-INF/LICENSE</a><br><a href='log4j-core-2.23.1.jar/META-INF/NOTICE'>log4j-core-2.23.1.jar/META-INF/NOTICE</a></div>
 </div>
 <div class='dependency'>
-<p><strong> 17.</strong> <strong>Group:</strong> org.javassist <strong>Name:</strong> javassist <strong>Version:</strong> 3.29.2-GA </p><label>Manifest License</label>
+<p><strong> 17.</strong> <strong>Group:</strong> org.javassist <strong>Name:</strong> javassist <strong>Version:</strong> 3.30.2-GA </p><label>Manifest License</label>
 <div class='dependency-value'>Apache License, Version 2.0 - <a href='https://www.apache.org/licenses/LICENSE-2.0'>https://www.apache.org/licenses/LICENSE-2.0</a></div>
 <label>POM Project URL</label>
-<div class='dependency-value'><a href='http://www.javassist.org/'>http://www.javassist.org/</a></div>
+<div class='dependency-value'><a href='https://www.javassist.org/'>https://www.javassist.org/</a></div>
 <label>POM License</label>
 <div class='dependency-value'>Apache License, Version 2.0 - <a href='https://www.apache.org/licenses/LICENSE-2.0'>https://www.apache.org/licenses/LICENSE-2.0</a></div>
 <label>POM License</label>
@@ -294,80 +294,80 @@
 <div class='dependency-value'>Mozilla Public License Version 1.1 - <a href='https://www.mozilla.org/en-US/MPL/1.1'>https://www.mozilla.org/en-US/MPL/1.1</a></div>
 </div>
 <div class='dependency'>
-<p><strong> 18.</strong> <strong>Group:</strong> org.jetbrains.kotlin <strong>Name:</strong> kotlin-reflect <strong>Version:</strong> 1.9.10 </p><label>POM Project URL</label>
+<p><strong> 18.</strong> <strong>Group:</strong> org.jetbrains.kotlin <strong>Name:</strong> kotlin-reflect <strong>Version:</strong> 1.9.23 </p><label>POM Project URL</label>
 <div class='dependency-value'><a href='https://kotlinlang.org/'>https://kotlinlang.org/</a></div>
 <label>POM License</label>
 <div class='dependency-value'>Apache License, Version 2.0 - <a href='https://www.apache.org/licenses/LICENSE-2.0'>https://www.apache.org/licenses/LICENSE-2.0</a></div>
 </div>
 <div class='dependency'>
-<p><strong> 19.</strong> <strong>Group:</strong> org.jetbrains.kotlin <strong>Name:</strong> kotlin-reflect <strong>Version:</strong> 1.9.21 </p><label>POM Project URL</label>
+<p><strong> 19.</strong> <strong>Group:</strong> org.jetbrains.kotlin <strong>Name:</strong> kotlin-stdlib <strong>Version:</strong> 1.9.23 </p><label>POM Project URL</label>
 <div class='dependency-value'><a href='https://kotlinlang.org/'>https://kotlinlang.org/</a></div>
 <label>POM License</label>
 <div class='dependency-value'>Apache License, Version 2.0 - <a href='https://www.apache.org/licenses/LICENSE-2.0'>https://www.apache.org/licenses/LICENSE-2.0</a></div>
 </div>
 <div class='dependency'>
-<p><strong> 20.</strong> <strong>Group:</strong> org.jetbrains.kotlin <strong>Name:</strong> kotlin-stdlib <strong>Version:</strong> 1.9.21 </p><label>POM Project URL</label>
+<p><strong> 20.</strong> <strong>Group:</strong> org.jetbrains.kotlin <strong>Name:</strong> kotlin-stdlib <strong>Version:</strong> 2.0.0-RC1 </p><label>POM Project URL</label>
 <div class='dependency-value'><a href='https://kotlinlang.org/'>https://kotlinlang.org/</a></div>
 <label>POM License</label>
 <div class='dependency-value'>Apache License, Version 2.0 - <a href='https://www.apache.org/licenses/LICENSE-2.0'>https://www.apache.org/licenses/LICENSE-2.0</a></div>
 </div>
 <div class='dependency'>
-<p><strong> 21.</strong> <strong>Group:</strong> org.jetbrains.kotlinx <strong>Name:</strong> kotlinx-coroutines-swing <strong>Version:</strong> 1.7.3 </p><label>POM Project URL</label>
+<p><strong> 21.</strong> <strong>Group:</strong> org.jetbrains.kotlinx <strong>Name:</strong> kotlinx-coroutines-swing <strong>Version:</strong> 1.8.0 </p><label>POM Project URL</label>
 <div class='dependency-value'><a href='https://github.com/Kotlin/kotlinx.coroutines'>https://github.com/Kotlin/kotlinx.coroutines</a></div>
 <label>POM License</label>
 <div class='dependency-value'>Apache License, Version 2.0 - <a href='https://www.apache.org/licenses/LICENSE-2.0'>https://www.apache.org/licenses/LICENSE-2.0</a></div>
 </div>
 <div class='dependency'>
-<p><strong> 22.</strong> <strong>Group:</strong> org.pf4j <strong>Name:</strong> pf4j <strong>Version:</strong> 3.10.0 </p><label>POM License</label>
+<p><strong> 22.</strong> <strong>Group:</strong> org.pf4j <strong>Name:</strong> pf4j <strong>Version:</strong> 3.11.0 </p><label>POM License</label>
 <div class='dependency-value'>Apache License, Version 2.0 - <a href='https://www.apache.org/licenses/LICENSE-2.0'>https://www.apache.org/licenses/LICENSE-2.0</a></div>
 </div>
 <div class='dependency'>
-<p><strong> 23.</strong> <strong>Group:</strong> org.springframework.boot <strong>Name:</strong> spring-boot-devtools <strong>Version:</strong> 3.0.4 </p><label>POM Project URL</label>
+<p><strong> 23.</strong> <strong>Group:</strong> org.springframework.boot <strong>Name:</strong> spring-boot-devtools <strong>Version:</strong> 3.2.5 </p><label>POM Project URL</label>
 <div class='dependency-value'><a href='https://spring.io/projects/spring-boot'>https://spring.io/projects/spring-boot</a></div>
 <label>POM License</label>
 <div class='dependency-value'>Apache License, Version 2.0 - <a href='https://www.apache.org/licenses/LICENSE-2.0'>https://www.apache.org/licenses/LICENSE-2.0</a></div>
 <label>Embedded license files</label>
-<div class='dependency-value'><a href='spring-boot-devtools-3.0.4.jar/META-INF/LICENSE.txt'>spring-boot-devtools-3.0.4.jar/META-INF/LICENSE.txt</a><br><a href='spring-boot-devtools-3.0.4.jar/META-INF/NOTICE.txt'>spring-boot-devtools-3.0.4.jar/META-INF/NOTICE.txt</a></div>
+<div class='dependency-value'><a href='spring-boot-devtools-3.2.5.jar/META-INF/LICENSE.txt'>spring-boot-devtools-3.2.5.jar/META-INF/LICENSE.txt</a><br><a href='spring-boot-devtools-3.2.5.jar/META-INF/NOTICE.txt'>spring-boot-devtools-3.2.5.jar/META-INF/NOTICE.txt</a></div>
 </div>
 <div class='dependency'>
-<p><strong> 24.</strong> <strong>Group:</strong> org.springframework.boot <strong>Name:</strong> spring-boot-devtools <strong>Version:</strong> 3.2.0 </p><label>POM Project URL</label>
+<p><strong> 24.</strong> <strong>Group:</strong> org.springframework.boot <strong>Name:</strong> spring-boot-devtools <strong>Version:</strong> 3.3.0 </p><label>POM Project URL</label>
 <div class='dependency-value'><a href='https://spring.io/projects/spring-boot'>https://spring.io/projects/spring-boot</a></div>
 <label>POM License</label>
 <div class='dependency-value'>Apache License, Version 2.0 - <a href='https://www.apache.org/licenses/LICENSE-2.0'>https://www.apache.org/licenses/LICENSE-2.0</a></div>
 <label>Embedded license files</label>
-<div class='dependency-value'><a href='spring-boot-devtools-3.2.0.jar/META-INF/LICENSE.txt'>spring-boot-devtools-3.2.0.jar/META-INF/LICENSE.txt</a><br><a href='spring-boot-devtools-3.2.0.jar/META-INF/NOTICE.txt'>spring-boot-devtools-3.2.0.jar/META-INF/NOTICE.txt</a></div>
+<div class='dependency-value'><a href='spring-boot-devtools-3.3.0.jar/META-INF/LICENSE.txt'>spring-boot-devtools-3.3.0.jar/META-INF/LICENSE.txt</a><br><a href='spring-boot-devtools-3.3.0.jar/META-INF/NOTICE.txt'>spring-boot-devtools-3.3.0.jar/META-INF/NOTICE.txt</a></div>
 </div>
 <div class='dependency'>
-<p><strong> 25.</strong> <strong>Group:</strong> org.springframework.boot <strong>Name:</strong> spring-boot-starter-data-jpa <strong>Version:</strong> 3.0.4 </p><label>POM Project URL</label>
+<p><strong> 25.</strong> <strong>Group:</strong> org.springframework.boot <strong>Name:</strong> spring-boot-starter-data-jpa <strong>Version:</strong> 3.2.5 </p><label>POM Project URL</label>
 <div class='dependency-value'><a href='https://spring.io/projects/spring-boot'>https://spring.io/projects/spring-boot</a></div>
 <label>POM License</label>
 <div class='dependency-value'>Apache License, Version 2.0 - <a href='https://www.apache.org/licenses/LICENSE-2.0'>https://www.apache.org/licenses/LICENSE-2.0</a></div>
 <label>Embedded license files</label>
-<div class='dependency-value'><a href='spring-boot-starter-data-jpa-3.0.4.jar/META-INF/LICENSE.txt'>spring-boot-starter-data-jpa-3.0.4.jar/META-INF/LICENSE.txt</a><br><a href='spring-boot-starter-data-jpa-3.0.4.jar/META-INF/NOTICE.txt'>spring-boot-starter-data-jpa-3.0.4.jar/META-INF/NOTICE.txt</a></div>
+<div class='dependency-value'><a href='spring-boot-starter-data-jpa-3.2.5.jar/META-INF/LICENSE.txt'>spring-boot-starter-data-jpa-3.2.5.jar/META-INF/LICENSE.txt</a><br><a href='spring-boot-starter-data-jpa-3.2.5.jar/META-INF/NOTICE.txt'>spring-boot-starter-data-jpa-3.2.5.jar/META-INF/NOTICE.txt</a></div>
 </div>
 <div class='dependency'>
-<p><strong> 26.</strong> <strong>Group:</strong> org.springframework.boot <strong>Name:</strong> spring-boot-starter-log4j2 <strong>Version:</strong> 3.0.4 </p><label>POM Project URL</label>
+<p><strong> 26.</strong> <strong>Group:</strong> org.springframework.boot <strong>Name:</strong> spring-boot-starter-log4j2 <strong>Version:</strong> 3.2.4 </p><label>POM Project URL</label>
 <div class='dependency-value'><a href='https://spring.io/projects/spring-boot'>https://spring.io/projects/spring-boot</a></div>
 <label>POM License</label>
 <div class='dependency-value'>Apache License, Version 2.0 - <a href='https://www.apache.org/licenses/LICENSE-2.0'>https://www.apache.org/licenses/LICENSE-2.0</a></div>
 <label>Embedded license files</label>
-<div class='dependency-value'><a href='spring-boot-starter-log4j2-3.0.4.jar/META-INF/LICENSE.txt'>spring-boot-starter-log4j2-3.0.4.jar/META-INF/LICENSE.txt</a><br><a href='spring-boot-starter-log4j2-3.0.4.jar/META-INF/NOTICE.txt'>spring-boot-starter-log4j2-3.0.4.jar/META-INF/NOTICE.txt</a></div>
+<div class='dependency-value'><a href='spring-boot-starter-log4j2-3.2.4.jar/META-INF/LICENSE.txt'>spring-boot-starter-log4j2-3.2.4.jar/META-INF/LICENSE.txt</a><br><a href='spring-boot-starter-log4j2-3.2.4.jar/META-INF/NOTICE.txt'>spring-boot-starter-log4j2-3.2.4.jar/META-INF/NOTICE.txt</a></div>
 </div>
 <div class='dependency'>
-<p><strong> 27.</strong> <strong>Group:</strong> org.springframework.boot <strong>Name:</strong> spring-boot-starter-web <strong>Version:</strong> 3.1.0 </p><label>POM Project URL</label>
+<p><strong> 27.</strong> <strong>Group:</strong> org.springframework.boot <strong>Name:</strong> spring-boot-starter-web <strong>Version:</strong> 3.2.4 </p><label>POM Project URL</label>
 <div class='dependency-value'><a href='https://spring.io/projects/spring-boot'>https://spring.io/projects/spring-boot</a></div>
 <label>POM License</label>
 <div class='dependency-value'>Apache License, Version 2.0 - <a href='https://www.apache.org/licenses/LICENSE-2.0'>https://www.apache.org/licenses/LICENSE-2.0</a></div>
 <label>Embedded license files</label>
-<div class='dependency-value'><a href='spring-boot-starter-web-3.1.0.jar/META-INF/LICENSE.txt'>spring-boot-starter-web-3.1.0.jar/META-INF/LICENSE.txt</a><br><a href='spring-boot-starter-web-3.1.0.jar/META-INF/NOTICE.txt'>spring-boot-starter-web-3.1.0.jar/META-INF/NOTICE.txt</a></div>
+<div class='dependency-value'><a href='spring-boot-starter-web-3.2.4.jar/META-INF/LICENSE.txt'>spring-boot-starter-web-3.2.4.jar/META-INF/LICENSE.txt</a><br><a href='spring-boot-starter-web-3.2.4.jar/META-INF/NOTICE.txt'>spring-boot-starter-web-3.2.4.jar/META-INF/NOTICE.txt</a></div>
 </div>
 <div class='dependency'>
-<p><strong> 28.</strong> <strong>Group:</strong> org.springframework.boot <strong>Name:</strong> spring-boot-starter-web <strong>Version:</strong> 3.2.0 </p><label>POM Project URL</label>
+<p><strong> 28.</strong> <strong>Group:</strong> org.springframework.boot <strong>Name:</strong> spring-boot-starter-web <strong>Version:</strong> 3.3.0 </p><label>POM Project URL</label>
 <div class='dependency-value'><a href='https://spring.io/projects/spring-boot'>https://spring.io/projects/spring-boot</a></div>
 <label>POM License</label>
 <div class='dependency-value'>Apache License, Version 2.0 - <a href='https://www.apache.org/licenses/LICENSE-2.0'>https://www.apache.org/licenses/LICENSE-2.0</a></div>
 <label>Embedded license files</label>
-<div class='dependency-value'><a href='spring-boot-starter-web-3.2.0.jar/META-INF/LICENSE.txt'>spring-boot-starter-web-3.2.0.jar/META-INF/LICENSE.txt</a><br><a href='spring-boot-starter-web-3.2.0.jar/META-INF/NOTICE.txt'>spring-boot-starter-web-3.2.0.jar/META-INF/NOTICE.txt</a></div>
+<div class='dependency-value'><a href='spring-boot-starter-web-3.3.0.jar/META-INF/LICENSE.txt'>spring-boot-starter-web-3.3.0.jar/META-INF/LICENSE.txt</a><br><a href='spring-boot-starter-web-3.3.0.jar/META-INF/NOTICE.txt'>spring-boot-starter-web-3.3.0.jar/META-INF/NOTICE.txt</a></div>
 </div>
 <a id='Dependency_Licences_BSD_Zero_Clause_License'></a>
 <h2>BSD Zero Clause License</h2>
@@ -380,7 +380,7 @@
 <div class='dependency-value'>The 2-Clause BSD License - <a href='https://opensource.org/licenses/BSD-2-Clause'>https://opensource.org/licenses/BSD-2-Clause</a></div>
 </div>
 <div class='dependency'>
-<p><strong> 30.</strong> <strong>Group:</strong> com.miglayout <strong>Name:</strong> miglayout-swing <strong>Version:</strong> 11.2 </p><label>POM Project URL</label>
+<p><strong> 30.</strong> <strong>Group:</strong> com.miglayout <strong>Name:</strong> miglayout-swing <strong>Version:</strong> 11.3 </p><label>POM Project URL</label>
 <div class='dependency-value'><a href='http://www.miglayout.com/'>http://www.miglayout.com/</a></div>
 <label>POM License</label>
 <div class='dependency-value'>BSD Zero Clause License - <a href='https://opensource.org/licenses/0BSD'>https://opensource.org/licenses/0BSD</a></div>
@@ -388,7 +388,7 @@
 <a id='Dependency_Licences_Bouncy_Castle_Licence'></a>
 <h2>Bouncy Castle Licence</h2>
 <div class='dependency'>
-<p><strong> 31.</strong> <strong>Group:</strong> org.bouncycastle <strong>Name:</strong> bcpkix-jdk18on <strong>Version:</strong> 1.77 </p><label>POM Project URL</label>
+<p><strong> 31.</strong> <strong>Group:</strong> org.bouncycastle <strong>Name:</strong> bcpkix-jdk18on <strong>Version:</strong> 1.78 </p><label>POM Project URL</label>
 <div class='dependency-value'><a href='https://www.bouncycastle.org/java.html'>https://www.bouncycastle.org/java.html</a></div>
 <label>POM License</label>
 <div class='dependency-value'>Bouncy Castle Licence - <a href='https://www.bouncycastle.org/licence.html'>https://www.bouncycastle.org/licence.html</a></div>
@@ -396,10 +396,10 @@
 <a id='Dependency_Licences_GNU_LESSER_GENERAL_PUBLIC_LICENSE,_Version_2.1'></a>
 <h2>GNU LESSER GENERAL PUBLIC LICENSE, Version 2.1</h2>
 <div class='dependency'>
-<p><strong> 32.</strong> <strong>Group:</strong> org.javassist <strong>Name:</strong> javassist <strong>Version:</strong> 3.29.2-GA </p><label>Manifest License</label>
+<p><strong> 32.</strong> <strong>Group:</strong> org.javassist <strong>Name:</strong> javassist <strong>Version:</strong> 3.30.2-GA </p><label>Manifest License</label>
 <div class='dependency-value'>Apache License, Version 2.0 - <a href='https://www.apache.org/licenses/LICENSE-2.0'>https://www.apache.org/licenses/LICENSE-2.0</a></div>
 <label>POM Project URL</label>
-<div class='dependency-value'><a href='http://www.javassist.org/'>http://www.javassist.org/</a></div>
+<div class='dependency-value'><a href='https://www.javassist.org/'>https://www.javassist.org/</a></div>
 <label>POM License</label>
 <div class='dependency-value'>Apache License, Version 2.0 - <a href='https://www.apache.org/licenses/LICENSE-2.0'>https://www.apache.org/licenses/LICENSE-2.0</a></div>
 <label>POM License</label>
@@ -416,18 +416,18 @@
 <a id='Dependency_Licences_GNU_Lesser_General_Public_License_v3.0'></a>
 <h2>GNU Lesser General Public License v3.0</h2>
 <div class='dependency'>
-<p><strong> 34.</strong> <strong>Group:</strong> com.electronwill.night-config <strong>Name:</strong> toml <strong>Version:</strong> 3.6.7 </p><label>POM Project URL</label>
-<div class='dependency-value'><a href='https://github.com/TheElectronWill/Night-Config'>https://github.com/TheElectronWill/Night-Config</a></div>
+<p><strong> 34.</strong> <strong>Group:</strong> com.electronwill.night-config <strong>Name:</strong> toml <strong>Version:</strong> 3.7.1 </p><label>POM Project URL</label>
+<div class='dependency-value'><a href='https://github.com/TheElectronWill/night-config'>https://github.com/TheElectronWill/night-config</a></div>
 <label>POM License</label>
 <div class='dependency-value'>GNU Lesser General Public License v3.0 - <a href='https://www.gnu.org/licenses/lgpl-3.0.txt'>https://www.gnu.org/licenses/lgpl-3.0.txt</a></div>
 </div>
 <a id='Dependency_Licences_Mozilla_Public_License_Version_1.1'></a>
 <h2>Mozilla Public License Version 1.1</h2>
 <div class='dependency'>
-<p><strong> 35.</strong> <strong>Group:</strong> org.javassist <strong>Name:</strong> javassist <strong>Version:</strong> 3.29.2-GA </p><label>Manifest License</label>
+<p><strong> 35.</strong> <strong>Group:</strong> org.javassist <strong>Name:</strong> javassist <strong>Version:</strong> 3.30.2-GA </p><label>Manifest License</label>
 <div class='dependency-value'>Apache License, Version 2.0 - <a href='https://www.apache.org/licenses/LICENSE-2.0'>https://www.apache.org/licenses/LICENSE-2.0</a></div>
 <label>POM Project URL</label>
-<div class='dependency-value'><a href='http://www.javassist.org/'>http://www.javassist.org/</a></div>
+<div class='dependency-value'><a href='https://www.javassist.org/'>https://www.javassist.org/</a></div>
 <label>POM License</label>
 <div class='dependency-value'>Apache License, Version 2.0 - <a href='https://www.apache.org/licenses/LICENSE-2.0'>https://www.apache.org/licenses/LICENSE-2.0</a></div>
 <label>POM License</label>
@@ -438,24 +438,24 @@
 <a id='Dependency_Licences_SIL_OPEN_FONT_LICENSE_Version_1.1'></a>
 <h2>SIL OPEN FONT LICENSE Version 1.1</h2>
 <div class='dependency'>
-<p><strong> 36.</strong> <strong>Group:</strong> com.formdev <strong>Name:</strong> flatlaf-fonts-inter <strong>Version:</strong> 3.19 </p><label>POM Project URL</label>
+<p><strong> 36.</strong> <strong>Group:</strong> com.formdev <strong>Name:</strong> flatlaf-fonts-inter <strong>Version:</strong> 4.0 </p><label>POM Project URL</label>
 <div class='dependency-value'><a href='https://github.com/JFormDesigner/FlatLaf'>https://github.com/JFormDesigner/FlatLaf</a></div>
 <label>POM License</label>
 <div class='dependency-value'>Apache License, Version 2.0 - <a href='https://www.apache.org/licenses/LICENSE-2.0'>https://www.apache.org/licenses/LICENSE-2.0</a></div>
 <label>POM License</label>
 <div class='dependency-value'>SIL OPEN FONT LICENSE Version 1.1 - <a href='https://choosealicense.com/licenses/ofl-1.1/'>https://choosealicense.com/licenses/ofl-1.1/</a></div>
 <label>Embedded license files</label>
-<div class='dependency-value'><a href='flatlaf-fonts-inter-3.19.jar/META-INF/LICENSE'>flatlaf-fonts-inter-3.19.jar/META-INF/LICENSE</a><br><a href='flatlaf-fonts-inter-3.19.jar/com/formdev/flatlaf/fonts/inter/LICENSE.txt'>flatlaf-fonts-inter-3.19.jar/com/formdev/flatlaf/fonts/inter/LICENSE.txt</a></div>
+<div class='dependency-value'><a href='flatlaf-fonts-inter-4.0.jar/META-INF/LICENSE'>flatlaf-fonts-inter-4.0.jar/META-INF/LICENSE</a><br><a href='flatlaf-fonts-inter-4.0.jar/com/formdev/flatlaf/fonts/inter/LICENSE.txt'>flatlaf-fonts-inter-4.0.jar/com/formdev/flatlaf/fonts/inter/LICENSE.txt</a></div>
 </div>
 <div class='dependency'>
-<p><strong> 37.</strong> <strong>Group:</strong> com.formdev <strong>Name:</strong> flatlaf-fonts-jetbrains-mono <strong>Version:</strong> 2.242 </p><label>POM Project URL</label>
+<p><strong> 37.</strong> <strong>Group:</strong> com.formdev <strong>Name:</strong> flatlaf-fonts-jetbrains-mono <strong>Version:</strong> 2.304 </p><label>POM Project URL</label>
 <div class='dependency-value'><a href='https://github.com/JFormDesigner/FlatLaf'>https://github.com/JFormDesigner/FlatLaf</a></div>
 <label>POM License</label>
 <div class='dependency-value'>Apache License, Version 2.0 - <a href='https://www.apache.org/licenses/LICENSE-2.0'>https://www.apache.org/licenses/LICENSE-2.0</a></div>
 <label>POM License</label>
 <div class='dependency-value'>SIL OPEN FONT LICENSE Version 1.1 - <a href='https://choosealicense.com/licenses/ofl-1.1/'>https://choosealicense.com/licenses/ofl-1.1/</a></div>
 <label>Embedded license files</label>
-<div class='dependency-value'><a href='flatlaf-fonts-jetbrains-mono-2.242.jar/META-INF/LICENSE'>flatlaf-fonts-jetbrains-mono-2.242.jar/META-INF/LICENSE</a></div>
+<div class='dependency-value'><a href='flatlaf-fonts-jetbrains-mono-2.304.jar/META-INF/LICENSE'>flatlaf-fonts-jetbrains-mono-2.304.jar/META-INF/LICENSE</a></div>
 </div>
 <a id='Dependency_Licences_The_2-Clause_BSD_License'></a>
 <h2>The 2-Clause BSD License</h2>
@@ -468,7 +468,7 @@
 <div class='dependency-value'>The 2-Clause BSD License - <a href='https://opensource.org/licenses/BSD-2-Clause'>https://opensource.org/licenses/BSD-2-Clause</a></div>
 </div>
 <div class='dependency'>
-<p><strong> 39.</strong> <strong>Group:</strong> org.postgresql <strong>Name:</strong> postgresql <strong>Version:</strong> 42.6.0 </p><label>Manifest Project URL</label>
+<p><strong> 39.</strong> <strong>Group:</strong> org.postgresql <strong>Name:</strong> postgresql <strong>Version:</strong> 42.7.3 </p><label>Manifest Project URL</label>
 <div class='dependency-value'><a href='https://jdbc.postgresql.org/'>https://jdbc.postgresql.org/</a></div>
 <label>Manifest License</label>
 <div class='dependency-value'>The 2-Clause BSD License - <a href='https://opensource.org/licenses/BSD-2-Clause'>https://opensource.org/licenses/BSD-2-Clause</a></div>
@@ -477,7 +477,7 @@
 <label>POM License</label>
 <div class='dependency-value'>The 2-Clause BSD License - <a href='https://opensource.org/licenses/BSD-2-Clause'>https://opensource.org/licenses/BSD-2-Clause</a></div>
 <label>Embedded license files</label>
-<div class='dependency-value'><a href='postgresql-42.6.0.jar/META-INF/LICENSE'>postgresql-42.6.0.jar/META-INF/LICENSE</a><br><a href='postgresql-42.6.0.jar/META-INF/licenses/com.ongres.scram/client-2.1/LICENSE'>postgresql-42.6.0.jar/META-INF/licenses/com.ongres.scram/client-2.1/LICENSE</a><br><a href='postgresql-42.6.0.jar/META-INF/licenses/com.ongres.scram/common-2.1/LICENSE'>postgresql-42.6.0.jar/META-INF/licenses/com.ongres.scram/common-2.1/LICENSE</a><br><a href='postgresql-42.6.0.jar/META-INF/licenses/com.ongres.stringprep/saslprep-1.1/LICENSE'>postgresql-42.6.0.jar/META-INF/licenses/com.ongres.stringprep/saslprep-1.1/LICENSE</a><br><a href='postgresql-42.6.0.jar/META-INF/licenses/com.ongres.stringprep/stringprep-1.1/LICENSE'>postgresql-42.6.0.jar/META-INF/licenses/com.ongres.stringprep/stringprep-1.1/LICENSE</a></div>
+<div class='dependency-value'><a href='postgresql-42.7.3.jar/META-INF/LICENSE'>postgresql-42.7.3.jar/META-INF/LICENSE</a><br><a href='postgresql-42.7.3.jar/META-INF/licenses/com.ongres.scram/client-2.1/LICENSE'>postgresql-42.7.3.jar/META-INF/licenses/com.ongres.scram/client-2.1/LICENSE</a><br><a href='postgresql-42.7.3.jar/META-INF/licenses/com.ongres.scram/common-2.1/LICENSE'>postgresql-42.7.3.jar/META-INF/licenses/com.ongres.scram/common-2.1/LICENSE</a><br><a href='postgresql-42.7.3.jar/META-INF/licenses/com.ongres.stringprep/saslprep-1.1/LICENSE'>postgresql-42.7.3.jar/META-INF/licenses/com.ongres.stringprep/saslprep-1.1/LICENSE</a><br><a href='postgresql-42.7.3.jar/META-INF/licenses/com.ongres.stringprep/stringprep-1.1/LICENSE'>postgresql-42.7.3.jar/META-INF/licenses/com.ongres.stringprep/stringprep-1.1/LICENSE</a></div>
 </div>
 <a id='Dependency_Licences_The_3-Clause_BSD_License'></a>
 <h2>The 3-Clause BSD License</h2>
@@ -490,17 +490,17 @@
 <a id='Dependency_Licences_Unknown'></a>
 <h2>Unknown</h2>
 <div class='dependency'>
-<p><strong> 41.</strong> <strong>Group:</strong> de.comahe.i18n4k <strong>Name:</strong> i18n4k-core <strong>Version:</strong> 0.6.2 </p></div>
+<p><strong> 41.</strong> <strong>Group:</strong> de.comahe.i18n4k <strong>Name:</strong> i18n4k-core <strong>Version:</strong> 0.7.0 </p></div>
 <div class='dependency'>
-<p><strong> 42.</strong> <strong>Group:</strong> de.jensklingenberg.ktorfit <strong>Name:</strong> ktorfit-lib <strong>Version:</strong> 1.9.0 </p></div>
+<p><strong> 42.</strong> <strong>Group:</strong> de.jensklingenberg.ktorfit <strong>Name:</strong> ktorfit-lib <strong>Version:</strong> 1.14.0 </p></div>
 <div class='dependency'>
 <p><strong> 43.</strong> <strong>Group:</strong> io.github.microutils <strong>Name:</strong> kotlin-logging <strong>Version:</strong> 3.0.5 </p></div>
 <div class='dependency'>
-<p><strong> 44.</strong> <strong>Group:</strong> org.jetbrains.kotlin <strong>Name:</strong> kotlin-bom <strong>Version:</strong> 1.9.21 </p></div>
+<p><strong> 44.</strong> <strong>Group:</strong> org.jetbrains.kotlin <strong>Name:</strong> kotlin-bom <strong>Version:</strong> 1.9.23 </p></div>
 <div class='dependency'>
-<p><strong> 45.</strong> <strong>Group:</strong> org.jetbrains.kotlinx <strong>Name:</strong> kotlinx-coroutines-core <strong>Version:</strong> 1.7.3 </p></div>
+<p><strong> 45.</strong> <strong>Group:</strong> org.jetbrains.kotlinx <strong>Name:</strong> kotlinx-coroutines-core <strong>Version:</strong> 1.8.0 </p></div>
 <div class='dependency'>
-<p><strong> 46.</strong> <strong>Group:</strong> org.jetbrains.kotlinx <strong>Name:</strong> kotlinx-datetime <strong>Version:</strong> 0.4.1 </p></div>
+<p><strong> 46.</strong> <strong>Group:</strong> org.jetbrains.kotlinx <strong>Name:</strong> kotlinx-datetime <strong>Version:</strong> 0.5.0 </p></div>
 </div>
 
 </div>
diff --git a/licenses/jackson-annotations-2.15.4.jar/META-INF/LICENSE b/licenses/jackson-annotations-2.15.4.jar/META-INF/LICENSE
new file mode 100644
index 000000000..d64569567
--- /dev/null
+++ b/licenses/jackson-annotations-2.15.4.jar/META-INF/LICENSE
@@ -0,0 +1,202 @@
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
diff --git a/licenses/jackson-annotations-2.15.4.jar/META-INF/NOTICE b/licenses/jackson-annotations-2.15.4.jar/META-INF/NOTICE
new file mode 100644
index 000000000..738b11fda
--- /dev/null
+++ b/licenses/jackson-annotations-2.15.4.jar/META-INF/NOTICE
@@ -0,0 +1,21 @@
+# Jackson JSON processor
+
+Jackson is a high-performance, Free/Open Source JSON processing library.
+It was originally written by Tatu Saloranta (tatu.saloranta@iki.fi), and has
+been in development since 2007.
+It is currently developed by a community of developers.
+
+## Copyright
+
+Copyright 2007-, Tatu Saloranta (tatu.saloranta@iki.fi)
+
+## Licensing
+
+Jackson 2.x core and extension components are licensed under Apache License 2.0
+To find the details that apply to this artifact see the accompanying LICENSE file.
+
+## Credits
+
+A list of contributors may be found from CREDITS(-2.x) file, which is included
+in some artifacts (usually source distributions); but is always available
+from the source code management (SCM) system project uses.
diff --git a/licenses/jackson-annotations-2.17.0.jar/META-INF/LICENSE b/licenses/jackson-annotations-2.17.0.jar/META-INF/LICENSE
new file mode 100644
index 000000000..d64569567
--- /dev/null
+++ b/licenses/jackson-annotations-2.17.0.jar/META-INF/LICENSE
@@ -0,0 +1,202 @@
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
diff --git a/licenses/jackson-annotations-2.17.0.jar/META-INF/NOTICE b/licenses/jackson-annotations-2.17.0.jar/META-INF/NOTICE
new file mode 100644
index 000000000..738b11fda
--- /dev/null
+++ b/licenses/jackson-annotations-2.17.0.jar/META-INF/NOTICE
@@ -0,0 +1,21 @@
+# Jackson JSON processor
+
+Jackson is a high-performance, Free/Open Source JSON processing library.
+It was originally written by Tatu Saloranta (tatu.saloranta@iki.fi), and has
+been in development since 2007.
+It is currently developed by a community of developers.
+
+## Copyright
+
+Copyright 2007-, Tatu Saloranta (tatu.saloranta@iki.fi)
+
+## Licensing
+
+Jackson 2.x core and extension components are licensed under Apache License 2.0
+To find the details that apply to this artifact see the accompanying LICENSE file.
+
+## Credits
+
+A list of contributors may be found from CREDITS(-2.x) file, which is included
+in some artifacts (usually source distributions); but is always available
+from the source code management (SCM) system project uses.
diff --git a/licenses/jackson-annotations-2.17.1.jar/META-INF/LICENSE b/licenses/jackson-annotations-2.17.1.jar/META-INF/LICENSE
new file mode 100644
index 000000000..d64569567
--- /dev/null
+++ b/licenses/jackson-annotations-2.17.1.jar/META-INF/LICENSE
@@ -0,0 +1,202 @@
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
diff --git a/licenses/jackson-annotations-2.17.1.jar/META-INF/NOTICE b/licenses/jackson-annotations-2.17.1.jar/META-INF/NOTICE
new file mode 100644
index 000000000..738b11fda
--- /dev/null
+++ b/licenses/jackson-annotations-2.17.1.jar/META-INF/NOTICE
@@ -0,0 +1,21 @@
+# Jackson JSON processor
+
+Jackson is a high-performance, Free/Open Source JSON processing library.
+It was originally written by Tatu Saloranta (tatu.saloranta@iki.fi), and has
+been in development since 2007.
+It is currently developed by a community of developers.
+
+## Copyright
+
+Copyright 2007-, Tatu Saloranta (tatu.saloranta@iki.fi)
+
+## Licensing
+
+Jackson 2.x core and extension components are licensed under Apache License 2.0
+To find the details that apply to this artifact see the accompanying LICENSE file.
+
+## Credits
+
+A list of contributors may be found from CREDITS(-2.x) file, which is included
+in some artifacts (usually source distributions); but is always available
+from the source code management (SCM) system project uses.
diff --git a/licenses/jackson-core-2.15.4.jar/META-INF/LICENSE b/licenses/jackson-core-2.15.4.jar/META-INF/LICENSE
new file mode 100644
index 000000000..d64569567
--- /dev/null
+++ b/licenses/jackson-core-2.15.4.jar/META-INF/LICENSE
@@ -0,0 +1,202 @@
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
diff --git a/licenses/jackson-core-2.15.4.jar/META-INF/NOTICE b/licenses/jackson-core-2.15.4.jar/META-INF/NOTICE
new file mode 100644
index 000000000..e30a4782d
--- /dev/null
+++ b/licenses/jackson-core-2.15.4.jar/META-INF/NOTICE
@@ -0,0 +1,32 @@
+# Jackson JSON processor
+
+Jackson is a high-performance, Free/Open Source JSON processing library.
+It was originally written by Tatu Saloranta (tatu.saloranta@iki.fi), and has
+been in development since 2007.
+It is currently developed by a community of developers.
+
+## Copyright
+
+Copyright 2007-, Tatu Saloranta (tatu.saloranta@iki.fi)
+
+## Licensing
+
+Jackson 2.x core and extension components are licensed under Apache License 2.0
+To find the details that apply to this artifact see the accompanying LICENSE file.
+
+## Credits
+
+A list of contributors may be found from CREDITS(-2.x) file, which is included
+in some artifacts (usually source distributions); but is always available
+from the source code management (SCM) system project uses.
+
+## FastDoubleParser
+
+jackson-core bundles a shaded copy of FastDoubleParser <https://github.com/wrandelshofer/FastDoubleParser>.
+That code is available under an MIT license <https://github.com/wrandelshofer/FastDoubleParser/blob/main/LICENSE>
+under the following copyright.
+
+Copyright © 2023 Werner Randelshofer, Switzerland. MIT License.
+
+See FastDoubleParser-NOTICE for details of other source code included in FastDoubleParser
+and the licenses and copyrights that apply to that code.
diff --git a/licenses/jackson-core-2.17.0.jar/META-INF/LICENSE b/licenses/jackson-core-2.17.0.jar/META-INF/LICENSE
new file mode 100644
index 000000000..d64569567
--- /dev/null
+++ b/licenses/jackson-core-2.17.0.jar/META-INF/LICENSE
@@ -0,0 +1,202 @@
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
diff --git a/licenses/jackson-core-2.17.0.jar/META-INF/NOTICE b/licenses/jackson-core-2.17.0.jar/META-INF/NOTICE
new file mode 100644
index 000000000..e30a4782d
--- /dev/null
+++ b/licenses/jackson-core-2.17.0.jar/META-INF/NOTICE
@@ -0,0 +1,32 @@
+# Jackson JSON processor
+
+Jackson is a high-performance, Free/Open Source JSON processing library.
+It was originally written by Tatu Saloranta (tatu.saloranta@iki.fi), and has
+been in development since 2007.
+It is currently developed by a community of developers.
+
+## Copyright
+
+Copyright 2007-, Tatu Saloranta (tatu.saloranta@iki.fi)
+
+## Licensing
+
+Jackson 2.x core and extension components are licensed under Apache License 2.0
+To find the details that apply to this artifact see the accompanying LICENSE file.
+
+## Credits
+
+A list of contributors may be found from CREDITS(-2.x) file, which is included
+in some artifacts (usually source distributions); but is always available
+from the source code management (SCM) system project uses.
+
+## FastDoubleParser
+
+jackson-core bundles a shaded copy of FastDoubleParser <https://github.com/wrandelshofer/FastDoubleParser>.
+That code is available under an MIT license <https://github.com/wrandelshofer/FastDoubleParser/blob/main/LICENSE>
+under the following copyright.
+
+Copyright © 2023 Werner Randelshofer, Switzerland. MIT License.
+
+See FastDoubleParser-NOTICE for details of other source code included in FastDoubleParser
+and the licenses and copyrights that apply to that code.
diff --git a/licenses/jackson-core-2.17.1.jar/META-INF/LICENSE b/licenses/jackson-core-2.17.1.jar/META-INF/LICENSE
new file mode 100644
index 000000000..d64569567
--- /dev/null
+++ b/licenses/jackson-core-2.17.1.jar/META-INF/LICENSE
@@ -0,0 +1,202 @@
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
diff --git a/licenses/jackson-core-2.17.1.jar/META-INF/NOTICE b/licenses/jackson-core-2.17.1.jar/META-INF/NOTICE
new file mode 100644
index 000000000..e30a4782d
--- /dev/null
+++ b/licenses/jackson-core-2.17.1.jar/META-INF/NOTICE
@@ -0,0 +1,32 @@
+# Jackson JSON processor
+
+Jackson is a high-performance, Free/Open Source JSON processing library.
+It was originally written by Tatu Saloranta (tatu.saloranta@iki.fi), and has
+been in development since 2007.
+It is currently developed by a community of developers.
+
+## Copyright
+
+Copyright 2007-, Tatu Saloranta (tatu.saloranta@iki.fi)
+
+## Licensing
+
+Jackson 2.x core and extension components are licensed under Apache License 2.0
+To find the details that apply to this artifact see the accompanying LICENSE file.
+
+## Credits
+
+A list of contributors may be found from CREDITS(-2.x) file, which is included
+in some artifacts (usually source distributions); but is always available
+from the source code management (SCM) system project uses.
+
+## FastDoubleParser
+
+jackson-core bundles a shaded copy of FastDoubleParser <https://github.com/wrandelshofer/FastDoubleParser>.
+That code is available under an MIT license <https://github.com/wrandelshofer/FastDoubleParser/blob/main/LICENSE>
+under the following copyright.
+
+Copyright © 2023 Werner Randelshofer, Switzerland. MIT License.
+
+See FastDoubleParser-NOTICE for details of other source code included in FastDoubleParser
+and the licenses and copyrights that apply to that code.
diff --git a/licenses/jackson-databind-2.15.4.jar/META-INF/LICENSE b/licenses/jackson-databind-2.15.4.jar/META-INF/LICENSE
new file mode 100644
index 000000000..d64569567
--- /dev/null
+++ b/licenses/jackson-databind-2.15.4.jar/META-INF/LICENSE
@@ -0,0 +1,202 @@
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
diff --git a/licenses/jackson-databind-2.15.4.jar/META-INF/NOTICE b/licenses/jackson-databind-2.15.4.jar/META-INF/NOTICE
new file mode 100644
index 000000000..738b11fda
--- /dev/null
+++ b/licenses/jackson-databind-2.15.4.jar/META-INF/NOTICE
@@ -0,0 +1,21 @@
+# Jackson JSON processor
+
+Jackson is a high-performance, Free/Open Source JSON processing library.
+It was originally written by Tatu Saloranta (tatu.saloranta@iki.fi), and has
+been in development since 2007.
+It is currently developed by a community of developers.
+
+## Copyright
+
+Copyright 2007-, Tatu Saloranta (tatu.saloranta@iki.fi)
+
+## Licensing
+
+Jackson 2.x core and extension components are licensed under Apache License 2.0
+To find the details that apply to this artifact see the accompanying LICENSE file.
+
+## Credits
+
+A list of contributors may be found from CREDITS(-2.x) file, which is included
+in some artifacts (usually source distributions); but is always available
+from the source code management (SCM) system project uses.
diff --git a/licenses/jackson-databind-2.17.0.jar/META-INF/LICENSE b/licenses/jackson-databind-2.17.0.jar/META-INF/LICENSE
new file mode 100644
index 000000000..d64569567
--- /dev/null
+++ b/licenses/jackson-databind-2.17.0.jar/META-INF/LICENSE
@@ -0,0 +1,202 @@
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
diff --git a/licenses/jackson-databind-2.17.0.jar/META-INF/NOTICE b/licenses/jackson-databind-2.17.0.jar/META-INF/NOTICE
new file mode 100644
index 000000000..738b11fda
--- /dev/null
+++ b/licenses/jackson-databind-2.17.0.jar/META-INF/NOTICE
@@ -0,0 +1,21 @@
+# Jackson JSON processor
+
+Jackson is a high-performance, Free/Open Source JSON processing library.
+It was originally written by Tatu Saloranta (tatu.saloranta@iki.fi), and has
+been in development since 2007.
+It is currently developed by a community of developers.
+
+## Copyright
+
+Copyright 2007-, Tatu Saloranta (tatu.saloranta@iki.fi)
+
+## Licensing
+
+Jackson 2.x core and extension components are licensed under Apache License 2.0
+To find the details that apply to this artifact see the accompanying LICENSE file.
+
+## Credits
+
+A list of contributors may be found from CREDITS(-2.x) file, which is included
+in some artifacts (usually source distributions); but is always available
+from the source code management (SCM) system project uses.
diff --git a/licenses/jackson-databind-2.17.1.jar/META-INF/LICENSE b/licenses/jackson-databind-2.17.1.jar/META-INF/LICENSE
new file mode 100644
index 000000000..d64569567
--- /dev/null
+++ b/licenses/jackson-databind-2.17.1.jar/META-INF/LICENSE
@@ -0,0 +1,202 @@
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
diff --git a/licenses/jackson-databind-2.17.1.jar/META-INF/NOTICE b/licenses/jackson-databind-2.17.1.jar/META-INF/NOTICE
new file mode 100644
index 000000000..738b11fda
--- /dev/null
+++ b/licenses/jackson-databind-2.17.1.jar/META-INF/NOTICE
@@ -0,0 +1,21 @@
+# Jackson JSON processor
+
+Jackson is a high-performance, Free/Open Source JSON processing library.
+It was originally written by Tatu Saloranta (tatu.saloranta@iki.fi), and has
+been in development since 2007.
+It is currently developed by a community of developers.
+
+## Copyright
+
+Copyright 2007-, Tatu Saloranta (tatu.saloranta@iki.fi)
+
+## Licensing
+
+Jackson 2.x core and extension components are licensed under Apache License 2.0
+To find the details that apply to this artifact see the accompanying LICENSE file.
+
+## Credits
+
+A list of contributors may be found from CREDITS(-2.x) file, which is included
+in some artifacts (usually source distributions); but is always available
+from the source code management (SCM) system project uses.
diff --git a/licenses/jackson-datatype-jdk8-2.15.4.jar/META-INF/LICENSE b/licenses/jackson-datatype-jdk8-2.15.4.jar/META-INF/LICENSE
new file mode 100644
index 000000000..0a97ea4ff
--- /dev/null
+++ b/licenses/jackson-datatype-jdk8-2.15.4.jar/META-INF/LICENSE
@@ -0,0 +1,8 @@
+This copy of Jackson JSON processor Java 8 datatype module is licensed under the
+Apache (Software) License, version 2.0 ("the License").
+See the License for details about distribution rights, and the
+specific rights regarding derivative works.
+
+You may obtain a copy of the License at:
+
+http://www.apache.org/licenses/LICENSE-2.0
diff --git a/licenses/jackson-datatype-jdk8-2.15.4.jar/META-INF/NOTICE b/licenses/jackson-datatype-jdk8-2.15.4.jar/META-INF/NOTICE
new file mode 100644
index 000000000..d55c59a0d
--- /dev/null
+++ b/licenses/jackson-datatype-jdk8-2.15.4.jar/META-INF/NOTICE
@@ -0,0 +1,17 @@
+# Jackson JSON processor
+
+Jackson is a high-performance, Free/Open Source JSON processing library.
+It was originally written by Tatu Saloranta (tatu.saloranta@iki.fi), and has
+been in development since 2007.
+It is currently developed by a community of developers.
+
+## Licensing
+
+Jackson components are licensed under Apache (Software) License, version 2.0,
+as per accompanying LICENSE file.
+
+## Credits
+
+A list of contributors may be found from CREDITS file, which is included
+in some artifacts (usually source distributions); but is always available
+from the source code management (SCM) system project uses.
diff --git a/licenses/jackson-datatype-jdk8-2.17.1.jar/META-INF/LICENSE b/licenses/jackson-datatype-jdk8-2.17.1.jar/META-INF/LICENSE
new file mode 100644
index 000000000..0a97ea4ff
--- /dev/null
+++ b/licenses/jackson-datatype-jdk8-2.17.1.jar/META-INF/LICENSE
@@ -0,0 +1,8 @@
+This copy of Jackson JSON processor Java 8 datatype module is licensed under the
+Apache (Software) License, version 2.0 ("the License").
+See the License for details about distribution rights, and the
+specific rights regarding derivative works.
+
+You may obtain a copy of the License at:
+
+http://www.apache.org/licenses/LICENSE-2.0
diff --git a/licenses/jackson-datatype-jdk8-2.17.1.jar/META-INF/NOTICE b/licenses/jackson-datatype-jdk8-2.17.1.jar/META-INF/NOTICE
new file mode 100644
index 000000000..d55c59a0d
--- /dev/null
+++ b/licenses/jackson-datatype-jdk8-2.17.1.jar/META-INF/NOTICE
@@ -0,0 +1,17 @@
+# Jackson JSON processor
+
+Jackson is a high-performance, Free/Open Source JSON processing library.
+It was originally written by Tatu Saloranta (tatu.saloranta@iki.fi), and has
+been in development since 2007.
+It is currently developed by a community of developers.
+
+## Licensing
+
+Jackson components are licensed under Apache (Software) License, version 2.0,
+as per accompanying LICENSE file.
+
+## Credits
+
+A list of contributors may be found from CREDITS file, which is included
+in some artifacts (usually source distributions); but is always available
+from the source code management (SCM) system project uses.
diff --git a/licenses/jackson-datatype-jsr310-2.15.4.jar/META-INF/LICENSE b/licenses/jackson-datatype-jsr310-2.15.4.jar/META-INF/LICENSE
new file mode 100644
index 000000000..0e9c9520a
--- /dev/null
+++ b/licenses/jackson-datatype-jsr310-2.15.4.jar/META-INF/LICENSE
@@ -0,0 +1,8 @@
+This copy of Jackson JSON processor Java 8 Date/Time module is licensed under the
+Apache (Software) License, version 2.0 ("the License").
+See the License for details about distribution rights, and the
+specific rights regarding derivative works.
+
+You may obtain a copy of the License at:
+
+http://www.apache.org/licenses/LICENSE-2.0
diff --git a/licenses/jackson-datatype-jsr310-2.15.4.jar/META-INF/NOTICE b/licenses/jackson-datatype-jsr310-2.15.4.jar/META-INF/NOTICE
new file mode 100644
index 000000000..d55c59a0d
--- /dev/null
+++ b/licenses/jackson-datatype-jsr310-2.15.4.jar/META-INF/NOTICE
@@ -0,0 +1,17 @@
+# Jackson JSON processor
+
+Jackson is a high-performance, Free/Open Source JSON processing library.
+It was originally written by Tatu Saloranta (tatu.saloranta@iki.fi), and has
+been in development since 2007.
+It is currently developed by a community of developers.
+
+## Licensing
+
+Jackson components are licensed under Apache (Software) License, version 2.0,
+as per accompanying LICENSE file.
+
+## Credits
+
+A list of contributors may be found from CREDITS file, which is included
+in some artifacts (usually source distributions); but is always available
+from the source code management (SCM) system project uses.
diff --git a/licenses/jackson-datatype-jsr310-2.17.1.jar/META-INF/LICENSE b/licenses/jackson-datatype-jsr310-2.17.1.jar/META-INF/LICENSE
new file mode 100644
index 000000000..0e9c9520a
--- /dev/null
+++ b/licenses/jackson-datatype-jsr310-2.17.1.jar/META-INF/LICENSE
@@ -0,0 +1,8 @@
+This copy of Jackson JSON processor Java 8 Date/Time module is licensed under the
+Apache (Software) License, version 2.0 ("the License").
+See the License for details about distribution rights, and the
+specific rights regarding derivative works.
+
+You may obtain a copy of the License at:
+
+http://www.apache.org/licenses/LICENSE-2.0
diff --git a/licenses/jackson-datatype-jsr310-2.17.1.jar/META-INF/NOTICE b/licenses/jackson-datatype-jsr310-2.17.1.jar/META-INF/NOTICE
new file mode 100644
index 000000000..d55c59a0d
--- /dev/null
+++ b/licenses/jackson-datatype-jsr310-2.17.1.jar/META-INF/NOTICE
@@ -0,0 +1,17 @@
+# Jackson JSON processor
+
+Jackson is a high-performance, Free/Open Source JSON processing library.
+It was originally written by Tatu Saloranta (tatu.saloranta@iki.fi), and has
+been in development since 2007.
+It is currently developed by a community of developers.
+
+## Licensing
+
+Jackson components are licensed under Apache (Software) License, version 2.0,
+as per accompanying LICENSE file.
+
+## Credits
+
+A list of contributors may be found from CREDITS file, which is included
+in some artifacts (usually source distributions); but is always available
+from the source code management (SCM) system project uses.
diff --git a/licenses/jackson-module-kotlin-2.15.4.jar/META-INF/LICENSE b/licenses/jackson-module-kotlin-2.15.4.jar/META-INF/LICENSE
new file mode 100644
index 000000000..8401e01f2
--- /dev/null
+++ b/licenses/jackson-module-kotlin-2.15.4.jar/META-INF/LICENSE
@@ -0,0 +1,8 @@
+This copy of Jackson JSON processor databind module is licensed under the
+Apache (Software) License, version 2.0 ("the License").
+See the License for details about distribution rights, and the
+specific rights regarding derivative works.
+
+You may obtain a copy of the License at:
+
+http://www.apache.org/licenses/LICENSE-2.0
diff --git a/licenses/jackson-module-kotlin-2.15.4.jar/META-INF/NOTICE b/licenses/jackson-module-kotlin-2.15.4.jar/META-INF/NOTICE
new file mode 100644
index 000000000..201c4fc33
--- /dev/null
+++ b/licenses/jackson-module-kotlin-2.15.4.jar/META-INF/NOTICE
@@ -0,0 +1,24 @@
+# Jackson JSON processor
+
+Jackson is a high-performance, Free/Open Source JSON processing library.
+It was originally written by Tatu Saloranta (tatu.saloranta@iki.fi), and has
+been in development since 2007.
+It is currently developed by a community of developers, as well as supported
+commercially by FasterXML.com.
+
+## Copyright
+
+Copyright 2007-, Tatu Saloranta (tatu.saloranta@iki.fi)
+
+## Licensing
+
+Jackson core and extension components may be licensed under different licenses.
+To find the details that apply to this artifact see the accompanying LICENSE file.
+For more information, including possible other licensing options, contact
+FasterXML.com (http://fasterxml.com).
+
+## Credits
+
+A list of contributors may be found from CREDITS file, which is included
+in some artifacts (usually source distributions); but is always available
+from the source code management (SCM) system project uses.
diff --git a/licenses/jackson-module-kotlin-2.17.0.jar/META-INF/LICENSE b/licenses/jackson-module-kotlin-2.17.0.jar/META-INF/LICENSE
new file mode 100644
index 000000000..8401e01f2
--- /dev/null
+++ b/licenses/jackson-module-kotlin-2.17.0.jar/META-INF/LICENSE
@@ -0,0 +1,8 @@
+This copy of Jackson JSON processor databind module is licensed under the
+Apache (Software) License, version 2.0 ("the License").
+See the License for details about distribution rights, and the
+specific rights regarding derivative works.
+
+You may obtain a copy of the License at:
+
+http://www.apache.org/licenses/LICENSE-2.0
diff --git a/licenses/jackson-module-kotlin-2.17.0.jar/META-INF/NOTICE b/licenses/jackson-module-kotlin-2.17.0.jar/META-INF/NOTICE
new file mode 100644
index 000000000..201c4fc33
--- /dev/null
+++ b/licenses/jackson-module-kotlin-2.17.0.jar/META-INF/NOTICE
@@ -0,0 +1,24 @@
+# Jackson JSON processor
+
+Jackson is a high-performance, Free/Open Source JSON processing library.
+It was originally written by Tatu Saloranta (tatu.saloranta@iki.fi), and has
+been in development since 2007.
+It is currently developed by a community of developers, as well as supported
+commercially by FasterXML.com.
+
+## Copyright
+
+Copyright 2007-, Tatu Saloranta (tatu.saloranta@iki.fi)
+
+## Licensing
+
+Jackson core and extension components may be licensed under different licenses.
+To find the details that apply to this artifact see the accompanying LICENSE file.
+For more information, including possible other licensing options, contact
+FasterXML.com (http://fasterxml.com).
+
+## Credits
+
+A list of contributors may be found from CREDITS file, which is included
+in some artifacts (usually source distributions); but is always available
+from the source code management (SCM) system project uses.
diff --git a/licenses/jackson-module-kotlin-2.17.1.jar/META-INF/LICENSE b/licenses/jackson-module-kotlin-2.17.1.jar/META-INF/LICENSE
new file mode 100644
index 000000000..8401e01f2
--- /dev/null
+++ b/licenses/jackson-module-kotlin-2.17.1.jar/META-INF/LICENSE
@@ -0,0 +1,8 @@
+This copy of Jackson JSON processor databind module is licensed under the
+Apache (Software) License, version 2.0 ("the License").
+See the License for details about distribution rights, and the
+specific rights regarding derivative works.
+
+You may obtain a copy of the License at:
+
+http://www.apache.org/licenses/LICENSE-2.0
diff --git a/licenses/jackson-module-kotlin-2.17.1.jar/META-INF/NOTICE b/licenses/jackson-module-kotlin-2.17.1.jar/META-INF/NOTICE
new file mode 100644
index 000000000..201c4fc33
--- /dev/null
+++ b/licenses/jackson-module-kotlin-2.17.1.jar/META-INF/NOTICE
@@ -0,0 +1,24 @@
+# Jackson JSON processor
+
+Jackson is a high-performance, Free/Open Source JSON processing library.
+It was originally written by Tatu Saloranta (tatu.saloranta@iki.fi), and has
+been in development since 2007.
+It is currently developed by a community of developers, as well as supported
+commercially by FasterXML.com.
+
+## Copyright
+
+Copyright 2007-, Tatu Saloranta (tatu.saloranta@iki.fi)
+
+## Licensing
+
+Jackson core and extension components may be licensed under different licenses.
+To find the details that apply to this artifact see the accompanying LICENSE file.
+For more information, including possible other licensing options, contact
+FasterXML.com (http://fasterxml.com).
+
+## Credits
+
+A list of contributors may be found from CREDITS file, which is included
+in some artifacts (usually source distributions); but is always available
+from the source code management (SCM) system project uses.
diff --git a/licenses/jackson-module-parameter-names-2.15.4.jar/META-INF/LICENSE b/licenses/jackson-module-parameter-names-2.15.4.jar/META-INF/LICENSE
new file mode 100644
index 000000000..f49b9ee83
--- /dev/null
+++ b/licenses/jackson-module-parameter-names-2.15.4.jar/META-INF/LICENSE
@@ -0,0 +1,8 @@
+This copy of Jackson JSON processor Java 8 parameter names module is licensed under the
+Apache (Software) License, version 2.0 ("the License").
+See the License for details about distribution rights, and the
+specific rights regarding derivative works.
+
+You may obtain a copy of the License at:
+
+http://www.apache.org/licenses/LICENSE-2.0
diff --git a/licenses/jackson-module-parameter-names-2.15.4.jar/META-INF/NOTICE b/licenses/jackson-module-parameter-names-2.15.4.jar/META-INF/NOTICE
new file mode 100644
index 000000000..d55c59a0d
--- /dev/null
+++ b/licenses/jackson-module-parameter-names-2.15.4.jar/META-INF/NOTICE
@@ -0,0 +1,17 @@
+# Jackson JSON processor
+
+Jackson is a high-performance, Free/Open Source JSON processing library.
+It was originally written by Tatu Saloranta (tatu.saloranta@iki.fi), and has
+been in development since 2007.
+It is currently developed by a community of developers.
+
+## Licensing
+
+Jackson components are licensed under Apache (Software) License, version 2.0,
+as per accompanying LICENSE file.
+
+## Credits
+
+A list of contributors may be found from CREDITS file, which is included
+in some artifacts (usually source distributions); but is always available
+from the source code management (SCM) system project uses.
diff --git a/licenses/jackson-module-parameter-names-2.17.1.jar/META-INF/LICENSE b/licenses/jackson-module-parameter-names-2.17.1.jar/META-INF/LICENSE
new file mode 100644
index 000000000..f49b9ee83
--- /dev/null
+++ b/licenses/jackson-module-parameter-names-2.17.1.jar/META-INF/LICENSE
@@ -0,0 +1,8 @@
+This copy of Jackson JSON processor Java 8 parameter names module is licensed under the
+Apache (Software) License, version 2.0 ("the License").
+See the License for details about distribution rights, and the
+specific rights regarding derivative works.
+
+You may obtain a copy of the License at:
+
+http://www.apache.org/licenses/LICENSE-2.0
diff --git a/licenses/jackson-module-parameter-names-2.17.1.jar/META-INF/NOTICE b/licenses/jackson-module-parameter-names-2.17.1.jar/META-INF/NOTICE
new file mode 100644
index 000000000..d55c59a0d
--- /dev/null
+++ b/licenses/jackson-module-parameter-names-2.17.1.jar/META-INF/NOTICE
@@ -0,0 +1,17 @@
+# Jackson JSON processor
+
+Jackson is a high-performance, Free/Open Source JSON processing library.
+It was originally written by Tatu Saloranta (tatu.saloranta@iki.fi), and has
+been in development since 2007.
+It is currently developed by a community of developers.
+
+## Licensing
+
+Jackson components are licensed under Apache (Software) License, version 2.0,
+as per accompanying LICENSE file.
+
+## Credits
+
+A list of contributors may be found from CREDITS file, which is included
+in some artifacts (usually source distributions); but is always available
+from the source code management (SCM) system project uses.
diff --git a/licenses/jakarta.activation-api-2.1.3.jar/META-INF/LICENSE.md b/licenses/jakarta.activation-api-2.1.3.jar/META-INF/LICENSE.md
new file mode 100644
index 000000000..e0358f972
--- /dev/null
+++ b/licenses/jakarta.activation-api-2.1.3.jar/META-INF/LICENSE.md
@@ -0,0 +1,29 @@
+
+    Copyright (c) 2018 Oracle and/or its affiliates. All rights reserved.
+   
+    Redistribution and use in source and binary forms, with or without
+    modification, are permitted provided that the following conditions
+    are met:
+   
+      - Redistributions of source code must retain the above copyright
+        notice, this list of conditions and the following disclaimer.
+   
+      - Redistributions in binary form must reproduce the above copyright
+        notice, this list of conditions and the following disclaimer in the
+        documentation and/or other materials provided with the distribution.
+   
+      - Neither the name of the Eclipse Foundation, Inc. nor the names of its
+        contributors may be used to endorse or promote products derived
+        from this software without specific prior written permission.
+   
+    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
+    IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+    THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+    PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+    CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+    EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+    PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+    PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+    LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+    NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+    SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/licenses/jakarta.activation-api-2.1.3.jar/META-INF/NOTICE.md b/licenses/jakarta.activation-api-2.1.3.jar/META-INF/NOTICE.md
new file mode 100644
index 000000000..2ea9bf4da
--- /dev/null
+++ b/licenses/jakarta.activation-api-2.1.3.jar/META-INF/NOTICE.md
@@ -0,0 +1,91 @@
+# Notices for Jakarta Activation
+
+This content is produced and maintained by the Jakarta Activation project.
+
+* Project home: https://projects.eclipse.org/projects/ee4j.jaf
+
+## Trademarks
+
+Jakarta Activation is a trademark of the Eclipse Foundation.
+
+## Copyright
+
+All content is the property of the respective authors or their employers. For
+more information regarding authorship of content, please consult the listed
+source code repository logs.
+
+## Declared Project Licenses
+
+This program and the accompanying materials are made available under the terms
+of the Eclipse Public License v. 2.0 which is available at
+https://www.eclipse.org/legal/epl-2.0, or the Eclipse Distribution License v1.0
+which is available at https://www.eclipse.org/org/documents/edl-v10.php. This
+Source Code may also be made available under the following Secondary Licenses
+when the conditions for such availability set forth in the Eclipse Public
+License v. 2.0 are satisfied: (secondary) GPL-2.0 with Classpath-exception-2.0
+which is available at https://openjdk.java.net/legal/gplv2+ce.html.
+
+SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause OR GPL-2.0-only with
+Classpath-exception-2.0
+
+## Source Code
+
+The project maintains the following source code repositories:
+
+* https://github.com/jakartaee/jaf-api
+* https://github.com/jakartaee/jaf-tck
+
+## Third-party Content
+
+This project leverages the following third party content.
+
+Apache Ant (1.9.6)
+
+* License: Apache License, 2.0, W3C License, Public Domain
+
+Apache Ant (1.9.6)
+
+* License: Apache License, 2.0, W3C License, Public Domain
+
+Apache commons-lang (3.5)
+
+* License: Apache-2.0
+
+font-awesome (4.7.0)
+
+* License: OFL-1.1 AND MIT
+
+jsoup (1.10.2)
+
+* License: MIT
+
+JTHarness (5.0)
+
+* License: (GPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0)
+* Project: https://wiki.openjdk.java.net/display/CodeTools/JT+Harness
+* Source: http://hg.openjdk.java.net/code-tools/jtharness/
+
+JUnit (4.12)
+
+* License: Eclipse Public License
+
+normalize.css (3.0.2)
+
+* License: MIT
+* Project: http://necolas.github.io/normalize.css/
+* Source: http://necolas.github.io/normalize.css/
+
+SigTest (4.0)
+
+* License: GPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
+* Project: https://wiki.openjdk.java.net/display/CodeTools/sigtest
+* Source: http://hg.openjdk.java.net/code-tools/sigtest/file/c57f97e2ac2f
+
+## Cryptography
+
+Content may contain encryption software. The country in which you are currently
+may have restrictions on the import, possession, and use, and/or re-export to
+another country, of encryption software. BEFORE using any encryption software,
+please check the country's laws, regulations and policies concerning the import,
+possession, or use, and re-export of encryption software, to see if this is
+permitted.
\ No newline at end of file
diff --git a/licenses/jakarta.xml.bind-api-4.0.2.jar/META-INF/LICENSE.md b/licenses/jakarta.xml.bind-api-4.0.2.jar/META-INF/LICENSE.md
new file mode 100644
index 000000000..6fb337cb0
--- /dev/null
+++ b/licenses/jakarta.xml.bind-api-4.0.2.jar/META-INF/LICENSE.md
@@ -0,0 +1,29 @@
+
+    Copyright (c) 2017, 2018 Oracle and/or its affiliates. All rights reserved.
+   
+    Redistribution and use in source and binary forms, with or without
+    modification, are permitted provided that the following conditions
+    are met:
+   
+      - Redistributions of source code must retain the above copyright
+        notice, this list of conditions and the following disclaimer.
+   
+      - Redistributions in binary form must reproduce the above copyright
+        notice, this list of conditions and the following disclaimer in the
+        documentation and/or other materials provided with the distribution.
+   
+      - Neither the name of the Eclipse Foundation, Inc. nor the names of its
+        contributors may be used to endorse or promote products derived
+        from this software without specific prior written permission.
+   
+    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
+    IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+    THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+    PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+    CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+    EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+    PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+    PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+    LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+    NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+    SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/licenses/jakarta.xml.bind-api-4.0.2.jar/META-INF/NOTICE.md b/licenses/jakarta.xml.bind-api-4.0.2.jar/META-INF/NOTICE.md
new file mode 100644
index 000000000..417ebab29
--- /dev/null
+++ b/licenses/jakarta.xml.bind-api-4.0.2.jar/META-INF/NOTICE.md
@@ -0,0 +1,47 @@
+[//]: # " Copyright (c) 2018, 2024 Oracle and/or its affiliates. All rights reserved. "
+[//]: # "  "
+[//]: # " This program and the accompanying materials are made available under the "
+[//]: # " terms of the Eclipse Distribution License v. 1.0, which is available at "
+[//]: # " http://www.eclipse.org/org/documents/edl-v10.php. "
+[//]: # "  "
+[//]: # " SPDX-License-Identifier: BSD-3-Clause "
+
+# Notices for Jakarta XML Binding
+
+This content is produced and maintained by the Jakarta XML Binding project.
+
+* Project home: https://projects.eclipse.org/projects/ee4j.jaxb
+
+## Trademarks
+
+Jakarta XML Bindingâ„¢ is a trademark of the Eclipse Foundation.
+
+## Copyright
+
+All content is the property of the respective authors or their employers. For
+more information regarding authorship of content, please consult the listed
+source code repository logs.
+
+## Declared Project Licenses
+
+This program and the accompanying materials are made available under the terms
+of the Eclipse Distribution License v1.0 which is available at
+https://www.eclipse.org/org/documents/edl-v10.php.
+
+SPDX-License-Identifier: BSD-3-Clause
+
+## Source Code
+
+The project maintains the following source code repositories:
+
+* https://github.com/jakartaee/jaxb-api
+* https://github.com/jakartaee/jaxb-tck
+
+## Cryptography
+
+Content may contain encryption software. The country in which you are currently
+may have restrictions on the import, possession, and use, and/or re-export to
+another country, of encryption software. BEFORE using any encryption software,
+please check the country's laws, regulations and policies concerning the import,
+possession, or use, and re-export of encryption software, to see if this is
+permitted.
diff --git a/licenses/java-semver-0.10.2.jar/META-INF/LICENSE b/licenses/java-semver-0.10.2.jar/META-INF/LICENSE
new file mode 100644
index 000000000..251865ad7
--- /dev/null
+++ b/licenses/java-semver-0.10.2.jar/META-INF/LICENSE
@@ -0,0 +1,21 @@
+The MIT License
+
+Copyright 2012-2024 Zafar Khaja <zafarkhaja@gmail.com>.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
diff --git a/licenses/jaxb-core-4.0.5.jar/META-INF/LICENSE.md b/licenses/jaxb-core-4.0.5.jar/META-INF/LICENSE.md
new file mode 100644
index 000000000..da1c1cea7
--- /dev/null
+++ b/licenses/jaxb-core-4.0.5.jar/META-INF/LICENSE.md
@@ -0,0 +1,28 @@
+Copyright (c) 2018 Oracle and/or its affiliates. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+  - Redistributions of source code must retain the above copyright
+    notice, this list of conditions and the following disclaimer.
+
+  - Redistributions in binary form must reproduce the above copyright
+    notice, this list of conditions and the following disclaimer in the
+    documentation and/or other materials provided with the distribution.
+
+  - Neither the name of the Eclipse Foundation, Inc. nor the names of its
+    contributors may be used to endorse or promote products derived
+    from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
+IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
\ No newline at end of file
diff --git a/licenses/jaxb-core-4.0.5.jar/META-INF/NOTICE.md b/licenses/jaxb-core-4.0.5.jar/META-INF/NOTICE.md
new file mode 100644
index 000000000..cd46a173a
--- /dev/null
+++ b/licenses/jaxb-core-4.0.5.jar/META-INF/NOTICE.md
@@ -0,0 +1,191 @@
+# Notices for Eclipse Implementation of JAXB
+
+This content is produced and maintained by the Eclipse Implementation of JAXB
+project.
+
+* Project home: https://projects.eclipse.org/projects/ee4j.jaxb-impl
+
+## Trademarks
+
+Eclipse Implementation of JAXB is a trademark of the Eclipse Foundation.
+
+## Copyright
+
+All content is the property of the respective authors or their employers. For
+more information regarding authorship of content, please consult the listed
+source code repository logs.
+
+## Declared Project Licenses
+
+This program and the accompanying materials are made available under the terms
+of the Eclipse Distribution License v. 1.0 which is available at
+http://www.eclipse.org/org/documents/edl-v10.php.
+
+SPDX-License-Identifier: BSD-3-Clause
+
+## Source Code
+
+The project maintains the following source code repositories:
+
+* https://github.com/eclipse-ee4j/jaxb-ri
+* https://github.com/eclipse-ee4j/jaxb-istack-commons
+* https://github.com/eclipse-ee4j/jaxb-dtd-parser
+* https://github.com/eclipse-ee4j/jaxb-fi
+* https://github.com/eclipse-ee4j/jaxb-stax-ex
+* https://github.com/eclipse-ee4j/jax-rpc-ri
+
+## Third-party Content
+
+This project leverages the following third party content.
+
+Apache Ant (1.10.2)
+
+* License: Apache-2.0 AND W3C AND LicenseRef-Public-Domain
+
+Apache Ant (1.10.2)
+
+* License: Apache-2.0 AND W3C AND LicenseRef-Public-Domain
+
+Apache Felix (1.2.0)
+
+* License: Apache License, 2.0
+
+args4j (2.33)
+
+* License: MIT License
+
+dom4j (1.6.1)
+
+* License: Custom license based on Apache 1.1
+
+file-management (3.0.0)
+
+* License: Apache-2.0
+* Project: https://maven.apache.org/shared/file-management/
+* Source:
+   https://svn.apache.org/viewvc/maven/shared/tags/file-management-3.0.0/
+
+JUnit (4.12)
+
+* License: Eclipse Public License
+
+JUnit (4.12)
+
+* License: Eclipse Public License
+
+maven-compat (3.5.2)
+
+* License: Apache-2.0
+* Project: https://maven.apache.org/ref/3.5.2/maven-compat/
+* Source:
+   https://mvnrepository.com/artifact/org.apache.maven/maven-compat/3.5.2
+
+maven-core (3.5.2)
+
+* License: Apache-2.0
+* Project: https://maven.apache.org/ref/3.5.2/maven-core/index.html
+* Source: https://mvnrepository.com/artifact/org.apache.maven/maven-core/3.5.2
+
+maven-plugin-annotations (3.5)
+
+* License: Apache-2.0
+* Project: https://maven.apache.org/plugin-tools/maven-plugin-annotations/
+* Source:
+   https://github.com/apache/maven-plugin-tools/tree/master/maven-plugin-annotations
+
+maven-plugin-api (3.5.2)
+
+* License: Apache-2.0
+
+maven-resolver-api (1.1.1)
+
+* License: Apache-2.0
+
+maven-resolver-api (1.1.1)
+
+* License: Apache-2.0
+
+maven-resolver-connector-basic (1.1.1)
+
+* License: Apache-2.0
+
+maven-resolver-impl (1.1.1)
+
+* License: Apache-2.0
+
+maven-resolver-spi (1.1.1)
+
+* License: Apache-2.0
+
+maven-resolver-transport-file (1.1.1)
+
+* License: Apache-2.0
+* Project: https://maven.apache.org/resolver/maven-resolver-transport-file/
+* Source:
+   https://github.com/apache/maven-resolver/tree/master/maven-resolver-transport-file
+
+maven-resolver-util (1.1.1)
+
+* License: Apache-2.0
+
+maven-settings (3.5.2)
+
+* License: Apache-2.0
+* Source:
+   https://mvnrepository.com/artifact/org.apache.maven/maven-settings/3.5.2
+
+OSGi Service Platform Core Companion Code (6.0)
+
+* License: Apache License, 2.0
+
+plexus-archiver (3.5)
+
+* License: Apache-2.0
+* Project: https://codehaus-plexus.github.io/plexus-archiver/
+* Source: https://github.com/codehaus-plexus/plexus-archiver
+
+plexus-io (3.0.0)
+
+* License: Apache-2.0
+
+plexus-utils (3.1.0)
+
+* License: Apache- 2.0 or Apache- 1.1 or BSD or Public Domain or Indiana
+   University Extreme! Lab Software License V1.1.1 (Apache 1.1 style)
+
+relaxng-datatype (1.0)
+
+* License: New BSD license
+
+Sax (0.2)
+
+* License: SAX-PD
+* Project: http://www.megginson.com/downloads/SAX/
+* Source: http://sourceforge.net/project/showfiles.php?group_id=29449
+
+testng (6.14.2)
+
+* License: Apache-2.0 AND (MIT OR GPL-1.0+)
+* Project: https://testng.org/doc/index.html
+* Source: https://github.com/cbeust/testng
+
+wagon-http-lightweight (3.0.0)
+
+* License: Pending
+* Project: https://maven.apache.org/wagon/
+* Source:
+   https://mvnrepository.com/artifact/org.apache.maven.wagon/wagon-http-lightweight/3.0.0
+
+xz for java (1.8)
+
+* License: LicenseRef-Public-Domain
+
+## Cryptography
+
+Content may contain encryption software. The country in which you are currently
+may have restrictions on the import, possession, and use, and/or re-export to
+another country, of encryption software. BEFORE using any encryption software,
+please check the country's laws, regulations and policies concerning the import,
+possession, or use, and re-export of encryption software, to see if this is
+permitted.
+
diff --git a/licenses/jaxb-runtime-4.0.5.jar/META-INF/LICENSE.md b/licenses/jaxb-runtime-4.0.5.jar/META-INF/LICENSE.md
new file mode 100644
index 000000000..da1c1cea7
--- /dev/null
+++ b/licenses/jaxb-runtime-4.0.5.jar/META-INF/LICENSE.md
@@ -0,0 +1,28 @@
+Copyright (c) 2018 Oracle and/or its affiliates. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+  - Redistributions of source code must retain the above copyright
+    notice, this list of conditions and the following disclaimer.
+
+  - Redistributions in binary form must reproduce the above copyright
+    notice, this list of conditions and the following disclaimer in the
+    documentation and/or other materials provided with the distribution.
+
+  - Neither the name of the Eclipse Foundation, Inc. nor the names of its
+    contributors may be used to endorse or promote products derived
+    from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
+IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
\ No newline at end of file
diff --git a/licenses/jaxb-runtime-4.0.5.jar/META-INF/NOTICE.md b/licenses/jaxb-runtime-4.0.5.jar/META-INF/NOTICE.md
new file mode 100644
index 000000000..cd46a173a
--- /dev/null
+++ b/licenses/jaxb-runtime-4.0.5.jar/META-INF/NOTICE.md
@@ -0,0 +1,191 @@
+# Notices for Eclipse Implementation of JAXB
+
+This content is produced and maintained by the Eclipse Implementation of JAXB
+project.
+
+* Project home: https://projects.eclipse.org/projects/ee4j.jaxb-impl
+
+## Trademarks
+
+Eclipse Implementation of JAXB is a trademark of the Eclipse Foundation.
+
+## Copyright
+
+All content is the property of the respective authors or their employers. For
+more information regarding authorship of content, please consult the listed
+source code repository logs.
+
+## Declared Project Licenses
+
+This program and the accompanying materials are made available under the terms
+of the Eclipse Distribution License v. 1.0 which is available at
+http://www.eclipse.org/org/documents/edl-v10.php.
+
+SPDX-License-Identifier: BSD-3-Clause
+
+## Source Code
+
+The project maintains the following source code repositories:
+
+* https://github.com/eclipse-ee4j/jaxb-ri
+* https://github.com/eclipse-ee4j/jaxb-istack-commons
+* https://github.com/eclipse-ee4j/jaxb-dtd-parser
+* https://github.com/eclipse-ee4j/jaxb-fi
+* https://github.com/eclipse-ee4j/jaxb-stax-ex
+* https://github.com/eclipse-ee4j/jax-rpc-ri
+
+## Third-party Content
+
+This project leverages the following third party content.
+
+Apache Ant (1.10.2)
+
+* License: Apache-2.0 AND W3C AND LicenseRef-Public-Domain
+
+Apache Ant (1.10.2)
+
+* License: Apache-2.0 AND W3C AND LicenseRef-Public-Domain
+
+Apache Felix (1.2.0)
+
+* License: Apache License, 2.0
+
+args4j (2.33)
+
+* License: MIT License
+
+dom4j (1.6.1)
+
+* License: Custom license based on Apache 1.1
+
+file-management (3.0.0)
+
+* License: Apache-2.0
+* Project: https://maven.apache.org/shared/file-management/
+* Source:
+   https://svn.apache.org/viewvc/maven/shared/tags/file-management-3.0.0/
+
+JUnit (4.12)
+
+* License: Eclipse Public License
+
+JUnit (4.12)
+
+* License: Eclipse Public License
+
+maven-compat (3.5.2)
+
+* License: Apache-2.0
+* Project: https://maven.apache.org/ref/3.5.2/maven-compat/
+* Source:
+   https://mvnrepository.com/artifact/org.apache.maven/maven-compat/3.5.2
+
+maven-core (3.5.2)
+
+* License: Apache-2.0
+* Project: https://maven.apache.org/ref/3.5.2/maven-core/index.html
+* Source: https://mvnrepository.com/artifact/org.apache.maven/maven-core/3.5.2
+
+maven-plugin-annotations (3.5)
+
+* License: Apache-2.0
+* Project: https://maven.apache.org/plugin-tools/maven-plugin-annotations/
+* Source:
+   https://github.com/apache/maven-plugin-tools/tree/master/maven-plugin-annotations
+
+maven-plugin-api (3.5.2)
+
+* License: Apache-2.0
+
+maven-resolver-api (1.1.1)
+
+* License: Apache-2.0
+
+maven-resolver-api (1.1.1)
+
+* License: Apache-2.0
+
+maven-resolver-connector-basic (1.1.1)
+
+* License: Apache-2.0
+
+maven-resolver-impl (1.1.1)
+
+* License: Apache-2.0
+
+maven-resolver-spi (1.1.1)
+
+* License: Apache-2.0
+
+maven-resolver-transport-file (1.1.1)
+
+* License: Apache-2.0
+* Project: https://maven.apache.org/resolver/maven-resolver-transport-file/
+* Source:
+   https://github.com/apache/maven-resolver/tree/master/maven-resolver-transport-file
+
+maven-resolver-util (1.1.1)
+
+* License: Apache-2.0
+
+maven-settings (3.5.2)
+
+* License: Apache-2.0
+* Source:
+   https://mvnrepository.com/artifact/org.apache.maven/maven-settings/3.5.2
+
+OSGi Service Platform Core Companion Code (6.0)
+
+* License: Apache License, 2.0
+
+plexus-archiver (3.5)
+
+* License: Apache-2.0
+* Project: https://codehaus-plexus.github.io/plexus-archiver/
+* Source: https://github.com/codehaus-plexus/plexus-archiver
+
+plexus-io (3.0.0)
+
+* License: Apache-2.0
+
+plexus-utils (3.1.0)
+
+* License: Apache- 2.0 or Apache- 1.1 or BSD or Public Domain or Indiana
+   University Extreme! Lab Software License V1.1.1 (Apache 1.1 style)
+
+relaxng-datatype (1.0)
+
+* License: New BSD license
+
+Sax (0.2)
+
+* License: SAX-PD
+* Project: http://www.megginson.com/downloads/SAX/
+* Source: http://sourceforge.net/project/showfiles.php?group_id=29449
+
+testng (6.14.2)
+
+* License: Apache-2.0 AND (MIT OR GPL-1.0+)
+* Project: https://testng.org/doc/index.html
+* Source: https://github.com/cbeust/testng
+
+wagon-http-lightweight (3.0.0)
+
+* License: Pending
+* Project: https://maven.apache.org/wagon/
+* Source:
+   https://mvnrepository.com/artifact/org.apache.maven.wagon/wagon-http-lightweight/3.0.0
+
+xz for java (1.8)
+
+* License: LicenseRef-Public-Domain
+
+## Cryptography
+
+Content may contain encryption software. The country in which you are currently
+may have restrictions on the import, possession, and use, and/or re-export to
+another country, of encryption software. BEFORE using any encryption software,
+please check the country's laws, regulations and policies concerning the import,
+possession, or use, and re-export of encryption software, to see if this is
+permitted.
+
diff --git a/licenses/licences.md b/licenses/licences.md
index 88737814b..0eac57284 100644
--- a/licenses/licences.md
+++ b/licenses/licences.md
@@ -1,7 +1,7 @@
 
 # Dependency Licenses
 ## Dependency License Report
-_2024-02-13 21:42:39 MEZ_
+_2024-05-26 14:44:22 MESZ_
 ## Apache License, Version 2.0
 
 **1** **Group:** `com.cronutils` **Name:** `cron-utils` **Version:** `9.2.1` 
@@ -9,49 +9,49 @@ _2024-02-13 21:42:39 MEZ_
 > - **POM Project URL**: [http://cron-parser.com/](http://cron-parser.com/)
 > - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0)
 
-**2** **Group:** `com.fasterxml.jackson.core` **Name:** `jackson-databind` **Version:** `2.15.3` 
+**2** **Group:** `com.fasterxml.jackson.core` **Name:** `jackson-databind` **Version:** `2.17.0` 
 > - **Project URL**: [https://github.com/FasterXML/jackson](https://github.com/FasterXML/jackson)
 > - **Manifest License**: Apache License, Version 2.0 (Not Packaged)
 > - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0)
-> - **Embedded license files**: [jackson-databind-2.15.3.jar/META-INF/LICENSE](jackson-databind-2.15.3.jar/META-INF/LICENSE) 
-    - [jackson-databind-2.15.3.jar/META-INF/NOTICE](jackson-databind-2.15.3.jar/META-INF/NOTICE)
+> - **Embedded license files**: [jackson-databind-2.17.0.jar/META-INF/LICENSE](jackson-databind-2.17.0.jar/META-INF/LICENSE) 
+    - [jackson-databind-2.17.0.jar/META-INF/NOTICE](jackson-databind-2.17.0.jar/META-INF/NOTICE)
 
-**3** **Group:** `com.fasterxml.jackson.module` **Name:** `jackson-module-kotlin` **Version:** `2.14.2` 
+**3** **Group:** `com.fasterxml.jackson.module` **Name:** `jackson-module-kotlin` **Version:** `2.17.0` 
 > - **Project URL**: [https://github.com/FasterXML/jackson-module-kotlin](https://github.com/FasterXML/jackson-module-kotlin)
 > - **Manifest License**: Apache License, Version 2.0 (Not Packaged)
 > - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0)
-> - **Embedded license files**: [jackson-module-kotlin-2.14.2.jar/META-INF/LICENSE](jackson-module-kotlin-2.14.2.jar/META-INF/LICENSE) 
-    - [jackson-module-kotlin-2.14.2.jar/META-INF/NOTICE](jackson-module-kotlin-2.14.2.jar/META-INF/NOTICE)
+> - **Embedded license files**: [jackson-module-kotlin-2.17.0.jar/META-INF/LICENSE](jackson-module-kotlin-2.17.0.jar/META-INF/LICENSE) 
+    - [jackson-module-kotlin-2.17.0.jar/META-INF/NOTICE](jackson-module-kotlin-2.17.0.jar/META-INF/NOTICE)
 
-**4** **Group:** `com.fasterxml.jackson.module` **Name:** `jackson-module-kotlin` **Version:** `2.15.3` 
+**4** **Group:** `com.fasterxml.jackson.module` **Name:** `jackson-module-kotlin` **Version:** `2.17.1` 
 > - **Project URL**: [https://github.com/FasterXML/jackson-module-kotlin](https://github.com/FasterXML/jackson-module-kotlin)
 > - **Manifest License**: Apache License, Version 2.0 (Not Packaged)
 > - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0)
-> - **Embedded license files**: [jackson-module-kotlin-2.15.3.jar/META-INF/LICENSE](jackson-module-kotlin-2.15.3.jar/META-INF/LICENSE) 
-    - [jackson-module-kotlin-2.15.3.jar/META-INF/NOTICE](jackson-module-kotlin-2.15.3.jar/META-INF/NOTICE)
+> - **Embedded license files**: [jackson-module-kotlin-2.17.1.jar/META-INF/LICENSE](jackson-module-kotlin-2.17.1.jar/META-INF/LICENSE) 
+    - [jackson-module-kotlin-2.17.1.jar/META-INF/NOTICE](jackson-module-kotlin-2.17.1.jar/META-INF/NOTICE)
 
-**5** **Group:** `com.formdev` **Name:** `flatlaf` **Version:** `3.2.5` 
+**5** **Group:** `com.formdev` **Name:** `flatlaf` **Version:** `3.4` 
 > - **POM Project URL**: [https://github.com/JFormDesigner/FlatLaf](https://github.com/JFormDesigner/FlatLaf)
 > - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0)
-> - **Embedded license files**: [flatlaf-3.2.5.jar/META-INF/LICENSE](flatlaf-3.2.5.jar/META-INF/LICENSE)
+> - **Embedded license files**: [flatlaf-3.4.jar/META-INF/LICENSE](flatlaf-3.4.jar/META-INF/LICENSE)
 
-**6** **Group:** `com.formdev` **Name:** `flatlaf-extras` **Version:** `3.2.5` 
+**6** **Group:** `com.formdev` **Name:** `flatlaf-extras` **Version:** `3.4` 
 > - **POM Project URL**: [https://github.com/JFormDesigner/FlatLaf](https://github.com/JFormDesigner/FlatLaf)
 > - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0)
-> - **Embedded license files**: [flatlaf-extras-3.2.5.jar/META-INF/LICENSE](flatlaf-extras-3.2.5.jar/META-INF/LICENSE)
+> - **Embedded license files**: [flatlaf-extras-3.4.jar/META-INF/LICENSE](flatlaf-extras-3.4.jar/META-INF/LICENSE)
 
-**7** **Group:** `com.formdev` **Name:** `flatlaf-fonts-inter` **Version:** `3.19` 
+**7** **Group:** `com.formdev` **Name:** `flatlaf-fonts-inter` **Version:** `4.0` 
 > - **POM Project URL**: [https://github.com/JFormDesigner/FlatLaf](https://github.com/JFormDesigner/FlatLaf)
 > - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0)
 > - **POM License**: SIL OPEN FONT LICENSE Version 1.1 - [https://choosealicense.com/licenses/ofl-1.1/](https://choosealicense.com/licenses/ofl-1.1/)
-> - **Embedded license files**: [flatlaf-fonts-inter-3.19.jar/META-INF/LICENSE](flatlaf-fonts-inter-3.19.jar/META-INF/LICENSE) 
-    - [flatlaf-fonts-inter-3.19.jar/com/formdev/flatlaf/fonts/inter/LICENSE.txt](flatlaf-fonts-inter-3.19.jar/com/formdev/flatlaf/fonts/inter/LICENSE.txt)
+> - **Embedded license files**: [flatlaf-fonts-inter-4.0.jar/META-INF/LICENSE](flatlaf-fonts-inter-4.0.jar/META-INF/LICENSE) 
+    - [flatlaf-fonts-inter-4.0.jar/com/formdev/flatlaf/fonts/inter/LICENSE.txt](flatlaf-fonts-inter-4.0.jar/com/formdev/flatlaf/fonts/inter/LICENSE.txt)
 
-**8** **Group:** `com.formdev` **Name:** `flatlaf-fonts-jetbrains-mono` **Version:** `2.242` 
+**8** **Group:** `com.formdev` **Name:** `flatlaf-fonts-jetbrains-mono` **Version:** `2.304` 
 > - **POM Project URL**: [https://github.com/JFormDesigner/FlatLaf](https://github.com/JFormDesigner/FlatLaf)
 > - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0)
 > - **POM License**: SIL OPEN FONT LICENSE Version 1.1 - [https://choosealicense.com/licenses/ofl-1.1/](https://choosealicense.com/licenses/ofl-1.1/)
-> - **Embedded license files**: [flatlaf-fonts-jetbrains-mono-2.242.jar/META-INF/LICENSE](flatlaf-fonts-jetbrains-mono-2.242.jar/META-INF/LICENSE)
+> - **Embedded license files**: [flatlaf-fonts-jetbrains-mono-2.304.jar/META-INF/LICENSE](flatlaf-fonts-jetbrains-mono-2.304.jar/META-INF/LICENSE)
 
 **9** **Group:** `com.formdev` **Name:** `flatlaf-fonts-roboto` **Version:** `2.137` 
 > - **POM Project URL**: [https://github.com/JFormDesigner/FlatLaf](https://github.com/JFormDesigner/FlatLaf)
@@ -65,19 +65,19 @@ _2024-02-13 21:42:39 MEZ_
 > - **Embedded license files**: [flatlaf-fonts-roboto-mono-3.000.jar/META-INF/LICENSE](flatlaf-fonts-roboto-mono-3.000.jar/META-INF/LICENSE) 
     - [flatlaf-fonts-roboto-mono-3.000.jar/com/formdev/flatlaf/fonts/roboto_mono/LICENSE.txt](flatlaf-fonts-roboto-mono-3.000.jar/com/formdev/flatlaf/fonts/roboto_mono/LICENSE.txt)
 
-**11** **Group:** `com.formdev` **Name:** `flatlaf-intellij-themes` **Version:** `3.2.5` 
+**11** **Group:** `com.formdev` **Name:** `flatlaf-intellij-themes` **Version:** `3.4` 
 > - **POM Project URL**: [https://github.com/JFormDesigner/FlatLaf](https://github.com/JFormDesigner/FlatLaf)
 > - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0)
-> - **Embedded license files**: [flatlaf-intellij-themes-3.2.5.jar/META-INF/LICENSE](flatlaf-intellij-themes-3.2.5.jar/META-INF/LICENSE)
+> - **Embedded license files**: [flatlaf-intellij-themes-3.4.jar/META-INF/LICENSE](flatlaf-intellij-themes-3.4.jar/META-INF/LICENSE)
 
-**12** **Group:** `commons-io` **Name:** `commons-io` **Version:** `2.14.0` 
+**12** **Group:** `commons-io` **Name:** `commons-io` **Version:** `2.16.1` 
 > - **Project URL**: [https://commons.apache.org/proper/commons-io/](https://commons.apache.org/proper/commons-io/)
 > - **Manifest License**: Apache License, Version 2.0 (Not Packaged)
 > - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0)
-> - **Embedded license files**: [commons-io-2.14.0.jar/META-INF/LICENSE.txt](commons-io-2.14.0.jar/META-INF/LICENSE.txt) 
-    - [commons-io-2.14.0.jar/META-INF/NOTICE.txt](commons-io-2.14.0.jar/META-INF/NOTICE.txt)
+> - **Embedded license files**: [commons-io-2.16.1.jar/META-INF/LICENSE.txt](commons-io-2.16.1.jar/META-INF/LICENSE.txt) 
+    - [commons-io-2.16.1.jar/META-INF/NOTICE.txt](commons-io-2.16.1.jar/META-INF/NOTICE.txt)
 
-**13** **Group:** `de.comahe.i18n4k` **Name:** `i18n4k-core-jvm` **Version:** `0.6.2` 
+**13** **Group:** `de.comahe.i18n4k` **Name:** `i18n4k-core-jvm` **Version:** `0.7.0` 
 > - **POM Project URL**: [https://comahe-de.github.io/i18n4k/](https://comahe-de.github.io/i18n4k/)
 > - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0)
 
@@ -86,79 +86,79 @@ _2024-02-13 21:42:39 MEZ_
 > - **POM Project URL**: [https://github.com/srikanth-lingala/zip4j](https://github.com/srikanth-lingala/zip4j)
 > - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0)
 
-**15** **Group:** `org.apache.logging.log4j` **Name:** `log4j-api-kotlin` **Version:** `1.3.0` 
+**15** **Group:** `org.apache.logging.log4j` **Name:** `log4j-api-kotlin` **Version:** `1.4.0` 
 > - **Manifest License**: Apache License, Version 2.0 (Not Packaged)
 > - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0)
-> - **Embedded license files**: [log4j-api-kotlin-1.3.0.jar/META-INF/LICENSE](log4j-api-kotlin-1.3.0.jar/META-INF/LICENSE) 
-    - [log4j-api-kotlin-1.3.0.jar/META-INF/NOTICE](log4j-api-kotlin-1.3.0.jar/META-INF/NOTICE)
+> - **Embedded license files**: [log4j-api-kotlin-1.4.0.jar/META-INF/LICENSE](log4j-api-kotlin-1.4.0.jar/META-INF/LICENSE) 
+    - [log4j-api-kotlin-1.4.0.jar/META-INF/NOTICE](log4j-api-kotlin-1.4.0.jar/META-INF/NOTICE)
 
-**16** **Group:** `org.apache.logging.log4j` **Name:** `log4j-core` **Version:** `2.21.0` 
+**16** **Group:** `org.apache.logging.log4j` **Name:** `log4j-core` **Version:** `2.23.1` 
 > - **Manifest License**: Apache License, Version 2.0 (Not Packaged)
 > - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0)
-> - **Embedded license files**: [log4j-core-2.21.0.jar/META-INF/LICENSE](log4j-core-2.21.0.jar/META-INF/LICENSE) 
-    - [log4j-core-2.21.0.jar/META-INF/NOTICE](log4j-core-2.21.0.jar/META-INF/NOTICE)
+> - **Embedded license files**: [log4j-core-2.23.1.jar/META-INF/LICENSE](log4j-core-2.23.1.jar/META-INF/LICENSE) 
+    - [log4j-core-2.23.1.jar/META-INF/NOTICE](log4j-core-2.23.1.jar/META-INF/NOTICE)
 
-**17** **Group:** `org.javassist` **Name:** `javassist` **Version:** `3.29.2-GA` 
+**17** **Group:** `org.javassist` **Name:** `javassist` **Version:** `3.30.2-GA` 
 > - **Manifest License**: Apache License, Version 2.0 (Not Packaged)
-> - **POM Project URL**: [http://www.javassist.org/](http://www.javassist.org/)
+> - **POM Project URL**: [https://www.javassist.org/](https://www.javassist.org/)
 > - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0)
 > - **POM License**: GNU LESSER GENERAL PUBLIC LICENSE, Version 2.1 - [https://www.gnu.org/licenses/lgpl-2.1](https://www.gnu.org/licenses/lgpl-2.1)
 > - **POM License**: Mozilla Public License Version 1.1 - [https://www.mozilla.org/en-US/MPL/1.1](https://www.mozilla.org/en-US/MPL/1.1)
 
-**18** **Group:** `org.jetbrains.kotlin` **Name:** `kotlin-reflect` **Version:** `1.9.10` 
+**18** **Group:** `org.jetbrains.kotlin` **Name:** `kotlin-reflect` **Version:** `1.9.23` 
 > - **POM Project URL**: [https://kotlinlang.org/](https://kotlinlang.org/)
 > - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0)
 
-**19** **Group:** `org.jetbrains.kotlin` **Name:** `kotlin-reflect` **Version:** `1.9.21` 
+**19** **Group:** `org.jetbrains.kotlin` **Name:** `kotlin-stdlib` **Version:** `1.9.23` 
 > - **POM Project URL**: [https://kotlinlang.org/](https://kotlinlang.org/)
 > - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0)
 
-**20** **Group:** `org.jetbrains.kotlin` **Name:** `kotlin-stdlib` **Version:** `1.9.21` 
+**20** **Group:** `org.jetbrains.kotlin` **Name:** `kotlin-stdlib` **Version:** `2.0.0-RC1` 
 > - **POM Project URL**: [https://kotlinlang.org/](https://kotlinlang.org/)
 > - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0)
 
-**21** **Group:** `org.jetbrains.kotlinx` **Name:** `kotlinx-coroutines-swing` **Version:** `1.7.3` 
+**21** **Group:** `org.jetbrains.kotlinx` **Name:** `kotlinx-coroutines-swing` **Version:** `1.8.0` 
 > - **POM Project URL**: [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines)
 > - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0)
 
-**22** **Group:** `org.pf4j` **Name:** `pf4j` **Version:** `3.10.0` 
+**22** **Group:** `org.pf4j` **Name:** `pf4j` **Version:** `3.11.0` 
 > - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0)
 
-**23** **Group:** `org.springframework.boot` **Name:** `spring-boot-devtools` **Version:** `3.0.4` 
+**23** **Group:** `org.springframework.boot` **Name:** `spring-boot-devtools` **Version:** `3.2.5` 
 > - **POM Project URL**: [https://spring.io/projects/spring-boot](https://spring.io/projects/spring-boot)
 > - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0)
-> - **Embedded license files**: [spring-boot-devtools-3.0.4.jar/META-INF/LICENSE.txt](spring-boot-devtools-3.0.4.jar/META-INF/LICENSE.txt) 
-    - [spring-boot-devtools-3.0.4.jar/META-INF/NOTICE.txt](spring-boot-devtools-3.0.4.jar/META-INF/NOTICE.txt)
+> - **Embedded license files**: [spring-boot-devtools-3.2.5.jar/META-INF/LICENSE.txt](spring-boot-devtools-3.2.5.jar/META-INF/LICENSE.txt) 
+    - [spring-boot-devtools-3.2.5.jar/META-INF/NOTICE.txt](spring-boot-devtools-3.2.5.jar/META-INF/NOTICE.txt)
 
-**24** **Group:** `org.springframework.boot` **Name:** `spring-boot-devtools` **Version:** `3.2.0` 
+**24** **Group:** `org.springframework.boot` **Name:** `spring-boot-devtools` **Version:** `3.3.0` 
 > - **POM Project URL**: [https://spring.io/projects/spring-boot](https://spring.io/projects/spring-boot)
 > - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0)
-> - **Embedded license files**: [spring-boot-devtools-3.2.0.jar/META-INF/LICENSE.txt](spring-boot-devtools-3.2.0.jar/META-INF/LICENSE.txt) 
-    - [spring-boot-devtools-3.2.0.jar/META-INF/NOTICE.txt](spring-boot-devtools-3.2.0.jar/META-INF/NOTICE.txt)
+> - **Embedded license files**: [spring-boot-devtools-3.3.0.jar/META-INF/LICENSE.txt](spring-boot-devtools-3.3.0.jar/META-INF/LICENSE.txt) 
+    - [spring-boot-devtools-3.3.0.jar/META-INF/NOTICE.txt](spring-boot-devtools-3.3.0.jar/META-INF/NOTICE.txt)
 
-**25** **Group:** `org.springframework.boot` **Name:** `spring-boot-starter-data-jpa` **Version:** `3.0.4` 
+**25** **Group:** `org.springframework.boot` **Name:** `spring-boot-starter-data-jpa` **Version:** `3.2.5` 
 > - **POM Project URL**: [https://spring.io/projects/spring-boot](https://spring.io/projects/spring-boot)
 > - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0)
-> - **Embedded license files**: [spring-boot-starter-data-jpa-3.0.4.jar/META-INF/LICENSE.txt](spring-boot-starter-data-jpa-3.0.4.jar/META-INF/LICENSE.txt) 
-    - [spring-boot-starter-data-jpa-3.0.4.jar/META-INF/NOTICE.txt](spring-boot-starter-data-jpa-3.0.4.jar/META-INF/NOTICE.txt)
+> - **Embedded license files**: [spring-boot-starter-data-jpa-3.2.5.jar/META-INF/LICENSE.txt](spring-boot-starter-data-jpa-3.2.5.jar/META-INF/LICENSE.txt) 
+    - [spring-boot-starter-data-jpa-3.2.5.jar/META-INF/NOTICE.txt](spring-boot-starter-data-jpa-3.2.5.jar/META-INF/NOTICE.txt)
 
-**26** **Group:** `org.springframework.boot` **Name:** `spring-boot-starter-log4j2` **Version:** `3.0.4` 
+**26** **Group:** `org.springframework.boot` **Name:** `spring-boot-starter-log4j2` **Version:** `3.2.4` 
 > - **POM Project URL**: [https://spring.io/projects/spring-boot](https://spring.io/projects/spring-boot)
 > - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0)
-> - **Embedded license files**: [spring-boot-starter-log4j2-3.0.4.jar/META-INF/LICENSE.txt](spring-boot-starter-log4j2-3.0.4.jar/META-INF/LICENSE.txt) 
-    - [spring-boot-starter-log4j2-3.0.4.jar/META-INF/NOTICE.txt](spring-boot-starter-log4j2-3.0.4.jar/META-INF/NOTICE.txt)
+> - **Embedded license files**: [spring-boot-starter-log4j2-3.2.4.jar/META-INF/LICENSE.txt](spring-boot-starter-log4j2-3.2.4.jar/META-INF/LICENSE.txt) 
+    - [spring-boot-starter-log4j2-3.2.4.jar/META-INF/NOTICE.txt](spring-boot-starter-log4j2-3.2.4.jar/META-INF/NOTICE.txt)
 
-**27** **Group:** `org.springframework.boot` **Name:** `spring-boot-starter-web` **Version:** `3.1.0` 
+**27** **Group:** `org.springframework.boot` **Name:** `spring-boot-starter-web` **Version:** `3.2.4` 
 > - **POM Project URL**: [https://spring.io/projects/spring-boot](https://spring.io/projects/spring-boot)
 > - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0)
-> - **Embedded license files**: [spring-boot-starter-web-3.1.0.jar/META-INF/LICENSE.txt](spring-boot-starter-web-3.1.0.jar/META-INF/LICENSE.txt) 
-    - [spring-boot-starter-web-3.1.0.jar/META-INF/NOTICE.txt](spring-boot-starter-web-3.1.0.jar/META-INF/NOTICE.txt)
+> - **Embedded license files**: [spring-boot-starter-web-3.2.4.jar/META-INF/LICENSE.txt](spring-boot-starter-web-3.2.4.jar/META-INF/LICENSE.txt) 
+    - [spring-boot-starter-web-3.2.4.jar/META-INF/NOTICE.txt](spring-boot-starter-web-3.2.4.jar/META-INF/NOTICE.txt)
 
-**28** **Group:** `org.springframework.boot` **Name:** `spring-boot-starter-web` **Version:** `3.2.0` 
+**28** **Group:** `org.springframework.boot` **Name:** `spring-boot-starter-web` **Version:** `3.3.0` 
 > - **POM Project URL**: [https://spring.io/projects/spring-boot](https://spring.io/projects/spring-boot)
 > - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0)
-> - **Embedded license files**: [spring-boot-starter-web-3.2.0.jar/META-INF/LICENSE.txt](spring-boot-starter-web-3.2.0.jar/META-INF/LICENSE.txt) 
-    - [spring-boot-starter-web-3.2.0.jar/META-INF/NOTICE.txt](spring-boot-starter-web-3.2.0.jar/META-INF/NOTICE.txt)
+> - **Embedded license files**: [spring-boot-starter-web-3.3.0.jar/META-INF/LICENSE.txt](spring-boot-starter-web-3.3.0.jar/META-INF/LICENSE.txt) 
+    - [spring-boot-starter-web-3.3.0.jar/META-INF/NOTICE.txt](spring-boot-starter-web-3.3.0.jar/META-INF/NOTICE.txt)
 
 ## BSD Zero Clause License
 
@@ -167,21 +167,21 @@ _2024-02-13 21:42:39 MEZ_
 > - **POM License**: BSD Zero Clause License - [https://opensource.org/licenses/0BSD](https://opensource.org/licenses/0BSD)
 > - **POM License**: The 2-Clause BSD License - [https://opensource.org/licenses/BSD-2-Clause](https://opensource.org/licenses/BSD-2-Clause)
 
-**30** **Group:** `com.miglayout` **Name:** `miglayout-swing` **Version:** `11.2` 
+**30** **Group:** `com.miglayout` **Name:** `miglayout-swing` **Version:** `11.3` 
 > - **POM Project URL**: [http://www.miglayout.com/](http://www.miglayout.com/)
 > - **POM License**: BSD Zero Clause License - [https://opensource.org/licenses/0BSD](https://opensource.org/licenses/0BSD)
 
 ## Bouncy Castle Licence
 
-**31** **Group:** `org.bouncycastle` **Name:** `bcpkix-jdk18on` **Version:** `1.77` 
+**31** **Group:** `org.bouncycastle` **Name:** `bcpkix-jdk18on` **Version:** `1.78` 
 > - **POM Project URL**: [https://www.bouncycastle.org/java.html](https://www.bouncycastle.org/java.html)
 > - **POM License**: Bouncy Castle Licence - [https://www.bouncycastle.org/licence.html](https://www.bouncycastle.org/licence.html)
 
 ## GNU LESSER GENERAL PUBLIC LICENSE, Version 2.1
 
-**32** **Group:** `org.javassist` **Name:** `javassist` **Version:** `3.29.2-GA` 
+**32** **Group:** `org.javassist` **Name:** `javassist` **Version:** `3.30.2-GA` 
 > - **Manifest License**: Apache License, Version 2.0 (Not Packaged)
-> - **POM Project URL**: [http://www.javassist.org/](http://www.javassist.org/)
+> - **POM Project URL**: [https://www.javassist.org/](https://www.javassist.org/)
 > - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0)
 > - **POM License**: GNU LESSER GENERAL PUBLIC LICENSE, Version 2.1 - [https://www.gnu.org/licenses/lgpl-2.1](https://www.gnu.org/licenses/lgpl-2.1)
 > - **POM License**: Mozilla Public License Version 1.1 - [https://www.mozilla.org/en-US/MPL/1.1](https://www.mozilla.org/en-US/MPL/1.1)
@@ -192,33 +192,33 @@ _2024-02-13 21:42:39 MEZ_
 
 ## GNU Lesser General Public License v3.0
 
-**34** **Group:** `com.electronwill.night-config` **Name:** `toml` **Version:** `3.6.7` 
-> - **POM Project URL**: [https://github.com/TheElectronWill/Night-Config](https://github.com/TheElectronWill/Night-Config)
+**34** **Group:** `com.electronwill.night-config` **Name:** `toml` **Version:** `3.7.1` 
+> - **POM Project URL**: [https://github.com/TheElectronWill/night-config](https://github.com/TheElectronWill/night-config)
 > - **POM License**: GNU Lesser General Public License v3.0 - [https://www.gnu.org/licenses/lgpl-3.0.txt](https://www.gnu.org/licenses/lgpl-3.0.txt)
 
 ## Mozilla Public License Version 1.1
 
-**35** **Group:** `org.javassist` **Name:** `javassist` **Version:** `3.29.2-GA` 
+**35** **Group:** `org.javassist` **Name:** `javassist` **Version:** `3.30.2-GA` 
 > - **Manifest License**: Apache License, Version 2.0 (Not Packaged)
-> - **POM Project URL**: [http://www.javassist.org/](http://www.javassist.org/)
+> - **POM Project URL**: [https://www.javassist.org/](https://www.javassist.org/)
 > - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0)
 > - **POM License**: GNU LESSER GENERAL PUBLIC LICENSE, Version 2.1 - [https://www.gnu.org/licenses/lgpl-2.1](https://www.gnu.org/licenses/lgpl-2.1)
 > - **POM License**: Mozilla Public License Version 1.1 - [https://www.mozilla.org/en-US/MPL/1.1](https://www.mozilla.org/en-US/MPL/1.1)
 
 ## SIL OPEN FONT LICENSE Version 1.1
 
-**36** **Group:** `com.formdev` **Name:** `flatlaf-fonts-inter` **Version:** `3.19` 
+**36** **Group:** `com.formdev` **Name:** `flatlaf-fonts-inter` **Version:** `4.0` 
 > - **POM Project URL**: [https://github.com/JFormDesigner/FlatLaf](https://github.com/JFormDesigner/FlatLaf)
 > - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0)
 > - **POM License**: SIL OPEN FONT LICENSE Version 1.1 - [https://choosealicense.com/licenses/ofl-1.1/](https://choosealicense.com/licenses/ofl-1.1/)
-> - **Embedded license files**: [flatlaf-fonts-inter-3.19.jar/META-INF/LICENSE](flatlaf-fonts-inter-3.19.jar/META-INF/LICENSE) 
-    - [flatlaf-fonts-inter-3.19.jar/com/formdev/flatlaf/fonts/inter/LICENSE.txt](flatlaf-fonts-inter-3.19.jar/com/formdev/flatlaf/fonts/inter/LICENSE.txt)
+> - **Embedded license files**: [flatlaf-fonts-inter-4.0.jar/META-INF/LICENSE](flatlaf-fonts-inter-4.0.jar/META-INF/LICENSE) 
+    - [flatlaf-fonts-inter-4.0.jar/com/formdev/flatlaf/fonts/inter/LICENSE.txt](flatlaf-fonts-inter-4.0.jar/com/formdev/flatlaf/fonts/inter/LICENSE.txt)
 
-**37** **Group:** `com.formdev` **Name:** `flatlaf-fonts-jetbrains-mono` **Version:** `2.242` 
+**37** **Group:** `com.formdev` **Name:** `flatlaf-fonts-jetbrains-mono` **Version:** `2.304` 
 > - **POM Project URL**: [https://github.com/JFormDesigner/FlatLaf](https://github.com/JFormDesigner/FlatLaf)
 > - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0)
 > - **POM License**: SIL OPEN FONT LICENSE Version 1.1 - [https://choosealicense.com/licenses/ofl-1.1/](https://choosealicense.com/licenses/ofl-1.1/)
-> - **Embedded license files**: [flatlaf-fonts-jetbrains-mono-2.242.jar/META-INF/LICENSE](flatlaf-fonts-jetbrains-mono-2.242.jar/META-INF/LICENSE)
+> - **Embedded license files**: [flatlaf-fonts-jetbrains-mono-2.304.jar/META-INF/LICENSE](flatlaf-fonts-jetbrains-mono-2.304.jar/META-INF/LICENSE)
 
 ## The 2-Clause BSD License
 
@@ -227,16 +227,16 @@ _2024-02-13 21:42:39 MEZ_
 > - **POM License**: BSD Zero Clause License - [https://opensource.org/licenses/0BSD](https://opensource.org/licenses/0BSD)
 > - **POM License**: The 2-Clause BSD License - [https://opensource.org/licenses/BSD-2-Clause](https://opensource.org/licenses/BSD-2-Clause)
 
-**39** **Group:** `org.postgresql` **Name:** `postgresql` **Version:** `42.6.0` 
+**39** **Group:** `org.postgresql` **Name:** `postgresql` **Version:** `42.7.3` 
 > - **Manifest Project URL**: [https://jdbc.postgresql.org/](https://jdbc.postgresql.org/)
 > - **Manifest License**: The 2-Clause BSD License (Not Packaged)
 > - **POM Project URL**: [https://jdbc.postgresql.org](https://jdbc.postgresql.org)
 > - **POM License**: The 2-Clause BSD License - [https://opensource.org/licenses/BSD-2-Clause](https://opensource.org/licenses/BSD-2-Clause)
-> - **Embedded license files**: [postgresql-42.6.0.jar/META-INF/LICENSE](postgresql-42.6.0.jar/META-INF/LICENSE) 
-    - [postgresql-42.6.0.jar/META-INF/licenses/com.ongres.scram/client-2.1/LICENSE](postgresql-42.6.0.jar/META-INF/licenses/com.ongres.scram/client-2.1/LICENSE) 
-    - [postgresql-42.6.0.jar/META-INF/licenses/com.ongres.scram/common-2.1/LICENSE](postgresql-42.6.0.jar/META-INF/licenses/com.ongres.scram/common-2.1/LICENSE) 
-    - [postgresql-42.6.0.jar/META-INF/licenses/com.ongres.stringprep/saslprep-1.1/LICENSE](postgresql-42.6.0.jar/META-INF/licenses/com.ongres.stringprep/saslprep-1.1/LICENSE) 
-    - [postgresql-42.6.0.jar/META-INF/licenses/com.ongres.stringprep/stringprep-1.1/LICENSE](postgresql-42.6.0.jar/META-INF/licenses/com.ongres.stringprep/stringprep-1.1/LICENSE)
+> - **Embedded license files**: [postgresql-42.7.3.jar/META-INF/LICENSE](postgresql-42.7.3.jar/META-INF/LICENSE) 
+    - [postgresql-42.7.3.jar/META-INF/licenses/com.ongres.scram/client-2.1/LICENSE](postgresql-42.7.3.jar/META-INF/licenses/com.ongres.scram/client-2.1/LICENSE) 
+    - [postgresql-42.7.3.jar/META-INF/licenses/com.ongres.scram/common-2.1/LICENSE](postgresql-42.7.3.jar/META-INF/licenses/com.ongres.scram/common-2.1/LICENSE) 
+    - [postgresql-42.7.3.jar/META-INF/licenses/com.ongres.stringprep/saslprep-1.1/LICENSE](postgresql-42.7.3.jar/META-INF/licenses/com.ongres.stringprep/saslprep-1.1/LICENSE) 
+    - [postgresql-42.7.3.jar/META-INF/licenses/com.ongres.stringprep/stringprep-1.1/LICENSE](postgresql-42.7.3.jar/META-INF/licenses/com.ongres.stringprep/stringprep-1.1/LICENSE)
 
 ## The 3-Clause BSD License
 
@@ -246,16 +246,16 @@ _2024-02-13 21:42:39 MEZ_
 
 ## Unknown
 
-**41** **Group:** `de.comahe.i18n4k` **Name:** `i18n4k-core` **Version:** `0.6.2` 
+**41** **Group:** `de.comahe.i18n4k` **Name:** `i18n4k-core` **Version:** `0.7.0` 
 
-**42** **Group:** `de.jensklingenberg.ktorfit` **Name:** `ktorfit-lib` **Version:** `1.9.0` 
+**42** **Group:** `de.jensklingenberg.ktorfit` **Name:** `ktorfit-lib` **Version:** `1.14.0` 
 
 **43** **Group:** `io.github.microutils` **Name:** `kotlin-logging` **Version:** `3.0.5` 
 
-**44** **Group:** `org.jetbrains.kotlin` **Name:** `kotlin-bom` **Version:** `1.9.21` 
+**44** **Group:** `org.jetbrains.kotlin` **Name:** `kotlin-bom` **Version:** `1.9.23` 
 
-**45** **Group:** `org.jetbrains.kotlinx` **Name:** `kotlinx-coroutines-core` **Version:** `1.7.3` 
+**45** **Group:** `org.jetbrains.kotlinx` **Name:** `kotlinx-coroutines-core` **Version:** `1.8.0` 
 
-**46** **Group:** `org.jetbrains.kotlinx` **Name:** `kotlinx-datetime` **Version:** `0.4.1` 
+**46** **Group:** `org.jetbrains.kotlinx` **Name:** `kotlinx-datetime` **Version:** `0.5.0` 
 
 
diff --git a/licenses/log4j-api-2.23.1.jar/META-INF/LICENSE b/licenses/log4j-api-2.23.1.jar/META-INF/LICENSE
new file mode 100644
index 000000000..d64569567
--- /dev/null
+++ b/licenses/log4j-api-2.23.1.jar/META-INF/LICENSE
@@ -0,0 +1,202 @@
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
diff --git a/licenses/log4j-api-2.23.1.jar/META-INF/NOTICE b/licenses/log4j-api-2.23.1.jar/META-INF/NOTICE
new file mode 100644
index 000000000..62c3d128f
--- /dev/null
+++ b/licenses/log4j-api-2.23.1.jar/META-INF/NOTICE
@@ -0,0 +1,6 @@
+Apache Log4j API
+Copyright 1999-2024 The Apache Software Foundation
+
+
+This product includes software developed at
+The Apache Software Foundation (http://www.apache.org/).
diff --git a/licenses/log4j-api-kotlin-1.4.0.jar/META-INF/LICENSE b/licenses/log4j-api-kotlin-1.4.0.jar/META-INF/LICENSE
new file mode 100644
index 000000000..d64569567
--- /dev/null
+++ b/licenses/log4j-api-kotlin-1.4.0.jar/META-INF/LICENSE
@@ -0,0 +1,202 @@
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
diff --git a/licenses/log4j-api-kotlin-1.4.0.jar/META-INF/NOTICE b/licenses/log4j-api-kotlin-1.4.0.jar/META-INF/NOTICE
new file mode 100644
index 000000000..ffacd8ed1
--- /dev/null
+++ b/licenses/log4j-api-kotlin-1.4.0.jar/META-INF/NOTICE
@@ -0,0 +1,6 @@
+Apache Log4j Kotlin API
+Copyright 1999-2023 The Apache Software Foundation
+
+
+This product includes software developed at
+The Apache Software Foundation (http://www.apache.org/).
diff --git a/licenses/log4j-core-2.23.1.jar/META-INF/LICENSE b/licenses/log4j-core-2.23.1.jar/META-INF/LICENSE
new file mode 100644
index 000000000..6279e5206
--- /dev/null
+++ b/licenses/log4j-core-2.23.1.jar/META-INF/LICENSE
@@ -0,0 +1,202 @@
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright 1999-2005 The Apache Software Foundation
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
diff --git a/licenses/log4j-core-2.23.1.jar/META-INF/NOTICE b/licenses/log4j-core-2.23.1.jar/META-INF/NOTICE
new file mode 100644
index 000000000..97ccc5358
--- /dev/null
+++ b/licenses/log4j-core-2.23.1.jar/META-INF/NOTICE
@@ -0,0 +1,8 @@
+Apache Log4j Core
+Copyright 1999-2012 Apache Software Foundation
+
+This product includes software developed at
+The Apache Software Foundation (http://www.apache.org/).
+
+ResolverUtil.java
+Copyright 2005-2006 Tim Fennell
\ No newline at end of file
diff --git a/licenses/log4j-jul-2.23.1.jar/META-INF/LICENSE b/licenses/log4j-jul-2.23.1.jar/META-INF/LICENSE
new file mode 100644
index 000000000..d64569567
--- /dev/null
+++ b/licenses/log4j-jul-2.23.1.jar/META-INF/LICENSE
@@ -0,0 +1,202 @@
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
diff --git a/licenses/log4j-jul-2.23.1.jar/META-INF/NOTICE b/licenses/log4j-jul-2.23.1.jar/META-INF/NOTICE
new file mode 100644
index 000000000..a15ae3cbd
--- /dev/null
+++ b/licenses/log4j-jul-2.23.1.jar/META-INF/NOTICE
@@ -0,0 +1,6 @@
+Apache Log4j JUL Adapter
+Copyright 1999-2024 The Apache Software Foundation
+
+
+This product includes software developed at
+The Apache Software Foundation (http://www.apache.org/).
diff --git a/licenses/log4j-slf4j2-impl-2.23.1.jar/META-INF/LICENSE b/licenses/log4j-slf4j2-impl-2.23.1.jar/META-INF/LICENSE
new file mode 100644
index 000000000..d64569567
--- /dev/null
+++ b/licenses/log4j-slf4j2-impl-2.23.1.jar/META-INF/LICENSE
@@ -0,0 +1,202 @@
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
diff --git a/licenses/log4j-slf4j2-impl-2.23.1.jar/META-INF/NOTICE b/licenses/log4j-slf4j2-impl-2.23.1.jar/META-INF/NOTICE
new file mode 100644
index 000000000..6cad5dcef
--- /dev/null
+++ b/licenses/log4j-slf4j2-impl-2.23.1.jar/META-INF/NOTICE
@@ -0,0 +1,6 @@
+Apache Log4j SLF4J 2.0 Binding
+Copyright 1999-2024 The Apache Software Foundation
+
+
+This product includes software developed at
+The Apache Software Foundation (http://www.apache.org/).
diff --git a/licenses/micrometer-commons-1.12.4.jar/META-INF/LICENSE b/licenses/micrometer-commons-1.12.4.jar/META-INF/LICENSE
new file mode 100644
index 000000000..9b259bdfc
--- /dev/null
+++ b/licenses/micrometer-commons-1.12.4.jar/META-INF/LICENSE
@@ -0,0 +1,201 @@
+                                 Apache License
+                           Version 2.0, January 2004
+                        https://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "{}"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright {yyyy} {name of copyright owner}
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       https://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
diff --git a/licenses/micrometer-commons-1.12.4.jar/META-INF/NOTICE b/licenses/micrometer-commons-1.12.4.jar/META-INF/NOTICE
new file mode 100644
index 000000000..076c3641f
--- /dev/null
+++ b/licenses/micrometer-commons-1.12.4.jar/META-INF/NOTICE
@@ -0,0 +1,45 @@
+Micrometer
+
+Copyright (c) 2017-Present VMware, Inc. All Rights Reserved.
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+   https://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+-------------------------------------------------------------------------------
+
+This product contains a modified portion of 'io.netty.util.internal.logging',
+in the Netty/Common library distributed by The Netty Project:
+
+  * Copyright 2013 The Netty Project
+  * License: Apache License v2.0
+  * Homepage: https://netty.io
+
+This product contains a modified portion of 'StringUtils.isBlank()',
+in the Commons Lang library distributed by The Apache Software Foundation:
+
+  * Copyright 2001-2019 The Apache Software Foundation
+  * License: Apache License v2.0
+  * Homepage: https://commons.apache.org/proper/commons-lang/
+
+This product contains a modified portion of 'JsonUtf8Writer',
+in the Moshi library distributed by Square, Inc:
+
+  * Copyright 2010 Google Inc.
+  * License: Apache License v2.0
+  * Homepage: https://github.com/square/moshi
+
+This product contains a modified portion of the 'org.springframework.lang'
+package in the Spring Framework library, distributed by VMware, Inc:
+
+  * Copyright 2002-2019 the original author or authors.
+  * License: Apache License v2.0
+  * Homepage: https://spring.io/projects/spring-framework
diff --git a/licenses/micrometer-commons-1.13.0.jar/META-INF/LICENSE b/licenses/micrometer-commons-1.13.0.jar/META-INF/LICENSE
new file mode 100644
index 000000000..9b259bdfc
--- /dev/null
+++ b/licenses/micrometer-commons-1.13.0.jar/META-INF/LICENSE
@@ -0,0 +1,201 @@
+                                 Apache License
+                           Version 2.0, January 2004
+                        https://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "{}"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright {yyyy} {name of copyright owner}
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       https://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
diff --git a/licenses/micrometer-commons-1.13.0.jar/META-INF/NOTICE b/licenses/micrometer-commons-1.13.0.jar/META-INF/NOTICE
new file mode 100644
index 000000000..076c3641f
--- /dev/null
+++ b/licenses/micrometer-commons-1.13.0.jar/META-INF/NOTICE
@@ -0,0 +1,45 @@
+Micrometer
+
+Copyright (c) 2017-Present VMware, Inc. All Rights Reserved.
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+   https://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+-------------------------------------------------------------------------------
+
+This product contains a modified portion of 'io.netty.util.internal.logging',
+in the Netty/Common library distributed by The Netty Project:
+
+  * Copyright 2013 The Netty Project
+  * License: Apache License v2.0
+  * Homepage: https://netty.io
+
+This product contains a modified portion of 'StringUtils.isBlank()',
+in the Commons Lang library distributed by The Apache Software Foundation:
+
+  * Copyright 2001-2019 The Apache Software Foundation
+  * License: Apache License v2.0
+  * Homepage: https://commons.apache.org/proper/commons-lang/
+
+This product contains a modified portion of 'JsonUtf8Writer',
+in the Moshi library distributed by Square, Inc:
+
+  * Copyright 2010 Google Inc.
+  * License: Apache License v2.0
+  * Homepage: https://github.com/square/moshi
+
+This product contains a modified portion of the 'org.springframework.lang'
+package in the Spring Framework library, distributed by VMware, Inc:
+
+  * Copyright 2002-2019 the original author or authors.
+  * License: Apache License v2.0
+  * Homepage: https://spring.io/projects/spring-framework
diff --git a/licenses/micrometer-observation-1.12.4.jar/META-INF/LICENSE b/licenses/micrometer-observation-1.12.4.jar/META-INF/LICENSE
new file mode 100644
index 000000000..9b259bdfc
--- /dev/null
+++ b/licenses/micrometer-observation-1.12.4.jar/META-INF/LICENSE
@@ -0,0 +1,201 @@
+                                 Apache License
+                           Version 2.0, January 2004
+                        https://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "{}"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright {yyyy} {name of copyright owner}
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       https://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
diff --git a/licenses/micrometer-observation-1.12.4.jar/META-INF/NOTICE b/licenses/micrometer-observation-1.12.4.jar/META-INF/NOTICE
new file mode 100644
index 000000000..076c3641f
--- /dev/null
+++ b/licenses/micrometer-observation-1.12.4.jar/META-INF/NOTICE
@@ -0,0 +1,45 @@
+Micrometer
+
+Copyright (c) 2017-Present VMware, Inc. All Rights Reserved.
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+   https://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+-------------------------------------------------------------------------------
+
+This product contains a modified portion of 'io.netty.util.internal.logging',
+in the Netty/Common library distributed by The Netty Project:
+
+  * Copyright 2013 The Netty Project
+  * License: Apache License v2.0
+  * Homepage: https://netty.io
+
+This product contains a modified portion of 'StringUtils.isBlank()',
+in the Commons Lang library distributed by The Apache Software Foundation:
+
+  * Copyright 2001-2019 The Apache Software Foundation
+  * License: Apache License v2.0
+  * Homepage: https://commons.apache.org/proper/commons-lang/
+
+This product contains a modified portion of 'JsonUtf8Writer',
+in the Moshi library distributed by Square, Inc:
+
+  * Copyright 2010 Google Inc.
+  * License: Apache License v2.0
+  * Homepage: https://github.com/square/moshi
+
+This product contains a modified portion of the 'org.springframework.lang'
+package in the Spring Framework library, distributed by VMware, Inc:
+
+  * Copyright 2002-2019 the original author or authors.
+  * License: Apache License v2.0
+  * Homepage: https://spring.io/projects/spring-framework
diff --git a/licenses/micrometer-observation-1.13.0.jar/META-INF/LICENSE b/licenses/micrometer-observation-1.13.0.jar/META-INF/LICENSE
new file mode 100644
index 000000000..9b259bdfc
--- /dev/null
+++ b/licenses/micrometer-observation-1.13.0.jar/META-INF/LICENSE
@@ -0,0 +1,201 @@
+                                 Apache License
+                           Version 2.0, January 2004
+                        https://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "{}"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright {yyyy} {name of copyright owner}
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       https://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
diff --git a/licenses/micrometer-observation-1.13.0.jar/META-INF/NOTICE b/licenses/micrometer-observation-1.13.0.jar/META-INF/NOTICE
new file mode 100644
index 000000000..076c3641f
--- /dev/null
+++ b/licenses/micrometer-observation-1.13.0.jar/META-INF/NOTICE
@@ -0,0 +1,45 @@
+Micrometer
+
+Copyright (c) 2017-Present VMware, Inc. All Rights Reserved.
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+   https://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+-------------------------------------------------------------------------------
+
+This product contains a modified portion of 'io.netty.util.internal.logging',
+in the Netty/Common library distributed by The Netty Project:
+
+  * Copyright 2013 The Netty Project
+  * License: Apache License v2.0
+  * Homepage: https://netty.io
+
+This product contains a modified portion of 'StringUtils.isBlank()',
+in the Commons Lang library distributed by The Apache Software Foundation:
+
+  * Copyright 2001-2019 The Apache Software Foundation
+  * License: Apache License v2.0
+  * Homepage: https://commons.apache.org/proper/commons-lang/
+
+This product contains a modified portion of 'JsonUtf8Writer',
+in the Moshi library distributed by Square, Inc:
+
+  * Copyright 2010 Google Inc.
+  * License: Apache License v2.0
+  * Homepage: https://github.com/square/moshi
+
+This product contains a modified portion of the 'org.springframework.lang'
+package in the Spring Framework library, distributed by VMware, Inc:
+
+  * Copyright 2002-2019 the original author or authors.
+  * License: Apache License v2.0
+  * Homepage: https://spring.io/projects/spring-framework
diff --git a/licenses/postgresql-42.6.2.jar/META-INF/LICENSE b/licenses/postgresql-42.6.2.jar/META-INF/LICENSE
new file mode 100644
index 000000000..daa7e320f
--- /dev/null
+++ b/licenses/postgresql-42.6.2.jar/META-INF/LICENSE
@@ -0,0 +1,33 @@
+Copyright (c) 1997, PostgreSQL Global Development Group
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+1. Redistributions of source code must retain the above copyright notice,
+   this list of conditions and the following disclaimer.
+2. Redistributions in binary form must reproduce the above copyright notice,
+   this list of conditions and the following disclaimer in the documentation
+   and/or other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+
+Additional License files can be found in the 'licenses' folder located in the same directory as the LICENSE file (i.e. this file)
+
+- Software produced outside the ASF which is available under other licenses (not Apache-2.0)
+
+BSD-2-Clause
+* com.ongres.scram:client:2.1
+* com.ongres.scram:common:2.1
+* com.ongres.stringprep:saslprep:1.1
+* com.ongres.stringprep:stringprep:1.1
diff --git a/licenses/postgresql-42.6.2.jar/META-INF/licenses/com.ongres.scram/client-2.1/LICENSE b/licenses/postgresql-42.6.2.jar/META-INF/licenses/com.ongres.scram/client-2.1/LICENSE
new file mode 100644
index 000000000..13fdb102a
--- /dev/null
+++ b/licenses/postgresql-42.6.2.jar/META-INF/licenses/com.ongres.scram/client-2.1/LICENSE
@@ -0,0 +1,22 @@
+Copyright 2017, OnGres.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+1. Redistributions of source code must retain the above copyright notice, this
+list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright notice,
+this list of conditions and the following disclaimer in the documentation and/or
+other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/licenses/postgresql-42.6.2.jar/META-INF/licenses/com.ongres.scram/common-2.1/LICENSE b/licenses/postgresql-42.6.2.jar/META-INF/licenses/com.ongres.scram/common-2.1/LICENSE
new file mode 100644
index 000000000..13fdb102a
--- /dev/null
+++ b/licenses/postgresql-42.6.2.jar/META-INF/licenses/com.ongres.scram/common-2.1/LICENSE
@@ -0,0 +1,22 @@
+Copyright 2017, OnGres.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+1. Redistributions of source code must retain the above copyright notice, this
+list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright notice,
+this list of conditions and the following disclaimer in the documentation and/or
+other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/licenses/postgresql-42.6.2.jar/META-INF/licenses/com.ongres.stringprep/saslprep-1.1/LICENSE b/licenses/postgresql-42.6.2.jar/META-INF/licenses/com.ongres.stringprep/saslprep-1.1/LICENSE
new file mode 100644
index 000000000..84b3fe0cd
--- /dev/null
+++ b/licenses/postgresql-42.6.2.jar/META-INF/licenses/com.ongres.stringprep/saslprep-1.1/LICENSE
@@ -0,0 +1,22 @@
+Copyright 2019, OnGres.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+1. Redistributions of source code must retain the above copyright notice, this
+list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright notice,
+this list of conditions and the following disclaimer in the documentation and/or
+other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/licenses/postgresql-42.6.2.jar/META-INF/licenses/com.ongres.stringprep/stringprep-1.1/LICENSE b/licenses/postgresql-42.6.2.jar/META-INF/licenses/com.ongres.stringprep/stringprep-1.1/LICENSE
new file mode 100644
index 000000000..84b3fe0cd
--- /dev/null
+++ b/licenses/postgresql-42.6.2.jar/META-INF/licenses/com.ongres.stringprep/stringprep-1.1/LICENSE
@@ -0,0 +1,22 @@
+Copyright 2019, OnGres.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+1. Redistributions of source code must retain the above copyright notice, this
+list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright notice,
+this list of conditions and the following disclaimer in the documentation and/or
+other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/licenses/postgresql-42.7.3.jar/META-INF/LICENSE b/licenses/postgresql-42.7.3.jar/META-INF/LICENSE
new file mode 100644
index 000000000..daa7e320f
--- /dev/null
+++ b/licenses/postgresql-42.7.3.jar/META-INF/LICENSE
@@ -0,0 +1,33 @@
+Copyright (c) 1997, PostgreSQL Global Development Group
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+1. Redistributions of source code must retain the above copyright notice,
+   this list of conditions and the following disclaimer.
+2. Redistributions in binary form must reproduce the above copyright notice,
+   this list of conditions and the following disclaimer in the documentation
+   and/or other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+
+Additional License files can be found in the 'licenses' folder located in the same directory as the LICENSE file (i.e. this file)
+
+- Software produced outside the ASF which is available under other licenses (not Apache-2.0)
+
+BSD-2-Clause
+* com.ongres.scram:client:2.1
+* com.ongres.scram:common:2.1
+* com.ongres.stringprep:saslprep:1.1
+* com.ongres.stringprep:stringprep:1.1
diff --git a/licenses/postgresql-42.7.3.jar/META-INF/licenses/com.ongres.scram/client-2.1/LICENSE b/licenses/postgresql-42.7.3.jar/META-INF/licenses/com.ongres.scram/client-2.1/LICENSE
new file mode 100644
index 000000000..13fdb102a
--- /dev/null
+++ b/licenses/postgresql-42.7.3.jar/META-INF/licenses/com.ongres.scram/client-2.1/LICENSE
@@ -0,0 +1,22 @@
+Copyright 2017, OnGres.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+1. Redistributions of source code must retain the above copyright notice, this
+list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright notice,
+this list of conditions and the following disclaimer in the documentation and/or
+other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/licenses/postgresql-42.7.3.jar/META-INF/licenses/com.ongres.scram/common-2.1/LICENSE b/licenses/postgresql-42.7.3.jar/META-INF/licenses/com.ongres.scram/common-2.1/LICENSE
new file mode 100644
index 000000000..13fdb102a
--- /dev/null
+++ b/licenses/postgresql-42.7.3.jar/META-INF/licenses/com.ongres.scram/common-2.1/LICENSE
@@ -0,0 +1,22 @@
+Copyright 2017, OnGres.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+1. Redistributions of source code must retain the above copyright notice, this
+list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright notice,
+this list of conditions and the following disclaimer in the documentation and/or
+other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/licenses/postgresql-42.7.3.jar/META-INF/licenses/com.ongres.stringprep/saslprep-1.1/LICENSE b/licenses/postgresql-42.7.3.jar/META-INF/licenses/com.ongres.stringprep/saslprep-1.1/LICENSE
new file mode 100644
index 000000000..84b3fe0cd
--- /dev/null
+++ b/licenses/postgresql-42.7.3.jar/META-INF/licenses/com.ongres.stringprep/saslprep-1.1/LICENSE
@@ -0,0 +1,22 @@
+Copyright 2019, OnGres.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+1. Redistributions of source code must retain the above copyright notice, this
+list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright notice,
+this list of conditions and the following disclaimer in the documentation and/or
+other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/licenses/postgresql-42.7.3.jar/META-INF/licenses/com.ongres.stringprep/stringprep-1.1/LICENSE b/licenses/postgresql-42.7.3.jar/META-INF/licenses/com.ongres.stringprep/stringprep-1.1/LICENSE
new file mode 100644
index 000000000..84b3fe0cd
--- /dev/null
+++ b/licenses/postgresql-42.7.3.jar/META-INF/licenses/com.ongres.stringprep/stringprep-1.1/LICENSE
@@ -0,0 +1,22 @@
+Copyright 2019, OnGres.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+1. Redistributions of source code must retain the above copyright notice, this
+list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright notice,
+this list of conditions and the following disclaimer in the documentation and/or
+other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/licenses/slf4j-api-2.0.12.jar/META-INF/LICENSE.txt b/licenses/slf4j-api-2.0.12.jar/META-INF/LICENSE.txt
new file mode 100644
index 000000000..1a3d05323
--- /dev/null
+++ b/licenses/slf4j-api-2.0.12.jar/META-INF/LICENSE.txt
@@ -0,0 +1,24 @@
+Copyright (c) 2004-2022 QOS.ch Sarl (Switzerland)
+All rights reserved.
+
+Permission is hereby granted, free  of charge, to any person obtaining
+a  copy  of this  software  and  associated  documentation files  (the
+"Software"), to  deal in  the Software without  restriction, including
+without limitation  the rights to  use, copy, modify,  merge, publish,
+distribute,  sublicense, and/or sell  copies of  the Software,  and to
+permit persons to whom the Software  is furnished to do so, subject to
+the following conditions:
+
+The  above  copyright  notice  and  this permission  notice  shall  be
+included in all copies or substantial portions of the Software.
+
+THE  SOFTWARE IS  PROVIDED  "AS  IS", WITHOUT  WARRANTY  OF ANY  KIND,
+EXPRESS OR  IMPLIED, INCLUDING  BUT NOT LIMITED  TO THE  WARRANTIES OF
+MERCHANTABILITY,    FITNESS    FOR    A   PARTICULAR    PURPOSE    AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE,  ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+
+
diff --git a/licenses/slf4j-api-2.0.13.jar/META-INF/LICENSE.txt b/licenses/slf4j-api-2.0.13.jar/META-INF/LICENSE.txt
new file mode 100644
index 000000000..1a3d05323
--- /dev/null
+++ b/licenses/slf4j-api-2.0.13.jar/META-INF/LICENSE.txt
@@ -0,0 +1,24 @@
+Copyright (c) 2004-2022 QOS.ch Sarl (Switzerland)
+All rights reserved.
+
+Permission is hereby granted, free  of charge, to any person obtaining
+a  copy  of this  software  and  associated  documentation files  (the
+"Software"), to  deal in  the Software without  restriction, including
+without limitation  the rights to  use, copy, modify,  merge, publish,
+distribute,  sublicense, and/or sell  copies of  the Software,  and to
+permit persons to whom the Software  is furnished to do so, subject to
+the following conditions:
+
+The  above  copyright  notice  and  this permission  notice  shall  be
+included in all copies or substantial portions of the Software.
+
+THE  SOFTWARE IS  PROVIDED  "AS  IS", WITHOUT  WARRANTY  OF ANY  KIND,
+EXPRESS OR  IMPLIED, INCLUDING  BUT NOT LIMITED  TO THE  WARRANTIES OF
+MERCHANTABILITY,    FITNESS    FOR    A   PARTICULAR    PURPOSE    AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE,  ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+
+
diff --git a/licenses/spring-aop-6.1.5.jar/META-INF/license.txt b/licenses/spring-aop-6.1.5.jar/META-INF/license.txt
new file mode 100644
index 000000000..d8ab95394
--- /dev/null
+++ b/licenses/spring-aop-6.1.5.jar/META-INF/license.txt
@@ -0,0 +1,297 @@
+                                 Apache License
+                           Version 2.0, January 2004
+                        https://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       https://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+
+=======================================================================
+
+SPRING FRAMEWORK 6.1.5 SUBCOMPONENTS:
+
+Spring Framework 6.1.5 includes a number of subcomponents
+with separate copyright notices and license terms. The product that
+includes this file does not necessarily use all the open source
+subcomponents referred to below. Your use of the source
+code for these subcomponents is subject to the terms and
+conditions of the following licenses.
+
+
+>>> ASM 9.1 (org.ow2.asm:asm:9.1, org.ow2.asm:asm-commons:9.1):
+
+Copyright (c) 2000-2011 INRIA, France Telecom
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+1. Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+
+3. Neither the name of the copyright holders nor the names of its
+   contributors may be used to endorse or promote products derived from
+   this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+THE POSSIBILITY OF SUCH DAMAGE.
+
+Copyright (c) 1999-2009, OW2 Consortium <https://www.ow2.org/>
+
+
+>>> CGLIB 3.3 (cglib:cglib:3.3):
+
+Per the LICENSE file in the CGLIB JAR distribution downloaded from
+https://github.com/cglib/cglib/releases/download/RELEASE_3_3_0/cglib-3.3.0.jar,
+CGLIB 3.3 is licensed under the Apache License, version 2.0, the text of which
+is included above.
+
+
+>>> JavaPoet 1.13.0 (com.squareup:javapoet:1.13.0):
+
+Per the LICENSE file in the JavaPoet JAR distribution downloaded from
+https://github.com/square/javapoet/archive/refs/tags/javapoet-1.13.0.zip,
+JavaPoet 1.13.0 is licensed under the Apache License, version 2.0, the text of
+which is included above.
+
+
+>>> Objenesis 3.2 (org.objenesis:objenesis:3.2):
+
+Per the LICENSE file in the Objenesis ZIP distribution downloaded from
+http://objenesis.org/download.html, Objenesis 3.2 is licensed under the
+Apache License, version 2.0, the text of which is included above.
+
+Per the NOTICE file in the Objenesis ZIP distribution downloaded from
+http://objenesis.org/download.html and corresponding to section 4d of the
+Apache License, Version 2.0, in this case for Objenesis:
+
+Objenesis
+Copyright 2006-2019 Joe Walnes, Henri Tremblay, Leonardo Mesquita
+
+
+===============================================================================
+
+To the extent any open source components are licensed under the EPL and/or
+other similar licenses that require the source code and/or modifications to
+source code to be made available (as would be noted above), you may obtain a
+copy of the source code corresponding to the binaries for such open source
+components and modifications thereto, if any, (the "Source Files"), by
+downloading the Source Files from https://spring.io/projects, Pivotal's website
+at https://network.pivotal.io/open-source, or by sending a request, with your
+name and address to: Pivotal Software, Inc., 875 Howard Street, 5th floor, San
+Francisco, CA 94103, Attention: General Counsel. All such requests should
+clearly specify: OPEN SOURCE FILES REQUEST, Attention General Counsel. Pivotal
+can mail a copy of the Source Files to you on a CD or equivalent physical
+medium.
+
+This offer to obtain a copy of the Source Files is valid for three years from
+the date you acquired this Software product. Alternatively, the Source Files
+may accompany the Software.
diff --git a/licenses/spring-aop-6.1.5.jar/META-INF/notice.txt b/licenses/spring-aop-6.1.5.jar/META-INF/notice.txt
new file mode 100644
index 000000000..23f4051a3
--- /dev/null
+++ b/licenses/spring-aop-6.1.5.jar/META-INF/notice.txt
@@ -0,0 +1,11 @@
+Spring Framework 6.1.5
+Copyright (c) 2002-2024 Pivotal, Inc.
+
+This product is licensed to you under the Apache License, Version 2.0
+(the "License"). You may not use this product except in compliance with
+the License.
+
+This product may include a number of subcomponents with separate
+copyright notices and license terms. Your use of the source code for
+these subcomponents is subject to the terms and conditions of the
+subcomponent's license, as noted in the license.txt file.
diff --git a/licenses/spring-aop-6.1.8.jar/META-INF/license.txt b/licenses/spring-aop-6.1.8.jar/META-INF/license.txt
new file mode 100644
index 000000000..0c1fa9332
--- /dev/null
+++ b/licenses/spring-aop-6.1.8.jar/META-INF/license.txt
@@ -0,0 +1,297 @@
+                                 Apache License
+                           Version 2.0, January 2004
+                        https://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       https://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+
+=======================================================================
+
+SPRING FRAMEWORK 6.1.8 SUBCOMPONENTS:
+
+Spring Framework 6.1.8 includes a number of subcomponents
+with separate copyright notices and license terms. The product that
+includes this file does not necessarily use all the open source
+subcomponents referred to below. Your use of the source
+code for these subcomponents is subject to the terms and
+conditions of the following licenses.
+
+
+>>> ASM 9.1 (org.ow2.asm:asm:9.1, org.ow2.asm:asm-commons:9.1):
+
+Copyright (c) 2000-2011 INRIA, France Telecom
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+1. Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+
+3. Neither the name of the copyright holders nor the names of its
+   contributors may be used to endorse or promote products derived from
+   this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+THE POSSIBILITY OF SUCH DAMAGE.
+
+Copyright (c) 1999-2009, OW2 Consortium <https://www.ow2.org/>
+
+
+>>> CGLIB 3.3 (cglib:cglib:3.3):
+
+Per the LICENSE file in the CGLIB JAR distribution downloaded from
+https://github.com/cglib/cglib/releases/download/RELEASE_3_3_0/cglib-3.3.0.jar,
+CGLIB 3.3 is licensed under the Apache License, version 2.0, the text of which
+is included above.
+
+
+>>> JavaPoet 1.13.0 (com.squareup:javapoet:1.13.0):
+
+Per the LICENSE file in the JavaPoet JAR distribution downloaded from
+https://github.com/square/javapoet/archive/refs/tags/javapoet-1.13.0.zip,
+JavaPoet 1.13.0 is licensed under the Apache License, version 2.0, the text of
+which is included above.
+
+
+>>> Objenesis 3.2 (org.objenesis:objenesis:3.2):
+
+Per the LICENSE file in the Objenesis ZIP distribution downloaded from
+http://objenesis.org/download.html, Objenesis 3.2 is licensed under the
+Apache License, version 2.0, the text of which is included above.
+
+Per the NOTICE file in the Objenesis ZIP distribution downloaded from
+http://objenesis.org/download.html and corresponding to section 4d of the
+Apache License, Version 2.0, in this case for Objenesis:
+
+Objenesis
+Copyright 2006-2019 Joe Walnes, Henri Tremblay, Leonardo Mesquita
+
+
+===============================================================================
+
+To the extent any open source components are licensed under the EPL and/or
+other similar licenses that require the source code and/or modifications to
+source code to be made available (as would be noted above), you may obtain a
+copy of the source code corresponding to the binaries for such open source
+components and modifications thereto, if any, (the "Source Files"), by
+downloading the Source Files from https://spring.io/projects, Pivotal's website
+at https://network.pivotal.io/open-source, or by sending a request, with your
+name and address to: Pivotal Software, Inc., 875 Howard Street, 5th floor, San
+Francisco, CA 94103, Attention: General Counsel. All such requests should
+clearly specify: OPEN SOURCE FILES REQUEST, Attention General Counsel. Pivotal
+can mail a copy of the Source Files to you on a CD or equivalent physical
+medium.
+
+This offer to obtain a copy of the Source Files is valid for three years from
+the date you acquired this Software product. Alternatively, the Source Files
+may accompany the Software.
diff --git a/licenses/spring-aop-6.1.8.jar/META-INF/notice.txt b/licenses/spring-aop-6.1.8.jar/META-INF/notice.txt
new file mode 100644
index 000000000..f2a0096c6
--- /dev/null
+++ b/licenses/spring-aop-6.1.8.jar/META-INF/notice.txt
@@ -0,0 +1,11 @@
+Spring Framework 6.1.8
+Copyright (c) 2002-2024 Pivotal, Inc.
+
+This product is licensed to you under the Apache License, Version 2.0
+(the "License"). You may not use this product except in compliance with
+the License.
+
+This product may include a number of subcomponents with separate
+copyright notices and license terms. Your use of the source code for
+these subcomponents is subject to the terms and conditions of the
+subcomponent's license, as noted in the license.txt file.
diff --git a/licenses/spring-aspects-6.1.5.jar/META-INF/license.txt b/licenses/spring-aspects-6.1.5.jar/META-INF/license.txt
new file mode 100644
index 000000000..d8ab95394
--- /dev/null
+++ b/licenses/spring-aspects-6.1.5.jar/META-INF/license.txt
@@ -0,0 +1,297 @@
+                                 Apache License
+                           Version 2.0, January 2004
+                        https://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       https://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+
+=======================================================================
+
+SPRING FRAMEWORK 6.1.5 SUBCOMPONENTS:
+
+Spring Framework 6.1.5 includes a number of subcomponents
+with separate copyright notices and license terms. The product that
+includes this file does not necessarily use all the open source
+subcomponents referred to below. Your use of the source
+code for these subcomponents is subject to the terms and
+conditions of the following licenses.
+
+
+>>> ASM 9.1 (org.ow2.asm:asm:9.1, org.ow2.asm:asm-commons:9.1):
+
+Copyright (c) 2000-2011 INRIA, France Telecom
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+1. Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+
+3. Neither the name of the copyright holders nor the names of its
+   contributors may be used to endorse or promote products derived from
+   this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+THE POSSIBILITY OF SUCH DAMAGE.
+
+Copyright (c) 1999-2009, OW2 Consortium <https://www.ow2.org/>
+
+
+>>> CGLIB 3.3 (cglib:cglib:3.3):
+
+Per the LICENSE file in the CGLIB JAR distribution downloaded from
+https://github.com/cglib/cglib/releases/download/RELEASE_3_3_0/cglib-3.3.0.jar,
+CGLIB 3.3 is licensed under the Apache License, version 2.0, the text of which
+is included above.
+
+
+>>> JavaPoet 1.13.0 (com.squareup:javapoet:1.13.0):
+
+Per the LICENSE file in the JavaPoet JAR distribution downloaded from
+https://github.com/square/javapoet/archive/refs/tags/javapoet-1.13.0.zip,
+JavaPoet 1.13.0 is licensed under the Apache License, version 2.0, the text of
+which is included above.
+
+
+>>> Objenesis 3.2 (org.objenesis:objenesis:3.2):
+
+Per the LICENSE file in the Objenesis ZIP distribution downloaded from
+http://objenesis.org/download.html, Objenesis 3.2 is licensed under the
+Apache License, version 2.0, the text of which is included above.
+
+Per the NOTICE file in the Objenesis ZIP distribution downloaded from
+http://objenesis.org/download.html and corresponding to section 4d of the
+Apache License, Version 2.0, in this case for Objenesis:
+
+Objenesis
+Copyright 2006-2019 Joe Walnes, Henri Tremblay, Leonardo Mesquita
+
+
+===============================================================================
+
+To the extent any open source components are licensed under the EPL and/or
+other similar licenses that require the source code and/or modifications to
+source code to be made available (as would be noted above), you may obtain a
+copy of the source code corresponding to the binaries for such open source
+components and modifications thereto, if any, (the "Source Files"), by
+downloading the Source Files from https://spring.io/projects, Pivotal's website
+at https://network.pivotal.io/open-source, or by sending a request, with your
+name and address to: Pivotal Software, Inc., 875 Howard Street, 5th floor, San
+Francisco, CA 94103, Attention: General Counsel. All such requests should
+clearly specify: OPEN SOURCE FILES REQUEST, Attention General Counsel. Pivotal
+can mail a copy of the Source Files to you on a CD or equivalent physical
+medium.
+
+This offer to obtain a copy of the Source Files is valid for three years from
+the date you acquired this Software product. Alternatively, the Source Files
+may accompany the Software.
diff --git a/licenses/spring-aspects-6.1.5.jar/META-INF/notice.txt b/licenses/spring-aspects-6.1.5.jar/META-INF/notice.txt
new file mode 100644
index 000000000..23f4051a3
--- /dev/null
+++ b/licenses/spring-aspects-6.1.5.jar/META-INF/notice.txt
@@ -0,0 +1,11 @@
+Spring Framework 6.1.5
+Copyright (c) 2002-2024 Pivotal, Inc.
+
+This product is licensed to you under the Apache License, Version 2.0
+(the "License"). You may not use this product except in compliance with
+the License.
+
+This product may include a number of subcomponents with separate
+copyright notices and license terms. Your use of the source code for
+these subcomponents is subject to the terms and conditions of the
+subcomponent's license, as noted in the license.txt file.
diff --git a/licenses/spring-aspects-6.1.8.jar/META-INF/license.txt b/licenses/spring-aspects-6.1.8.jar/META-INF/license.txt
new file mode 100644
index 000000000..0c1fa9332
--- /dev/null
+++ b/licenses/spring-aspects-6.1.8.jar/META-INF/license.txt
@@ -0,0 +1,297 @@
+                                 Apache License
+                           Version 2.0, January 2004
+                        https://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       https://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+
+=======================================================================
+
+SPRING FRAMEWORK 6.1.8 SUBCOMPONENTS:
+
+Spring Framework 6.1.8 includes a number of subcomponents
+with separate copyright notices and license terms. The product that
+includes this file does not necessarily use all the open source
+subcomponents referred to below. Your use of the source
+code for these subcomponents is subject to the terms and
+conditions of the following licenses.
+
+
+>>> ASM 9.1 (org.ow2.asm:asm:9.1, org.ow2.asm:asm-commons:9.1):
+
+Copyright (c) 2000-2011 INRIA, France Telecom
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+1. Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+
+3. Neither the name of the copyright holders nor the names of its
+   contributors may be used to endorse or promote products derived from
+   this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+THE POSSIBILITY OF SUCH DAMAGE.
+
+Copyright (c) 1999-2009, OW2 Consortium <https://www.ow2.org/>
+
+
+>>> CGLIB 3.3 (cglib:cglib:3.3):
+
+Per the LICENSE file in the CGLIB JAR distribution downloaded from
+https://github.com/cglib/cglib/releases/download/RELEASE_3_3_0/cglib-3.3.0.jar,
+CGLIB 3.3 is licensed under the Apache License, version 2.0, the text of which
+is included above.
+
+
+>>> JavaPoet 1.13.0 (com.squareup:javapoet:1.13.0):
+
+Per the LICENSE file in the JavaPoet JAR distribution downloaded from
+https://github.com/square/javapoet/archive/refs/tags/javapoet-1.13.0.zip,
+JavaPoet 1.13.0 is licensed under the Apache License, version 2.0, the text of
+which is included above.
+
+
+>>> Objenesis 3.2 (org.objenesis:objenesis:3.2):
+
+Per the LICENSE file in the Objenesis ZIP distribution downloaded from
+http://objenesis.org/download.html, Objenesis 3.2 is licensed under the
+Apache License, version 2.0, the text of which is included above.
+
+Per the NOTICE file in the Objenesis ZIP distribution downloaded from
+http://objenesis.org/download.html and corresponding to section 4d of the
+Apache License, Version 2.0, in this case for Objenesis:
+
+Objenesis
+Copyright 2006-2019 Joe Walnes, Henri Tremblay, Leonardo Mesquita
+
+
+===============================================================================
+
+To the extent any open source components are licensed under the EPL and/or
+other similar licenses that require the source code and/or modifications to
+source code to be made available (as would be noted above), you may obtain a
+copy of the source code corresponding to the binaries for such open source
+components and modifications thereto, if any, (the "Source Files"), by
+downloading the Source Files from https://spring.io/projects, Pivotal's website
+at https://network.pivotal.io/open-source, or by sending a request, with your
+name and address to: Pivotal Software, Inc., 875 Howard Street, 5th floor, San
+Francisco, CA 94103, Attention: General Counsel. All such requests should
+clearly specify: OPEN SOURCE FILES REQUEST, Attention General Counsel. Pivotal
+can mail a copy of the Source Files to you on a CD or equivalent physical
+medium.
+
+This offer to obtain a copy of the Source Files is valid for three years from
+the date you acquired this Software product. Alternatively, the Source Files
+may accompany the Software.
diff --git a/licenses/spring-aspects-6.1.8.jar/META-INF/notice.txt b/licenses/spring-aspects-6.1.8.jar/META-INF/notice.txt
new file mode 100644
index 000000000..f2a0096c6
--- /dev/null
+++ b/licenses/spring-aspects-6.1.8.jar/META-INF/notice.txt
@@ -0,0 +1,11 @@
+Spring Framework 6.1.8
+Copyright (c) 2002-2024 Pivotal, Inc.
+
+This product is licensed to you under the Apache License, Version 2.0
+(the "License"). You may not use this product except in compliance with
+the License.
+
+This product may include a number of subcomponents with separate
+copyright notices and license terms. Your use of the source code for
+these subcomponents is subject to the terms and conditions of the
+subcomponent's license, as noted in the license.txt file.
diff --git a/licenses/spring-beans-6.1.5.jar/META-INF/license.txt b/licenses/spring-beans-6.1.5.jar/META-INF/license.txt
new file mode 100644
index 000000000..d8ab95394
--- /dev/null
+++ b/licenses/spring-beans-6.1.5.jar/META-INF/license.txt
@@ -0,0 +1,297 @@
+                                 Apache License
+                           Version 2.0, January 2004
+                        https://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       https://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+
+=======================================================================
+
+SPRING FRAMEWORK 6.1.5 SUBCOMPONENTS:
+
+Spring Framework 6.1.5 includes a number of subcomponents
+with separate copyright notices and license terms. The product that
+includes this file does not necessarily use all the open source
+subcomponents referred to below. Your use of the source
+code for these subcomponents is subject to the terms and
+conditions of the following licenses.
+
+
+>>> ASM 9.1 (org.ow2.asm:asm:9.1, org.ow2.asm:asm-commons:9.1):
+
+Copyright (c) 2000-2011 INRIA, France Telecom
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+1. Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+
+3. Neither the name of the copyright holders nor the names of its
+   contributors may be used to endorse or promote products derived from
+   this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+THE POSSIBILITY OF SUCH DAMAGE.
+
+Copyright (c) 1999-2009, OW2 Consortium <https://www.ow2.org/>
+
+
+>>> CGLIB 3.3 (cglib:cglib:3.3):
+
+Per the LICENSE file in the CGLIB JAR distribution downloaded from
+https://github.com/cglib/cglib/releases/download/RELEASE_3_3_0/cglib-3.3.0.jar,
+CGLIB 3.3 is licensed under the Apache License, version 2.0, the text of which
+is included above.
+
+
+>>> JavaPoet 1.13.0 (com.squareup:javapoet:1.13.0):
+
+Per the LICENSE file in the JavaPoet JAR distribution downloaded from
+https://github.com/square/javapoet/archive/refs/tags/javapoet-1.13.0.zip,
+JavaPoet 1.13.0 is licensed under the Apache License, version 2.0, the text of
+which is included above.
+
+
+>>> Objenesis 3.2 (org.objenesis:objenesis:3.2):
+
+Per the LICENSE file in the Objenesis ZIP distribution downloaded from
+http://objenesis.org/download.html, Objenesis 3.2 is licensed under the
+Apache License, version 2.0, the text of which is included above.
+
+Per the NOTICE file in the Objenesis ZIP distribution downloaded from
+http://objenesis.org/download.html and corresponding to section 4d of the
+Apache License, Version 2.0, in this case for Objenesis:
+
+Objenesis
+Copyright 2006-2019 Joe Walnes, Henri Tremblay, Leonardo Mesquita
+
+
+===============================================================================
+
+To the extent any open source components are licensed under the EPL and/or
+other similar licenses that require the source code and/or modifications to
+source code to be made available (as would be noted above), you may obtain a
+copy of the source code corresponding to the binaries for such open source
+components and modifications thereto, if any, (the "Source Files"), by
+downloading the Source Files from https://spring.io/projects, Pivotal's website
+at https://network.pivotal.io/open-source, or by sending a request, with your
+name and address to: Pivotal Software, Inc., 875 Howard Street, 5th floor, San
+Francisco, CA 94103, Attention: General Counsel. All such requests should
+clearly specify: OPEN SOURCE FILES REQUEST, Attention General Counsel. Pivotal
+can mail a copy of the Source Files to you on a CD or equivalent physical
+medium.
+
+This offer to obtain a copy of the Source Files is valid for three years from
+the date you acquired this Software product. Alternatively, the Source Files
+may accompany the Software.
diff --git a/licenses/spring-beans-6.1.5.jar/META-INF/notice.txt b/licenses/spring-beans-6.1.5.jar/META-INF/notice.txt
new file mode 100644
index 000000000..23f4051a3
--- /dev/null
+++ b/licenses/spring-beans-6.1.5.jar/META-INF/notice.txt
@@ -0,0 +1,11 @@
+Spring Framework 6.1.5
+Copyright (c) 2002-2024 Pivotal, Inc.
+
+This product is licensed to you under the Apache License, Version 2.0
+(the "License"). You may not use this product except in compliance with
+the License.
+
+This product may include a number of subcomponents with separate
+copyright notices and license terms. Your use of the source code for
+these subcomponents is subject to the terms and conditions of the
+subcomponent's license, as noted in the license.txt file.
diff --git a/licenses/spring-beans-6.1.8.jar/META-INF/license.txt b/licenses/spring-beans-6.1.8.jar/META-INF/license.txt
new file mode 100644
index 000000000..0c1fa9332
--- /dev/null
+++ b/licenses/spring-beans-6.1.8.jar/META-INF/license.txt
@@ -0,0 +1,297 @@
+                                 Apache License
+                           Version 2.0, January 2004
+                        https://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       https://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+
+=======================================================================
+
+SPRING FRAMEWORK 6.1.8 SUBCOMPONENTS:
+
+Spring Framework 6.1.8 includes a number of subcomponents
+with separate copyright notices and license terms. The product that
+includes this file does not necessarily use all the open source
+subcomponents referred to below. Your use of the source
+code for these subcomponents is subject to the terms and
+conditions of the following licenses.
+
+
+>>> ASM 9.1 (org.ow2.asm:asm:9.1, org.ow2.asm:asm-commons:9.1):
+
+Copyright (c) 2000-2011 INRIA, France Telecom
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+1. Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+
+3. Neither the name of the copyright holders nor the names of its
+   contributors may be used to endorse or promote products derived from
+   this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+THE POSSIBILITY OF SUCH DAMAGE.
+
+Copyright (c) 1999-2009, OW2 Consortium <https://www.ow2.org/>
+
+
+>>> CGLIB 3.3 (cglib:cglib:3.3):
+
+Per the LICENSE file in the CGLIB JAR distribution downloaded from
+https://github.com/cglib/cglib/releases/download/RELEASE_3_3_0/cglib-3.3.0.jar,
+CGLIB 3.3 is licensed under the Apache License, version 2.0, the text of which
+is included above.
+
+
+>>> JavaPoet 1.13.0 (com.squareup:javapoet:1.13.0):
+
+Per the LICENSE file in the JavaPoet JAR distribution downloaded from
+https://github.com/square/javapoet/archive/refs/tags/javapoet-1.13.0.zip,
+JavaPoet 1.13.0 is licensed under the Apache License, version 2.0, the text of
+which is included above.
+
+
+>>> Objenesis 3.2 (org.objenesis:objenesis:3.2):
+
+Per the LICENSE file in the Objenesis ZIP distribution downloaded from
+http://objenesis.org/download.html, Objenesis 3.2 is licensed under the
+Apache License, version 2.0, the text of which is included above.
+
+Per the NOTICE file in the Objenesis ZIP distribution downloaded from
+http://objenesis.org/download.html and corresponding to section 4d of the
+Apache License, Version 2.0, in this case for Objenesis:
+
+Objenesis
+Copyright 2006-2019 Joe Walnes, Henri Tremblay, Leonardo Mesquita
+
+
+===============================================================================
+
+To the extent any open source components are licensed under the EPL and/or
+other similar licenses that require the source code and/or modifications to
+source code to be made available (as would be noted above), you may obtain a
+copy of the source code corresponding to the binaries for such open source
+components and modifications thereto, if any, (the "Source Files"), by
+downloading the Source Files from https://spring.io/projects, Pivotal's website
+at https://network.pivotal.io/open-source, or by sending a request, with your
+name and address to: Pivotal Software, Inc., 875 Howard Street, 5th floor, San
+Francisco, CA 94103, Attention: General Counsel. All such requests should
+clearly specify: OPEN SOURCE FILES REQUEST, Attention General Counsel. Pivotal
+can mail a copy of the Source Files to you on a CD or equivalent physical
+medium.
+
+This offer to obtain a copy of the Source Files is valid for three years from
+the date you acquired this Software product. Alternatively, the Source Files
+may accompany the Software.
diff --git a/licenses/spring-beans-6.1.8.jar/META-INF/notice.txt b/licenses/spring-beans-6.1.8.jar/META-INF/notice.txt
new file mode 100644
index 000000000..f2a0096c6
--- /dev/null
+++ b/licenses/spring-beans-6.1.8.jar/META-INF/notice.txt
@@ -0,0 +1,11 @@
+Spring Framework 6.1.8
+Copyright (c) 2002-2024 Pivotal, Inc.
+
+This product is licensed to you under the Apache License, Version 2.0
+(the "License"). You may not use this product except in compliance with
+the License.
+
+This product may include a number of subcomponents with separate
+copyright notices and license terms. Your use of the source code for
+these subcomponents is subject to the terms and conditions of the
+subcomponent's license, as noted in the license.txt file.
diff --git a/licenses/spring-boot-3.2.4.jar/META-INF/LICENSE.txt b/licenses/spring-boot-3.2.4.jar/META-INF/LICENSE.txt
new file mode 100644
index 000000000..823c1c8e9
--- /dev/null
+++ b/licenses/spring-boot-3.2.4.jar/META-INF/LICENSE.txt
@@ -0,0 +1,202 @@
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        https://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "{}"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright {yyyy} {name of copyright owner}
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       https://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
\ No newline at end of file
diff --git a/licenses/spring-boot-3.2.4.jar/META-INF/NOTICE.txt b/licenses/spring-boot-3.2.4.jar/META-INF/NOTICE.txt
new file mode 100644
index 000000000..311160f07
--- /dev/null
+++ b/licenses/spring-boot-3.2.4.jar/META-INF/NOTICE.txt
@@ -0,0 +1,6 @@
+Spring Boot 3.2.4
+Copyright (c) 2012-2024 VMware, Inc.
+
+This product is licensed to you under the Apache License, Version 2.0
+(the "License"). You may not use this product except in compliance with
+the License.
\ No newline at end of file
diff --git a/licenses/spring-boot-3.3.0.jar/META-INF/LICENSE.txt b/licenses/spring-boot-3.3.0.jar/META-INF/LICENSE.txt
new file mode 100644
index 000000000..823c1c8e9
--- /dev/null
+++ b/licenses/spring-boot-3.3.0.jar/META-INF/LICENSE.txt
@@ -0,0 +1,202 @@
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        https://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "{}"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright {yyyy} {name of copyright owner}
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       https://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
\ No newline at end of file
diff --git a/licenses/spring-boot-3.3.0.jar/META-INF/NOTICE.txt b/licenses/spring-boot-3.3.0.jar/META-INF/NOTICE.txt
new file mode 100644
index 000000000..ed7a391f3
--- /dev/null
+++ b/licenses/spring-boot-3.3.0.jar/META-INF/NOTICE.txt
@@ -0,0 +1,6 @@
+Spring Boot 3.3.0
+Copyright (c) 2012-2024 VMware, Inc.
+
+This product is licensed to you under the Apache License, Version 2.0
+(the "License"). You may not use this product except in compliance with
+the License.
\ No newline at end of file
diff --git a/licenses/spring-boot-autoconfigure-3.2.4.jar/META-INF/LICENSE.txt b/licenses/spring-boot-autoconfigure-3.2.4.jar/META-INF/LICENSE.txt
new file mode 100644
index 000000000..823c1c8e9
--- /dev/null
+++ b/licenses/spring-boot-autoconfigure-3.2.4.jar/META-INF/LICENSE.txt
@@ -0,0 +1,202 @@
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        https://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "{}"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright {yyyy} {name of copyright owner}
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       https://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
\ No newline at end of file
diff --git a/licenses/spring-boot-autoconfigure-3.2.4.jar/META-INF/NOTICE.txt b/licenses/spring-boot-autoconfigure-3.2.4.jar/META-INF/NOTICE.txt
new file mode 100644
index 000000000..311160f07
--- /dev/null
+++ b/licenses/spring-boot-autoconfigure-3.2.4.jar/META-INF/NOTICE.txt
@@ -0,0 +1,6 @@
+Spring Boot 3.2.4
+Copyright (c) 2012-2024 VMware, Inc.
+
+This product is licensed to you under the Apache License, Version 2.0
+(the "License"). You may not use this product except in compliance with
+the License.
\ No newline at end of file
diff --git a/licenses/spring-boot-autoconfigure-3.3.0.jar/META-INF/LICENSE.txt b/licenses/spring-boot-autoconfigure-3.3.0.jar/META-INF/LICENSE.txt
new file mode 100644
index 000000000..823c1c8e9
--- /dev/null
+++ b/licenses/spring-boot-autoconfigure-3.3.0.jar/META-INF/LICENSE.txt
@@ -0,0 +1,202 @@
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        https://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "{}"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright {yyyy} {name of copyright owner}
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       https://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
\ No newline at end of file
diff --git a/licenses/spring-boot-autoconfigure-3.3.0.jar/META-INF/NOTICE.txt b/licenses/spring-boot-autoconfigure-3.3.0.jar/META-INF/NOTICE.txt
new file mode 100644
index 000000000..ed7a391f3
--- /dev/null
+++ b/licenses/spring-boot-autoconfigure-3.3.0.jar/META-INF/NOTICE.txt
@@ -0,0 +1,6 @@
+Spring Boot 3.3.0
+Copyright (c) 2012-2024 VMware, Inc.
+
+This product is licensed to you under the Apache License, Version 2.0
+(the "License"). You may not use this product except in compliance with
+the License.
\ No newline at end of file
diff --git a/licenses/spring-boot-devtools-3.2.4.jar/META-INF/LICENSE.txt b/licenses/spring-boot-devtools-3.2.4.jar/META-INF/LICENSE.txt
new file mode 100644
index 000000000..823c1c8e9
--- /dev/null
+++ b/licenses/spring-boot-devtools-3.2.4.jar/META-INF/LICENSE.txt
@@ -0,0 +1,202 @@
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        https://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "{}"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright {yyyy} {name of copyright owner}
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       https://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
\ No newline at end of file
diff --git a/licenses/spring-boot-devtools-3.2.4.jar/META-INF/NOTICE.txt b/licenses/spring-boot-devtools-3.2.4.jar/META-INF/NOTICE.txt
new file mode 100644
index 000000000..311160f07
--- /dev/null
+++ b/licenses/spring-boot-devtools-3.2.4.jar/META-INF/NOTICE.txt
@@ -0,0 +1,6 @@
+Spring Boot 3.2.4
+Copyright (c) 2012-2024 VMware, Inc.
+
+This product is licensed to you under the Apache License, Version 2.0
+(the "License"). You may not use this product except in compliance with
+the License.
\ No newline at end of file
diff --git a/licenses/spring-boot-devtools-3.2.5.jar/META-INF/LICENSE.txt b/licenses/spring-boot-devtools-3.2.5.jar/META-INF/LICENSE.txt
new file mode 100644
index 000000000..823c1c8e9
--- /dev/null
+++ b/licenses/spring-boot-devtools-3.2.5.jar/META-INF/LICENSE.txt
@@ -0,0 +1,202 @@
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        https://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "{}"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright {yyyy} {name of copyright owner}
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       https://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
\ No newline at end of file
diff --git a/licenses/spring-boot-devtools-3.2.5.jar/META-INF/NOTICE.txt b/licenses/spring-boot-devtools-3.2.5.jar/META-INF/NOTICE.txt
new file mode 100644
index 000000000..074a1af79
--- /dev/null
+++ b/licenses/spring-boot-devtools-3.2.5.jar/META-INF/NOTICE.txt
@@ -0,0 +1,6 @@
+Spring Boot 3.2.5
+Copyright (c) 2012-2024 VMware, Inc.
+
+This product is licensed to you under the Apache License, Version 2.0
+(the "License"). You may not use this product except in compliance with
+the License.
\ No newline at end of file
diff --git a/licenses/spring-boot-devtools-3.3.0.jar/META-INF/LICENSE.txt b/licenses/spring-boot-devtools-3.3.0.jar/META-INF/LICENSE.txt
new file mode 100644
index 000000000..823c1c8e9
--- /dev/null
+++ b/licenses/spring-boot-devtools-3.3.0.jar/META-INF/LICENSE.txt
@@ -0,0 +1,202 @@
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        https://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "{}"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright {yyyy} {name of copyright owner}
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       https://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
\ No newline at end of file
diff --git a/licenses/spring-boot-devtools-3.3.0.jar/META-INF/NOTICE.txt b/licenses/spring-boot-devtools-3.3.0.jar/META-INF/NOTICE.txt
new file mode 100644
index 000000000..ed7a391f3
--- /dev/null
+++ b/licenses/spring-boot-devtools-3.3.0.jar/META-INF/NOTICE.txt
@@ -0,0 +1,6 @@
+Spring Boot 3.3.0
+Copyright (c) 2012-2024 VMware, Inc.
+
+This product is licensed to you under the Apache License, Version 2.0
+(the "License"). You may not use this product except in compliance with
+the License.
\ No newline at end of file
diff --git a/licenses/spring-boot-starter-3.2.4.jar/META-INF/LICENSE.txt b/licenses/spring-boot-starter-3.2.4.jar/META-INF/LICENSE.txt
new file mode 100644
index 000000000..823c1c8e9
--- /dev/null
+++ b/licenses/spring-boot-starter-3.2.4.jar/META-INF/LICENSE.txt
@@ -0,0 +1,202 @@
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        https://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "{}"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright {yyyy} {name of copyright owner}
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       https://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
\ No newline at end of file
diff --git a/licenses/spring-boot-starter-3.2.4.jar/META-INF/NOTICE.txt b/licenses/spring-boot-starter-3.2.4.jar/META-INF/NOTICE.txt
new file mode 100644
index 000000000..311160f07
--- /dev/null
+++ b/licenses/spring-boot-starter-3.2.4.jar/META-INF/NOTICE.txt
@@ -0,0 +1,6 @@
+Spring Boot 3.2.4
+Copyright (c) 2012-2024 VMware, Inc.
+
+This product is licensed to you under the Apache License, Version 2.0
+(the "License"). You may not use this product except in compliance with
+the License.
\ No newline at end of file
diff --git a/licenses/spring-boot-starter-3.3.0.jar/META-INF/LICENSE.txt b/licenses/spring-boot-starter-3.3.0.jar/META-INF/LICENSE.txt
new file mode 100644
index 000000000..823c1c8e9
--- /dev/null
+++ b/licenses/spring-boot-starter-3.3.0.jar/META-INF/LICENSE.txt
@@ -0,0 +1,202 @@
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        https://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "{}"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright {yyyy} {name of copyright owner}
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       https://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
\ No newline at end of file
diff --git a/licenses/spring-boot-starter-3.3.0.jar/META-INF/NOTICE.txt b/licenses/spring-boot-starter-3.3.0.jar/META-INF/NOTICE.txt
new file mode 100644
index 000000000..ed7a391f3
--- /dev/null
+++ b/licenses/spring-boot-starter-3.3.0.jar/META-INF/NOTICE.txt
@@ -0,0 +1,6 @@
+Spring Boot 3.3.0
+Copyright (c) 2012-2024 VMware, Inc.
+
+This product is licensed to you under the Apache License, Version 2.0
+(the "License"). You may not use this product except in compliance with
+the License.
\ No newline at end of file
diff --git a/licenses/spring-boot-starter-aop-3.2.4.jar/META-INF/LICENSE.txt b/licenses/spring-boot-starter-aop-3.2.4.jar/META-INF/LICENSE.txt
new file mode 100644
index 000000000..823c1c8e9
--- /dev/null
+++ b/licenses/spring-boot-starter-aop-3.2.4.jar/META-INF/LICENSE.txt
@@ -0,0 +1,202 @@
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        https://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "{}"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright {yyyy} {name of copyright owner}
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       https://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
\ No newline at end of file
diff --git a/licenses/spring-boot-starter-aop-3.2.4.jar/META-INF/NOTICE.txt b/licenses/spring-boot-starter-aop-3.2.4.jar/META-INF/NOTICE.txt
new file mode 100644
index 000000000..311160f07
--- /dev/null
+++ b/licenses/spring-boot-starter-aop-3.2.4.jar/META-INF/NOTICE.txt
@@ -0,0 +1,6 @@
+Spring Boot 3.2.4
+Copyright (c) 2012-2024 VMware, Inc.
+
+This product is licensed to you under the Apache License, Version 2.0
+(the "License"). You may not use this product except in compliance with
+the License.
\ No newline at end of file
diff --git a/licenses/spring-boot-starter-aop-3.3.0.jar/META-INF/LICENSE.txt b/licenses/spring-boot-starter-aop-3.3.0.jar/META-INF/LICENSE.txt
new file mode 100644
index 000000000..823c1c8e9
--- /dev/null
+++ b/licenses/spring-boot-starter-aop-3.3.0.jar/META-INF/LICENSE.txt
@@ -0,0 +1,202 @@
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        https://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "{}"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright {yyyy} {name of copyright owner}
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       https://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
\ No newline at end of file
diff --git a/licenses/spring-boot-starter-aop-3.3.0.jar/META-INF/NOTICE.txt b/licenses/spring-boot-starter-aop-3.3.0.jar/META-INF/NOTICE.txt
new file mode 100644
index 000000000..ed7a391f3
--- /dev/null
+++ b/licenses/spring-boot-starter-aop-3.3.0.jar/META-INF/NOTICE.txt
@@ -0,0 +1,6 @@
+Spring Boot 3.3.0
+Copyright (c) 2012-2024 VMware, Inc.
+
+This product is licensed to you under the Apache License, Version 2.0
+(the "License"). You may not use this product except in compliance with
+the License.
\ No newline at end of file
diff --git a/licenses/spring-boot-starter-data-jpa-3.2.4.jar/META-INF/LICENSE.txt b/licenses/spring-boot-starter-data-jpa-3.2.4.jar/META-INF/LICENSE.txt
new file mode 100644
index 000000000..823c1c8e9
--- /dev/null
+++ b/licenses/spring-boot-starter-data-jpa-3.2.4.jar/META-INF/LICENSE.txt
@@ -0,0 +1,202 @@
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        https://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "{}"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright {yyyy} {name of copyright owner}
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       https://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
\ No newline at end of file
diff --git a/licenses/spring-boot-starter-data-jpa-3.2.4.jar/META-INF/NOTICE.txt b/licenses/spring-boot-starter-data-jpa-3.2.4.jar/META-INF/NOTICE.txt
new file mode 100644
index 000000000..311160f07
--- /dev/null
+++ b/licenses/spring-boot-starter-data-jpa-3.2.4.jar/META-INF/NOTICE.txt
@@ -0,0 +1,6 @@
+Spring Boot 3.2.4
+Copyright (c) 2012-2024 VMware, Inc.
+
+This product is licensed to you under the Apache License, Version 2.0
+(the "License"). You may not use this product except in compliance with
+the License.
\ No newline at end of file
diff --git a/licenses/spring-boot-starter-data-jpa-3.2.5.jar/META-INF/LICENSE.txt b/licenses/spring-boot-starter-data-jpa-3.2.5.jar/META-INF/LICENSE.txt
new file mode 100644
index 000000000..823c1c8e9
--- /dev/null
+++ b/licenses/spring-boot-starter-data-jpa-3.2.5.jar/META-INF/LICENSE.txt
@@ -0,0 +1,202 @@
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        https://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "{}"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright {yyyy} {name of copyright owner}
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       https://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
\ No newline at end of file
diff --git a/licenses/spring-boot-starter-data-jpa-3.2.5.jar/META-INF/NOTICE.txt b/licenses/spring-boot-starter-data-jpa-3.2.5.jar/META-INF/NOTICE.txt
new file mode 100644
index 000000000..074a1af79
--- /dev/null
+++ b/licenses/spring-boot-starter-data-jpa-3.2.5.jar/META-INF/NOTICE.txt
@@ -0,0 +1,6 @@
+Spring Boot 3.2.5
+Copyright (c) 2012-2024 VMware, Inc.
+
+This product is licensed to you under the Apache License, Version 2.0
+(the "License"). You may not use this product except in compliance with
+the License.
\ No newline at end of file
diff --git a/licenses/spring-boot-starter-data-jpa-3.3.0.jar/META-INF/LICENSE.txt b/licenses/spring-boot-starter-data-jpa-3.3.0.jar/META-INF/LICENSE.txt
new file mode 100644
index 000000000..823c1c8e9
--- /dev/null
+++ b/licenses/spring-boot-starter-data-jpa-3.3.0.jar/META-INF/LICENSE.txt
@@ -0,0 +1,202 @@
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        https://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "{}"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright {yyyy} {name of copyright owner}
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       https://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
\ No newline at end of file
diff --git a/licenses/spring-boot-starter-data-jpa-3.3.0.jar/META-INF/NOTICE.txt b/licenses/spring-boot-starter-data-jpa-3.3.0.jar/META-INF/NOTICE.txt
new file mode 100644
index 000000000..ed7a391f3
--- /dev/null
+++ b/licenses/spring-boot-starter-data-jpa-3.3.0.jar/META-INF/NOTICE.txt
@@ -0,0 +1,6 @@
+Spring Boot 3.3.0
+Copyright (c) 2012-2024 VMware, Inc.
+
+This product is licensed to you under the Apache License, Version 2.0
+(the "License"). You may not use this product except in compliance with
+the License.
\ No newline at end of file
diff --git a/licenses/spring-boot-starter-jdbc-3.2.4.jar/META-INF/LICENSE.txt b/licenses/spring-boot-starter-jdbc-3.2.4.jar/META-INF/LICENSE.txt
new file mode 100644
index 000000000..823c1c8e9
--- /dev/null
+++ b/licenses/spring-boot-starter-jdbc-3.2.4.jar/META-INF/LICENSE.txt
@@ -0,0 +1,202 @@
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        https://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "{}"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright {yyyy} {name of copyright owner}
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       https://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
\ No newline at end of file
diff --git a/licenses/spring-boot-starter-jdbc-3.2.4.jar/META-INF/NOTICE.txt b/licenses/spring-boot-starter-jdbc-3.2.4.jar/META-INF/NOTICE.txt
new file mode 100644
index 000000000..311160f07
--- /dev/null
+++ b/licenses/spring-boot-starter-jdbc-3.2.4.jar/META-INF/NOTICE.txt
@@ -0,0 +1,6 @@
+Spring Boot 3.2.4
+Copyright (c) 2012-2024 VMware, Inc.
+
+This product is licensed to you under the Apache License, Version 2.0
+(the "License"). You may not use this product except in compliance with
+the License.
\ No newline at end of file
diff --git a/licenses/spring-boot-starter-jdbc-3.3.0.jar/META-INF/LICENSE.txt b/licenses/spring-boot-starter-jdbc-3.3.0.jar/META-INF/LICENSE.txt
new file mode 100644
index 000000000..823c1c8e9
--- /dev/null
+++ b/licenses/spring-boot-starter-jdbc-3.3.0.jar/META-INF/LICENSE.txt
@@ -0,0 +1,202 @@
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        https://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "{}"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright {yyyy} {name of copyright owner}
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       https://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
\ No newline at end of file
diff --git a/licenses/spring-boot-starter-jdbc-3.3.0.jar/META-INF/NOTICE.txt b/licenses/spring-boot-starter-jdbc-3.3.0.jar/META-INF/NOTICE.txt
new file mode 100644
index 000000000..ed7a391f3
--- /dev/null
+++ b/licenses/spring-boot-starter-jdbc-3.3.0.jar/META-INF/NOTICE.txt
@@ -0,0 +1,6 @@
+Spring Boot 3.3.0
+Copyright (c) 2012-2024 VMware, Inc.
+
+This product is licensed to you under the Apache License, Version 2.0
+(the "License"). You may not use this product except in compliance with
+the License.
\ No newline at end of file
diff --git a/licenses/spring-boot-starter-json-3.2.4.jar/META-INF/LICENSE.txt b/licenses/spring-boot-starter-json-3.2.4.jar/META-INF/LICENSE.txt
new file mode 100644
index 000000000..823c1c8e9
--- /dev/null
+++ b/licenses/spring-boot-starter-json-3.2.4.jar/META-INF/LICENSE.txt
@@ -0,0 +1,202 @@
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        https://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "{}"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright {yyyy} {name of copyright owner}
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       https://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
\ No newline at end of file
diff --git a/licenses/spring-boot-starter-json-3.2.4.jar/META-INF/NOTICE.txt b/licenses/spring-boot-starter-json-3.2.4.jar/META-INF/NOTICE.txt
new file mode 100644
index 000000000..311160f07
--- /dev/null
+++ b/licenses/spring-boot-starter-json-3.2.4.jar/META-INF/NOTICE.txt
@@ -0,0 +1,6 @@
+Spring Boot 3.2.4
+Copyright (c) 2012-2024 VMware, Inc.
+
+This product is licensed to you under the Apache License, Version 2.0
+(the "License"). You may not use this product except in compliance with
+the License.
\ No newline at end of file
diff --git a/licenses/spring-boot-starter-json-3.3.0.jar/META-INF/LICENSE.txt b/licenses/spring-boot-starter-json-3.3.0.jar/META-INF/LICENSE.txt
new file mode 100644
index 000000000..823c1c8e9
--- /dev/null
+++ b/licenses/spring-boot-starter-json-3.3.0.jar/META-INF/LICENSE.txt
@@ -0,0 +1,202 @@
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        https://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "{}"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright {yyyy} {name of copyright owner}
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       https://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
\ No newline at end of file
diff --git a/licenses/spring-boot-starter-json-3.3.0.jar/META-INF/NOTICE.txt b/licenses/spring-boot-starter-json-3.3.0.jar/META-INF/NOTICE.txt
new file mode 100644
index 000000000..ed7a391f3
--- /dev/null
+++ b/licenses/spring-boot-starter-json-3.3.0.jar/META-INF/NOTICE.txt
@@ -0,0 +1,6 @@
+Spring Boot 3.3.0
+Copyright (c) 2012-2024 VMware, Inc.
+
+This product is licensed to you under the Apache License, Version 2.0
+(the "License"). You may not use this product except in compliance with
+the License.
\ No newline at end of file
diff --git a/licenses/spring-boot-starter-log4j2-3.2.4.jar/META-INF/LICENSE.txt b/licenses/spring-boot-starter-log4j2-3.2.4.jar/META-INF/LICENSE.txt
new file mode 100644
index 000000000..823c1c8e9
--- /dev/null
+++ b/licenses/spring-boot-starter-log4j2-3.2.4.jar/META-INF/LICENSE.txt
@@ -0,0 +1,202 @@
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        https://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "{}"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright {yyyy} {name of copyright owner}
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       https://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
\ No newline at end of file
diff --git a/licenses/spring-boot-starter-log4j2-3.2.4.jar/META-INF/NOTICE.txt b/licenses/spring-boot-starter-log4j2-3.2.4.jar/META-INF/NOTICE.txt
new file mode 100644
index 000000000..311160f07
--- /dev/null
+++ b/licenses/spring-boot-starter-log4j2-3.2.4.jar/META-INF/NOTICE.txt
@@ -0,0 +1,6 @@
+Spring Boot 3.2.4
+Copyright (c) 2012-2024 VMware, Inc.
+
+This product is licensed to you under the Apache License, Version 2.0
+(the "License"). You may not use this product except in compliance with
+the License.
\ No newline at end of file
diff --git a/licenses/spring-boot-starter-log4j2-3.2.6.jar/META-INF/LICENSE.txt b/licenses/spring-boot-starter-log4j2-3.2.6.jar/META-INF/LICENSE.txt
new file mode 100644
index 000000000..823c1c8e9
--- /dev/null
+++ b/licenses/spring-boot-starter-log4j2-3.2.6.jar/META-INF/LICENSE.txt
@@ -0,0 +1,202 @@
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        https://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "{}"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright {yyyy} {name of copyright owner}
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       https://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
\ No newline at end of file
diff --git a/licenses/spring-boot-starter-log4j2-3.2.6.jar/META-INF/NOTICE.txt b/licenses/spring-boot-starter-log4j2-3.2.6.jar/META-INF/NOTICE.txt
new file mode 100644
index 000000000..716829f71
--- /dev/null
+++ b/licenses/spring-boot-starter-log4j2-3.2.6.jar/META-INF/NOTICE.txt
@@ -0,0 +1,6 @@
+Spring Boot 3.2.6
+Copyright (c) 2012-2024 VMware, Inc.
+
+This product is licensed to you under the Apache License, Version 2.0
+(the "License"). You may not use this product except in compliance with
+the License.
\ No newline at end of file
diff --git a/licenses/spring-boot-starter-log4j2-3.3.0.jar/META-INF/LICENSE.txt b/licenses/spring-boot-starter-log4j2-3.3.0.jar/META-INF/LICENSE.txt
new file mode 100644
index 000000000..823c1c8e9
--- /dev/null
+++ b/licenses/spring-boot-starter-log4j2-3.3.0.jar/META-INF/LICENSE.txt
@@ -0,0 +1,202 @@
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        https://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "{}"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright {yyyy} {name of copyright owner}
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       https://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
\ No newline at end of file
diff --git a/licenses/spring-boot-starter-log4j2-3.3.0.jar/META-INF/NOTICE.txt b/licenses/spring-boot-starter-log4j2-3.3.0.jar/META-INF/NOTICE.txt
new file mode 100644
index 000000000..ed7a391f3
--- /dev/null
+++ b/licenses/spring-boot-starter-log4j2-3.3.0.jar/META-INF/NOTICE.txt
@@ -0,0 +1,6 @@
+Spring Boot 3.3.0
+Copyright (c) 2012-2024 VMware, Inc.
+
+This product is licensed to you under the Apache License, Version 2.0
+(the "License"). You may not use this product except in compliance with
+the License.
\ No newline at end of file
diff --git a/licenses/spring-boot-starter-tomcat-3.2.4.jar/META-INF/LICENSE.txt b/licenses/spring-boot-starter-tomcat-3.2.4.jar/META-INF/LICENSE.txt
new file mode 100644
index 000000000..823c1c8e9
--- /dev/null
+++ b/licenses/spring-boot-starter-tomcat-3.2.4.jar/META-INF/LICENSE.txt
@@ -0,0 +1,202 @@
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        https://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "{}"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright {yyyy} {name of copyright owner}
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       https://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
\ No newline at end of file
diff --git a/licenses/spring-boot-starter-tomcat-3.2.4.jar/META-INF/NOTICE.txt b/licenses/spring-boot-starter-tomcat-3.2.4.jar/META-INF/NOTICE.txt
new file mode 100644
index 000000000..311160f07
--- /dev/null
+++ b/licenses/spring-boot-starter-tomcat-3.2.4.jar/META-INF/NOTICE.txt
@@ -0,0 +1,6 @@
+Spring Boot 3.2.4
+Copyright (c) 2012-2024 VMware, Inc.
+
+This product is licensed to you under the Apache License, Version 2.0
+(the "License"). You may not use this product except in compliance with
+the License.
\ No newline at end of file
diff --git a/licenses/spring-boot-starter-tomcat-3.3.0.jar/META-INF/LICENSE.txt b/licenses/spring-boot-starter-tomcat-3.3.0.jar/META-INF/LICENSE.txt
new file mode 100644
index 000000000..823c1c8e9
--- /dev/null
+++ b/licenses/spring-boot-starter-tomcat-3.3.0.jar/META-INF/LICENSE.txt
@@ -0,0 +1,202 @@
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        https://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "{}"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright {yyyy} {name of copyright owner}
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       https://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
\ No newline at end of file
diff --git a/licenses/spring-boot-starter-tomcat-3.3.0.jar/META-INF/NOTICE.txt b/licenses/spring-boot-starter-tomcat-3.3.0.jar/META-INF/NOTICE.txt
new file mode 100644
index 000000000..ed7a391f3
--- /dev/null
+++ b/licenses/spring-boot-starter-tomcat-3.3.0.jar/META-INF/NOTICE.txt
@@ -0,0 +1,6 @@
+Spring Boot 3.3.0
+Copyright (c) 2012-2024 VMware, Inc.
+
+This product is licensed to you under the Apache License, Version 2.0
+(the "License"). You may not use this product except in compliance with
+the License.
\ No newline at end of file
diff --git a/licenses/spring-boot-starter-web-3.2.4.jar/META-INF/LICENSE.txt b/licenses/spring-boot-starter-web-3.2.4.jar/META-INF/LICENSE.txt
new file mode 100644
index 000000000..823c1c8e9
--- /dev/null
+++ b/licenses/spring-boot-starter-web-3.2.4.jar/META-INF/LICENSE.txt
@@ -0,0 +1,202 @@
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        https://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "{}"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright {yyyy} {name of copyright owner}
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       https://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
\ No newline at end of file
diff --git a/licenses/spring-boot-starter-web-3.2.4.jar/META-INF/NOTICE.txt b/licenses/spring-boot-starter-web-3.2.4.jar/META-INF/NOTICE.txt
new file mode 100644
index 000000000..311160f07
--- /dev/null
+++ b/licenses/spring-boot-starter-web-3.2.4.jar/META-INF/NOTICE.txt
@@ -0,0 +1,6 @@
+Spring Boot 3.2.4
+Copyright (c) 2012-2024 VMware, Inc.
+
+This product is licensed to you under the Apache License, Version 2.0
+(the "License"). You may not use this product except in compliance with
+the License.
\ No newline at end of file
diff --git a/licenses/spring-boot-starter-web-3.2.6.jar/META-INF/LICENSE.txt b/licenses/spring-boot-starter-web-3.2.6.jar/META-INF/LICENSE.txt
new file mode 100644
index 000000000..823c1c8e9
--- /dev/null
+++ b/licenses/spring-boot-starter-web-3.2.6.jar/META-INF/LICENSE.txt
@@ -0,0 +1,202 @@
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        https://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "{}"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright {yyyy} {name of copyright owner}
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       https://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
\ No newline at end of file
diff --git a/licenses/spring-boot-starter-web-3.2.6.jar/META-INF/NOTICE.txt b/licenses/spring-boot-starter-web-3.2.6.jar/META-INF/NOTICE.txt
new file mode 100644
index 000000000..716829f71
--- /dev/null
+++ b/licenses/spring-boot-starter-web-3.2.6.jar/META-INF/NOTICE.txt
@@ -0,0 +1,6 @@
+Spring Boot 3.2.6
+Copyright (c) 2012-2024 VMware, Inc.
+
+This product is licensed to you under the Apache License, Version 2.0
+(the "License"). You may not use this product except in compliance with
+the License.
\ No newline at end of file
diff --git a/licenses/spring-boot-starter-web-3.3.0.jar/META-INF/LICENSE.txt b/licenses/spring-boot-starter-web-3.3.0.jar/META-INF/LICENSE.txt
new file mode 100644
index 000000000..823c1c8e9
--- /dev/null
+++ b/licenses/spring-boot-starter-web-3.3.0.jar/META-INF/LICENSE.txt
@@ -0,0 +1,202 @@
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        https://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "{}"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright {yyyy} {name of copyright owner}
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       https://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
\ No newline at end of file
diff --git a/licenses/spring-boot-starter-web-3.3.0.jar/META-INF/NOTICE.txt b/licenses/spring-boot-starter-web-3.3.0.jar/META-INF/NOTICE.txt
new file mode 100644
index 000000000..ed7a391f3
--- /dev/null
+++ b/licenses/spring-boot-starter-web-3.3.0.jar/META-INF/NOTICE.txt
@@ -0,0 +1,6 @@
+Spring Boot 3.3.0
+Copyright (c) 2012-2024 VMware, Inc.
+
+This product is licensed to you under the Apache License, Version 2.0
+(the "License"). You may not use this product except in compliance with
+the License.
\ No newline at end of file
diff --git a/licenses/spring-context-6.1.5.jar/META-INF/license.txt b/licenses/spring-context-6.1.5.jar/META-INF/license.txt
new file mode 100644
index 000000000..d8ab95394
--- /dev/null
+++ b/licenses/spring-context-6.1.5.jar/META-INF/license.txt
@@ -0,0 +1,297 @@
+                                 Apache License
+                           Version 2.0, January 2004
+                        https://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       https://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+
+=======================================================================
+
+SPRING FRAMEWORK 6.1.5 SUBCOMPONENTS:
+
+Spring Framework 6.1.5 includes a number of subcomponents
+with separate copyright notices and license terms. The product that
+includes this file does not necessarily use all the open source
+subcomponents referred to below. Your use of the source
+code for these subcomponents is subject to the terms and
+conditions of the following licenses.
+
+
+>>> ASM 9.1 (org.ow2.asm:asm:9.1, org.ow2.asm:asm-commons:9.1):
+
+Copyright (c) 2000-2011 INRIA, France Telecom
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+1. Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+
+3. Neither the name of the copyright holders nor the names of its
+   contributors may be used to endorse or promote products derived from
+   this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+THE POSSIBILITY OF SUCH DAMAGE.
+
+Copyright (c) 1999-2009, OW2 Consortium <https://www.ow2.org/>
+
+
+>>> CGLIB 3.3 (cglib:cglib:3.3):
+
+Per the LICENSE file in the CGLIB JAR distribution downloaded from
+https://github.com/cglib/cglib/releases/download/RELEASE_3_3_0/cglib-3.3.0.jar,
+CGLIB 3.3 is licensed under the Apache License, version 2.0, the text of which
+is included above.
+
+
+>>> JavaPoet 1.13.0 (com.squareup:javapoet:1.13.0):
+
+Per the LICENSE file in the JavaPoet JAR distribution downloaded from
+https://github.com/square/javapoet/archive/refs/tags/javapoet-1.13.0.zip,
+JavaPoet 1.13.0 is licensed under the Apache License, version 2.0, the text of
+which is included above.
+
+
+>>> Objenesis 3.2 (org.objenesis:objenesis:3.2):
+
+Per the LICENSE file in the Objenesis ZIP distribution downloaded from
+http://objenesis.org/download.html, Objenesis 3.2 is licensed under the
+Apache License, version 2.0, the text of which is included above.
+
+Per the NOTICE file in the Objenesis ZIP distribution downloaded from
+http://objenesis.org/download.html and corresponding to section 4d of the
+Apache License, Version 2.0, in this case for Objenesis:
+
+Objenesis
+Copyright 2006-2019 Joe Walnes, Henri Tremblay, Leonardo Mesquita
+
+
+===============================================================================
+
+To the extent any open source components are licensed under the EPL and/or
+other similar licenses that require the source code and/or modifications to
+source code to be made available (as would be noted above), you may obtain a
+copy of the source code corresponding to the binaries for such open source
+components and modifications thereto, if any, (the "Source Files"), by
+downloading the Source Files from https://spring.io/projects, Pivotal's website
+at https://network.pivotal.io/open-source, or by sending a request, with your
+name and address to: Pivotal Software, Inc., 875 Howard Street, 5th floor, San
+Francisco, CA 94103, Attention: General Counsel. All such requests should
+clearly specify: OPEN SOURCE FILES REQUEST, Attention General Counsel. Pivotal
+can mail a copy of the Source Files to you on a CD or equivalent physical
+medium.
+
+This offer to obtain a copy of the Source Files is valid for three years from
+the date you acquired this Software product. Alternatively, the Source Files
+may accompany the Software.
diff --git a/licenses/spring-context-6.1.5.jar/META-INF/notice.txt b/licenses/spring-context-6.1.5.jar/META-INF/notice.txt
new file mode 100644
index 000000000..23f4051a3
--- /dev/null
+++ b/licenses/spring-context-6.1.5.jar/META-INF/notice.txt
@@ -0,0 +1,11 @@
+Spring Framework 6.1.5
+Copyright (c) 2002-2024 Pivotal, Inc.
+
+This product is licensed to you under the Apache License, Version 2.0
+(the "License"). You may not use this product except in compliance with
+the License.
+
+This product may include a number of subcomponents with separate
+copyright notices and license terms. Your use of the source code for
+these subcomponents is subject to the terms and conditions of the
+subcomponent's license, as noted in the license.txt file.
diff --git a/licenses/spring-context-6.1.8.jar/META-INF/license.txt b/licenses/spring-context-6.1.8.jar/META-INF/license.txt
new file mode 100644
index 000000000..0c1fa9332
--- /dev/null
+++ b/licenses/spring-context-6.1.8.jar/META-INF/license.txt
@@ -0,0 +1,297 @@
+                                 Apache License
+                           Version 2.0, January 2004
+                        https://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       https://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+
+=======================================================================
+
+SPRING FRAMEWORK 6.1.8 SUBCOMPONENTS:
+
+Spring Framework 6.1.8 includes a number of subcomponents
+with separate copyright notices and license terms. The product that
+includes this file does not necessarily use all the open source
+subcomponents referred to below. Your use of the source
+code for these subcomponents is subject to the terms and
+conditions of the following licenses.
+
+
+>>> ASM 9.1 (org.ow2.asm:asm:9.1, org.ow2.asm:asm-commons:9.1):
+
+Copyright (c) 2000-2011 INRIA, France Telecom
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+1. Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+
+3. Neither the name of the copyright holders nor the names of its
+   contributors may be used to endorse or promote products derived from
+   this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+THE POSSIBILITY OF SUCH DAMAGE.
+
+Copyright (c) 1999-2009, OW2 Consortium <https://www.ow2.org/>
+
+
+>>> CGLIB 3.3 (cglib:cglib:3.3):
+
+Per the LICENSE file in the CGLIB JAR distribution downloaded from
+https://github.com/cglib/cglib/releases/download/RELEASE_3_3_0/cglib-3.3.0.jar,
+CGLIB 3.3 is licensed under the Apache License, version 2.0, the text of which
+is included above.
+
+
+>>> JavaPoet 1.13.0 (com.squareup:javapoet:1.13.0):
+
+Per the LICENSE file in the JavaPoet JAR distribution downloaded from
+https://github.com/square/javapoet/archive/refs/tags/javapoet-1.13.0.zip,
+JavaPoet 1.13.0 is licensed under the Apache License, version 2.0, the text of
+which is included above.
+
+
+>>> Objenesis 3.2 (org.objenesis:objenesis:3.2):
+
+Per the LICENSE file in the Objenesis ZIP distribution downloaded from
+http://objenesis.org/download.html, Objenesis 3.2 is licensed under the
+Apache License, version 2.0, the text of which is included above.
+
+Per the NOTICE file in the Objenesis ZIP distribution downloaded from
+http://objenesis.org/download.html and corresponding to section 4d of the
+Apache License, Version 2.0, in this case for Objenesis:
+
+Objenesis
+Copyright 2006-2019 Joe Walnes, Henri Tremblay, Leonardo Mesquita
+
+
+===============================================================================
+
+To the extent any open source components are licensed under the EPL and/or
+other similar licenses that require the source code and/or modifications to
+source code to be made available (as would be noted above), you may obtain a
+copy of the source code corresponding to the binaries for such open source
+components and modifications thereto, if any, (the "Source Files"), by
+downloading the Source Files from https://spring.io/projects, Pivotal's website
+at https://network.pivotal.io/open-source, or by sending a request, with your
+name and address to: Pivotal Software, Inc., 875 Howard Street, 5th floor, San
+Francisco, CA 94103, Attention: General Counsel. All such requests should
+clearly specify: OPEN SOURCE FILES REQUEST, Attention General Counsel. Pivotal
+can mail a copy of the Source Files to you on a CD or equivalent physical
+medium.
+
+This offer to obtain a copy of the Source Files is valid for three years from
+the date you acquired this Software product. Alternatively, the Source Files
+may accompany the Software.
diff --git a/licenses/spring-context-6.1.8.jar/META-INF/notice.txt b/licenses/spring-context-6.1.8.jar/META-INF/notice.txt
new file mode 100644
index 000000000..f2a0096c6
--- /dev/null
+++ b/licenses/spring-context-6.1.8.jar/META-INF/notice.txt
@@ -0,0 +1,11 @@
+Spring Framework 6.1.8
+Copyright (c) 2002-2024 Pivotal, Inc.
+
+This product is licensed to you under the Apache License, Version 2.0
+(the "License"). You may not use this product except in compliance with
+the License.
+
+This product may include a number of subcomponents with separate
+copyright notices and license terms. Your use of the source code for
+these subcomponents is subject to the terms and conditions of the
+subcomponent's license, as noted in the license.txt file.
diff --git a/licenses/spring-core-6.1.5.jar/META-INF/license.txt b/licenses/spring-core-6.1.5.jar/META-INF/license.txt
new file mode 100644
index 000000000..d8ab95394
--- /dev/null
+++ b/licenses/spring-core-6.1.5.jar/META-INF/license.txt
@@ -0,0 +1,297 @@
+                                 Apache License
+                           Version 2.0, January 2004
+                        https://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       https://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+
+=======================================================================
+
+SPRING FRAMEWORK 6.1.5 SUBCOMPONENTS:
+
+Spring Framework 6.1.5 includes a number of subcomponents
+with separate copyright notices and license terms. The product that
+includes this file does not necessarily use all the open source
+subcomponents referred to below. Your use of the source
+code for these subcomponents is subject to the terms and
+conditions of the following licenses.
+
+
+>>> ASM 9.1 (org.ow2.asm:asm:9.1, org.ow2.asm:asm-commons:9.1):
+
+Copyright (c) 2000-2011 INRIA, France Telecom
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+1. Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+
+3. Neither the name of the copyright holders nor the names of its
+   contributors may be used to endorse or promote products derived from
+   this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+THE POSSIBILITY OF SUCH DAMAGE.
+
+Copyright (c) 1999-2009, OW2 Consortium <https://www.ow2.org/>
+
+
+>>> CGLIB 3.3 (cglib:cglib:3.3):
+
+Per the LICENSE file in the CGLIB JAR distribution downloaded from
+https://github.com/cglib/cglib/releases/download/RELEASE_3_3_0/cglib-3.3.0.jar,
+CGLIB 3.3 is licensed under the Apache License, version 2.0, the text of which
+is included above.
+
+
+>>> JavaPoet 1.13.0 (com.squareup:javapoet:1.13.0):
+
+Per the LICENSE file in the JavaPoet JAR distribution downloaded from
+https://github.com/square/javapoet/archive/refs/tags/javapoet-1.13.0.zip,
+JavaPoet 1.13.0 is licensed under the Apache License, version 2.0, the text of
+which is included above.
+
+
+>>> Objenesis 3.2 (org.objenesis:objenesis:3.2):
+
+Per the LICENSE file in the Objenesis ZIP distribution downloaded from
+http://objenesis.org/download.html, Objenesis 3.2 is licensed under the
+Apache License, version 2.0, the text of which is included above.
+
+Per the NOTICE file in the Objenesis ZIP distribution downloaded from
+http://objenesis.org/download.html and corresponding to section 4d of the
+Apache License, Version 2.0, in this case for Objenesis:
+
+Objenesis
+Copyright 2006-2019 Joe Walnes, Henri Tremblay, Leonardo Mesquita
+
+
+===============================================================================
+
+To the extent any open source components are licensed under the EPL and/or
+other similar licenses that require the source code and/or modifications to
+source code to be made available (as would be noted above), you may obtain a
+copy of the source code corresponding to the binaries for such open source
+components and modifications thereto, if any, (the "Source Files"), by
+downloading the Source Files from https://spring.io/projects, Pivotal's website
+at https://network.pivotal.io/open-source, or by sending a request, with your
+name and address to: Pivotal Software, Inc., 875 Howard Street, 5th floor, San
+Francisco, CA 94103, Attention: General Counsel. All such requests should
+clearly specify: OPEN SOURCE FILES REQUEST, Attention General Counsel. Pivotal
+can mail a copy of the Source Files to you on a CD or equivalent physical
+medium.
+
+This offer to obtain a copy of the Source Files is valid for three years from
+the date you acquired this Software product. Alternatively, the Source Files
+may accompany the Software.
diff --git a/licenses/spring-core-6.1.5.jar/META-INF/notice.txt b/licenses/spring-core-6.1.5.jar/META-INF/notice.txt
new file mode 100644
index 000000000..23f4051a3
--- /dev/null
+++ b/licenses/spring-core-6.1.5.jar/META-INF/notice.txt
@@ -0,0 +1,11 @@
+Spring Framework 6.1.5
+Copyright (c) 2002-2024 Pivotal, Inc.
+
+This product is licensed to you under the Apache License, Version 2.0
+(the "License"). You may not use this product except in compliance with
+the License.
+
+This product may include a number of subcomponents with separate
+copyright notices and license terms. Your use of the source code for
+these subcomponents is subject to the terms and conditions of the
+subcomponent's license, as noted in the license.txt file.
diff --git a/licenses/spring-core-6.1.8.jar/META-INF/license.txt b/licenses/spring-core-6.1.8.jar/META-INF/license.txt
new file mode 100644
index 000000000..0c1fa9332
--- /dev/null
+++ b/licenses/spring-core-6.1.8.jar/META-INF/license.txt
@@ -0,0 +1,297 @@
+                                 Apache License
+                           Version 2.0, January 2004
+                        https://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       https://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+
+=======================================================================
+
+SPRING FRAMEWORK 6.1.8 SUBCOMPONENTS:
+
+Spring Framework 6.1.8 includes a number of subcomponents
+with separate copyright notices and license terms. The product that
+includes this file does not necessarily use all the open source
+subcomponents referred to below. Your use of the source
+code for these subcomponents is subject to the terms and
+conditions of the following licenses.
+
+
+>>> ASM 9.1 (org.ow2.asm:asm:9.1, org.ow2.asm:asm-commons:9.1):
+
+Copyright (c) 2000-2011 INRIA, France Telecom
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+1. Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+
+3. Neither the name of the copyright holders nor the names of its
+   contributors may be used to endorse or promote products derived from
+   this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+THE POSSIBILITY OF SUCH DAMAGE.
+
+Copyright (c) 1999-2009, OW2 Consortium <https://www.ow2.org/>
+
+
+>>> CGLIB 3.3 (cglib:cglib:3.3):
+
+Per the LICENSE file in the CGLIB JAR distribution downloaded from
+https://github.com/cglib/cglib/releases/download/RELEASE_3_3_0/cglib-3.3.0.jar,
+CGLIB 3.3 is licensed under the Apache License, version 2.0, the text of which
+is included above.
+
+
+>>> JavaPoet 1.13.0 (com.squareup:javapoet:1.13.0):
+
+Per the LICENSE file in the JavaPoet JAR distribution downloaded from
+https://github.com/square/javapoet/archive/refs/tags/javapoet-1.13.0.zip,
+JavaPoet 1.13.0 is licensed under the Apache License, version 2.0, the text of
+which is included above.
+
+
+>>> Objenesis 3.2 (org.objenesis:objenesis:3.2):
+
+Per the LICENSE file in the Objenesis ZIP distribution downloaded from
+http://objenesis.org/download.html, Objenesis 3.2 is licensed under the
+Apache License, version 2.0, the text of which is included above.
+
+Per the NOTICE file in the Objenesis ZIP distribution downloaded from
+http://objenesis.org/download.html and corresponding to section 4d of the
+Apache License, Version 2.0, in this case for Objenesis:
+
+Objenesis
+Copyright 2006-2019 Joe Walnes, Henri Tremblay, Leonardo Mesquita
+
+
+===============================================================================
+
+To the extent any open source components are licensed under the EPL and/or
+other similar licenses that require the source code and/or modifications to
+source code to be made available (as would be noted above), you may obtain a
+copy of the source code corresponding to the binaries for such open source
+components and modifications thereto, if any, (the "Source Files"), by
+downloading the Source Files from https://spring.io/projects, Pivotal's website
+at https://network.pivotal.io/open-source, or by sending a request, with your
+name and address to: Pivotal Software, Inc., 875 Howard Street, 5th floor, San
+Francisco, CA 94103, Attention: General Counsel. All such requests should
+clearly specify: OPEN SOURCE FILES REQUEST, Attention General Counsel. Pivotal
+can mail a copy of the Source Files to you on a CD or equivalent physical
+medium.
+
+This offer to obtain a copy of the Source Files is valid for three years from
+the date you acquired this Software product. Alternatively, the Source Files
+may accompany the Software.
diff --git a/licenses/spring-core-6.1.8.jar/META-INF/notice.txt b/licenses/spring-core-6.1.8.jar/META-INF/notice.txt
new file mode 100644
index 000000000..f2a0096c6
--- /dev/null
+++ b/licenses/spring-core-6.1.8.jar/META-INF/notice.txt
@@ -0,0 +1,11 @@
+Spring Framework 6.1.8
+Copyright (c) 2002-2024 Pivotal, Inc.
+
+This product is licensed to you under the Apache License, Version 2.0
+(the "License"). You may not use this product except in compliance with
+the License.
+
+This product may include a number of subcomponents with separate
+copyright notices and license terms. Your use of the source code for
+these subcomponents is subject to the terms and conditions of the
+subcomponent's license, as noted in the license.txt file.
diff --git a/licenses/spring-data-commons-3.2.4.jar/license.txt b/licenses/spring-data-commons-3.2.4.jar/license.txt
new file mode 100644
index 000000000..964a55d1c
--- /dev/null
+++ b/licenses/spring-data-commons-3.2.4.jar/license.txt
@@ -0,0 +1,216 @@
+                                 Apache License
+                           Version 2.0, January 2004
+                        https://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       https://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+
+=======================================================================   
+
+To the extent any open source subcomponents are licensed under the EPL and/or other 
+similar licenses that require the source code and/or modifications to 
+source code to be made available (as would be noted above), you may obtain a 
+copy of the source code corresponding to the binaries for such open source 
+components and modifications thereto, if any, (the "Source Files"), by 
+downloading the Source Files from https://www.springsource.org/download, 
+or by sending a request, with your name and address to: VMware, Inc., 3401 Hillview 
+Avenue, Palo Alto, CA 94304, United States of America or email info@vmware.com.  All 
+such requests should clearly specify:  OPEN SOURCE FILES REQUEST, Attention General 
+Counsel.  VMware shall mail a copy of the Source Files to you on a CD or equivalent 
+physical medium.  This offer to obtain a copy of the Source Files is valid for three 
+years from the date you acquired this Software product.
\ No newline at end of file
diff --git a/licenses/spring-data-commons-3.2.4.jar/notice.txt b/licenses/spring-data-commons-3.2.4.jar/notice.txt
new file mode 100644
index 000000000..a0854ca32
--- /dev/null
+++ b/licenses/spring-data-commons-3.2.4.jar/notice.txt
@@ -0,0 +1,57 @@
+Spring Data Commons 3.2.4 (2023.1.4)
+Copyright (c) [2010-2021] Pivotal Software, Inc.
+
+This product is licensed to you under the Apache License, Version 2.0 (the "License").
+You may not use this product except in compliance with the License.
+
+This product may include a number of subcomponents with
+separate copyright notices and license terms. Your use of the source
+code for the these subcomponents is subject to the terms and
+conditions of the subcomponent's license, as noted in the LICENSE file.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/licenses/spring-data-commons-3.3.0.jar/license.txt b/licenses/spring-data-commons-3.3.0.jar/license.txt
new file mode 100644
index 000000000..964a55d1c
--- /dev/null
+++ b/licenses/spring-data-commons-3.3.0.jar/license.txt
@@ -0,0 +1,216 @@
+                                 Apache License
+                           Version 2.0, January 2004
+                        https://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       https://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+
+=======================================================================   
+
+To the extent any open source subcomponents are licensed under the EPL and/or other 
+similar licenses that require the source code and/or modifications to 
+source code to be made available (as would be noted above), you may obtain a 
+copy of the source code corresponding to the binaries for such open source 
+components and modifications thereto, if any, (the "Source Files"), by 
+downloading the Source Files from https://www.springsource.org/download, 
+or by sending a request, with your name and address to: VMware, Inc., 3401 Hillview 
+Avenue, Palo Alto, CA 94304, United States of America or email info@vmware.com.  All 
+such requests should clearly specify:  OPEN SOURCE FILES REQUEST, Attention General 
+Counsel.  VMware shall mail a copy of the Source Files to you on a CD or equivalent 
+physical medium.  This offer to obtain a copy of the Source Files is valid for three 
+years from the date you acquired this Software product.
\ No newline at end of file
diff --git a/licenses/spring-data-commons-3.3.0.jar/notice.txt b/licenses/spring-data-commons-3.3.0.jar/notice.txt
new file mode 100644
index 000000000..9a6913d03
--- /dev/null
+++ b/licenses/spring-data-commons-3.3.0.jar/notice.txt
@@ -0,0 +1,57 @@
+Spring Data Commons 3.3 GA (2024.0.0)
+Copyright (c) [2010-2021] Pivotal Software, Inc.
+
+This product is licensed to you under the Apache License, Version 2.0 (the "License").
+You may not use this product except in compliance with the License.
+
+This product may include a number of subcomponents with
+separate copyright notices and license terms. Your use of the source
+code for the these subcomponents is subject to the terms and
+conditions of the subcomponent's license, as noted in the LICENSE file.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/licenses/spring-data-jpa-3.2.4.jar/license.txt b/licenses/spring-data-jpa-3.2.4.jar/license.txt
new file mode 100644
index 000000000..964a55d1c
--- /dev/null
+++ b/licenses/spring-data-jpa-3.2.4.jar/license.txt
@@ -0,0 +1,216 @@
+                                 Apache License
+                           Version 2.0, January 2004
+                        https://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       https://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+
+=======================================================================   
+
+To the extent any open source subcomponents are licensed under the EPL and/or other 
+similar licenses that require the source code and/or modifications to 
+source code to be made available (as would be noted above), you may obtain a 
+copy of the source code corresponding to the binaries for such open source 
+components and modifications thereto, if any, (the "Source Files"), by 
+downloading the Source Files from https://www.springsource.org/download, 
+or by sending a request, with your name and address to: VMware, Inc., 3401 Hillview 
+Avenue, Palo Alto, CA 94304, United States of America or email info@vmware.com.  All 
+such requests should clearly specify:  OPEN SOURCE FILES REQUEST, Attention General 
+Counsel.  VMware shall mail a copy of the Source Files to you on a CD or equivalent 
+physical medium.  This offer to obtain a copy of the Source Files is valid for three 
+years from the date you acquired this Software product.
\ No newline at end of file
diff --git a/licenses/spring-data-jpa-3.2.4.jar/notice.txt b/licenses/spring-data-jpa-3.2.4.jar/notice.txt
new file mode 100644
index 000000000..4a28e2e5f
--- /dev/null
+++ b/licenses/spring-data-jpa-3.2.4.jar/notice.txt
@@ -0,0 +1,36 @@
+Spring Data JPA 2.7 M2 (2021.2.0)
+Copyright (c) [2011-2019] Pivotal Software, Inc.
+
+This product is licensed to you under the Apache License, Version 2.0 (the "License").
+You may not use this product except in compliance with the License.
+
+This product may include a number of subcomponents with
+separate copyright notices and license terms. Your use of the source
+code for the these subcomponents is subject to the terms and
+conditions of the subcomponent's license, as noted in the LICENSE file.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/licenses/spring-data-jpa-3.2.4.jar/readme.txt b/licenses/spring-data-jpa-3.2.4.jar/readme.txt
new file mode 100644
index 000000000..4f0324ce4
--- /dev/null
+++ b/licenses/spring-data-jpa-3.2.4.jar/readme.txt
@@ -0,0 +1,17 @@
+Spring Data JPA 1.6.0 M1 (March 31th, 2014)
+-------------------------------------------
+
+Spring Data Jpa is released under the terms of the Apache Software License Version 2.0 (see license.txt).
+
+
+DISTRIBUTION CONTENTS:
+
+The JARs are available in the 'dist' directory, and the source JARs are in the 'src' directory.
+
+The reference manual and javadoc are located in the 'docs' directory.
+
+
+ADDITIONAL RESOURCES:
+
+Spring Data Homepage:             https://projects.spring.io/spring-data
+Spring Data JPA on Stackoverflow: https://stackoverflow.com/questions/tagged/spring-data-jpa
diff --git a/licenses/spring-data-jpa-3.3.0.jar/license.txt b/licenses/spring-data-jpa-3.3.0.jar/license.txt
new file mode 100644
index 000000000..964a55d1c
--- /dev/null
+++ b/licenses/spring-data-jpa-3.3.0.jar/license.txt
@@ -0,0 +1,216 @@
+                                 Apache License
+                           Version 2.0, January 2004
+                        https://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       https://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+
+=======================================================================   
+
+To the extent any open source subcomponents are licensed under the EPL and/or other 
+similar licenses that require the source code and/or modifications to 
+source code to be made available (as would be noted above), you may obtain a 
+copy of the source code corresponding to the binaries for such open source 
+components and modifications thereto, if any, (the "Source Files"), by 
+downloading the Source Files from https://www.springsource.org/download, 
+or by sending a request, with your name and address to: VMware, Inc., 3401 Hillview 
+Avenue, Palo Alto, CA 94304, United States of America or email info@vmware.com.  All 
+such requests should clearly specify:  OPEN SOURCE FILES REQUEST, Attention General 
+Counsel.  VMware shall mail a copy of the Source Files to you on a CD or equivalent 
+physical medium.  This offer to obtain a copy of the Source Files is valid for three 
+years from the date you acquired this Software product.
\ No newline at end of file
diff --git a/licenses/spring-data-jpa-3.3.0.jar/notice.txt b/licenses/spring-data-jpa-3.3.0.jar/notice.txt
new file mode 100644
index 000000000..4a28e2e5f
--- /dev/null
+++ b/licenses/spring-data-jpa-3.3.0.jar/notice.txt
@@ -0,0 +1,36 @@
+Spring Data JPA 2.7 M2 (2021.2.0)
+Copyright (c) [2011-2019] Pivotal Software, Inc.
+
+This product is licensed to you under the Apache License, Version 2.0 (the "License").
+You may not use this product except in compliance with the License.
+
+This product may include a number of subcomponents with
+separate copyright notices and license terms. Your use of the source
+code for the these subcomponents is subject to the terms and
+conditions of the subcomponent's license, as noted in the LICENSE file.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/licenses/spring-data-jpa-3.3.0.jar/readme.txt b/licenses/spring-data-jpa-3.3.0.jar/readme.txt
new file mode 100644
index 000000000..4f0324ce4
--- /dev/null
+++ b/licenses/spring-data-jpa-3.3.0.jar/readme.txt
@@ -0,0 +1,17 @@
+Spring Data JPA 1.6.0 M1 (March 31th, 2014)
+-------------------------------------------
+
+Spring Data Jpa is released under the terms of the Apache Software License Version 2.0 (see license.txt).
+
+
+DISTRIBUTION CONTENTS:
+
+The JARs are available in the 'dist' directory, and the source JARs are in the 'src' directory.
+
+The reference manual and javadoc are located in the 'docs' directory.
+
+
+ADDITIONAL RESOURCES:
+
+Spring Data Homepage:             https://projects.spring.io/spring-data
+Spring Data JPA on Stackoverflow: https://stackoverflow.com/questions/tagged/spring-data-jpa
diff --git a/licenses/spring-expression-6.1.5.jar/META-INF/license.txt b/licenses/spring-expression-6.1.5.jar/META-INF/license.txt
new file mode 100644
index 000000000..d8ab95394
--- /dev/null
+++ b/licenses/spring-expression-6.1.5.jar/META-INF/license.txt
@@ -0,0 +1,297 @@
+                                 Apache License
+                           Version 2.0, January 2004
+                        https://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       https://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+
+=======================================================================
+
+SPRING FRAMEWORK 6.1.5 SUBCOMPONENTS:
+
+Spring Framework 6.1.5 includes a number of subcomponents
+with separate copyright notices and license terms. The product that
+includes this file does not necessarily use all the open source
+subcomponents referred to below. Your use of the source
+code for these subcomponents is subject to the terms and
+conditions of the following licenses.
+
+
+>>> ASM 9.1 (org.ow2.asm:asm:9.1, org.ow2.asm:asm-commons:9.1):
+
+Copyright (c) 2000-2011 INRIA, France Telecom
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+1. Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+
+3. Neither the name of the copyright holders nor the names of its
+   contributors may be used to endorse or promote products derived from
+   this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+THE POSSIBILITY OF SUCH DAMAGE.
+
+Copyright (c) 1999-2009, OW2 Consortium <https://www.ow2.org/>
+
+
+>>> CGLIB 3.3 (cglib:cglib:3.3):
+
+Per the LICENSE file in the CGLIB JAR distribution downloaded from
+https://github.com/cglib/cglib/releases/download/RELEASE_3_3_0/cglib-3.3.0.jar,
+CGLIB 3.3 is licensed under the Apache License, version 2.0, the text of which
+is included above.
+
+
+>>> JavaPoet 1.13.0 (com.squareup:javapoet:1.13.0):
+
+Per the LICENSE file in the JavaPoet JAR distribution downloaded from
+https://github.com/square/javapoet/archive/refs/tags/javapoet-1.13.0.zip,
+JavaPoet 1.13.0 is licensed under the Apache License, version 2.0, the text of
+which is included above.
+
+
+>>> Objenesis 3.2 (org.objenesis:objenesis:3.2):
+
+Per the LICENSE file in the Objenesis ZIP distribution downloaded from
+http://objenesis.org/download.html, Objenesis 3.2 is licensed under the
+Apache License, version 2.0, the text of which is included above.
+
+Per the NOTICE file in the Objenesis ZIP distribution downloaded from
+http://objenesis.org/download.html and corresponding to section 4d of the
+Apache License, Version 2.0, in this case for Objenesis:
+
+Objenesis
+Copyright 2006-2019 Joe Walnes, Henri Tremblay, Leonardo Mesquita
+
+
+===============================================================================
+
+To the extent any open source components are licensed under the EPL and/or
+other similar licenses that require the source code and/or modifications to
+source code to be made available (as would be noted above), you may obtain a
+copy of the source code corresponding to the binaries for such open source
+components and modifications thereto, if any, (the "Source Files"), by
+downloading the Source Files from https://spring.io/projects, Pivotal's website
+at https://network.pivotal.io/open-source, or by sending a request, with your
+name and address to: Pivotal Software, Inc., 875 Howard Street, 5th floor, San
+Francisco, CA 94103, Attention: General Counsel. All such requests should
+clearly specify: OPEN SOURCE FILES REQUEST, Attention General Counsel. Pivotal
+can mail a copy of the Source Files to you on a CD or equivalent physical
+medium.
+
+This offer to obtain a copy of the Source Files is valid for three years from
+the date you acquired this Software product. Alternatively, the Source Files
+may accompany the Software.
diff --git a/licenses/spring-expression-6.1.5.jar/META-INF/notice.txt b/licenses/spring-expression-6.1.5.jar/META-INF/notice.txt
new file mode 100644
index 000000000..23f4051a3
--- /dev/null
+++ b/licenses/spring-expression-6.1.5.jar/META-INF/notice.txt
@@ -0,0 +1,11 @@
+Spring Framework 6.1.5
+Copyright (c) 2002-2024 Pivotal, Inc.
+
+This product is licensed to you under the Apache License, Version 2.0
+(the "License"). You may not use this product except in compliance with
+the License.
+
+This product may include a number of subcomponents with separate
+copyright notices and license terms. Your use of the source code for
+these subcomponents is subject to the terms and conditions of the
+subcomponent's license, as noted in the license.txt file.
diff --git a/licenses/spring-expression-6.1.8.jar/META-INF/license.txt b/licenses/spring-expression-6.1.8.jar/META-INF/license.txt
new file mode 100644
index 000000000..0c1fa9332
--- /dev/null
+++ b/licenses/spring-expression-6.1.8.jar/META-INF/license.txt
@@ -0,0 +1,297 @@
+                                 Apache License
+                           Version 2.0, January 2004
+                        https://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       https://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+
+=======================================================================
+
+SPRING FRAMEWORK 6.1.8 SUBCOMPONENTS:
+
+Spring Framework 6.1.8 includes a number of subcomponents
+with separate copyright notices and license terms. The product that
+includes this file does not necessarily use all the open source
+subcomponents referred to below. Your use of the source
+code for these subcomponents is subject to the terms and
+conditions of the following licenses.
+
+
+>>> ASM 9.1 (org.ow2.asm:asm:9.1, org.ow2.asm:asm-commons:9.1):
+
+Copyright (c) 2000-2011 INRIA, France Telecom
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+1. Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+
+3. Neither the name of the copyright holders nor the names of its
+   contributors may be used to endorse or promote products derived from
+   this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+THE POSSIBILITY OF SUCH DAMAGE.
+
+Copyright (c) 1999-2009, OW2 Consortium <https://www.ow2.org/>
+
+
+>>> CGLIB 3.3 (cglib:cglib:3.3):
+
+Per the LICENSE file in the CGLIB JAR distribution downloaded from
+https://github.com/cglib/cglib/releases/download/RELEASE_3_3_0/cglib-3.3.0.jar,
+CGLIB 3.3 is licensed under the Apache License, version 2.0, the text of which
+is included above.
+
+
+>>> JavaPoet 1.13.0 (com.squareup:javapoet:1.13.0):
+
+Per the LICENSE file in the JavaPoet JAR distribution downloaded from
+https://github.com/square/javapoet/archive/refs/tags/javapoet-1.13.0.zip,
+JavaPoet 1.13.0 is licensed under the Apache License, version 2.0, the text of
+which is included above.
+
+
+>>> Objenesis 3.2 (org.objenesis:objenesis:3.2):
+
+Per the LICENSE file in the Objenesis ZIP distribution downloaded from
+http://objenesis.org/download.html, Objenesis 3.2 is licensed under the
+Apache License, version 2.0, the text of which is included above.
+
+Per the NOTICE file in the Objenesis ZIP distribution downloaded from
+http://objenesis.org/download.html and corresponding to section 4d of the
+Apache License, Version 2.0, in this case for Objenesis:
+
+Objenesis
+Copyright 2006-2019 Joe Walnes, Henri Tremblay, Leonardo Mesquita
+
+
+===============================================================================
+
+To the extent any open source components are licensed under the EPL and/or
+other similar licenses that require the source code and/or modifications to
+source code to be made available (as would be noted above), you may obtain a
+copy of the source code corresponding to the binaries for such open source
+components and modifications thereto, if any, (the "Source Files"), by
+downloading the Source Files from https://spring.io/projects, Pivotal's website
+at https://network.pivotal.io/open-source, or by sending a request, with your
+name and address to: Pivotal Software, Inc., 875 Howard Street, 5th floor, San
+Francisco, CA 94103, Attention: General Counsel. All such requests should
+clearly specify: OPEN SOURCE FILES REQUEST, Attention General Counsel. Pivotal
+can mail a copy of the Source Files to you on a CD or equivalent physical
+medium.
+
+This offer to obtain a copy of the Source Files is valid for three years from
+the date you acquired this Software product. Alternatively, the Source Files
+may accompany the Software.
diff --git a/licenses/spring-expression-6.1.8.jar/META-INF/notice.txt b/licenses/spring-expression-6.1.8.jar/META-INF/notice.txt
new file mode 100644
index 000000000..f2a0096c6
--- /dev/null
+++ b/licenses/spring-expression-6.1.8.jar/META-INF/notice.txt
@@ -0,0 +1,11 @@
+Spring Framework 6.1.8
+Copyright (c) 2002-2024 Pivotal, Inc.
+
+This product is licensed to you under the Apache License, Version 2.0
+(the "License"). You may not use this product except in compliance with
+the License.
+
+This product may include a number of subcomponents with separate
+copyright notices and license terms. Your use of the source code for
+these subcomponents is subject to the terms and conditions of the
+subcomponent's license, as noted in the license.txt file.
diff --git a/licenses/spring-jcl-6.1.5.jar/META-INF/license.txt b/licenses/spring-jcl-6.1.5.jar/META-INF/license.txt
new file mode 100644
index 000000000..d8ab95394
--- /dev/null
+++ b/licenses/spring-jcl-6.1.5.jar/META-INF/license.txt
@@ -0,0 +1,297 @@
+                                 Apache License
+                           Version 2.0, January 2004
+                        https://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       https://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+
+=======================================================================
+
+SPRING FRAMEWORK 6.1.5 SUBCOMPONENTS:
+
+Spring Framework 6.1.5 includes a number of subcomponents
+with separate copyright notices and license terms. The product that
+includes this file does not necessarily use all the open source
+subcomponents referred to below. Your use of the source
+code for these subcomponents is subject to the terms and
+conditions of the following licenses.
+
+
+>>> ASM 9.1 (org.ow2.asm:asm:9.1, org.ow2.asm:asm-commons:9.1):
+
+Copyright (c) 2000-2011 INRIA, France Telecom
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+1. Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+
+3. Neither the name of the copyright holders nor the names of its
+   contributors may be used to endorse or promote products derived from
+   this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+THE POSSIBILITY OF SUCH DAMAGE.
+
+Copyright (c) 1999-2009, OW2 Consortium <https://www.ow2.org/>
+
+
+>>> CGLIB 3.3 (cglib:cglib:3.3):
+
+Per the LICENSE file in the CGLIB JAR distribution downloaded from
+https://github.com/cglib/cglib/releases/download/RELEASE_3_3_0/cglib-3.3.0.jar,
+CGLIB 3.3 is licensed under the Apache License, version 2.0, the text of which
+is included above.
+
+
+>>> JavaPoet 1.13.0 (com.squareup:javapoet:1.13.0):
+
+Per the LICENSE file in the JavaPoet JAR distribution downloaded from
+https://github.com/square/javapoet/archive/refs/tags/javapoet-1.13.0.zip,
+JavaPoet 1.13.0 is licensed under the Apache License, version 2.0, the text of
+which is included above.
+
+
+>>> Objenesis 3.2 (org.objenesis:objenesis:3.2):
+
+Per the LICENSE file in the Objenesis ZIP distribution downloaded from
+http://objenesis.org/download.html, Objenesis 3.2 is licensed under the
+Apache License, version 2.0, the text of which is included above.
+
+Per the NOTICE file in the Objenesis ZIP distribution downloaded from
+http://objenesis.org/download.html and corresponding to section 4d of the
+Apache License, Version 2.0, in this case for Objenesis:
+
+Objenesis
+Copyright 2006-2019 Joe Walnes, Henri Tremblay, Leonardo Mesquita
+
+
+===============================================================================
+
+To the extent any open source components are licensed under the EPL and/or
+other similar licenses that require the source code and/or modifications to
+source code to be made available (as would be noted above), you may obtain a
+copy of the source code corresponding to the binaries for such open source
+components and modifications thereto, if any, (the "Source Files"), by
+downloading the Source Files from https://spring.io/projects, Pivotal's website
+at https://network.pivotal.io/open-source, or by sending a request, with your
+name and address to: Pivotal Software, Inc., 875 Howard Street, 5th floor, San
+Francisco, CA 94103, Attention: General Counsel. All such requests should
+clearly specify: OPEN SOURCE FILES REQUEST, Attention General Counsel. Pivotal
+can mail a copy of the Source Files to you on a CD or equivalent physical
+medium.
+
+This offer to obtain a copy of the Source Files is valid for three years from
+the date you acquired this Software product. Alternatively, the Source Files
+may accompany the Software.
diff --git a/licenses/spring-jcl-6.1.5.jar/META-INF/notice.txt b/licenses/spring-jcl-6.1.5.jar/META-INF/notice.txt
new file mode 100644
index 000000000..23f4051a3
--- /dev/null
+++ b/licenses/spring-jcl-6.1.5.jar/META-INF/notice.txt
@@ -0,0 +1,11 @@
+Spring Framework 6.1.5
+Copyright (c) 2002-2024 Pivotal, Inc.
+
+This product is licensed to you under the Apache License, Version 2.0
+(the "License"). You may not use this product except in compliance with
+the License.
+
+This product may include a number of subcomponents with separate
+copyright notices and license terms. Your use of the source code for
+these subcomponents is subject to the terms and conditions of the
+subcomponent's license, as noted in the license.txt file.
diff --git a/licenses/spring-jcl-6.1.8.jar/META-INF/license.txt b/licenses/spring-jcl-6.1.8.jar/META-INF/license.txt
new file mode 100644
index 000000000..0c1fa9332
--- /dev/null
+++ b/licenses/spring-jcl-6.1.8.jar/META-INF/license.txt
@@ -0,0 +1,297 @@
+                                 Apache License
+                           Version 2.0, January 2004
+                        https://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       https://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+
+=======================================================================
+
+SPRING FRAMEWORK 6.1.8 SUBCOMPONENTS:
+
+Spring Framework 6.1.8 includes a number of subcomponents
+with separate copyright notices and license terms. The product that
+includes this file does not necessarily use all the open source
+subcomponents referred to below. Your use of the source
+code for these subcomponents is subject to the terms and
+conditions of the following licenses.
+
+
+>>> ASM 9.1 (org.ow2.asm:asm:9.1, org.ow2.asm:asm-commons:9.1):
+
+Copyright (c) 2000-2011 INRIA, France Telecom
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+1. Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+
+3. Neither the name of the copyright holders nor the names of its
+   contributors may be used to endorse or promote products derived from
+   this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+THE POSSIBILITY OF SUCH DAMAGE.
+
+Copyright (c) 1999-2009, OW2 Consortium <https://www.ow2.org/>
+
+
+>>> CGLIB 3.3 (cglib:cglib:3.3):
+
+Per the LICENSE file in the CGLIB JAR distribution downloaded from
+https://github.com/cglib/cglib/releases/download/RELEASE_3_3_0/cglib-3.3.0.jar,
+CGLIB 3.3 is licensed under the Apache License, version 2.0, the text of which
+is included above.
+
+
+>>> JavaPoet 1.13.0 (com.squareup:javapoet:1.13.0):
+
+Per the LICENSE file in the JavaPoet JAR distribution downloaded from
+https://github.com/square/javapoet/archive/refs/tags/javapoet-1.13.0.zip,
+JavaPoet 1.13.0 is licensed under the Apache License, version 2.0, the text of
+which is included above.
+
+
+>>> Objenesis 3.2 (org.objenesis:objenesis:3.2):
+
+Per the LICENSE file in the Objenesis ZIP distribution downloaded from
+http://objenesis.org/download.html, Objenesis 3.2 is licensed under the
+Apache License, version 2.0, the text of which is included above.
+
+Per the NOTICE file in the Objenesis ZIP distribution downloaded from
+http://objenesis.org/download.html and corresponding to section 4d of the
+Apache License, Version 2.0, in this case for Objenesis:
+
+Objenesis
+Copyright 2006-2019 Joe Walnes, Henri Tremblay, Leonardo Mesquita
+
+
+===============================================================================
+
+To the extent any open source components are licensed under the EPL and/or
+other similar licenses that require the source code and/or modifications to
+source code to be made available (as would be noted above), you may obtain a
+copy of the source code corresponding to the binaries for such open source
+components and modifications thereto, if any, (the "Source Files"), by
+downloading the Source Files from https://spring.io/projects, Pivotal's website
+at https://network.pivotal.io/open-source, or by sending a request, with your
+name and address to: Pivotal Software, Inc., 875 Howard Street, 5th floor, San
+Francisco, CA 94103, Attention: General Counsel. All such requests should
+clearly specify: OPEN SOURCE FILES REQUEST, Attention General Counsel. Pivotal
+can mail a copy of the Source Files to you on a CD or equivalent physical
+medium.
+
+This offer to obtain a copy of the Source Files is valid for three years from
+the date you acquired this Software product. Alternatively, the Source Files
+may accompany the Software.
diff --git a/licenses/spring-jcl-6.1.8.jar/META-INF/notice.txt b/licenses/spring-jcl-6.1.8.jar/META-INF/notice.txt
new file mode 100644
index 000000000..f2a0096c6
--- /dev/null
+++ b/licenses/spring-jcl-6.1.8.jar/META-INF/notice.txt
@@ -0,0 +1,11 @@
+Spring Framework 6.1.8
+Copyright (c) 2002-2024 Pivotal, Inc.
+
+This product is licensed to you under the Apache License, Version 2.0
+(the "License"). You may not use this product except in compliance with
+the License.
+
+This product may include a number of subcomponents with separate
+copyright notices and license terms. Your use of the source code for
+these subcomponents is subject to the terms and conditions of the
+subcomponent's license, as noted in the license.txt file.
diff --git a/licenses/spring-jdbc-6.1.5.jar/META-INF/license.txt b/licenses/spring-jdbc-6.1.5.jar/META-INF/license.txt
new file mode 100644
index 000000000..d8ab95394
--- /dev/null
+++ b/licenses/spring-jdbc-6.1.5.jar/META-INF/license.txt
@@ -0,0 +1,297 @@
+                                 Apache License
+                           Version 2.0, January 2004
+                        https://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       https://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+
+=======================================================================
+
+SPRING FRAMEWORK 6.1.5 SUBCOMPONENTS:
+
+Spring Framework 6.1.5 includes a number of subcomponents
+with separate copyright notices and license terms. The product that
+includes this file does not necessarily use all the open source
+subcomponents referred to below. Your use of the source
+code for these subcomponents is subject to the terms and
+conditions of the following licenses.
+
+
+>>> ASM 9.1 (org.ow2.asm:asm:9.1, org.ow2.asm:asm-commons:9.1):
+
+Copyright (c) 2000-2011 INRIA, France Telecom
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+1. Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+
+3. Neither the name of the copyright holders nor the names of its
+   contributors may be used to endorse or promote products derived from
+   this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+THE POSSIBILITY OF SUCH DAMAGE.
+
+Copyright (c) 1999-2009, OW2 Consortium <https://www.ow2.org/>
+
+
+>>> CGLIB 3.3 (cglib:cglib:3.3):
+
+Per the LICENSE file in the CGLIB JAR distribution downloaded from
+https://github.com/cglib/cglib/releases/download/RELEASE_3_3_0/cglib-3.3.0.jar,
+CGLIB 3.3 is licensed under the Apache License, version 2.0, the text of which
+is included above.
+
+
+>>> JavaPoet 1.13.0 (com.squareup:javapoet:1.13.0):
+
+Per the LICENSE file in the JavaPoet JAR distribution downloaded from
+https://github.com/square/javapoet/archive/refs/tags/javapoet-1.13.0.zip,
+JavaPoet 1.13.0 is licensed under the Apache License, version 2.0, the text of
+which is included above.
+
+
+>>> Objenesis 3.2 (org.objenesis:objenesis:3.2):
+
+Per the LICENSE file in the Objenesis ZIP distribution downloaded from
+http://objenesis.org/download.html, Objenesis 3.2 is licensed under the
+Apache License, version 2.0, the text of which is included above.
+
+Per the NOTICE file in the Objenesis ZIP distribution downloaded from
+http://objenesis.org/download.html and corresponding to section 4d of the
+Apache License, Version 2.0, in this case for Objenesis:
+
+Objenesis
+Copyright 2006-2019 Joe Walnes, Henri Tremblay, Leonardo Mesquita
+
+
+===============================================================================
+
+To the extent any open source components are licensed under the EPL and/or
+other similar licenses that require the source code and/or modifications to
+source code to be made available (as would be noted above), you may obtain a
+copy of the source code corresponding to the binaries for such open source
+components and modifications thereto, if any, (the "Source Files"), by
+downloading the Source Files from https://spring.io/projects, Pivotal's website
+at https://network.pivotal.io/open-source, or by sending a request, with your
+name and address to: Pivotal Software, Inc., 875 Howard Street, 5th floor, San
+Francisco, CA 94103, Attention: General Counsel. All such requests should
+clearly specify: OPEN SOURCE FILES REQUEST, Attention General Counsel. Pivotal
+can mail a copy of the Source Files to you on a CD or equivalent physical
+medium.
+
+This offer to obtain a copy of the Source Files is valid for three years from
+the date you acquired this Software product. Alternatively, the Source Files
+may accompany the Software.
diff --git a/licenses/spring-jdbc-6.1.5.jar/META-INF/notice.txt b/licenses/spring-jdbc-6.1.5.jar/META-INF/notice.txt
new file mode 100644
index 000000000..23f4051a3
--- /dev/null
+++ b/licenses/spring-jdbc-6.1.5.jar/META-INF/notice.txt
@@ -0,0 +1,11 @@
+Spring Framework 6.1.5
+Copyright (c) 2002-2024 Pivotal, Inc.
+
+This product is licensed to you under the Apache License, Version 2.0
+(the "License"). You may not use this product except in compliance with
+the License.
+
+This product may include a number of subcomponents with separate
+copyright notices and license terms. Your use of the source code for
+these subcomponents is subject to the terms and conditions of the
+subcomponent's license, as noted in the license.txt file.
diff --git a/licenses/spring-jdbc-6.1.8.jar/META-INF/license.txt b/licenses/spring-jdbc-6.1.8.jar/META-INF/license.txt
new file mode 100644
index 000000000..0c1fa9332
--- /dev/null
+++ b/licenses/spring-jdbc-6.1.8.jar/META-INF/license.txt
@@ -0,0 +1,297 @@
+                                 Apache License
+                           Version 2.0, January 2004
+                        https://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       https://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+
+=======================================================================
+
+SPRING FRAMEWORK 6.1.8 SUBCOMPONENTS:
+
+Spring Framework 6.1.8 includes a number of subcomponents
+with separate copyright notices and license terms. The product that
+includes this file does not necessarily use all the open source
+subcomponents referred to below. Your use of the source
+code for these subcomponents is subject to the terms and
+conditions of the following licenses.
+
+
+>>> ASM 9.1 (org.ow2.asm:asm:9.1, org.ow2.asm:asm-commons:9.1):
+
+Copyright (c) 2000-2011 INRIA, France Telecom
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+1. Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+
+3. Neither the name of the copyright holders nor the names of its
+   contributors may be used to endorse or promote products derived from
+   this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+THE POSSIBILITY OF SUCH DAMAGE.
+
+Copyright (c) 1999-2009, OW2 Consortium <https://www.ow2.org/>
+
+
+>>> CGLIB 3.3 (cglib:cglib:3.3):
+
+Per the LICENSE file in the CGLIB JAR distribution downloaded from
+https://github.com/cglib/cglib/releases/download/RELEASE_3_3_0/cglib-3.3.0.jar,
+CGLIB 3.3 is licensed under the Apache License, version 2.0, the text of which
+is included above.
+
+
+>>> JavaPoet 1.13.0 (com.squareup:javapoet:1.13.0):
+
+Per the LICENSE file in the JavaPoet JAR distribution downloaded from
+https://github.com/square/javapoet/archive/refs/tags/javapoet-1.13.0.zip,
+JavaPoet 1.13.0 is licensed under the Apache License, version 2.0, the text of
+which is included above.
+
+
+>>> Objenesis 3.2 (org.objenesis:objenesis:3.2):
+
+Per the LICENSE file in the Objenesis ZIP distribution downloaded from
+http://objenesis.org/download.html, Objenesis 3.2 is licensed under the
+Apache License, version 2.0, the text of which is included above.
+
+Per the NOTICE file in the Objenesis ZIP distribution downloaded from
+http://objenesis.org/download.html and corresponding to section 4d of the
+Apache License, Version 2.0, in this case for Objenesis:
+
+Objenesis
+Copyright 2006-2019 Joe Walnes, Henri Tremblay, Leonardo Mesquita
+
+
+===============================================================================
+
+To the extent any open source components are licensed under the EPL and/or
+other similar licenses that require the source code and/or modifications to
+source code to be made available (as would be noted above), you may obtain a
+copy of the source code corresponding to the binaries for such open source
+components and modifications thereto, if any, (the "Source Files"), by
+downloading the Source Files from https://spring.io/projects, Pivotal's website
+at https://network.pivotal.io/open-source, or by sending a request, with your
+name and address to: Pivotal Software, Inc., 875 Howard Street, 5th floor, San
+Francisco, CA 94103, Attention: General Counsel. All such requests should
+clearly specify: OPEN SOURCE FILES REQUEST, Attention General Counsel. Pivotal
+can mail a copy of the Source Files to you on a CD or equivalent physical
+medium.
+
+This offer to obtain a copy of the Source Files is valid for three years from
+the date you acquired this Software product. Alternatively, the Source Files
+may accompany the Software.
diff --git a/licenses/spring-jdbc-6.1.8.jar/META-INF/notice.txt b/licenses/spring-jdbc-6.1.8.jar/META-INF/notice.txt
new file mode 100644
index 000000000..f2a0096c6
--- /dev/null
+++ b/licenses/spring-jdbc-6.1.8.jar/META-INF/notice.txt
@@ -0,0 +1,11 @@
+Spring Framework 6.1.8
+Copyright (c) 2002-2024 Pivotal, Inc.
+
+This product is licensed to you under the Apache License, Version 2.0
+(the "License"). You may not use this product except in compliance with
+the License.
+
+This product may include a number of subcomponents with separate
+copyright notices and license terms. Your use of the source code for
+these subcomponents is subject to the terms and conditions of the
+subcomponent's license, as noted in the license.txt file.
diff --git a/licenses/spring-orm-6.1.5.jar/META-INF/license.txt b/licenses/spring-orm-6.1.5.jar/META-INF/license.txt
new file mode 100644
index 000000000..d8ab95394
--- /dev/null
+++ b/licenses/spring-orm-6.1.5.jar/META-INF/license.txt
@@ -0,0 +1,297 @@
+                                 Apache License
+                           Version 2.0, January 2004
+                        https://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       https://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+
+=======================================================================
+
+SPRING FRAMEWORK 6.1.5 SUBCOMPONENTS:
+
+Spring Framework 6.1.5 includes a number of subcomponents
+with separate copyright notices and license terms. The product that
+includes this file does not necessarily use all the open source
+subcomponents referred to below. Your use of the source
+code for these subcomponents is subject to the terms and
+conditions of the following licenses.
+
+
+>>> ASM 9.1 (org.ow2.asm:asm:9.1, org.ow2.asm:asm-commons:9.1):
+
+Copyright (c) 2000-2011 INRIA, France Telecom
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+1. Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+
+3. Neither the name of the copyright holders nor the names of its
+   contributors may be used to endorse or promote products derived from
+   this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+THE POSSIBILITY OF SUCH DAMAGE.
+
+Copyright (c) 1999-2009, OW2 Consortium <https://www.ow2.org/>
+
+
+>>> CGLIB 3.3 (cglib:cglib:3.3):
+
+Per the LICENSE file in the CGLIB JAR distribution downloaded from
+https://github.com/cglib/cglib/releases/download/RELEASE_3_3_0/cglib-3.3.0.jar,
+CGLIB 3.3 is licensed under the Apache License, version 2.0, the text of which
+is included above.
+
+
+>>> JavaPoet 1.13.0 (com.squareup:javapoet:1.13.0):
+
+Per the LICENSE file in the JavaPoet JAR distribution downloaded from
+https://github.com/square/javapoet/archive/refs/tags/javapoet-1.13.0.zip,
+JavaPoet 1.13.0 is licensed under the Apache License, version 2.0, the text of
+which is included above.
+
+
+>>> Objenesis 3.2 (org.objenesis:objenesis:3.2):
+
+Per the LICENSE file in the Objenesis ZIP distribution downloaded from
+http://objenesis.org/download.html, Objenesis 3.2 is licensed under the
+Apache License, version 2.0, the text of which is included above.
+
+Per the NOTICE file in the Objenesis ZIP distribution downloaded from
+http://objenesis.org/download.html and corresponding to section 4d of the
+Apache License, Version 2.0, in this case for Objenesis:
+
+Objenesis
+Copyright 2006-2019 Joe Walnes, Henri Tremblay, Leonardo Mesquita
+
+
+===============================================================================
+
+To the extent any open source components are licensed under the EPL and/or
+other similar licenses that require the source code and/or modifications to
+source code to be made available (as would be noted above), you may obtain a
+copy of the source code corresponding to the binaries for such open source
+components and modifications thereto, if any, (the "Source Files"), by
+downloading the Source Files from https://spring.io/projects, Pivotal's website
+at https://network.pivotal.io/open-source, or by sending a request, with your
+name and address to: Pivotal Software, Inc., 875 Howard Street, 5th floor, San
+Francisco, CA 94103, Attention: General Counsel. All such requests should
+clearly specify: OPEN SOURCE FILES REQUEST, Attention General Counsel. Pivotal
+can mail a copy of the Source Files to you on a CD or equivalent physical
+medium.
+
+This offer to obtain a copy of the Source Files is valid for three years from
+the date you acquired this Software product. Alternatively, the Source Files
+may accompany the Software.
diff --git a/licenses/spring-orm-6.1.5.jar/META-INF/notice.txt b/licenses/spring-orm-6.1.5.jar/META-INF/notice.txt
new file mode 100644
index 000000000..23f4051a3
--- /dev/null
+++ b/licenses/spring-orm-6.1.5.jar/META-INF/notice.txt
@@ -0,0 +1,11 @@
+Spring Framework 6.1.5
+Copyright (c) 2002-2024 Pivotal, Inc.
+
+This product is licensed to you under the Apache License, Version 2.0
+(the "License"). You may not use this product except in compliance with
+the License.
+
+This product may include a number of subcomponents with separate
+copyright notices and license terms. Your use of the source code for
+these subcomponents is subject to the terms and conditions of the
+subcomponent's license, as noted in the license.txt file.
diff --git a/licenses/spring-orm-6.1.8.jar/META-INF/license.txt b/licenses/spring-orm-6.1.8.jar/META-INF/license.txt
new file mode 100644
index 000000000..0c1fa9332
--- /dev/null
+++ b/licenses/spring-orm-6.1.8.jar/META-INF/license.txt
@@ -0,0 +1,297 @@
+                                 Apache License
+                           Version 2.0, January 2004
+                        https://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       https://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+
+=======================================================================
+
+SPRING FRAMEWORK 6.1.8 SUBCOMPONENTS:
+
+Spring Framework 6.1.8 includes a number of subcomponents
+with separate copyright notices and license terms. The product that
+includes this file does not necessarily use all the open source
+subcomponents referred to below. Your use of the source
+code for these subcomponents is subject to the terms and
+conditions of the following licenses.
+
+
+>>> ASM 9.1 (org.ow2.asm:asm:9.1, org.ow2.asm:asm-commons:9.1):
+
+Copyright (c) 2000-2011 INRIA, France Telecom
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+1. Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+
+3. Neither the name of the copyright holders nor the names of its
+   contributors may be used to endorse or promote products derived from
+   this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+THE POSSIBILITY OF SUCH DAMAGE.
+
+Copyright (c) 1999-2009, OW2 Consortium <https://www.ow2.org/>
+
+
+>>> CGLIB 3.3 (cglib:cglib:3.3):
+
+Per the LICENSE file in the CGLIB JAR distribution downloaded from
+https://github.com/cglib/cglib/releases/download/RELEASE_3_3_0/cglib-3.3.0.jar,
+CGLIB 3.3 is licensed under the Apache License, version 2.0, the text of which
+is included above.
+
+
+>>> JavaPoet 1.13.0 (com.squareup:javapoet:1.13.0):
+
+Per the LICENSE file in the JavaPoet JAR distribution downloaded from
+https://github.com/square/javapoet/archive/refs/tags/javapoet-1.13.0.zip,
+JavaPoet 1.13.0 is licensed under the Apache License, version 2.0, the text of
+which is included above.
+
+
+>>> Objenesis 3.2 (org.objenesis:objenesis:3.2):
+
+Per the LICENSE file in the Objenesis ZIP distribution downloaded from
+http://objenesis.org/download.html, Objenesis 3.2 is licensed under the
+Apache License, version 2.0, the text of which is included above.
+
+Per the NOTICE file in the Objenesis ZIP distribution downloaded from
+http://objenesis.org/download.html and corresponding to section 4d of the
+Apache License, Version 2.0, in this case for Objenesis:
+
+Objenesis
+Copyright 2006-2019 Joe Walnes, Henri Tremblay, Leonardo Mesquita
+
+
+===============================================================================
+
+To the extent any open source components are licensed under the EPL and/or
+other similar licenses that require the source code and/or modifications to
+source code to be made available (as would be noted above), you may obtain a
+copy of the source code corresponding to the binaries for such open source
+components and modifications thereto, if any, (the "Source Files"), by
+downloading the Source Files from https://spring.io/projects, Pivotal's website
+at https://network.pivotal.io/open-source, or by sending a request, with your
+name and address to: Pivotal Software, Inc., 875 Howard Street, 5th floor, San
+Francisco, CA 94103, Attention: General Counsel. All such requests should
+clearly specify: OPEN SOURCE FILES REQUEST, Attention General Counsel. Pivotal
+can mail a copy of the Source Files to you on a CD or equivalent physical
+medium.
+
+This offer to obtain a copy of the Source Files is valid for three years from
+the date you acquired this Software product. Alternatively, the Source Files
+may accompany the Software.
diff --git a/licenses/spring-orm-6.1.8.jar/META-INF/notice.txt b/licenses/spring-orm-6.1.8.jar/META-INF/notice.txt
new file mode 100644
index 000000000..f2a0096c6
--- /dev/null
+++ b/licenses/spring-orm-6.1.8.jar/META-INF/notice.txt
@@ -0,0 +1,11 @@
+Spring Framework 6.1.8
+Copyright (c) 2002-2024 Pivotal, Inc.
+
+This product is licensed to you under the Apache License, Version 2.0
+(the "License"). You may not use this product except in compliance with
+the License.
+
+This product may include a number of subcomponents with separate
+copyright notices and license terms. Your use of the source code for
+these subcomponents is subject to the terms and conditions of the
+subcomponent's license, as noted in the license.txt file.
diff --git a/licenses/spring-tx-6.1.5.jar/META-INF/license.txt b/licenses/spring-tx-6.1.5.jar/META-INF/license.txt
new file mode 100644
index 000000000..d8ab95394
--- /dev/null
+++ b/licenses/spring-tx-6.1.5.jar/META-INF/license.txt
@@ -0,0 +1,297 @@
+                                 Apache License
+                           Version 2.0, January 2004
+                        https://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       https://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+
+=======================================================================
+
+SPRING FRAMEWORK 6.1.5 SUBCOMPONENTS:
+
+Spring Framework 6.1.5 includes a number of subcomponents
+with separate copyright notices and license terms. The product that
+includes this file does not necessarily use all the open source
+subcomponents referred to below. Your use of the source
+code for these subcomponents is subject to the terms and
+conditions of the following licenses.
+
+
+>>> ASM 9.1 (org.ow2.asm:asm:9.1, org.ow2.asm:asm-commons:9.1):
+
+Copyright (c) 2000-2011 INRIA, France Telecom
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+1. Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+
+3. Neither the name of the copyright holders nor the names of its
+   contributors may be used to endorse or promote products derived from
+   this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+THE POSSIBILITY OF SUCH DAMAGE.
+
+Copyright (c) 1999-2009, OW2 Consortium <https://www.ow2.org/>
+
+
+>>> CGLIB 3.3 (cglib:cglib:3.3):
+
+Per the LICENSE file in the CGLIB JAR distribution downloaded from
+https://github.com/cglib/cglib/releases/download/RELEASE_3_3_0/cglib-3.3.0.jar,
+CGLIB 3.3 is licensed under the Apache License, version 2.0, the text of which
+is included above.
+
+
+>>> JavaPoet 1.13.0 (com.squareup:javapoet:1.13.0):
+
+Per the LICENSE file in the JavaPoet JAR distribution downloaded from
+https://github.com/square/javapoet/archive/refs/tags/javapoet-1.13.0.zip,
+JavaPoet 1.13.0 is licensed under the Apache License, version 2.0, the text of
+which is included above.
+
+
+>>> Objenesis 3.2 (org.objenesis:objenesis:3.2):
+
+Per the LICENSE file in the Objenesis ZIP distribution downloaded from
+http://objenesis.org/download.html, Objenesis 3.2 is licensed under the
+Apache License, version 2.0, the text of which is included above.
+
+Per the NOTICE file in the Objenesis ZIP distribution downloaded from
+http://objenesis.org/download.html and corresponding to section 4d of the
+Apache License, Version 2.0, in this case for Objenesis:
+
+Objenesis
+Copyright 2006-2019 Joe Walnes, Henri Tremblay, Leonardo Mesquita
+
+
+===============================================================================
+
+To the extent any open source components are licensed under the EPL and/or
+other similar licenses that require the source code and/or modifications to
+source code to be made available (as would be noted above), you may obtain a
+copy of the source code corresponding to the binaries for such open source
+components and modifications thereto, if any, (the "Source Files"), by
+downloading the Source Files from https://spring.io/projects, Pivotal's website
+at https://network.pivotal.io/open-source, or by sending a request, with your
+name and address to: Pivotal Software, Inc., 875 Howard Street, 5th floor, San
+Francisco, CA 94103, Attention: General Counsel. All such requests should
+clearly specify: OPEN SOURCE FILES REQUEST, Attention General Counsel. Pivotal
+can mail a copy of the Source Files to you on a CD or equivalent physical
+medium.
+
+This offer to obtain a copy of the Source Files is valid for three years from
+the date you acquired this Software product. Alternatively, the Source Files
+may accompany the Software.
diff --git a/licenses/spring-tx-6.1.5.jar/META-INF/notice.txt b/licenses/spring-tx-6.1.5.jar/META-INF/notice.txt
new file mode 100644
index 000000000..23f4051a3
--- /dev/null
+++ b/licenses/spring-tx-6.1.5.jar/META-INF/notice.txt
@@ -0,0 +1,11 @@
+Spring Framework 6.1.5
+Copyright (c) 2002-2024 Pivotal, Inc.
+
+This product is licensed to you under the Apache License, Version 2.0
+(the "License"). You may not use this product except in compliance with
+the License.
+
+This product may include a number of subcomponents with separate
+copyright notices and license terms. Your use of the source code for
+these subcomponents is subject to the terms and conditions of the
+subcomponent's license, as noted in the license.txt file.
diff --git a/licenses/spring-tx-6.1.8.jar/META-INF/license.txt b/licenses/spring-tx-6.1.8.jar/META-INF/license.txt
new file mode 100644
index 000000000..0c1fa9332
--- /dev/null
+++ b/licenses/spring-tx-6.1.8.jar/META-INF/license.txt
@@ -0,0 +1,297 @@
+                                 Apache License
+                           Version 2.0, January 2004
+                        https://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       https://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+
+=======================================================================
+
+SPRING FRAMEWORK 6.1.8 SUBCOMPONENTS:
+
+Spring Framework 6.1.8 includes a number of subcomponents
+with separate copyright notices and license terms. The product that
+includes this file does not necessarily use all the open source
+subcomponents referred to below. Your use of the source
+code for these subcomponents is subject to the terms and
+conditions of the following licenses.
+
+
+>>> ASM 9.1 (org.ow2.asm:asm:9.1, org.ow2.asm:asm-commons:9.1):
+
+Copyright (c) 2000-2011 INRIA, France Telecom
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+1. Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+
+3. Neither the name of the copyright holders nor the names of its
+   contributors may be used to endorse or promote products derived from
+   this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+THE POSSIBILITY OF SUCH DAMAGE.
+
+Copyright (c) 1999-2009, OW2 Consortium <https://www.ow2.org/>
+
+
+>>> CGLIB 3.3 (cglib:cglib:3.3):
+
+Per the LICENSE file in the CGLIB JAR distribution downloaded from
+https://github.com/cglib/cglib/releases/download/RELEASE_3_3_0/cglib-3.3.0.jar,
+CGLIB 3.3 is licensed under the Apache License, version 2.0, the text of which
+is included above.
+
+
+>>> JavaPoet 1.13.0 (com.squareup:javapoet:1.13.0):
+
+Per the LICENSE file in the JavaPoet JAR distribution downloaded from
+https://github.com/square/javapoet/archive/refs/tags/javapoet-1.13.0.zip,
+JavaPoet 1.13.0 is licensed under the Apache License, version 2.0, the text of
+which is included above.
+
+
+>>> Objenesis 3.2 (org.objenesis:objenesis:3.2):
+
+Per the LICENSE file in the Objenesis ZIP distribution downloaded from
+http://objenesis.org/download.html, Objenesis 3.2 is licensed under the
+Apache License, version 2.0, the text of which is included above.
+
+Per the NOTICE file in the Objenesis ZIP distribution downloaded from
+http://objenesis.org/download.html and corresponding to section 4d of the
+Apache License, Version 2.0, in this case for Objenesis:
+
+Objenesis
+Copyright 2006-2019 Joe Walnes, Henri Tremblay, Leonardo Mesquita
+
+
+===============================================================================
+
+To the extent any open source components are licensed under the EPL and/or
+other similar licenses that require the source code and/or modifications to
+source code to be made available (as would be noted above), you may obtain a
+copy of the source code corresponding to the binaries for such open source
+components and modifications thereto, if any, (the "Source Files"), by
+downloading the Source Files from https://spring.io/projects, Pivotal's website
+at https://network.pivotal.io/open-source, or by sending a request, with your
+name and address to: Pivotal Software, Inc., 875 Howard Street, 5th floor, San
+Francisco, CA 94103, Attention: General Counsel. All such requests should
+clearly specify: OPEN SOURCE FILES REQUEST, Attention General Counsel. Pivotal
+can mail a copy of the Source Files to you on a CD or equivalent physical
+medium.
+
+This offer to obtain a copy of the Source Files is valid for three years from
+the date you acquired this Software product. Alternatively, the Source Files
+may accompany the Software.
diff --git a/licenses/spring-tx-6.1.8.jar/META-INF/notice.txt b/licenses/spring-tx-6.1.8.jar/META-INF/notice.txt
new file mode 100644
index 000000000..f2a0096c6
--- /dev/null
+++ b/licenses/spring-tx-6.1.8.jar/META-INF/notice.txt
@@ -0,0 +1,11 @@
+Spring Framework 6.1.8
+Copyright (c) 2002-2024 Pivotal, Inc.
+
+This product is licensed to you under the Apache License, Version 2.0
+(the "License"). You may not use this product except in compliance with
+the License.
+
+This product may include a number of subcomponents with separate
+copyright notices and license terms. Your use of the source code for
+these subcomponents is subject to the terms and conditions of the
+subcomponent's license, as noted in the license.txt file.
diff --git a/licenses/spring-web-6.1.5.jar/META-INF/license.txt b/licenses/spring-web-6.1.5.jar/META-INF/license.txt
new file mode 100644
index 000000000..d8ab95394
--- /dev/null
+++ b/licenses/spring-web-6.1.5.jar/META-INF/license.txt
@@ -0,0 +1,297 @@
+                                 Apache License
+                           Version 2.0, January 2004
+                        https://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       https://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+
+=======================================================================
+
+SPRING FRAMEWORK 6.1.5 SUBCOMPONENTS:
+
+Spring Framework 6.1.5 includes a number of subcomponents
+with separate copyright notices and license terms. The product that
+includes this file does not necessarily use all the open source
+subcomponents referred to below. Your use of the source
+code for these subcomponents is subject to the terms and
+conditions of the following licenses.
+
+
+>>> ASM 9.1 (org.ow2.asm:asm:9.1, org.ow2.asm:asm-commons:9.1):
+
+Copyright (c) 2000-2011 INRIA, France Telecom
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+1. Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+
+3. Neither the name of the copyright holders nor the names of its
+   contributors may be used to endorse or promote products derived from
+   this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+THE POSSIBILITY OF SUCH DAMAGE.
+
+Copyright (c) 1999-2009, OW2 Consortium <https://www.ow2.org/>
+
+
+>>> CGLIB 3.3 (cglib:cglib:3.3):
+
+Per the LICENSE file in the CGLIB JAR distribution downloaded from
+https://github.com/cglib/cglib/releases/download/RELEASE_3_3_0/cglib-3.3.0.jar,
+CGLIB 3.3 is licensed under the Apache License, version 2.0, the text of which
+is included above.
+
+
+>>> JavaPoet 1.13.0 (com.squareup:javapoet:1.13.0):
+
+Per the LICENSE file in the JavaPoet JAR distribution downloaded from
+https://github.com/square/javapoet/archive/refs/tags/javapoet-1.13.0.zip,
+JavaPoet 1.13.0 is licensed under the Apache License, version 2.0, the text of
+which is included above.
+
+
+>>> Objenesis 3.2 (org.objenesis:objenesis:3.2):
+
+Per the LICENSE file in the Objenesis ZIP distribution downloaded from
+http://objenesis.org/download.html, Objenesis 3.2 is licensed under the
+Apache License, version 2.0, the text of which is included above.
+
+Per the NOTICE file in the Objenesis ZIP distribution downloaded from
+http://objenesis.org/download.html and corresponding to section 4d of the
+Apache License, Version 2.0, in this case for Objenesis:
+
+Objenesis
+Copyright 2006-2019 Joe Walnes, Henri Tremblay, Leonardo Mesquita
+
+
+===============================================================================
+
+To the extent any open source components are licensed under the EPL and/or
+other similar licenses that require the source code and/or modifications to
+source code to be made available (as would be noted above), you may obtain a
+copy of the source code corresponding to the binaries for such open source
+components and modifications thereto, if any, (the "Source Files"), by
+downloading the Source Files from https://spring.io/projects, Pivotal's website
+at https://network.pivotal.io/open-source, or by sending a request, with your
+name and address to: Pivotal Software, Inc., 875 Howard Street, 5th floor, San
+Francisco, CA 94103, Attention: General Counsel. All such requests should
+clearly specify: OPEN SOURCE FILES REQUEST, Attention General Counsel. Pivotal
+can mail a copy of the Source Files to you on a CD or equivalent physical
+medium.
+
+This offer to obtain a copy of the Source Files is valid for three years from
+the date you acquired this Software product. Alternatively, the Source Files
+may accompany the Software.
diff --git a/licenses/spring-web-6.1.5.jar/META-INF/notice.txt b/licenses/spring-web-6.1.5.jar/META-INF/notice.txt
new file mode 100644
index 000000000..23f4051a3
--- /dev/null
+++ b/licenses/spring-web-6.1.5.jar/META-INF/notice.txt
@@ -0,0 +1,11 @@
+Spring Framework 6.1.5
+Copyright (c) 2002-2024 Pivotal, Inc.
+
+This product is licensed to you under the Apache License, Version 2.0
+(the "License"). You may not use this product except in compliance with
+the License.
+
+This product may include a number of subcomponents with separate
+copyright notices and license terms. Your use of the source code for
+these subcomponents is subject to the terms and conditions of the
+subcomponent's license, as noted in the license.txt file.
diff --git a/licenses/spring-web-6.1.8.jar/META-INF/license.txt b/licenses/spring-web-6.1.8.jar/META-INF/license.txt
new file mode 100644
index 000000000..0c1fa9332
--- /dev/null
+++ b/licenses/spring-web-6.1.8.jar/META-INF/license.txt
@@ -0,0 +1,297 @@
+                                 Apache License
+                           Version 2.0, January 2004
+                        https://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       https://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+
+=======================================================================
+
+SPRING FRAMEWORK 6.1.8 SUBCOMPONENTS:
+
+Spring Framework 6.1.8 includes a number of subcomponents
+with separate copyright notices and license terms. The product that
+includes this file does not necessarily use all the open source
+subcomponents referred to below. Your use of the source
+code for these subcomponents is subject to the terms and
+conditions of the following licenses.
+
+
+>>> ASM 9.1 (org.ow2.asm:asm:9.1, org.ow2.asm:asm-commons:9.1):
+
+Copyright (c) 2000-2011 INRIA, France Telecom
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+1. Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+
+3. Neither the name of the copyright holders nor the names of its
+   contributors may be used to endorse or promote products derived from
+   this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+THE POSSIBILITY OF SUCH DAMAGE.
+
+Copyright (c) 1999-2009, OW2 Consortium <https://www.ow2.org/>
+
+
+>>> CGLIB 3.3 (cglib:cglib:3.3):
+
+Per the LICENSE file in the CGLIB JAR distribution downloaded from
+https://github.com/cglib/cglib/releases/download/RELEASE_3_3_0/cglib-3.3.0.jar,
+CGLIB 3.3 is licensed under the Apache License, version 2.0, the text of which
+is included above.
+
+
+>>> JavaPoet 1.13.0 (com.squareup:javapoet:1.13.0):
+
+Per the LICENSE file in the JavaPoet JAR distribution downloaded from
+https://github.com/square/javapoet/archive/refs/tags/javapoet-1.13.0.zip,
+JavaPoet 1.13.0 is licensed under the Apache License, version 2.0, the text of
+which is included above.
+
+
+>>> Objenesis 3.2 (org.objenesis:objenesis:3.2):
+
+Per the LICENSE file in the Objenesis ZIP distribution downloaded from
+http://objenesis.org/download.html, Objenesis 3.2 is licensed under the
+Apache License, version 2.0, the text of which is included above.
+
+Per the NOTICE file in the Objenesis ZIP distribution downloaded from
+http://objenesis.org/download.html and corresponding to section 4d of the
+Apache License, Version 2.0, in this case for Objenesis:
+
+Objenesis
+Copyright 2006-2019 Joe Walnes, Henri Tremblay, Leonardo Mesquita
+
+
+===============================================================================
+
+To the extent any open source components are licensed under the EPL and/or
+other similar licenses that require the source code and/or modifications to
+source code to be made available (as would be noted above), you may obtain a
+copy of the source code corresponding to the binaries for such open source
+components and modifications thereto, if any, (the "Source Files"), by
+downloading the Source Files from https://spring.io/projects, Pivotal's website
+at https://network.pivotal.io/open-source, or by sending a request, with your
+name and address to: Pivotal Software, Inc., 875 Howard Street, 5th floor, San
+Francisco, CA 94103, Attention: General Counsel. All such requests should
+clearly specify: OPEN SOURCE FILES REQUEST, Attention General Counsel. Pivotal
+can mail a copy of the Source Files to you on a CD or equivalent physical
+medium.
+
+This offer to obtain a copy of the Source Files is valid for three years from
+the date you acquired this Software product. Alternatively, the Source Files
+may accompany the Software.
diff --git a/licenses/spring-web-6.1.8.jar/META-INF/notice.txt b/licenses/spring-web-6.1.8.jar/META-INF/notice.txt
new file mode 100644
index 000000000..f2a0096c6
--- /dev/null
+++ b/licenses/spring-web-6.1.8.jar/META-INF/notice.txt
@@ -0,0 +1,11 @@
+Spring Framework 6.1.8
+Copyright (c) 2002-2024 Pivotal, Inc.
+
+This product is licensed to you under the Apache License, Version 2.0
+(the "License"). You may not use this product except in compliance with
+the License.
+
+This product may include a number of subcomponents with separate
+copyright notices and license terms. Your use of the source code for
+these subcomponents is subject to the terms and conditions of the
+subcomponent's license, as noted in the license.txt file.
diff --git a/licenses/spring-webmvc-6.1.5.jar/META-INF/license.txt b/licenses/spring-webmvc-6.1.5.jar/META-INF/license.txt
new file mode 100644
index 000000000..d8ab95394
--- /dev/null
+++ b/licenses/spring-webmvc-6.1.5.jar/META-INF/license.txt
@@ -0,0 +1,297 @@
+                                 Apache License
+                           Version 2.0, January 2004
+                        https://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       https://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+
+=======================================================================
+
+SPRING FRAMEWORK 6.1.5 SUBCOMPONENTS:
+
+Spring Framework 6.1.5 includes a number of subcomponents
+with separate copyright notices and license terms. The product that
+includes this file does not necessarily use all the open source
+subcomponents referred to below. Your use of the source
+code for these subcomponents is subject to the terms and
+conditions of the following licenses.
+
+
+>>> ASM 9.1 (org.ow2.asm:asm:9.1, org.ow2.asm:asm-commons:9.1):
+
+Copyright (c) 2000-2011 INRIA, France Telecom
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+1. Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+
+3. Neither the name of the copyright holders nor the names of its
+   contributors may be used to endorse or promote products derived from
+   this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+THE POSSIBILITY OF SUCH DAMAGE.
+
+Copyright (c) 1999-2009, OW2 Consortium <https://www.ow2.org/>
+
+
+>>> CGLIB 3.3 (cglib:cglib:3.3):
+
+Per the LICENSE file in the CGLIB JAR distribution downloaded from
+https://github.com/cglib/cglib/releases/download/RELEASE_3_3_0/cglib-3.3.0.jar,
+CGLIB 3.3 is licensed under the Apache License, version 2.0, the text of which
+is included above.
+
+
+>>> JavaPoet 1.13.0 (com.squareup:javapoet:1.13.0):
+
+Per the LICENSE file in the JavaPoet JAR distribution downloaded from
+https://github.com/square/javapoet/archive/refs/tags/javapoet-1.13.0.zip,
+JavaPoet 1.13.0 is licensed under the Apache License, version 2.0, the text of
+which is included above.
+
+
+>>> Objenesis 3.2 (org.objenesis:objenesis:3.2):
+
+Per the LICENSE file in the Objenesis ZIP distribution downloaded from
+http://objenesis.org/download.html, Objenesis 3.2 is licensed under the
+Apache License, version 2.0, the text of which is included above.
+
+Per the NOTICE file in the Objenesis ZIP distribution downloaded from
+http://objenesis.org/download.html and corresponding to section 4d of the
+Apache License, Version 2.0, in this case for Objenesis:
+
+Objenesis
+Copyright 2006-2019 Joe Walnes, Henri Tremblay, Leonardo Mesquita
+
+
+===============================================================================
+
+To the extent any open source components are licensed under the EPL and/or
+other similar licenses that require the source code and/or modifications to
+source code to be made available (as would be noted above), you may obtain a
+copy of the source code corresponding to the binaries for such open source
+components and modifications thereto, if any, (the "Source Files"), by
+downloading the Source Files from https://spring.io/projects, Pivotal's website
+at https://network.pivotal.io/open-source, or by sending a request, with your
+name and address to: Pivotal Software, Inc., 875 Howard Street, 5th floor, San
+Francisco, CA 94103, Attention: General Counsel. All such requests should
+clearly specify: OPEN SOURCE FILES REQUEST, Attention General Counsel. Pivotal
+can mail a copy of the Source Files to you on a CD or equivalent physical
+medium.
+
+This offer to obtain a copy of the Source Files is valid for three years from
+the date you acquired this Software product. Alternatively, the Source Files
+may accompany the Software.
diff --git a/licenses/spring-webmvc-6.1.5.jar/META-INF/notice.txt b/licenses/spring-webmvc-6.1.5.jar/META-INF/notice.txt
new file mode 100644
index 000000000..23f4051a3
--- /dev/null
+++ b/licenses/spring-webmvc-6.1.5.jar/META-INF/notice.txt
@@ -0,0 +1,11 @@
+Spring Framework 6.1.5
+Copyright (c) 2002-2024 Pivotal, Inc.
+
+This product is licensed to you under the Apache License, Version 2.0
+(the "License"). You may not use this product except in compliance with
+the License.
+
+This product may include a number of subcomponents with separate
+copyright notices and license terms. Your use of the source code for
+these subcomponents is subject to the terms and conditions of the
+subcomponent's license, as noted in the license.txt file.
diff --git a/licenses/spring-webmvc-6.1.8.jar/META-INF/license.txt b/licenses/spring-webmvc-6.1.8.jar/META-INF/license.txt
new file mode 100644
index 000000000..0c1fa9332
--- /dev/null
+++ b/licenses/spring-webmvc-6.1.8.jar/META-INF/license.txt
@@ -0,0 +1,297 @@
+                                 Apache License
+                           Version 2.0, January 2004
+                        https://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       https://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+
+=======================================================================
+
+SPRING FRAMEWORK 6.1.8 SUBCOMPONENTS:
+
+Spring Framework 6.1.8 includes a number of subcomponents
+with separate copyright notices and license terms. The product that
+includes this file does not necessarily use all the open source
+subcomponents referred to below. Your use of the source
+code for these subcomponents is subject to the terms and
+conditions of the following licenses.
+
+
+>>> ASM 9.1 (org.ow2.asm:asm:9.1, org.ow2.asm:asm-commons:9.1):
+
+Copyright (c) 2000-2011 INRIA, France Telecom
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+1. Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+
+3. Neither the name of the copyright holders nor the names of its
+   contributors may be used to endorse or promote products derived from
+   this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+THE POSSIBILITY OF SUCH DAMAGE.
+
+Copyright (c) 1999-2009, OW2 Consortium <https://www.ow2.org/>
+
+
+>>> CGLIB 3.3 (cglib:cglib:3.3):
+
+Per the LICENSE file in the CGLIB JAR distribution downloaded from
+https://github.com/cglib/cglib/releases/download/RELEASE_3_3_0/cglib-3.3.0.jar,
+CGLIB 3.3 is licensed under the Apache License, version 2.0, the text of which
+is included above.
+
+
+>>> JavaPoet 1.13.0 (com.squareup:javapoet:1.13.0):
+
+Per the LICENSE file in the JavaPoet JAR distribution downloaded from
+https://github.com/square/javapoet/archive/refs/tags/javapoet-1.13.0.zip,
+JavaPoet 1.13.0 is licensed under the Apache License, version 2.0, the text of
+which is included above.
+
+
+>>> Objenesis 3.2 (org.objenesis:objenesis:3.2):
+
+Per the LICENSE file in the Objenesis ZIP distribution downloaded from
+http://objenesis.org/download.html, Objenesis 3.2 is licensed under the
+Apache License, version 2.0, the text of which is included above.
+
+Per the NOTICE file in the Objenesis ZIP distribution downloaded from
+http://objenesis.org/download.html and corresponding to section 4d of the
+Apache License, Version 2.0, in this case for Objenesis:
+
+Objenesis
+Copyright 2006-2019 Joe Walnes, Henri Tremblay, Leonardo Mesquita
+
+
+===============================================================================
+
+To the extent any open source components are licensed under the EPL and/or
+other similar licenses that require the source code and/or modifications to
+source code to be made available (as would be noted above), you may obtain a
+copy of the source code corresponding to the binaries for such open source
+components and modifications thereto, if any, (the "Source Files"), by
+downloading the Source Files from https://spring.io/projects, Pivotal's website
+at https://network.pivotal.io/open-source, or by sending a request, with your
+name and address to: Pivotal Software, Inc., 875 Howard Street, 5th floor, San
+Francisco, CA 94103, Attention: General Counsel. All such requests should
+clearly specify: OPEN SOURCE FILES REQUEST, Attention General Counsel. Pivotal
+can mail a copy of the Source Files to you on a CD or equivalent physical
+medium.
+
+This offer to obtain a copy of the Source Files is valid for three years from
+the date you acquired this Software product. Alternatively, the Source Files
+may accompany the Software.
diff --git a/licenses/spring-webmvc-6.1.8.jar/META-INF/notice.txt b/licenses/spring-webmvc-6.1.8.jar/META-INF/notice.txt
new file mode 100644
index 000000000..f2a0096c6
--- /dev/null
+++ b/licenses/spring-webmvc-6.1.8.jar/META-INF/notice.txt
@@ -0,0 +1,11 @@
+Spring Framework 6.1.8
+Copyright (c) 2002-2024 Pivotal, Inc.
+
+This product is licensed to you under the Apache License, Version 2.0
+(the "License"). You may not use this product except in compliance with
+the License.
+
+This product may include a number of subcomponents with separate
+copyright notices and license terms. Your use of the source code for
+these subcomponents is subject to the terms and conditions of the
+subcomponent's license, as noted in the license.txt file.
diff --git a/licenses/tomcat-embed-core-10.1.19.jar/META-INF/LICENSE b/licenses/tomcat-embed-core-10.1.19.jar/META-INF/LICENSE
new file mode 100644
index 000000000..2b4876a15
--- /dev/null
+++ b/licenses/tomcat-embed-core-10.1.19.jar/META-INF/LICENSE
@@ -0,0 +1,858 @@
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+
+
+
+APACHE TOMCAT SUBCOMPONENTS:
+
+Apache Tomcat includes a number of subcomponents with separate copyright notices
+and license terms. Your use of these subcomponents is subject to the terms and
+conditions of the following licenses.
+
+
+For the following XML Schemas for Java EE Deployment Descriptors:
+ - javaee_5.xsd
+ - javaee_web_services_1_2.xsd
+ - javaee_web_services_client_1_2.xsd
+ - javaee_6.xsd
+ - javaee_web_services_1_3.xsd
+ - javaee_web_services_client_1_3.xsd
+ - jsp_2_2.xsd
+ - web-app_3_0.xsd
+ - web-common_3_0.xsd
+ - web-fragment_3_0.xsd
+ - javaee_7.xsd
+ - javaee_web_services_1_4.xsd
+ - javaee_web_services_client_1_4.xsd
+ - jsp_2_3.xsd
+ - web-app_3_1.xsd
+ - web-common_3_1.xsd
+ - web-fragment_3_1.xsd
+ - javaee_8.xsd
+ - web-app_4_0.xsd
+ - web-common_4_0.xsd
+ - web-fragment_4_0.xsd
+
+COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.0
+
+1. Definitions.
+
+   1.1. Contributor. means each individual or entity that creates or contributes
+        to the creation of Modifications.
+
+   1.2. Contributor Version. means the combination of the Original Software,
+        prior Modifications used by a Contributor (if any), and the
+        Modifications made by that particular Contributor.
+
+   1.3. Covered Software. means (a) the Original Software, or (b) Modifications,
+        or (c) the combination of files containing Original Software with files
+        containing Modifications, in each case including portions thereof.
+
+   1.4. Executable. means the Covered Software in any form other than Source
+        Code.
+
+   1.5. Initial Developer. means the individual or entity that first makes
+        Original Software available under this License.
+
+   1.6. Larger Work. means a work which combines Covered Software or portions
+        thereof with code not governed by the terms of this License.
+
+   1.7. License. means this document.
+
+   1.8. Licensable. means having the right to grant, to the maximum extent
+        possible, whether at the time of the initial grant or subsequently
+        acquired, any and all of the rights conveyed herein.
+
+   1.9. Modifications. means the Source Code and Executable form of any of the
+        following:
+
+        A. Any file that results from an addition to, deletion from or
+           modification of the contents of a file containing Original Software
+           or previous Modifications;
+
+        B. Any new file that contains any part of the Original Software or
+           previous Modification; or
+
+        C. Any new file that is contributed or otherwise made available under
+           the terms of this License.
+
+   1.10. Original Software. means the Source Code and Executable form of
+         computer software code that is originally released under this License.
+
+   1.11. Patent Claims. means any patent claim(s), now owned or hereafter
+         acquired, including without limitation, method, process, and apparatus
+         claims, in any patent Licensable by grantor.
+
+   1.12. Source Code. means (a) the common form of computer software code in
+         which modifications are made and (b) associated documentation included
+         in or with such code.
+
+   1.13. You. (or .Your.) means an individual or a legal entity exercising
+         rights under, and complying with all of the terms of, this License. For
+         legal entities, .You. includes any entity which controls, is controlled
+         by, or is under common control with You. For purposes of this
+         definition, .control. means (a) the power, direct or indirect, to cause
+         the direction or management of such entity, whether by contract or
+         otherwise, or (b) ownership of more than fifty percent (50%) of the
+         outstanding shares or beneficial ownership of such entity.
+
+2. License Grants.
+
+      2.1. The Initial Developer Grant.
+
+      Conditioned upon Your compliance with Section 3.1 below and subject to
+      third party intellectual property claims, the Initial Developer hereby
+      grants You a world-wide, royalty-free, non-exclusive license:
+
+        (a) under intellectual property rights (other than patent or trademark)
+            Licensable by Initial Developer, to use, reproduce, modify, display,
+            perform, sublicense and distribute the Original Software (or
+            portions thereof), with or without Modifications, and/or as part of
+            a Larger Work; and
+
+        (b) under Patent Claims infringed by the making, using or selling of
+            Original Software, to make, have made, use, practice, sell, and
+            offer for sale, and/or otherwise dispose of the Original Software
+            (or portions thereof).
+
+        (c) The licenses granted in Sections 2.1(a) and (b) are effective on the
+            date Initial Developer first distributes or otherwise makes the
+            Original Software available to a third party under the terms of this
+            License.
+
+        (d) Notwithstanding Section 2.1(b) above, no patent license is granted:
+            (1) for code that You delete from the Original Software, or (2) for
+            infringements caused by: (i) the modification of the Original
+            Software, or (ii) the combination of the Original Software with
+            other software or devices.
+
+    2.2. Contributor Grant.
+
+    Conditioned upon Your compliance with Section 3.1 below and subject to third
+    party intellectual property claims, each Contributor hereby grants You a
+    world-wide, royalty-free, non-exclusive license:
+
+        (a) under intellectual property rights (other than patent or trademark)
+            Licensable by Contributor to use, reproduce, modify, display,
+            perform, sublicense and distribute the Modifications created by such
+            Contributor (or portions thereof), either on an unmodified basis,
+            with other Modifications, as Covered Software and/or as part of a
+            Larger Work; and
+
+        (b) under Patent Claims infringed by the making, using, or selling of
+            Modifications made by that Contributor either alone and/or in
+            combination with its Contributor Version (or portions of such
+            combination), to make, use, sell, offer for sale, have made, and/or
+            otherwise dispose of: (1) Modifications made by that Contributor (or
+            portions thereof); and (2) the combination of Modifications made by
+            that Contributor with its Contributor Version (or portions of such
+            combination).
+
+        (c) The licenses granted in Sections 2.2(a) and 2.2(b) are effective on
+            the date Contributor first distributes or otherwise makes the
+            Modifications available to a third party.
+
+        (d) Notwithstanding Section 2.2(b) above, no patent license is granted:
+            (1) for any code that Contributor has deleted from the Contributor
+            Version; (2) for infringements caused by: (i) third party
+            modifications of Contributor Version, or (ii) the combination of
+            Modifications made by that Contributor with other software (except
+            as part of the Contributor Version) or other devices; or (3) under
+            Patent Claims infringed by Covered Software in the absence of
+            Modifications made by that Contributor.
+
+3. Distribution Obligations.
+
+      3.1. Availability of Source Code.
+      Any Covered Software that You distribute or otherwise make available in
+      Executable form must also be made available in Source Code form and that
+      Source Code form must be distributed only under the terms of this License.
+      You must include a copy of this License with every copy of the Source Code
+      form of the Covered Software You distribute or otherwise make available.
+      You must inform recipients of any such Covered Software in Executable form
+      as to how they can obtain such Covered Software in Source Code form in a
+      reasonable manner on or through a medium customarily used for software
+      exchange.
+
+      3.2. Modifications.
+      The Modifications that You create or to which You contribute are governed
+      by the terms of this License. You represent that You believe Your
+      Modifications are Your original creation(s) and/or You have sufficient
+      rights to grant the rights conveyed by this License.
+
+      3.3. Required Notices.
+      You must include a notice in each of Your Modifications that identifies
+      You as the Contributor of the Modification. You may not remove or alter
+      any copyright, patent or trademark notices contained within the Covered
+      Software, or any notices of licensing or any descriptive text giving
+      attribution to any Contributor or the Initial Developer.
+
+      3.4. Application of Additional Terms.
+      You may not offer or impose any terms on any Covered Software in Source
+      Code form that alters or restricts the applicable version of this License
+      or the recipients. rights hereunder. You may choose to offer, and to
+      charge a fee for, warranty, support, indemnity or liability obligations to
+      one or more recipients of Covered Software. However, you may do so only on
+      Your own behalf, and not on behalf of the Initial Developer or any
+      Contributor. You must make it absolutely clear that any such warranty,
+      support, indemnity or liability obligation is offered by You alone, and
+      You hereby agree to indemnify the Initial Developer and every Contributor
+      for any liability incurred by the Initial Developer or such Contributor as
+      a result of warranty, support, indemnity or liability terms You offer.
+
+      3.5. Distribution of Executable Versions.
+      You may distribute the Executable form of the Covered Software under the
+      terms of this License or under the terms of a license of Your choice,
+      which may contain terms different from this License, provided that You are
+      in compliance with the terms of this License and that the license for the
+      Executable form does not attempt to limit or alter the recipient.s rights
+      in the Source Code form from the rights set forth in this License. If You
+      distribute the Covered Software in Executable form under a different
+      license, You must make it absolutely clear that any terms which differ
+      from this License are offered by You alone, not by the Initial Developer
+      or Contributor. You hereby agree to indemnify the Initial Developer and
+      every Contributor for any liability incurred by the Initial Developer or
+      such Contributor as a result of any such terms You offer.
+
+      3.6. Larger Works.
+      You may create a Larger Work by combining Covered Software with other code
+      not governed by the terms of this License and distribute the Larger Work
+      as a single product. In such a case, You must make sure the requirements
+      of this License are fulfilled for the Covered Software.
+
+4. Versions of the License.
+
+      4.1. New Versions.
+      Sun Microsystems, Inc. is the initial license steward and may publish
+      revised and/or new versions of this License from time to time. Each
+      version will be given a distinguishing version number. Except as provided
+      in Section 4.3, no one other than the license steward has the right to
+      modify this License.
+
+      4.2. Effect of New Versions.
+      You may always continue to use, distribute or otherwise make the Covered
+      Software available under the terms of the version of the License under
+      which You originally received the Covered Software. If the Initial
+      Developer includes a notice in the Original Software prohibiting it from
+      being distributed or otherwise made available under any subsequent version
+      of the License, You must distribute and make the Covered Software
+      available under the terms of the version of the License under which You
+      originally received the Covered Software. Otherwise, You may also choose
+      to use, distribute or otherwise make the Covered Software available under
+      the terms of any subsequent version of the License published by the
+      license steward.
+
+      4.3. Modified Versions.
+      When You are an Initial Developer and You want to create a new license for
+      Your Original Software, You may create and use a modified version of this
+      License if You: (a) rename the license and remove any references to the
+      name of the license steward (except to note that the license differs from
+      this License); and (b) otherwise make it clear that the license contains
+      terms which differ from this License.
+
+5. DISCLAIMER OF WARRANTY.
+
+   COVERED SOFTWARE IS PROVIDED UNDER THIS LICENSE ON AN .AS IS. BASIS, WITHOUT
+   WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT
+   LIMITATION, WARRANTIES THAT THE COVERED SOFTWARE IS FREE OF DEFECTS,
+   MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK
+   AS TO THE QUALITY AND PERFORMANCE OF THE COVERED SOFTWARE IS WITH YOU. SHOULD
+   ANY COVERED SOFTWARE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL
+   DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY
+   SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN
+   ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY COVERED SOFTWARE IS AUTHORIZED
+   HEREUNDER EXCEPT UNDER THIS DISCLAIMER.
+
+6. TERMINATION.
+
+      6.1. This License and the rights granted hereunder will terminate
+           automatically if You fail to comply with terms herein and fail to
+           cure such breach within 30 days of becoming aware of the breach.
+           Provisions which, by their nature, must remain in effect beyond the
+           termination of this License shall survive.
+
+      6.2. If You assert a patent infringement claim (excluding declaratory
+           judgment actions) against Initial Developer or a Contributor (the
+           Initial Developer or Contributor against whom You assert such claim
+           is referred to as .Participant.) alleging that the Participant
+           Software (meaning the Contributor Version where the Participant is a
+           Contributor or the Original Software where the Participant is the
+           Initial Developer) directly or indirectly infringes any patent, then
+           any and all rights granted directly or indirectly to You by such
+           Participant, the Initial Developer (if the Initial Developer is not
+           the Participant) and all Contributors under Sections 2.1 and/or 2.2
+           of this License shall, upon 60 days notice from Participant terminate
+           prospectively and automatically at the expiration of such 60 day
+           notice period, unless if within such 60 day period You withdraw Your
+           claim with respect to the Participant Software against such
+           Participant either unilaterally or pursuant to a written agreement
+           with Participant.
+
+      6.3. In the event of termination under Sections 6.1 or 6.2 above, all end
+           user licenses that have been validly granted by You or any
+           distributor hereunder prior to termination (excluding licenses
+           granted to You by any distributor) shall survive termination.
+
+7. LIMITATION OF LIABILITY.
+
+   UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT (INCLUDING
+   NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL DEVELOPER, ANY
+   OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED SOFTWARE, OR ANY SUPPLIER OF
+   ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR ANY INDIRECT, SPECIAL,
+   INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT
+   LIMITATION, DAMAGES FOR LOST PROFITS, LOSS OF GOODWILL, WORK STOPPAGE,
+   COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR
+   LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF
+   SUCH DAMAGES. THIS LIMITATION OF LIABILITY SHALL NOT APPLY TO LIABILITY FOR
+   DEATH OR PERSONAL INJURY RESULTING FROM SUCH PARTY.S NEGLIGENCE TO THE EXTENT
+   APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE
+   EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS
+   EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU.
+
+8. U.S. GOVERNMENT END USERS.
+
+   The Covered Software is a .commercial item,. as that term is defined in 48
+   C.F.R. 2.101 (Oct. 1995), consisting of .commercial computer software. (as
+   that term is defined at 48 C.F.R. ? 252.227-7014(a)(1)) and commercial
+   computer software documentation. as such terms are used in 48 C.F.R. 12.212
+   (Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1
+   through 227.7202-4 (June 1995), all U.S. Government End Users acquire Covered
+   Software with only those rights set forth herein. This U.S. Government Rights
+   clause is in lieu of, and supersedes, any other FAR, DFAR, or other clause or
+   provision that addresses Government rights in computer software under this
+   License.
+
+9. MISCELLANEOUS.
+
+   This License represents the complete agreement concerning subject matter
+   hereof. If any provision of this License is held to be unenforceable, such
+   provision shall be reformed only to the extent necessary to make it
+   enforceable. This License shall be governed by the law of the jurisdiction
+   specified in a notice contained within the Original Software (except to the
+   extent applicable law, if any, provides otherwise), excluding such
+   jurisdiction's conflict-of-law provisions. Any litigation relating to this
+   License shall be subject to the jurisdiction of the courts located in the
+   jurisdiction and venue specified in a notice contained within the Original
+   Software, with the losing party responsible for costs, including, without
+   limitation, court costs and reasonable attorneys. fees and expenses. The
+   application of the United Nations Convention on Contracts for the
+   International Sale of Goods is expressly excluded. Any law or regulation
+   which provides that the language of a contract shall be construed against
+   the drafter shall not apply to this License. You agree that You alone are
+   responsible for compliance with the United States export administration
+   regulations (and the export control laws and regulation of any other
+   countries) when You use, distribute or otherwise make available any Covered
+   Software.
+
+10. RESPONSIBILITY FOR CLAIMS.
+
+   As between Initial Developer and the Contributors, each party is responsible
+   for claims and damages arising, directly or indirectly, out of its
+   utilization of rights under this License and You agree to work with Initial
+   Developer and Contributors to distribute such responsibility on an equitable
+   basis. Nothing herein is intended or shall be deemed to constitute any
+   admission of liability.
+
+   NOTICE PURSUANT TO SECTION 9 OF THE COMMON DEVELOPMENT AND DISTRIBUTION
+   LICENSE (CDDL)
+
+   The code released under the CDDL shall be governed by the laws of the State
+   of California (excluding conflict-of-law provisions). Any litigation relating
+   to this License shall be subject to the jurisdiction of the Federal Courts of
+   the Northern District of California and the state courts of the State of
+   California, with venue lying in Santa Clara County, California.
+
+
+For the following Jakarta EE Schemas:
+- jakartaee_9.xsd
+- jakartaee_10.xsd
+- jakarta_web-services_2_0.xsd
+- jakarta_web-services_client_2_0.xsd
+- jsp_3_0.xsd
+- jsp_3_1.xsd
+- web-app_5_0.xsd
+- web-app_6_0.xsd
+- web-commonn_5_0.xsd
+- web-commonn_6_0.xsd
+- web-fragment_5_0.xsd
+- web-fragment_6_0.xsd
+- web-jsptaglibrary_3_0.xsd
+- web-jsptaglibrary_3_1.xsd
+
+Eclipse Public License - v 2.0
+
+    THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE
+    PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION
+    OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.
+
+1. DEFINITIONS
+
+"Contribution" means:
+
+  a) in the case of the initial Contributor, the initial content
+     Distributed under this Agreement, and
+
+  b) in the case of each subsequent Contributor:
+     i) changes to the Program, and
+     ii) additions to the Program;
+  where such changes and/or additions to the Program originate from
+  and are Distributed by that particular Contributor. A Contribution
+  "originates" from a Contributor if it was added to the Program by
+  such Contributor itself or anyone acting on such Contributor's behalf.
+  Contributions do not include changes or additions to the Program that
+  are not Modified Works.
+
+"Contributor" means any person or entity that Distributes the Program.
+
+"Licensed Patents" mean patent claims licensable by a Contributor which
+are necessarily infringed by the use or sale of its Contribution alone
+or when combined with the Program.
+
+"Program" means the Contributions Distributed in accordance with this
+Agreement.
+
+"Recipient" means anyone who receives the Program under this Agreement
+or any Secondary License (as applicable), including Contributors.
+
+"Derivative Works" shall mean any work, whether in Source Code or other
+form, that is based on (or derived from) the Program and for which the
+editorial revisions, annotations, elaborations, or other modifications
+represent, as a whole, an original work of authorship.
+
+"Modified Works" shall mean any work in Source Code or other form that
+results from an addition to, deletion from, or modification of the
+contents of the Program, including, for purposes of clarity any new file
+in Source Code form that contains any contents of the Program. Modified
+Works shall not include works that contain only declarations,
+interfaces, types, classes, structures, or files of the Program solely
+in each case in order to link to, bind by name, or subclass the Program
+or Modified Works thereof.
+
+"Distribute" means the acts of a) distributing or b) making available
+in any manner that enables the transfer of a copy.
+
+"Source Code" means the form of a Program preferred for making
+modifications, including but not limited to software source code,
+documentation source, and configuration files.
+
+"Secondary License" means either the GNU General Public License,
+Version 2.0, or any later versions of that license, including any
+exceptions or additional permissions as identified by the initial
+Contributor.
+
+2. GRANT OF RIGHTS
+
+  a) Subject to the terms of this Agreement, each Contributor hereby
+  grants Recipient a non-exclusive, worldwide, royalty-free copyright
+  license to reproduce, prepare Derivative Works of, publicly display,
+  publicly perform, Distribute and sublicense the Contribution of such
+  Contributor, if any, and such Derivative Works.
+
+  b) Subject to the terms of this Agreement, each Contributor hereby
+  grants Recipient a non-exclusive, worldwide, royalty-free patent
+  license under Licensed Patents to make, use, sell, offer to sell,
+  import and otherwise transfer the Contribution of such Contributor,
+  if any, in Source Code or other form. This patent license shall
+  apply to the combination of the Contribution and the Program if, at
+  the time the Contribution is added by the Contributor, such addition
+  of the Contribution causes such combination to be covered by the
+  Licensed Patents. The patent license shall not apply to any other
+  combinations which include the Contribution. No hardware per se is
+  licensed hereunder.
+
+  c) Recipient understands that although each Contributor grants the
+  licenses to its Contributions set forth herein, no assurances are
+  provided by any Contributor that the Program does not infringe the
+  patent or other intellectual property rights of any other entity.
+  Each Contributor disclaims any liability to Recipient for claims
+  brought by any other entity based on infringement of intellectual
+  property rights or otherwise. As a condition to exercising the
+  rights and licenses granted hereunder, each Recipient hereby
+  assumes sole responsibility to secure any other intellectual
+  property rights needed, if any. For example, if a third party
+  patent license is required to allow Recipient to Distribute the
+  Program, it is Recipient's responsibility to acquire that license
+  before distributing the Program.
+
+  d) Each Contributor represents that to its knowledge it has
+  sufficient copyright rights in its Contribution, if any, to grant
+  the copyright license set forth in this Agreement.
+
+  e) Notwithstanding the terms of any Secondary License, no
+  Contributor makes additional grants to any Recipient (other than
+  those set forth in this Agreement) as a result of such Recipient's
+  receipt of the Program under the terms of a Secondary License
+  (if permitted under the terms of Section 3).
+
+3. REQUIREMENTS
+
+3.1 If a Contributor Distributes the Program in any form, then:
+
+  a) the Program must also be made available as Source Code, in
+  accordance with section 3.2, and the Contributor must accompany
+  the Program with a statement that the Source Code for the Program
+  is available under this Agreement, and informs Recipients how to
+  obtain it in a reasonable manner on or through a medium customarily
+  used for software exchange; and
+
+  b) the Contributor may Distribute the Program under a license
+  different than this Agreement, provided that such license:
+     i) effectively disclaims on behalf of all other Contributors all
+     warranties and conditions, express and implied, including
+     warranties or conditions of title and non-infringement, and
+     implied warranties or conditions of merchantability and fitness
+     for a particular purpose;
+
+     ii) effectively excludes on behalf of all other Contributors all
+     liability for damages, including direct, indirect, special,
+     incidental and consequential damages, such as lost profits;
+
+     iii) does not attempt to limit or alter the recipients' rights
+     in the Source Code under section 3.2; and
+
+     iv) requires any subsequent distribution of the Program by any
+     party to be under a license that satisfies the requirements
+     of this section 3.
+
+3.2 When the Program is Distributed as Source Code:
+
+  a) it must be made available under this Agreement, or if the
+  Program (i) is combined with other material in a separate file or
+  files made available under a Secondary License, and (ii) the initial
+  Contributor attached to the Source Code the notice described in
+  Exhibit A of this Agreement, then the Program may be made available
+  under the terms of such Secondary Licenses, and
+
+  b) a copy of this Agreement must be included with each copy of
+  the Program.
+
+3.3 Contributors may not remove or alter any copyright, patent,
+trademark, attribution notices, disclaimers of warranty, or limitations
+of liability ("notices") contained within the Program from any copy of
+the Program which they Distribute, provided that Contributors may add
+their own appropriate notices.
+
+4. COMMERCIAL DISTRIBUTION
+
+Commercial distributors of software may accept certain responsibilities
+with respect to end users, business partners and the like. While this
+license is intended to facilitate the commercial use of the Program,
+the Contributor who includes the Program in a commercial product
+offering should do so in a manner which does not create potential
+liability for other Contributors. Therefore, if a Contributor includes
+the Program in a commercial product offering, such Contributor
+("Commercial Contributor") hereby agrees to defend and indemnify every
+other Contributor ("Indemnified Contributor") against any losses,
+damages and costs (collectively "Losses") arising from claims, lawsuits
+and other legal actions brought by a third party against the Indemnified
+Contributor to the extent caused by the acts or omissions of such
+Commercial Contributor in connection with its distribution of the Program
+in a commercial product offering. The obligations in this section do not
+apply to any claims or Losses relating to any actual or alleged
+intellectual property infringement. In order to qualify, an Indemnified
+Contributor must: a) promptly notify the Commercial Contributor in
+writing of such claim, and b) allow the Commercial Contributor to control,
+and cooperate with the Commercial Contributor in, the defense and any
+related settlement negotiations. The Indemnified Contributor may
+participate in any such claim at its own expense.
+
+For example, a Contributor might include the Program in a commercial
+product offering, Product X. That Contributor is then a Commercial
+Contributor. If that Commercial Contributor then makes performance
+claims, or offers warranties related to Product X, those performance
+claims and warranties are such Commercial Contributor's responsibility
+alone. Under this section, the Commercial Contributor would have to
+defend claims against the other Contributors related to those performance
+claims and warranties, and if a court requires any other Contributor to
+pay any damages as a result, the Commercial Contributor must pay
+those damages.
+
+5. NO WARRANTY
+
+EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT
+PERMITTED BY APPLICABLE LAW, THE PROGRAM IS PROVIDED ON AN "AS IS"
+BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR
+IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF
+TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR
+PURPOSE. Each Recipient is solely responsible for determining the
+appropriateness of using and distributing the Program and assumes all
+risks associated with its exercise of rights under this Agreement,
+including but not limited to the risks and costs of program errors,
+compliance with applicable laws, damage to or loss of data, programs
+or equipment, and unavailability or interruption of operations.
+
+6. DISCLAIMER OF LIABILITY
+
+EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT
+PERMITTED BY APPLICABLE LAW, NEITHER RECIPIENT NOR ANY CONTRIBUTORS
+SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST
+PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE
+EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+7. GENERAL
+
+If any provision of this Agreement is invalid or unenforceable under
+applicable law, it shall not affect the validity or enforceability of
+the remainder of the terms of this Agreement, and without further
+action by the parties hereto, such provision shall be reformed to the
+minimum extent necessary to make such provision valid and enforceable.
+
+If Recipient institutes patent litigation against any entity
+(including a cross-claim or counterclaim in a lawsuit) alleging that the
+Program itself (excluding combinations of the Program with other software
+or hardware) infringes such Recipient's patent(s), then such Recipient's
+rights granted under Section 2(b) shall terminate as of the date such
+litigation is filed.
+
+All Recipient's rights under this Agreement shall terminate if it
+fails to comply with any of the material terms or conditions of this
+Agreement and does not cure such failure in a reasonable period of
+time after becoming aware of such noncompliance. If all Recipient's
+rights under this Agreement terminate, Recipient agrees to cease use
+and distribution of the Program as soon as reasonably practicable.
+However, Recipient's obligations under this Agreement and any licenses
+granted by Recipient relating to the Program shall continue and survive.
+
+Everyone is permitted to copy and distribute copies of this Agreement,
+but in order to avoid inconsistency the Agreement is copyrighted and
+may only be modified in the following manner. The Agreement Steward
+reserves the right to publish new versions (including revisions) of
+this Agreement from time to time. No one other than the Agreement
+Steward has the right to modify this Agreement. The Eclipse Foundation
+is the initial Agreement Steward. The Eclipse Foundation may assign the
+responsibility to serve as the Agreement Steward to a suitable separate
+entity. Each new version of the Agreement will be given a distinguishing
+version number. The Program (including Contributions) may always be
+Distributed subject to the version of the Agreement under which it was
+received. In addition, after a new version of the Agreement is published,
+Contributor may elect to Distribute the Program (including its
+Contributions) under the new version.
+
+Except as expressly stated in Sections 2(a) and 2(b) above, Recipient
+receives no rights or licenses to the intellectual property of any
+Contributor under this Agreement, whether expressly, by implication,
+estoppel or otherwise. All rights in the Program not expressly granted
+under this Agreement are reserved. Nothing in this Agreement is intended
+to be enforceable by any entity that is not a Contributor or Recipient.
+No third-party beneficiary rights are created under this Agreement.
+
+Exhibit A - Form of Secondary Licenses Notice
+
+"This Source Code may also be made available under the following
+Secondary Licenses when the conditions for such availability set forth
+in the Eclipse Public License, v. 2.0 are satisfied: {name license(s),
+version(s), and exceptions or additional permissions here}."
+
+  Simply including a copy of this Agreement, including this Exhibit A
+  is not sufficient to license the Source Code under Secondary Licenses.
+
+  If it is not possible or desirable to put the notice in a particular
+  file, then You may include the notice in a location (such as a LICENSE
+  file in a relevant directory) where a recipient would be likely to
+  look for such a notice.
+
+  You may add additional accurate notices of copyright ownership.
diff --git a/licenses/tomcat-embed-core-10.1.19.jar/META-INF/NOTICE b/licenses/tomcat-embed-core-10.1.19.jar/META-INF/NOTICE
new file mode 100644
index 000000000..7e477d12e
--- /dev/null
+++ b/licenses/tomcat-embed-core-10.1.19.jar/META-INF/NOTICE
@@ -0,0 +1,31 @@
+Apache Tomcat
+Copyright 1999-2024 The Apache Software Foundation
+
+This product includes software developed at
+The Apache Software Foundation (http://www.apache.org/).
+
+The original XML Schemas for Java EE Deployment Descriptors:
+ - javaee_5.xsd
+ - javaee_web_services_1_2.xsd
+ - javaee_web_services_client_1_2.xsd
+ - javaee_6.xsd
+ - javaee_web_services_1_3.xsd
+ - javaee_web_services_client_1_3.xsd
+ - jsp_2_2.xsd
+ - web-app_3_0.xsd
+ - web-common_3_0.xsd
+ - web-fragment_3_0.xsd
+ - javaee_7.xsd
+ - javaee_web_services_1_4.xsd
+ - javaee_web_services_client_1_4.xsd
+ - jsp_2_3.xsd
+ - web-app_3_1.xsd
+ - web-common_3_1.xsd
+ - web-fragment_3_1.xsd
+ - javaee_8.xsd
+ - web-app_4_0.xsd
+ - web-common_4_0.xsd
+ - web-fragment_4_0.xsd
+
+may be obtained from:
+http://www.oracle.com/webfolder/technetwork/jsc/xml/ns/javaee/index.html
diff --git a/licenses/tomcat-embed-core-10.1.24.jar/META-INF/LICENSE b/licenses/tomcat-embed-core-10.1.24.jar/META-INF/LICENSE
new file mode 100644
index 000000000..2b4876a15
--- /dev/null
+++ b/licenses/tomcat-embed-core-10.1.24.jar/META-INF/LICENSE
@@ -0,0 +1,858 @@
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+
+
+
+APACHE TOMCAT SUBCOMPONENTS:
+
+Apache Tomcat includes a number of subcomponents with separate copyright notices
+and license terms. Your use of these subcomponents is subject to the terms and
+conditions of the following licenses.
+
+
+For the following XML Schemas for Java EE Deployment Descriptors:
+ - javaee_5.xsd
+ - javaee_web_services_1_2.xsd
+ - javaee_web_services_client_1_2.xsd
+ - javaee_6.xsd
+ - javaee_web_services_1_3.xsd
+ - javaee_web_services_client_1_3.xsd
+ - jsp_2_2.xsd
+ - web-app_3_0.xsd
+ - web-common_3_0.xsd
+ - web-fragment_3_0.xsd
+ - javaee_7.xsd
+ - javaee_web_services_1_4.xsd
+ - javaee_web_services_client_1_4.xsd
+ - jsp_2_3.xsd
+ - web-app_3_1.xsd
+ - web-common_3_1.xsd
+ - web-fragment_3_1.xsd
+ - javaee_8.xsd
+ - web-app_4_0.xsd
+ - web-common_4_0.xsd
+ - web-fragment_4_0.xsd
+
+COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.0
+
+1. Definitions.
+
+   1.1. Contributor. means each individual or entity that creates or contributes
+        to the creation of Modifications.
+
+   1.2. Contributor Version. means the combination of the Original Software,
+        prior Modifications used by a Contributor (if any), and the
+        Modifications made by that particular Contributor.
+
+   1.3. Covered Software. means (a) the Original Software, or (b) Modifications,
+        or (c) the combination of files containing Original Software with files
+        containing Modifications, in each case including portions thereof.
+
+   1.4. Executable. means the Covered Software in any form other than Source
+        Code.
+
+   1.5. Initial Developer. means the individual or entity that first makes
+        Original Software available under this License.
+
+   1.6. Larger Work. means a work which combines Covered Software or portions
+        thereof with code not governed by the terms of this License.
+
+   1.7. License. means this document.
+
+   1.8. Licensable. means having the right to grant, to the maximum extent
+        possible, whether at the time of the initial grant or subsequently
+        acquired, any and all of the rights conveyed herein.
+
+   1.9. Modifications. means the Source Code and Executable form of any of the
+        following:
+
+        A. Any file that results from an addition to, deletion from or
+           modification of the contents of a file containing Original Software
+           or previous Modifications;
+
+        B. Any new file that contains any part of the Original Software or
+           previous Modification; or
+
+        C. Any new file that is contributed or otherwise made available under
+           the terms of this License.
+
+   1.10. Original Software. means the Source Code and Executable form of
+         computer software code that is originally released under this License.
+
+   1.11. Patent Claims. means any patent claim(s), now owned or hereafter
+         acquired, including without limitation, method, process, and apparatus
+         claims, in any patent Licensable by grantor.
+
+   1.12. Source Code. means (a) the common form of computer software code in
+         which modifications are made and (b) associated documentation included
+         in or with such code.
+
+   1.13. You. (or .Your.) means an individual or a legal entity exercising
+         rights under, and complying with all of the terms of, this License. For
+         legal entities, .You. includes any entity which controls, is controlled
+         by, or is under common control with You. For purposes of this
+         definition, .control. means (a) the power, direct or indirect, to cause
+         the direction or management of such entity, whether by contract or
+         otherwise, or (b) ownership of more than fifty percent (50%) of the
+         outstanding shares or beneficial ownership of such entity.
+
+2. License Grants.
+
+      2.1. The Initial Developer Grant.
+
+      Conditioned upon Your compliance with Section 3.1 below and subject to
+      third party intellectual property claims, the Initial Developer hereby
+      grants You a world-wide, royalty-free, non-exclusive license:
+
+        (a) under intellectual property rights (other than patent or trademark)
+            Licensable by Initial Developer, to use, reproduce, modify, display,
+            perform, sublicense and distribute the Original Software (or
+            portions thereof), with or without Modifications, and/or as part of
+            a Larger Work; and
+
+        (b) under Patent Claims infringed by the making, using or selling of
+            Original Software, to make, have made, use, practice, sell, and
+            offer for sale, and/or otherwise dispose of the Original Software
+            (or portions thereof).
+
+        (c) The licenses granted in Sections 2.1(a) and (b) are effective on the
+            date Initial Developer first distributes or otherwise makes the
+            Original Software available to a third party under the terms of this
+            License.
+
+        (d) Notwithstanding Section 2.1(b) above, no patent license is granted:
+            (1) for code that You delete from the Original Software, or (2) for
+            infringements caused by: (i) the modification of the Original
+            Software, or (ii) the combination of the Original Software with
+            other software or devices.
+
+    2.2. Contributor Grant.
+
+    Conditioned upon Your compliance with Section 3.1 below and subject to third
+    party intellectual property claims, each Contributor hereby grants You a
+    world-wide, royalty-free, non-exclusive license:
+
+        (a) under intellectual property rights (other than patent or trademark)
+            Licensable by Contributor to use, reproduce, modify, display,
+            perform, sublicense and distribute the Modifications created by such
+            Contributor (or portions thereof), either on an unmodified basis,
+            with other Modifications, as Covered Software and/or as part of a
+            Larger Work; and
+
+        (b) under Patent Claims infringed by the making, using, or selling of
+            Modifications made by that Contributor either alone and/or in
+            combination with its Contributor Version (or portions of such
+            combination), to make, use, sell, offer for sale, have made, and/or
+            otherwise dispose of: (1) Modifications made by that Contributor (or
+            portions thereof); and (2) the combination of Modifications made by
+            that Contributor with its Contributor Version (or portions of such
+            combination).
+
+        (c) The licenses granted in Sections 2.2(a) and 2.2(b) are effective on
+            the date Contributor first distributes or otherwise makes the
+            Modifications available to a third party.
+
+        (d) Notwithstanding Section 2.2(b) above, no patent license is granted:
+            (1) for any code that Contributor has deleted from the Contributor
+            Version; (2) for infringements caused by: (i) third party
+            modifications of Contributor Version, or (ii) the combination of
+            Modifications made by that Contributor with other software (except
+            as part of the Contributor Version) or other devices; or (3) under
+            Patent Claims infringed by Covered Software in the absence of
+            Modifications made by that Contributor.
+
+3. Distribution Obligations.
+
+      3.1. Availability of Source Code.
+      Any Covered Software that You distribute or otherwise make available in
+      Executable form must also be made available in Source Code form and that
+      Source Code form must be distributed only under the terms of this License.
+      You must include a copy of this License with every copy of the Source Code
+      form of the Covered Software You distribute or otherwise make available.
+      You must inform recipients of any such Covered Software in Executable form
+      as to how they can obtain such Covered Software in Source Code form in a
+      reasonable manner on or through a medium customarily used for software
+      exchange.
+
+      3.2. Modifications.
+      The Modifications that You create or to which You contribute are governed
+      by the terms of this License. You represent that You believe Your
+      Modifications are Your original creation(s) and/or You have sufficient
+      rights to grant the rights conveyed by this License.
+
+      3.3. Required Notices.
+      You must include a notice in each of Your Modifications that identifies
+      You as the Contributor of the Modification. You may not remove or alter
+      any copyright, patent or trademark notices contained within the Covered
+      Software, or any notices of licensing or any descriptive text giving
+      attribution to any Contributor or the Initial Developer.
+
+      3.4. Application of Additional Terms.
+      You may not offer or impose any terms on any Covered Software in Source
+      Code form that alters or restricts the applicable version of this License
+      or the recipients. rights hereunder. You may choose to offer, and to
+      charge a fee for, warranty, support, indemnity or liability obligations to
+      one or more recipients of Covered Software. However, you may do so only on
+      Your own behalf, and not on behalf of the Initial Developer or any
+      Contributor. You must make it absolutely clear that any such warranty,
+      support, indemnity or liability obligation is offered by You alone, and
+      You hereby agree to indemnify the Initial Developer and every Contributor
+      for any liability incurred by the Initial Developer or such Contributor as
+      a result of warranty, support, indemnity or liability terms You offer.
+
+      3.5. Distribution of Executable Versions.
+      You may distribute the Executable form of the Covered Software under the
+      terms of this License or under the terms of a license of Your choice,
+      which may contain terms different from this License, provided that You are
+      in compliance with the terms of this License and that the license for the
+      Executable form does not attempt to limit or alter the recipient.s rights
+      in the Source Code form from the rights set forth in this License. If You
+      distribute the Covered Software in Executable form under a different
+      license, You must make it absolutely clear that any terms which differ
+      from this License are offered by You alone, not by the Initial Developer
+      or Contributor. You hereby agree to indemnify the Initial Developer and
+      every Contributor for any liability incurred by the Initial Developer or
+      such Contributor as a result of any such terms You offer.
+
+      3.6. Larger Works.
+      You may create a Larger Work by combining Covered Software with other code
+      not governed by the terms of this License and distribute the Larger Work
+      as a single product. In such a case, You must make sure the requirements
+      of this License are fulfilled for the Covered Software.
+
+4. Versions of the License.
+
+      4.1. New Versions.
+      Sun Microsystems, Inc. is the initial license steward and may publish
+      revised and/or new versions of this License from time to time. Each
+      version will be given a distinguishing version number. Except as provided
+      in Section 4.3, no one other than the license steward has the right to
+      modify this License.
+
+      4.2. Effect of New Versions.
+      You may always continue to use, distribute or otherwise make the Covered
+      Software available under the terms of the version of the License under
+      which You originally received the Covered Software. If the Initial
+      Developer includes a notice in the Original Software prohibiting it from
+      being distributed or otherwise made available under any subsequent version
+      of the License, You must distribute and make the Covered Software
+      available under the terms of the version of the License under which You
+      originally received the Covered Software. Otherwise, You may also choose
+      to use, distribute or otherwise make the Covered Software available under
+      the terms of any subsequent version of the License published by the
+      license steward.
+
+      4.3. Modified Versions.
+      When You are an Initial Developer and You want to create a new license for
+      Your Original Software, You may create and use a modified version of this
+      License if You: (a) rename the license and remove any references to the
+      name of the license steward (except to note that the license differs from
+      this License); and (b) otherwise make it clear that the license contains
+      terms which differ from this License.
+
+5. DISCLAIMER OF WARRANTY.
+
+   COVERED SOFTWARE IS PROVIDED UNDER THIS LICENSE ON AN .AS IS. BASIS, WITHOUT
+   WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT
+   LIMITATION, WARRANTIES THAT THE COVERED SOFTWARE IS FREE OF DEFECTS,
+   MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK
+   AS TO THE QUALITY AND PERFORMANCE OF THE COVERED SOFTWARE IS WITH YOU. SHOULD
+   ANY COVERED SOFTWARE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL
+   DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY
+   SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN
+   ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY COVERED SOFTWARE IS AUTHORIZED
+   HEREUNDER EXCEPT UNDER THIS DISCLAIMER.
+
+6. TERMINATION.
+
+      6.1. This License and the rights granted hereunder will terminate
+           automatically if You fail to comply with terms herein and fail to
+           cure such breach within 30 days of becoming aware of the breach.
+           Provisions which, by their nature, must remain in effect beyond the
+           termination of this License shall survive.
+
+      6.2. If You assert a patent infringement claim (excluding declaratory
+           judgment actions) against Initial Developer or a Contributor (the
+           Initial Developer or Contributor against whom You assert such claim
+           is referred to as .Participant.) alleging that the Participant
+           Software (meaning the Contributor Version where the Participant is a
+           Contributor or the Original Software where the Participant is the
+           Initial Developer) directly or indirectly infringes any patent, then
+           any and all rights granted directly or indirectly to You by such
+           Participant, the Initial Developer (if the Initial Developer is not
+           the Participant) and all Contributors under Sections 2.1 and/or 2.2
+           of this License shall, upon 60 days notice from Participant terminate
+           prospectively and automatically at the expiration of such 60 day
+           notice period, unless if within such 60 day period You withdraw Your
+           claim with respect to the Participant Software against such
+           Participant either unilaterally or pursuant to a written agreement
+           with Participant.
+
+      6.3. In the event of termination under Sections 6.1 or 6.2 above, all end
+           user licenses that have been validly granted by You or any
+           distributor hereunder prior to termination (excluding licenses
+           granted to You by any distributor) shall survive termination.
+
+7. LIMITATION OF LIABILITY.
+
+   UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT (INCLUDING
+   NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL DEVELOPER, ANY
+   OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED SOFTWARE, OR ANY SUPPLIER OF
+   ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR ANY INDIRECT, SPECIAL,
+   INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT
+   LIMITATION, DAMAGES FOR LOST PROFITS, LOSS OF GOODWILL, WORK STOPPAGE,
+   COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR
+   LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF
+   SUCH DAMAGES. THIS LIMITATION OF LIABILITY SHALL NOT APPLY TO LIABILITY FOR
+   DEATH OR PERSONAL INJURY RESULTING FROM SUCH PARTY.S NEGLIGENCE TO THE EXTENT
+   APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE
+   EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS
+   EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU.
+
+8. U.S. GOVERNMENT END USERS.
+
+   The Covered Software is a .commercial item,. as that term is defined in 48
+   C.F.R. 2.101 (Oct. 1995), consisting of .commercial computer software. (as
+   that term is defined at 48 C.F.R. ? 252.227-7014(a)(1)) and commercial
+   computer software documentation. as such terms are used in 48 C.F.R. 12.212
+   (Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1
+   through 227.7202-4 (June 1995), all U.S. Government End Users acquire Covered
+   Software with only those rights set forth herein. This U.S. Government Rights
+   clause is in lieu of, and supersedes, any other FAR, DFAR, or other clause or
+   provision that addresses Government rights in computer software under this
+   License.
+
+9. MISCELLANEOUS.
+
+   This License represents the complete agreement concerning subject matter
+   hereof. If any provision of this License is held to be unenforceable, such
+   provision shall be reformed only to the extent necessary to make it
+   enforceable. This License shall be governed by the law of the jurisdiction
+   specified in a notice contained within the Original Software (except to the
+   extent applicable law, if any, provides otherwise), excluding such
+   jurisdiction's conflict-of-law provisions. Any litigation relating to this
+   License shall be subject to the jurisdiction of the courts located in the
+   jurisdiction and venue specified in a notice contained within the Original
+   Software, with the losing party responsible for costs, including, without
+   limitation, court costs and reasonable attorneys. fees and expenses. The
+   application of the United Nations Convention on Contracts for the
+   International Sale of Goods is expressly excluded. Any law or regulation
+   which provides that the language of a contract shall be construed against
+   the drafter shall not apply to this License. You agree that You alone are
+   responsible for compliance with the United States export administration
+   regulations (and the export control laws and regulation of any other
+   countries) when You use, distribute or otherwise make available any Covered
+   Software.
+
+10. RESPONSIBILITY FOR CLAIMS.
+
+   As between Initial Developer and the Contributors, each party is responsible
+   for claims and damages arising, directly or indirectly, out of its
+   utilization of rights under this License and You agree to work with Initial
+   Developer and Contributors to distribute such responsibility on an equitable
+   basis. Nothing herein is intended or shall be deemed to constitute any
+   admission of liability.
+
+   NOTICE PURSUANT TO SECTION 9 OF THE COMMON DEVELOPMENT AND DISTRIBUTION
+   LICENSE (CDDL)
+
+   The code released under the CDDL shall be governed by the laws of the State
+   of California (excluding conflict-of-law provisions). Any litigation relating
+   to this License shall be subject to the jurisdiction of the Federal Courts of
+   the Northern District of California and the state courts of the State of
+   California, with venue lying in Santa Clara County, California.
+
+
+For the following Jakarta EE Schemas:
+- jakartaee_9.xsd
+- jakartaee_10.xsd
+- jakarta_web-services_2_0.xsd
+- jakarta_web-services_client_2_0.xsd
+- jsp_3_0.xsd
+- jsp_3_1.xsd
+- web-app_5_0.xsd
+- web-app_6_0.xsd
+- web-commonn_5_0.xsd
+- web-commonn_6_0.xsd
+- web-fragment_5_0.xsd
+- web-fragment_6_0.xsd
+- web-jsptaglibrary_3_0.xsd
+- web-jsptaglibrary_3_1.xsd
+
+Eclipse Public License - v 2.0
+
+    THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE
+    PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION
+    OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.
+
+1. DEFINITIONS
+
+"Contribution" means:
+
+  a) in the case of the initial Contributor, the initial content
+     Distributed under this Agreement, and
+
+  b) in the case of each subsequent Contributor:
+     i) changes to the Program, and
+     ii) additions to the Program;
+  where such changes and/or additions to the Program originate from
+  and are Distributed by that particular Contributor. A Contribution
+  "originates" from a Contributor if it was added to the Program by
+  such Contributor itself or anyone acting on such Contributor's behalf.
+  Contributions do not include changes or additions to the Program that
+  are not Modified Works.
+
+"Contributor" means any person or entity that Distributes the Program.
+
+"Licensed Patents" mean patent claims licensable by a Contributor which
+are necessarily infringed by the use or sale of its Contribution alone
+or when combined with the Program.
+
+"Program" means the Contributions Distributed in accordance with this
+Agreement.
+
+"Recipient" means anyone who receives the Program under this Agreement
+or any Secondary License (as applicable), including Contributors.
+
+"Derivative Works" shall mean any work, whether in Source Code or other
+form, that is based on (or derived from) the Program and for which the
+editorial revisions, annotations, elaborations, or other modifications
+represent, as a whole, an original work of authorship.
+
+"Modified Works" shall mean any work in Source Code or other form that
+results from an addition to, deletion from, or modification of the
+contents of the Program, including, for purposes of clarity any new file
+in Source Code form that contains any contents of the Program. Modified
+Works shall not include works that contain only declarations,
+interfaces, types, classes, structures, or files of the Program solely
+in each case in order to link to, bind by name, or subclass the Program
+or Modified Works thereof.
+
+"Distribute" means the acts of a) distributing or b) making available
+in any manner that enables the transfer of a copy.
+
+"Source Code" means the form of a Program preferred for making
+modifications, including but not limited to software source code,
+documentation source, and configuration files.
+
+"Secondary License" means either the GNU General Public License,
+Version 2.0, or any later versions of that license, including any
+exceptions or additional permissions as identified by the initial
+Contributor.
+
+2. GRANT OF RIGHTS
+
+  a) Subject to the terms of this Agreement, each Contributor hereby
+  grants Recipient a non-exclusive, worldwide, royalty-free copyright
+  license to reproduce, prepare Derivative Works of, publicly display,
+  publicly perform, Distribute and sublicense the Contribution of such
+  Contributor, if any, and such Derivative Works.
+
+  b) Subject to the terms of this Agreement, each Contributor hereby
+  grants Recipient a non-exclusive, worldwide, royalty-free patent
+  license under Licensed Patents to make, use, sell, offer to sell,
+  import and otherwise transfer the Contribution of such Contributor,
+  if any, in Source Code or other form. This patent license shall
+  apply to the combination of the Contribution and the Program if, at
+  the time the Contribution is added by the Contributor, such addition
+  of the Contribution causes such combination to be covered by the
+  Licensed Patents. The patent license shall not apply to any other
+  combinations which include the Contribution. No hardware per se is
+  licensed hereunder.
+
+  c) Recipient understands that although each Contributor grants the
+  licenses to its Contributions set forth herein, no assurances are
+  provided by any Contributor that the Program does not infringe the
+  patent or other intellectual property rights of any other entity.
+  Each Contributor disclaims any liability to Recipient for claims
+  brought by any other entity based on infringement of intellectual
+  property rights or otherwise. As a condition to exercising the
+  rights and licenses granted hereunder, each Recipient hereby
+  assumes sole responsibility to secure any other intellectual
+  property rights needed, if any. For example, if a third party
+  patent license is required to allow Recipient to Distribute the
+  Program, it is Recipient's responsibility to acquire that license
+  before distributing the Program.
+
+  d) Each Contributor represents that to its knowledge it has
+  sufficient copyright rights in its Contribution, if any, to grant
+  the copyright license set forth in this Agreement.
+
+  e) Notwithstanding the terms of any Secondary License, no
+  Contributor makes additional grants to any Recipient (other than
+  those set forth in this Agreement) as a result of such Recipient's
+  receipt of the Program under the terms of a Secondary License
+  (if permitted under the terms of Section 3).
+
+3. REQUIREMENTS
+
+3.1 If a Contributor Distributes the Program in any form, then:
+
+  a) the Program must also be made available as Source Code, in
+  accordance with section 3.2, and the Contributor must accompany
+  the Program with a statement that the Source Code for the Program
+  is available under this Agreement, and informs Recipients how to
+  obtain it in a reasonable manner on or through a medium customarily
+  used for software exchange; and
+
+  b) the Contributor may Distribute the Program under a license
+  different than this Agreement, provided that such license:
+     i) effectively disclaims on behalf of all other Contributors all
+     warranties and conditions, express and implied, including
+     warranties or conditions of title and non-infringement, and
+     implied warranties or conditions of merchantability and fitness
+     for a particular purpose;
+
+     ii) effectively excludes on behalf of all other Contributors all
+     liability for damages, including direct, indirect, special,
+     incidental and consequential damages, such as lost profits;
+
+     iii) does not attempt to limit or alter the recipients' rights
+     in the Source Code under section 3.2; and
+
+     iv) requires any subsequent distribution of the Program by any
+     party to be under a license that satisfies the requirements
+     of this section 3.
+
+3.2 When the Program is Distributed as Source Code:
+
+  a) it must be made available under this Agreement, or if the
+  Program (i) is combined with other material in a separate file or
+  files made available under a Secondary License, and (ii) the initial
+  Contributor attached to the Source Code the notice described in
+  Exhibit A of this Agreement, then the Program may be made available
+  under the terms of such Secondary Licenses, and
+
+  b) a copy of this Agreement must be included with each copy of
+  the Program.
+
+3.3 Contributors may not remove or alter any copyright, patent,
+trademark, attribution notices, disclaimers of warranty, or limitations
+of liability ("notices") contained within the Program from any copy of
+the Program which they Distribute, provided that Contributors may add
+their own appropriate notices.
+
+4. COMMERCIAL DISTRIBUTION
+
+Commercial distributors of software may accept certain responsibilities
+with respect to end users, business partners and the like. While this
+license is intended to facilitate the commercial use of the Program,
+the Contributor who includes the Program in a commercial product
+offering should do so in a manner which does not create potential
+liability for other Contributors. Therefore, if a Contributor includes
+the Program in a commercial product offering, such Contributor
+("Commercial Contributor") hereby agrees to defend and indemnify every
+other Contributor ("Indemnified Contributor") against any losses,
+damages and costs (collectively "Losses") arising from claims, lawsuits
+and other legal actions brought by a third party against the Indemnified
+Contributor to the extent caused by the acts or omissions of such
+Commercial Contributor in connection with its distribution of the Program
+in a commercial product offering. The obligations in this section do not
+apply to any claims or Losses relating to any actual or alleged
+intellectual property infringement. In order to qualify, an Indemnified
+Contributor must: a) promptly notify the Commercial Contributor in
+writing of such claim, and b) allow the Commercial Contributor to control,
+and cooperate with the Commercial Contributor in, the defense and any
+related settlement negotiations. The Indemnified Contributor may
+participate in any such claim at its own expense.
+
+For example, a Contributor might include the Program in a commercial
+product offering, Product X. That Contributor is then a Commercial
+Contributor. If that Commercial Contributor then makes performance
+claims, or offers warranties related to Product X, those performance
+claims and warranties are such Commercial Contributor's responsibility
+alone. Under this section, the Commercial Contributor would have to
+defend claims against the other Contributors related to those performance
+claims and warranties, and if a court requires any other Contributor to
+pay any damages as a result, the Commercial Contributor must pay
+those damages.
+
+5. NO WARRANTY
+
+EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT
+PERMITTED BY APPLICABLE LAW, THE PROGRAM IS PROVIDED ON AN "AS IS"
+BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR
+IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF
+TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR
+PURPOSE. Each Recipient is solely responsible for determining the
+appropriateness of using and distributing the Program and assumes all
+risks associated with its exercise of rights under this Agreement,
+including but not limited to the risks and costs of program errors,
+compliance with applicable laws, damage to or loss of data, programs
+or equipment, and unavailability or interruption of operations.
+
+6. DISCLAIMER OF LIABILITY
+
+EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT
+PERMITTED BY APPLICABLE LAW, NEITHER RECIPIENT NOR ANY CONTRIBUTORS
+SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST
+PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE
+EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+7. GENERAL
+
+If any provision of this Agreement is invalid or unenforceable under
+applicable law, it shall not affect the validity or enforceability of
+the remainder of the terms of this Agreement, and without further
+action by the parties hereto, such provision shall be reformed to the
+minimum extent necessary to make such provision valid and enforceable.
+
+If Recipient institutes patent litigation against any entity
+(including a cross-claim or counterclaim in a lawsuit) alleging that the
+Program itself (excluding combinations of the Program with other software
+or hardware) infringes such Recipient's patent(s), then such Recipient's
+rights granted under Section 2(b) shall terminate as of the date such
+litigation is filed.
+
+All Recipient's rights under this Agreement shall terminate if it
+fails to comply with any of the material terms or conditions of this
+Agreement and does not cure such failure in a reasonable period of
+time after becoming aware of such noncompliance. If all Recipient's
+rights under this Agreement terminate, Recipient agrees to cease use
+and distribution of the Program as soon as reasonably practicable.
+However, Recipient's obligations under this Agreement and any licenses
+granted by Recipient relating to the Program shall continue and survive.
+
+Everyone is permitted to copy and distribute copies of this Agreement,
+but in order to avoid inconsistency the Agreement is copyrighted and
+may only be modified in the following manner. The Agreement Steward
+reserves the right to publish new versions (including revisions) of
+this Agreement from time to time. No one other than the Agreement
+Steward has the right to modify this Agreement. The Eclipse Foundation
+is the initial Agreement Steward. The Eclipse Foundation may assign the
+responsibility to serve as the Agreement Steward to a suitable separate
+entity. Each new version of the Agreement will be given a distinguishing
+version number. The Program (including Contributions) may always be
+Distributed subject to the version of the Agreement under which it was
+received. In addition, after a new version of the Agreement is published,
+Contributor may elect to Distribute the Program (including its
+Contributions) under the new version.
+
+Except as expressly stated in Sections 2(a) and 2(b) above, Recipient
+receives no rights or licenses to the intellectual property of any
+Contributor under this Agreement, whether expressly, by implication,
+estoppel or otherwise. All rights in the Program not expressly granted
+under this Agreement are reserved. Nothing in this Agreement is intended
+to be enforceable by any entity that is not a Contributor or Recipient.
+No third-party beneficiary rights are created under this Agreement.
+
+Exhibit A - Form of Secondary Licenses Notice
+
+"This Source Code may also be made available under the following
+Secondary Licenses when the conditions for such availability set forth
+in the Eclipse Public License, v. 2.0 are satisfied: {name license(s),
+version(s), and exceptions or additional permissions here}."
+
+  Simply including a copy of this Agreement, including this Exhibit A
+  is not sufficient to license the Source Code under Secondary Licenses.
+
+  If it is not possible or desirable to put the notice in a particular
+  file, then You may include the notice in a location (such as a LICENSE
+  file in a relevant directory) where a recipient would be likely to
+  look for such a notice.
+
+  You may add additional accurate notices of copyright ownership.
diff --git a/licenses/tomcat-embed-core-10.1.24.jar/META-INF/NOTICE b/licenses/tomcat-embed-core-10.1.24.jar/META-INF/NOTICE
new file mode 100644
index 000000000..7e477d12e
--- /dev/null
+++ b/licenses/tomcat-embed-core-10.1.24.jar/META-INF/NOTICE
@@ -0,0 +1,31 @@
+Apache Tomcat
+Copyright 1999-2024 The Apache Software Foundation
+
+This product includes software developed at
+The Apache Software Foundation (http://www.apache.org/).
+
+The original XML Schemas for Java EE Deployment Descriptors:
+ - javaee_5.xsd
+ - javaee_web_services_1_2.xsd
+ - javaee_web_services_client_1_2.xsd
+ - javaee_6.xsd
+ - javaee_web_services_1_3.xsd
+ - javaee_web_services_client_1_3.xsd
+ - jsp_2_2.xsd
+ - web-app_3_0.xsd
+ - web-common_3_0.xsd
+ - web-fragment_3_0.xsd
+ - javaee_7.xsd
+ - javaee_web_services_1_4.xsd
+ - javaee_web_services_client_1_4.xsd
+ - jsp_2_3.xsd
+ - web-app_3_1.xsd
+ - web-common_3_1.xsd
+ - web-fragment_3_1.xsd
+ - javaee_8.xsd
+ - web-app_4_0.xsd
+ - web-common_4_0.xsd
+ - web-fragment_4_0.xsd
+
+may be obtained from:
+http://www.oracle.com/webfolder/technetwork/jsc/xml/ns/javaee/index.html
diff --git a/licenses/tomcat-embed-el-10.1.19.jar/META-INF/LICENSE b/licenses/tomcat-embed-el-10.1.19.jar/META-INF/LICENSE
new file mode 100644
index 000000000..d64569567
--- /dev/null
+++ b/licenses/tomcat-embed-el-10.1.19.jar/META-INF/LICENSE
@@ -0,0 +1,202 @@
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
diff --git a/licenses/tomcat-embed-el-10.1.19.jar/META-INF/NOTICE b/licenses/tomcat-embed-el-10.1.19.jar/META-INF/NOTICE
new file mode 100644
index 000000000..bc867acbb
--- /dev/null
+++ b/licenses/tomcat-embed-el-10.1.19.jar/META-INF/NOTICE
@@ -0,0 +1,5 @@
+Apache Tomcat
+Copyright 1999-2024 The Apache Software Foundation
+
+This product includes software developed at
+The Apache Software Foundation (http://www.apache.org/).
diff --git a/licenses/tomcat-embed-el-10.1.24.jar/META-INF/LICENSE b/licenses/tomcat-embed-el-10.1.24.jar/META-INF/LICENSE
new file mode 100644
index 000000000..d64569567
--- /dev/null
+++ b/licenses/tomcat-embed-el-10.1.24.jar/META-INF/LICENSE
@@ -0,0 +1,202 @@
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
diff --git a/licenses/tomcat-embed-el-10.1.24.jar/META-INF/NOTICE b/licenses/tomcat-embed-el-10.1.24.jar/META-INF/NOTICE
new file mode 100644
index 000000000..bc867acbb
--- /dev/null
+++ b/licenses/tomcat-embed-el-10.1.24.jar/META-INF/NOTICE
@@ -0,0 +1,5 @@
+Apache Tomcat
+Copyright 1999-2024 The Apache Software Foundation
+
+This product includes software developed at
+The Apache Software Foundation (http://www.apache.org/).
diff --git a/licenses/tomcat-embed-websocket-10.1.19.jar/META-INF/LICENSE b/licenses/tomcat-embed-websocket-10.1.19.jar/META-INF/LICENSE
new file mode 100644
index 000000000..d64569567
--- /dev/null
+++ b/licenses/tomcat-embed-websocket-10.1.19.jar/META-INF/LICENSE
@@ -0,0 +1,202 @@
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
diff --git a/licenses/tomcat-embed-websocket-10.1.19.jar/META-INF/NOTICE b/licenses/tomcat-embed-websocket-10.1.19.jar/META-INF/NOTICE
new file mode 100644
index 000000000..bc867acbb
--- /dev/null
+++ b/licenses/tomcat-embed-websocket-10.1.19.jar/META-INF/NOTICE
@@ -0,0 +1,5 @@
+Apache Tomcat
+Copyright 1999-2024 The Apache Software Foundation
+
+This product includes software developed at
+The Apache Software Foundation (http://www.apache.org/).
diff --git a/licenses/tomcat-embed-websocket-10.1.24.jar/META-INF/LICENSE b/licenses/tomcat-embed-websocket-10.1.24.jar/META-INF/LICENSE
new file mode 100644
index 000000000..d64569567
--- /dev/null
+++ b/licenses/tomcat-embed-websocket-10.1.24.jar/META-INF/LICENSE
@@ -0,0 +1,202 @@
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
diff --git a/licenses/tomcat-embed-websocket-10.1.24.jar/META-INF/NOTICE b/licenses/tomcat-embed-websocket-10.1.24.jar/META-INF/NOTICE
new file mode 100644
index 000000000..bc867acbb
--- /dev/null
+++ b/licenses/tomcat-embed-websocket-10.1.24.jar/META-INF/NOTICE
@@ -0,0 +1,5 @@
+Apache Tomcat
+Copyright 1999-2024 The Apache Software Foundation
+
+This product includes software developed at
+The Apache Software Foundation (http://www.apache.org/).
diff --git a/licenses/txw2-4.0.5.jar/META-INF/LICENSE.md b/licenses/txw2-4.0.5.jar/META-INF/LICENSE.md
new file mode 100644
index 000000000..da1c1cea7
--- /dev/null
+++ b/licenses/txw2-4.0.5.jar/META-INF/LICENSE.md
@@ -0,0 +1,28 @@
+Copyright (c) 2018 Oracle and/or its affiliates. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+  - Redistributions of source code must retain the above copyright
+    notice, this list of conditions and the following disclaimer.
+
+  - Redistributions in binary form must reproduce the above copyright
+    notice, this list of conditions and the following disclaimer in the
+    documentation and/or other materials provided with the distribution.
+
+  - Neither the name of the Eclipse Foundation, Inc. nor the names of its
+    contributors may be used to endorse or promote products derived
+    from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
+IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
\ No newline at end of file
diff --git a/licenses/txw2-4.0.5.jar/META-INF/NOTICE.md b/licenses/txw2-4.0.5.jar/META-INF/NOTICE.md
new file mode 100644
index 000000000..cd46a173a
--- /dev/null
+++ b/licenses/txw2-4.0.5.jar/META-INF/NOTICE.md
@@ -0,0 +1,191 @@
+# Notices for Eclipse Implementation of JAXB
+
+This content is produced and maintained by the Eclipse Implementation of JAXB
+project.
+
+* Project home: https://projects.eclipse.org/projects/ee4j.jaxb-impl
+
+## Trademarks
+
+Eclipse Implementation of JAXB is a trademark of the Eclipse Foundation.
+
+## Copyright
+
+All content is the property of the respective authors or their employers. For
+more information regarding authorship of content, please consult the listed
+source code repository logs.
+
+## Declared Project Licenses
+
+This program and the accompanying materials are made available under the terms
+of the Eclipse Distribution License v. 1.0 which is available at
+http://www.eclipse.org/org/documents/edl-v10.php.
+
+SPDX-License-Identifier: BSD-3-Clause
+
+## Source Code
+
+The project maintains the following source code repositories:
+
+* https://github.com/eclipse-ee4j/jaxb-ri
+* https://github.com/eclipse-ee4j/jaxb-istack-commons
+* https://github.com/eclipse-ee4j/jaxb-dtd-parser
+* https://github.com/eclipse-ee4j/jaxb-fi
+* https://github.com/eclipse-ee4j/jaxb-stax-ex
+* https://github.com/eclipse-ee4j/jax-rpc-ri
+
+## Third-party Content
+
+This project leverages the following third party content.
+
+Apache Ant (1.10.2)
+
+* License: Apache-2.0 AND W3C AND LicenseRef-Public-Domain
+
+Apache Ant (1.10.2)
+
+* License: Apache-2.0 AND W3C AND LicenseRef-Public-Domain
+
+Apache Felix (1.2.0)
+
+* License: Apache License, 2.0
+
+args4j (2.33)
+
+* License: MIT License
+
+dom4j (1.6.1)
+
+* License: Custom license based on Apache 1.1
+
+file-management (3.0.0)
+
+* License: Apache-2.0
+* Project: https://maven.apache.org/shared/file-management/
+* Source:
+   https://svn.apache.org/viewvc/maven/shared/tags/file-management-3.0.0/
+
+JUnit (4.12)
+
+* License: Eclipse Public License
+
+JUnit (4.12)
+
+* License: Eclipse Public License
+
+maven-compat (3.5.2)
+
+* License: Apache-2.0
+* Project: https://maven.apache.org/ref/3.5.2/maven-compat/
+* Source:
+   https://mvnrepository.com/artifact/org.apache.maven/maven-compat/3.5.2
+
+maven-core (3.5.2)
+
+* License: Apache-2.0
+* Project: https://maven.apache.org/ref/3.5.2/maven-core/index.html
+* Source: https://mvnrepository.com/artifact/org.apache.maven/maven-core/3.5.2
+
+maven-plugin-annotations (3.5)
+
+* License: Apache-2.0
+* Project: https://maven.apache.org/plugin-tools/maven-plugin-annotations/
+* Source:
+   https://github.com/apache/maven-plugin-tools/tree/master/maven-plugin-annotations
+
+maven-plugin-api (3.5.2)
+
+* License: Apache-2.0
+
+maven-resolver-api (1.1.1)
+
+* License: Apache-2.0
+
+maven-resolver-api (1.1.1)
+
+* License: Apache-2.0
+
+maven-resolver-connector-basic (1.1.1)
+
+* License: Apache-2.0
+
+maven-resolver-impl (1.1.1)
+
+* License: Apache-2.0
+
+maven-resolver-spi (1.1.1)
+
+* License: Apache-2.0
+
+maven-resolver-transport-file (1.1.1)
+
+* License: Apache-2.0
+* Project: https://maven.apache.org/resolver/maven-resolver-transport-file/
+* Source:
+   https://github.com/apache/maven-resolver/tree/master/maven-resolver-transport-file
+
+maven-resolver-util (1.1.1)
+
+* License: Apache-2.0
+
+maven-settings (3.5.2)
+
+* License: Apache-2.0
+* Source:
+   https://mvnrepository.com/artifact/org.apache.maven/maven-settings/3.5.2
+
+OSGi Service Platform Core Companion Code (6.0)
+
+* License: Apache License, 2.0
+
+plexus-archiver (3.5)
+
+* License: Apache-2.0
+* Project: https://codehaus-plexus.github.io/plexus-archiver/
+* Source: https://github.com/codehaus-plexus/plexus-archiver
+
+plexus-io (3.0.0)
+
+* License: Apache-2.0
+
+plexus-utils (3.1.0)
+
+* License: Apache- 2.0 or Apache- 1.1 or BSD or Public Domain or Indiana
+   University Extreme! Lab Software License V1.1.1 (Apache 1.1 style)
+
+relaxng-datatype (1.0)
+
+* License: New BSD license
+
+Sax (0.2)
+
+* License: SAX-PD
+* Project: http://www.megginson.com/downloads/SAX/
+* Source: http://sourceforge.net/project/showfiles.php?group_id=29449
+
+testng (6.14.2)
+
+* License: Apache-2.0 AND (MIT OR GPL-1.0+)
+* Project: https://testng.org/doc/index.html
+* Source: https://github.com/cbeust/testng
+
+wagon-http-lightweight (3.0.0)
+
+* License: Pending
+* Project: https://maven.apache.org/wagon/
+* Source:
+   https://mvnrepository.com/artifact/org.apache.maven.wagon/wagon-http-lightweight/3.0.0
+
+xz for java (1.8)
+
+* License: LicenseRef-Public-Domain
+
+## Cryptography
+
+Content may contain encryption software. The country in which you are currently
+may have restrictions on the import, possession, and use, and/or re-export to
+another country, of encryption software. BEFORE using any encryption software,
+please check the country's laws, regulations and policies concerning the import,
+possession, or use, and re-export of encryption software, to see if this is
+permitted.
+
diff --git a/misc/PRE-INFO.md b/misc/PRE-INFO.md
index 64aea0603..d222900cd 100644
--- a/misc/PRE-INFO.md
+++ b/misc/PRE-INFO.md
@@ -10,11 +10,12 @@ When using pre-release installers, make sure to uninstall the previous pre-relea
 own version checks may trigger an error out of my control. After uninstalling, install the newly downloaded one and
 you're good to go.
 
+Only use the installers if you are versed in system-administration, manually editing and removing services, editing registries,
+so on and so forth.
+
 #### Alphas
 
-Alphas are feature-incomplete and very likely to have bugs.
-Before submitting an issue, please check the corresponding [milestone](https://git.griefed.de/Griefed/ServerPackCreator/-/milestones) of this releases major version to see whether an issue for yours already exists there.
-Doing so saves both you and me a lot of time. Thanks in advance!
+Alphas are feature-incomplete and very likely to have bugs. Consider them broken by default. Use at your own risk!
 
 #### Betas
 
diff --git a/root/defaults/serverpackcreator.properties b/root/defaults/serverpackcreator.properties
index be572f88a..60de7fcd0 100644
--- a/root/defaults/serverpackcreator.properties
+++ b/root/defaults/serverpackcreator.properties
@@ -1,7 +1,7 @@
 de.griefed.serverpackcreator.configuration.aikar=-Xms4G -Xmx4G -XX\:+UseG1GC -XX\:+ParallelRefProcEnabled -XX\:MaxGCPauseMillis\=200 -XX\:+UnlockExperimentalVMOptions -XX\:+DisableExplicitGC -XX\:+AlwaysPreTouch -XX\:G1NewSizePercent\=30 -XX\:G1MaxNewSizePercent\=40 -XX\:G1HeapRegionSize\=8M -XX\:G1ReservePercent\=20 -XX\:G1HeapWastePercent\=5 -XX\:G1MixedGCCountTarget\=4 -XX\:InitiatingHeapOccupancyPercent\=15 -XX\:G1MixedGCLiveThresholdPercent\=90 -XX\:G1RSetUpdatingPauseTimePercent\=5 -XX\:SurvivorRatio\=32 -XX\:+PerfDisableSharedMem -XX\:MaxTenuringThreshold\=1 -Dusing.aikars.flags\=https\://mcflags.emc.gs -Daikars.new.flags\=true
 de.griefed.serverpackcreator.configuration.directories.mustinclude=addonpacks,blueprints,config,configs,customnpcs,defaultconfigs,global_data_packs,global_packs,kubejs,maps,mods,openloader,scripts,shrines-saves,structures,structurize,worldshape,Zoestria
 de.griefed.serverpackcreator.configuration.directories.shouldexclude=animation,asm,cache,changelogs,craftpresence,crash-reports,downloads,icons,libraries,local,logs,overrides,packmenu,profileImage,profileImage,resourcepacks,screenshots,server_pack,shaderpacks,simple-rpc,tv-cache
-de.griefed.serverpackcreator.configuration.fallback.updateurl=https\://raw.githubusercontent.com/Griefed/ServerPackCreator/main/serverpackcreator-api/src/jvmMain/resources/serverpackcreator.properties
+de.griefed.serverpackcreator.configuration.fallback.updateurl=https\://raw.githubusercontent.com/Griefed/ServerPackCreator/main/serverpackcreator-api/src/main/resources/serverpackcreator.properties
 de.griefed.serverpackcreator.configuration.fallbackmodslist=3dskinlayers-,Absolutely-Not-A-Zoom-Mod-,AdvancedChat-,AdvancedChatCore-,AdvancedChatHUD-,AdvancedCompas-,Ambience,AmbientEnvironment-,AmbientSounds_,AreYouBlind-,Armor Status HUD-,ArmorSoundTweak-,BH-Menu-,Batty's Coordinates PLUS Mod,BetterAdvancements-,BetterAnimationsCollection-,BetterDarkMode-,BetterF3-,BetterFog-,BetterFoliage-,BetterModsButton-,BetterPingDisplay-,BetterPlacement-,BetterTaskbar-,BetterThirdPerson,BetterTitleScreen-,Blur-,BorderlessWindow-,CTM-,ChunkAnimator-,ClientTweaks_,CompletionistsIndex-,Controller Support-,Controlling-,CraftPresence-,Create_Questing-,CullLessLeaves-Reforged-,CustomCursorMod-,CustomMainMenu-,DefaultOptions_,DefaultSettings-,DeleteWorldsToTrash-,DetailArmorBar-,Ding-,DistantHorizons-,DripSounds-,Durability101-,DurabilityNotifier-,DynamicSurroundings-,DynamicSurroundingsHuds-,EffectsLeft-,EiraMoticons_,EnchantmentDescriptions-,EnhancedVisuals_,EquipmentCompare-,FPS-Monitor-,FabricCustomCursorMod-,Fallingleaves-,FancySpawnEggs,FancyVideo-API-,FirstPersonMod,FogTweaker-,ForgeCustomCursorMod-,FpsReducer-,FpsReducer2-,FullscreenWindowed-,GameMenuModOption-,HealthOverlay-,HeldItemTooltips-,HorseStatsMod-,ImmediatelyFastReforged-,InventoryEssentials_,InventoryHud_[1.17.1].forge-,InventorySpam-,InventoryTweaks-,ItemBorders-,ItemPhysicLite_,ItemStitchingFix-,JBRA-Client-,JustEnoughCalculation-,JustEnoughEffects-,JustEnoughProfessions-,LLOverlayReloaded-,LOTRDRP-,LeaveMyBarsAlone-,LegendaryTooltips,LegendaryTooltips-,LightOverlay-,MinecraftCapes ,MoBends,MouseTweaks-,MyServerIsCompatible-,Neat ,Neat-,NekosEnchantedBooks-,NoAutoJump-,NoFog-,Notes-,NotifMod-,OldJavaWarning-,OptiFine,OptiFine_,OptiForge,OptiForge-,OverflowingBars-,PackMenu-,PackModeMenu-,PickUpNotifier-,Ping-,PingHUD-,PresenceFootsteps-,RPG-HUD-,ReAuth-,Reforgium-,ResourceLoader-,ResourcePackOrganizer,Ryoamiclights-,ShoulderSurfing-,ShulkerTooltip-,SimpleDiscordRichPresence-,SimpleWorldTimer-,SoundFilters-,SpawnerFix-,StylishEffects-,TRansliterationLib-,TextruesRubidiumOptions-,TipTheScales-,Tips-,Toast Control-,Toast-Control-,ToastControl-,TravelersTitles-,VR-Combat_,VoidFog-,WindowedFullscreen-,WorldNameRandomizer-,YungsMenuTweaks-,[1.12.2]DamageIndicatorsMod-,[1.12.2]bspkrscore-,^textrues_embeddium_options-.*$,antighost-,anviltooltipmod-,appleskin-,armorchroma-,armorpointspp-,auditory-,authme-,auto-reconnect-,autojoin-,autoreconnect-,axolotl-item-fix-,backtools-,bannerunlimited-,beenfo-1.19-,better-recipe-book-,betterbiomeblend-,bhmenu-,blur-,borderless-mining-,cat_jam-,catalogue-,charmonium-,chat_heads-,cherishedworlds-,cirback-1.0-,classicbar-,clickadv-,clienttweaks-,combat_music-,connectedness-,controllable-,cullleaves-,cullparticles-,custom-crosshair-mod-,customdiscordrpc-,darkness-,dashloader-,defaultoptions-,desiredservers-,discordrpc-,drippyloadingscreen-,drippyloadingscreen_,durabilitytooltip-,dynamic-fps-,dynamic-music-,dynamiclights-,dynmus-,effective-,eggtab-,eguilib-,eiramoticons-,embeddium-,enchantment-lore-,entity-texture-features-,entityculling-,essential_,exhaustedstamina-,extremesoundmuffler-,fabricemotes-,fancymenu_,fancymenu_video_extension,flickerfix-,fm_audio_extension_,forgemod_VoxelMap-,freelook-,galacticraft-rpc-,gamestagesviewer-,gpumemleakfix-,grid-,helium-,hiddenrecipebook-,hiddenrecipebook_,infinitemusic-,inventoryprofiles,invtweaks-,itemzoom,itlt-,jeed-,jehc-,jeiintegration_,just-enough-harvestcraft-,justenoughbeacons-,justenoughdrags-,justzoom_,keymap-,keywizard-,lazydfu-,lib39-,light-overlay-,lightfallclient-,lightspeed-,loadmyresources_,lock_minecart_view-,lootbeams-,lwl-,magnesium_extras-,maptooltip-,massunbind,mcbindtype-,mcwifipnp-,medievalmusic-,memoryusagescreen-,mightyarchitect-,mindful-eating-,minetogether-,mobplusplus-,modcredits-,modernworldcreation_,modnametooltip-,modnametooltip_,moreoverlays-,mousewheelie-,movement-vision-,multihotbar-,music-duration-reducer-,musicdr-,neiRecipeHandlers-,ngrok-lan-expose-mod-,no_nv_flash-,nopotionshift_,notenoughanimations-,oculus-,ornaments-,overloadedarmorbar-,panorama-,paperdoll-,phosphor-,physics-mod-,preciseblockplacing-,radon-,realm-of-lost-souls-,rebind-narrator-,rebind_narrator-,rebindnarrator-,rebrand-,reforgium-,replanter-,rrls-,rubidium-,rubidium_extras-,screenshot-to-clipboard-,servercountryflags-,shutupexperimentalsettings-,shutupmodelloader-,signtools-,simple-rpc-,simpleautorun-,smartcursor-,smoothboot-,smoothfocus-,sodium-fabric-,sounddeviceoptions-,soundreloader-,spoticraft-,tconplanner-,textrues_embeddium_options-,timestamps-,tooltipscroller-,torchoptimizer-,torohealth-,totaldarkness,toughnessbar-,watermedia-,whats-that-slot-forge-,wisla-,xlifeheartcolors-,yisthereautojump-
 de.griefed.serverpackcreator.configuration.hastebinserver=https\://haste.zneix.eu/documents
 de.griefed.serverpackcreator.configuration.modswhitelist=Ping-Wheel-
diff --git a/root/etc/s6-overlay/s6-rc.d/init-spc-config/run b/root/etc/s6-overlay/s6-rc.d/init-spc-config/run
index 1bbb873ac..0dd7c8b31 100644
--- a/root/etc/s6-overlay/s6-rc.d/init-spc-config/run
+++ b/root/etc/s6-overlay/s6-rc.d/init-spc-config/run
@@ -70,7 +70,7 @@ else
 fi
 
 if [[ -z ${SPC_CONFIGURATION_FALLBACK_UPDATEURL} ]];then
-  echo "de.griefed.serverpackcreator.configuration.fallback.updateurl=https\://raw.githubusercontent.com/Griefed/ServerPackCreator/main/serverpackcreator-api/src/jvmMain/resources/serverpackcreator.properties" >> $OVERRIDES
+  echo "de.griefed.serverpackcreator.configuration.fallback.updateurl=https\://raw.githubusercontent.com/Griefed/ServerPackCreator/main/serverpackcreator-api/src/main/resources/serverpackcreator.properties" >> $OVERRIDES
 else
   echo "de.griefed.serverpackcreator.configuration.fallback.updateurl=$SPC_CONFIGURATION_FALLBACK_UPDATEURL" >> $OVERRIDES
 fi
diff --git a/serverpackcreator-api/build.gradle.kts b/serverpackcreator-api/build.gradle.kts
index 5ad84737f..4a3d4bcf8 100644
--- a/serverpackcreator-api/build.gradle.kts
+++ b/serverpackcreator-api/build.gradle.kts
@@ -1,7 +1,8 @@
+
 import java.util.prefs.Preferences
 
 plugins {
-    id("serverpackcreator.kotlin-multiplatform-conventions")
+    id("serverpackcreator.kotlin-conventions")
     id("serverpackcreator.dokka-conventions")
     id("de.comahe.i18n4k") version "0.7.0"
 }
@@ -10,73 +11,31 @@ repositories {
     mavenCentral()
 }
 
-kotlin {
-    sourceSets {
-        val commonMain by getting {
-            dependencies {
-                api("io.github.microutils:kotlin-logging:3.0.5")
-                api("org.jetbrains.kotlinx:kotlinx-datetime:0.4.1")
-                api("de.jensklingenberg.ktorfit:ktorfit-lib:1.9.0")
-                api("de.comahe.i18n4k:i18n4k-core:0.6.2")
-            }
-        }
-        val commonTest by getting {
-            dependencies {
-                implementation(kotlin("test"))
-                implementation(kotlin("test-common"))
-                implementation(kotlin("test-annotations-common"))
-            }
-        }
-        val jvmMain by getting {
-            dependencies {
-                implementation("org.jetbrains.kotlin:kotlin-bom")
-                implementation("org.jetbrains.kotlin:kotlin-stdlib")
-                implementation(files("${layout.buildDirectory.asFile.get()}/resources/"))
-                api("de.comahe.i18n4k:i18n4k-core-jvm:0.6.2")
-                api("com.electronwill.night-config:toml:3.6.7")
-                api("com.fasterxml.jackson.core:jackson-databind:2.15.3")
-                api("net.lingala.zip4j:zip4j:2.11.5")
-                api("org.apache.logging.log4j:log4j-api-kotlin:1.3.0")
-                api("org.apache.logging.log4j:log4j-core:2.21.0")
-                api("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3")
-                api("org.pf4j:pf4j:3.10.0")
-                api("org.bouncycastle:bcpkix-jdk18on:1.77")
-            }
-        }
-        val jvmTest by getting {
-            dependencies {
-                implementation(kotlin("test"))
-                implementation("org.jetbrains.kotlin:kotlin-test:1.9.10")
-                implementation("org.junit.jupiter:junit-jupiter-api:5.10.0")
-                implementation("org.junit.jupiter:junit-jupiter-engine:5.10.0")
-            }
-        }
-// Uncomment if you wish to start developing the JS component
-//        val jsMain by getting {
-//            dependsOn(commonMain)
-//            dependencies {
-//                api(kotlin("stdlib-js"))
-//                api("io.github.microutils:kotlin-logging-js:3.0.4")
-//                api("de.comahe.i18n4k:i18n4k-core-js:0.5.0")
-//            }
-//        }
-//        val jsTest by getting {
-//            dependencies {
-//                implementation(kotlin("test-js"))
-//            }
-//        }
-    }
-}
-
-tasks.signJvmPublication {
-    dependsOn(tasks.dokkaJavadocJar)
-}
-
-tasks.signKotlinMultiplatformPublication {
-    dependsOn(tasks.dokkaJavadocJar)
+dependencies {
+    api("io.github.microutils:kotlin-logging:3.0.5")
+    api("org.jetbrains.kotlinx:kotlinx-datetime:0.5.0")
+    api("de.jensklingenberg.ktorfit:ktorfit-lib:1.14.0")
+    api("de.comahe.i18n4k:i18n4k-core:0.7.0")
+    api("de.comahe.i18n4k:i18n4k-core-jvm:0.7.0")
+    implementation("org.jetbrains.kotlin:kotlin-bom:1.9.23")
+    implementation("org.jetbrains.kotlin:kotlin-stdlib:1.9.23")
+    implementation(files("${layout.buildDirectory.asFile.get()}/resources/"))
+    api("com.electronwill.night-config:toml:3.7.1")
+    api("com.fasterxml.jackson.core:jackson-databind:2.17.0")
+    api("net.lingala.zip4j:zip4j:2.11.5")
+    api("org.apache.logging.log4j:log4j-api-kotlin:1.4.0")
+    api("org.apache.logging.log4j:log4j-core:2.23.1")
+    api("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.8.0")
+    api("org.pf4j:pf4j:3.11.0")
+    api("org.bouncycastle:bcpkix-jdk18on:1.78")
+
+    testImplementation("org.jetbrains.kotlin:kotlin-test:1.9.23")
+    testImplementation("org.jetbrains.kotlin:kotlin-test:1.9.23")
+    testImplementation("org.junit.jupiter:junit-jupiter-api:5.10.2")
+    testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine:5.10.2")
 }
 
-tasks.jvmSourcesJar {
+tasks.sourcesJar {
     dependsOn(tasks.generateI18n4kFiles)
 }
 
@@ -84,37 +43,37 @@ tasks.processResources {
 
 }
 
-tasks.jvmProcessResources {
+tasks.processResources {
     dependsOn(tasks.generateI18n4kFiles)
     copy {
         from(rootProject.layout.projectDirectory.file("CHANGELOG.md"))
-        into(layout.projectDirectory.dir("src/jvmMain/resources"))
+        into(layout.projectDirectory.dir("src/main/resources"))
     }
     copy {
         from(rootProject.layout.projectDirectory.file("CODE_OF_CONDUCT.md"))
-        into(layout.projectDirectory.dir("src/jvmMain/resources"))
+        into(layout.projectDirectory.dir("src/main/resources"))
     }
     copy {
         from(rootProject.layout.projectDirectory.file("CONTRIBUTING.md"))
-        into(layout.projectDirectory.dir("src/jvmMain/resources"))
+        into(layout.projectDirectory.dir("src/main/resources"))
     }
     copy {
         from(rootProject.layout.projectDirectory.file("HELP.md"))
-        into(layout.projectDirectory.dir("src/jvmMain/resources"))
+        into(layout.projectDirectory.dir("src/main/resources"))
     }
     copy {
         from(rootProject.layout.projectDirectory.file("LICENSE"))
-        into(layout.projectDirectory.dir("src/jvmMain/resources"))
+        into(layout.projectDirectory.dir("src/main/resources"))
     }
     copy {
         from(rootProject.layout.projectDirectory.file("README.md"))
-        into(layout.projectDirectory.dir("src/jvmMain/resources"))
+        into(layout.projectDirectory.dir("src/main/resources"))
     }
 }
 
 //Fix resources missing in multiplatform jvm inDev run https://youtrack.jetbrains.com/issue/KTIJ-16582/Consumer-Kotlin-JVM-library-cannot-access-a-Kotlin-Multiplatform-JVM-target-resources-in-multi-module-Gradle-project
 tasks.register<Copy>("fixMissingResources") {
-    dependsOn(tasks.jvmProcessResources)
+    dependsOn(tasks.processResources)
     from("${layout.buildDirectory.asFile.get()}/processedResources/jvm/main")
     into("${layout.buildDirectory.asFile.get()}/resources/")
 }
@@ -123,17 +82,17 @@ tasks.dokkaHtml {
     dependsOn(tasks.generateI18n4kFiles, tasks.getByName("fixMissingResources"))
 }
 
-tasks.jvmJar {
+tasks.jar {
     dependsOn(tasks.getByName("fixMissingResources"))
 }
 
 tasks.register<Copy>("updateManifests") {
     dependsOn(tasks.test)
     from(rootDir.resolve("serverpackcreator-app/tests/manifests"))
-    into(projectDir.resolve("src/jvmMain/resources/de/griefed/resources/manifests"))
+    into(projectDir.resolve("src/main/resources/de/griefed/resources/manifests"))
 }
 
-tasks.jvmTest {
+tasks.test {
     dependsOn(tasks.getByName("fixMissingResources"))
     Preferences.userRoot().node("ServerPackCreator").clear()
     Preferences.userRoot().node("ServerPackCreator").sync()
@@ -143,8 +102,4 @@ tasks.build {
     doLast {
         tasks.dokkaJavadocJar
     }
-}
-
-tasks.withType(PublishToMavenRepository::class) {
-    dependsOn(tasks.signKotlinMultiplatformPublication,tasks.signJvmPublication)
-}
+}
\ No newline at end of file
diff --git a/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/Api.kt b/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/Api.kt
deleted file mode 100644
index d294012d6..000000000
--- a/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/Api.kt
+++ /dev/null
@@ -1,147 +0,0 @@
-/* Copyright (C) 2024  Griefed
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301
- * USA
- *
- * The full license can be found at https:github.com/Griefed/ServerPackCreator/blob/main/LICENSE
- */
-package de.griefed.serverpackcreator.api
-
-import de.griefed.serverpackcreator.api.utilities.TomlParser
-import de.griefed.serverpackcreator.api.utilities.common.BooleanUtilities
-import de.griefed.serverpackcreator.api.utilities.common.ListUtilities
-import de.griefed.serverpackcreator.api.utilities.common.StringUtilities
-import mu.KotlinLogging
-
-/**
- * Basic implementations of the API-class holding properties and functions/methods which should be provided to the given
- * implementer.
- *
- * @author Griefed
- */
-abstract class Api<F> {
-    protected val log = KotlinLogging.logger {}
-    protected val versionsRegex = ".*(alpha|beta|dev).*".toRegex()
-    protected val xmlJsonRegex = ".*\\.(xml|json)".toRegex()
-    protected var setupWasRun: Boolean = false
-
-    /**
-     * This instances common boolean utilities used across ServerPackCreator.
-     *
-     * @return Common boolean utilities used across ServerPackCreator.
-     * @author Griefed
-     */
-    val booleanUtilities: BooleanUtilities = BooleanUtilities()
-
-    /**
-     * This instances common String utilities used across ServerPackCreator.
-     *
-     * @return Common String utilities used across ServerPackCreator.
-     * @author Griefed
-     */
-    val stringUtilities: StringUtilities = StringUtilities()
-
-
-    /**
-     * This instances common list utilities used across ServerPackCreator.
-     *
-     * @return Common list utilities used across ServerPackCreator.
-     * @author Griefed
-     */
-    val listUtilities: ListUtilities = ListUtilities()
-
-    /**
-     * Convenience method to set up ServerPackCreator.
-     *
-     * @author Griefed
-     */
-    abstract fun setup(force: Boolean = false): ApiWrapper
-
-    /**
-     * Stage one of starting ServerPackCreator.
-     *
-     * Creates and prepares the environment for ServerPackCreator to run by creating required
-     * directories and copying required files from the JAR-file to the filesystem. Some of these files
-     * can and should be edited by a given user, others however, not.
-     *
-     *  * Checks the read- and write-permissions of ServerPackCreators base-directory.
-     *  * Copies the `README.md` from the JAR to the home-directory.
-     *  * Copies the `HELP.md` from the JAR to the home-directory.
-     *  * Copies the `CHANGELOG.md` from the JAR to the home-directory.
-     *  * Copies the `LICENSE` from the JAR to the home-directory.
-     *  * Copies the fallback version-manifests to the manifests.
-     *  * Creates default directories:
-     *
-     *  * server_files
-     *  * work
-     *  * temp
-     *  * work/modpacks
-     *  * server-packs (depending on the users settings, this may be anywhere on the users system)
-     *  * plugins
-     *  * plugins/config
-     *
-     *  * Example `disabled.txt`-file in plugins/disabled.txt.
-     *  * Creates the default `server.properties` if it doesn't exist.
-     *  * Creates the default `server-icon.png` if it doesn't exist.
-     *  * Creates the default PowerShell and Shell script templates or overwrites them if they already exist.
-     *  * Determines whether this instance of ServerPackCreator was updated from a previous version.
-     *
-     * If an update was detected, and migrations are available for any of the steps of the update, they are executed,
-     * thus ensuring users are safe to update their instances. Writes ServerPackCreator and system information to the
-     * console and logs, important for error reporting and debugging.
-     *
-     * @author Griefed
-     */
-    abstract fun stageOne()
-
-    /**
-     * Initialize [de.griefed.serverpackcreator.api.versionmeta.VersionMeta], [ConfigurationHandler].
-     *
-     * @author Griefed
-     */
-    abstract fun stageTwo()
-
-    /**
-     * Initialize [ApiPlugins], [de.griefed.serverpackcreator.api.modscanning.ModScanner] (consisting of [TomlParser],
-     * [de.griefed.serverpackcreator.api.modscanning.ForgeAnnotationScanner],
-     * [de.griefed.serverpackcreator.api.modscanning.FabricScanner],
-     * [de.griefed.serverpackcreator.api.modscanning.ForgeTomlScanner],
-     * [de.griefed.serverpackcreator.api.modscanning.QuiltScanner]),
-     * [ServerPackHandler].
-     *
-     * @author Griefed
-     */
-    abstract fun stageThree()
-
-    /**
-     * Check whether the specified server-files file exists and create it if it doesn't.
-     *
-     * @param fileToCheckFor The file which is to be checked for whether it exists and if it doesn't,
-     * should be created.
-     * @return `true` if the file was generated.
-     * @author Griefed
-     */
-    abstract fun checkServerFilesFile(fileToCheckFor: F): Boolean
-
-    /**
-     * Overwrite the specified server-files file, even when it exists. Used to ensure files like the
-     * default script templates are always up-to-date.
-     *
-     * @param fileToOverwrite The file which is to be overwritten. If it exists. it is first deleted,
-     * then extracted from our JAR-file.
-     * @author Griefed
-     */
-    abstract fun overwriteServerFilesFile(fileToOverwrite: F)
-}
\ No newline at end of file
diff --git a/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/ApiPlugins.kt b/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/ApiPlugins.kt
deleted file mode 100644
index 85d285095..000000000
--- a/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/ApiPlugins.kt
+++ /dev/null
@@ -1,113 +0,0 @@
-/* Copyright (C) 2024  Griefed
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301
- * USA
- *
- * The full license can be found at https:github.com/Griefed/ServerPackCreator/blob/main/LICENSE
- */
-package de.griefed.serverpackcreator.api
-
-import de.griefed.serverpackcreator.api.plugins.serverpackhandler.PostGenExtension
-import de.griefed.serverpackcreator.api.plugins.serverpackhandler.PreGenExtension
-import de.griefed.serverpackcreator.api.plugins.serverpackhandler.PreZipExtension
-import de.griefed.serverpackcreator.api.plugins.swinggui.TabExtension
-import de.griefed.serverpackcreator.api.utilities.CommentedConfig
-import de.griefed.serverpackcreator.api.utilities.File
-import de.griefed.serverpackcreator.api.utilities.Optional
-
-/**
- * Manager for ServerPackCreator plugins. In itself it doesn't do much. It gathers lists of all
- * available extensions for [TabExtension],[PreGenExtension],[PreZipExtension] and
- * [PostGenExtension] so they can then be run during server pack generation and during
- * initialization of the GUI.
- *
- * @author Griefed
- */
-expect class ApiPlugins {
-
-    /**
-     * Get the global plugin configuration for a plugin of the passed ID. The configuration is wrapped
-     * in an [Optional], because a plugin may not provide a global configuration. If you intend
-     * on using a global configuration for your plugin, make sure to check whether it is present before
-     * trying to use it!
-     *
-     * @param pluginId The plugin ID of the...well...plugin.
-     * @return The global plugin configuration, wrapped in an Optional.
-     * @author Griefed
-     */
-    fun getPluginConfig(pluginId: String): Optional<CommentedConfig>
-
-    /**
-     * Run any and all Pre-Server Pack-Generation extensions, using the passed configuration model and
-     * the destination at which the server pack is to be generated and stored at.
-     *
-     * @param packConfig The configuration model from which to create the server pack.
-     * @param destination        The destination at which the server pack will be generated and stored
-     * at.
-     * @author Griefed
-     */
-    fun runPreGenExtensions(packConfig: PackConfig, destination: String)
-
-    /**
-     * Run any and all Pre-ZIP-archive creation extensions, using the passed configuration model and
-     * the destination at which the server pack is to be generated and stored at.
-     *
-     * @param packConfig The configuration model from which to create the server pack.
-     * @param destination        The destination at which the server pack will be generated and stored
-     * at.
-     * @author Griefed
-     */
-    fun runPreZipExtensions(packConfig: PackConfig, destination: String)
-
-    /**
-     * Run any and all Post-server pack-generation extensions, using the passed configuration model
-     * and the destination at which the server pack is to be generated and stored at.
-     *
-     * @param packConfig The configuration model from which to create the server pack.
-     * @param destination        The destination at which the server pack will be generated and stored
-     * at.
-     * @author Griefed
-     */
-    fun runPostGenExtensions(packConfig: PackConfig, destination: String)
-
-    /**
-     * Run any and all configuration-check extensions, using the passed configuration model and the
-     * destination at which the server pack is to be generated and stored at.
-     *
-     * @param packConfig The configuration model containing the server pack and plugin
-     * configurations to check.
-     * @param configCheck Collection of encountered errors, if any, for convenient result-checks.
-     * @return `true` if any custom check detected an error with the configuration.
-     * **Only** return `false` when not a **single** check
-     * errored.
-     * @author Griefed
-     */
-    fun runConfigCheckExtensions(
-        packConfig: PackConfig,
-        configCheck: ConfigCheck = ConfigCheck()
-    ): ConfigCheck
-
-    /**
-     * Get the configuration-file for a plugin, if it exists. This is wrapped in an [Optional],
-     * because not every plugin may provide a configuration-file to use globally for the relevant
-     * plugins settings. If you intend on using a global configuration, make sure to check whether the
-     * file is present, before moving on!
-     *
-     * @param pluginId The plugin ID with which to identify the correct config-file to return.
-     * @return The config-file corresponding to the ID of the plugin, wrapped in an Optional.
-     * @author Griefed
-     */
-    fun getPluginConfigFile(pluginId: String): Optional<File>
-}
diff --git a/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/ApiProperties.kt b/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/ApiProperties.kt
deleted file mode 100644
index b3c0fc63b..000000000
--- a/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/ApiProperties.kt
+++ /dev/null
@@ -1,35 +0,0 @@
-/* Copyright (C) 2024  Griefed
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301
- * USA
- *
- * The full license can be found at https:github.com/Griefed/ServerPackCreator/blob/main/LICENSE
- */
-package de.griefed.serverpackcreator.api
-
-/**
- * Base settings of ServerPackCreator, such as working directories, default list of clientside-only
- * mods, default list of directories to include in a server pack, script templates, java paths and
- * much more.
- *
- * @author Griefed
- */
-expect class ApiProperties {
-
-    companion object {
-        @JvmStatic
-        fun getSeparator(): String
-    }
-}
diff --git a/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/ApiWrapper.kt b/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/ApiWrapper.kt
deleted file mode 100644
index 7622a1584..000000000
--- a/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/ApiWrapper.kt
+++ /dev/null
@@ -1,54 +0,0 @@
-/* Copyright (C) 2024  Griefed
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301
- * USA
- *
- * The full license can be found at https:github.com/Griefed/ServerPackCreator/blob/main/LICENSE
- */
-package de.griefed.serverpackcreator.api
-
-import de.griefed.serverpackcreator.api.modscanning.*
-import de.griefed.serverpackcreator.api.utilities.TomlParser
-import de.griefed.serverpackcreator.api.utilities.common.*
-import de.griefed.serverpackcreator.api.versionmeta.VersionMeta
-
-/**
- * API wrapper, allowing you to conveniently initialize, setup and use the different aspects of ServerPackCreator.
- *
- * @author Griefed
- */
-expect class ApiWrapper {
-
-    val apiProperties: ApiProperties
-    val fileUtilities: FileUtilities
-    val jarUtilities: JarUtilities
-    val systemUtilities: SystemUtilities
-    val jsonUtilities: JsonUtilities
-    val xmlUtilities: XmlUtilities
-    val tomlParser: TomlParser
-    val forgeTomlScanner: ForgeTomlScanner
-
-    val webUtilities: WebUtilities
-    val utilities: Utilities
-    val versionMeta: VersionMeta
-    val configurationHandler: ConfigurationHandler
-    val apiPlugins: ApiPlugins
-    val serverPackHandler: ServerPackHandler
-    val modScanner: ModScanner
-    val forgeAnnotationScanner: ForgeAnnotationScanner
-    val fabricScanner: FabricScanner
-    val quiltScanner: QuiltScanner
-    val neoForgeTomlScanner: NeoForgeTomlScanner
-}
\ No newline at end of file
diff --git a/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/Configuration.kt b/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/Configuration.kt
deleted file mode 100644
index 099a0a235..000000000
--- a/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/Configuration.kt
+++ /dev/null
@@ -1,546 +0,0 @@
-/* Copyright (C) 2024  Griefed
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301
- * USA
- *
- * The full license can be found at https:github.com/Griefed/ServerPackCreator/blob/main/LICENSE
- */
-@file:Suppress("unused")
-
-package de.griefed.serverpackcreator.api
-
-import de.griefed.serverpackcreator.api.utilities.File
-import mu.KotlinLogging
-
-/**
- * Base for the [de.griefed.serverpackcreator.api.ConfigurationHandler] to ensure we have the basics for config-checks
- * and config-handling.
- *
- * @author Griefed
- */
-abstract class Configuration<F, P> {
-    protected val log = KotlinLogging.logger {}
-    protected val forge = "^forge$".toRegex()
-    protected val neoForge = "^neoforge$".toRegex()
-    protected val fabric = "^fabric$".toRegex()
-    protected val quilt = "^quilt$".toRegex()
-    protected val legacyFabric = "^legacyfabric$".toRegex()
-    protected val whitespace = "^\\s+$".toRegex()
-    protected val previous = ".*_\\d".toRegex()
-    protected val zipCheck = "^\\w+[/\\\\]$".toRegex()
-
-    /**
-     * Check the passed configuration-file. If any check returns `true` then the server pack
-     * will not be created. In order to find out which check failed, the user has to check their
-     * serverpackcreator.log in the logs-directory.
-     *
-     * @param configFile         The configuration file to check. Must either be an existing file to
-     * load a configuration from or null if you want to use the passed
-     * configuration model.
-     * @param packConfig Instance of a configuration of a modpack. Can be used to further
-     * display or use any information within, as it may be changed or
-     * otherwise altered by this method.
-     * @param configCheck Contains all encountered errors during the check of the passed configuration.
-     * @param quietCheck         Whether the configuration should be printed to the console and logs.
-     * Pass false to quietly check the configuration.
-     * @return `false` if the configuration has passed all tests.
-     * @author Griefed
-     */
-    abstract fun checkConfiguration(
-        configFile: F,
-        packConfig: PackConfig,
-        configCheck: ConfigCheck,
-        quietCheck: Boolean
-    ): ConfigCheck
-
-    /**
-     * Check the passed [packConfig]. If any check returns `true` then the server
-     * pack will not be created. In order to find out which check failed, the user has to check their
-     * serverpackcreator.log in the logs-directory.
-     *
-     * The passed [packConfig] can be used to further display or use any information within, as it may be changed or otherwise
-     * altered by this method.
-     *
-     * @param packConfig Instance of a configuration of a modpack. Can be used to further
-     * display or use any information within, as it may be changed or
-     * otherwise altered by this method.
-     * @param configCheck Contains all encountered errors during the check of the passed configuration.
-     * @param quietCheck         Whether the configuration should be printed to the console and logs.
-     * Pass false to quietly check the configuration.
-     * @return `false` if all checks are passed.
-     * @author Griefed
-     */
-    abstract fun checkConfiguration(
-        packConfig: PackConfig,
-        configCheck: ConfigCheck,
-        quietCheck: Boolean
-    ): ConfigCheck
-
-    /**
-     * Sanitize any and all links in a given instance of [PackConfig] modpack-directory,
-     * server-icon path, server-properties path, Java path and copy-directories entries.
-     *
-     * @param packConfig Instance of [PackConfig] in which to sanitize links to
-     * their respective destinations.
-     * @author Griefed
-     */
-    abstract fun sanitizeLinks(packConfig: PackConfig)
-
-    /**
-     * Checks the passed String whether it is an existing file. If the passed String is empty, then
-     * ServerPackCreator will treat it as the user being fine with the default files and return the
-     * corresponding boolean.
-     *
-     * @param iconOrPropertiesPath The path to the custom server-icon.png or server.properties file to
-     * check.
-     * @return `true` if the file exists or an empty String was passed, false if a file was
-     * specified, but the file was not found.
-     * @author Griefed
-     */
-    abstract fun checkIconAndProperties(iconOrPropertiesPath: String): Boolean
-
-    /**
-     * If the in the configuration specified modpack dir is an existing directory, checks are made for
-     * valid configuration of: directories to copy to server pack, if includeServerInstallation is
-     * `true` path to Java executable/binary, Minecraft version, modloader and modloader
-     * version.
-     *
-     * @param packConfig An instance of [PackConfig] which contains the
-     * configuration of the modpack.
-     * @param configCheck Contains all encountered errors during the check of the passed configuration.
-     * @return `true` if an error is found during configuration check.
-     * @author Griefed
-     */
-    abstract fun isDir(packConfig: PackConfig, configCheck: ConfigCheck): ConfigCheck
-
-    /**
-     * Checks the specified ZIP-archive for validity. In order for a modpack ZIP-archive to be
-     * considered valid, it needs to contain the `mods` and `config` folders at minimum.
-     * If any of `manifest.json`, `minecraftinstance.json` or `config.json` are
-     * available, gather as much information from them as possible.
-     *
-     * @param packConfig Instance of [PackConfig] with a server pack
-     * configuration.
-     * @param configCheck Collection of encountered errors, if any, for convenient result-checks.
-     * @return `false` when no errors were encountered.
-     * @author Griefed
-     */
-    abstract fun isZip(packConfig: PackConfig, configCheck: ConfigCheck): ConfigCheck
-
-    /**
-     * Checks whether either Forge or Fabric were specified as the modloader.
-     *
-     * @param modloader Check as case-insensitive for Forge or Fabric.
-     * @return `true` if the specified modloader is either Forge or Fabric. False if neither.
-     * @author Griefed
-     */
-    abstract fun checkModloader(modloader: String, configCheck: ConfigCheck): ConfigCheck
-
-    /**
-     * Check the given Minecraft and modloader versions for the specified modloader.
-     *
-     * @param modloader        The passed modloader which determines whether the check for Forge or
-     * Fabric is called.
-     * @param modloaderVersion The version of the modloader which is checked against the corresponding
-     * modloader's manifest.
-     * @param minecraftVersion The version of Minecraft used for checking the Forge version.
-     * @return `true` if the specified modloader version was found in the corresponding
-     * manifest.
-     * @author Griefed
-     */
-    abstract fun checkModloaderVersion(
-        modloader: String, modloaderVersion: String, minecraftVersion: String, configCheck: ConfigCheck
-    ): ConfigCheck
-
-    /**
-     * Convenience method which passes the important fields from an instance of
-     * [PackConfig] to
-     * [.printConfigurationModel]
-     *
-     * @param packConfig Instance of [PackConfig] to print to console and logs.
-     * @author Griefed
-     */
-    fun printConfigurationModel(packConfig: Pack<*, *, *>) = printConfigurationModel(
-        packConfig.modpackDir,
-        packConfig.clientMods,
-        packConfig.inclusions,
-        packConfig.minecraftVersion,
-        packConfig.modloader,
-        packConfig.modloaderVersion,
-        packConfig.isServerIconInclusionDesired,
-        packConfig.isServerPropertiesInclusionDesired,
-        packConfig.isZipCreationDesired,
-        packConfig.javaArgs,
-        packConfig.serverPackSuffix,
-        packConfig.serverIconPath,
-        packConfig.serverPropertiesPath,
-        packConfig.scriptSettings
-    )
-
-    /**
-     * Print all encountered errors to logs.
-     *
-     * @param encounteredErrors A list of all errors which were encountered during a configuration
-     * check.
-     * @author Griefed
-     */
-    fun printEncounteredErrors(encounteredErrors: List<String>) {
-        log.error("Encountered ${encounteredErrors.size} errors during the configuration check.")
-        var encounteredErrorNumber: Int
-        for (i in encounteredErrors.indices) {
-            encounteredErrorNumber = i + 1
-            log.error("Error $encounteredErrorNumber: ${encounteredErrors[i]}")
-        }
-    }
-
-    /**
-     * Update the script settings and ensure the default keys, with values gathered from the passed
-     * [PackConfig], are present:
-     *
-     *
-     *  1. `SPC_SERVERPACKCREATOR_VERSION_SPC` : `ServerPackCreator version with which the scripts were created`
-     *  1. `SPC_MINECRAFT_VERSION_SPC` : `Minecraft version of the modpack`
-     *  1. `SPC_MINECRAFT_SERVER_URL_SPC` : `Download-URL to the Minecraft server
-    ` *
-     *  1. `SPC_MODLOADER_SPC` : `The modloader of the modpack`
-     *  1. `SPC_MODLOADER_VERSION_SPC` : `The modloader version of the modpack
-    ` *
-     *  1. `SPC_JAVA_ARGS_SPC` : `The JVM args to be used to run the server`
-     *  1. `SPC_JAVA_SPC` : `Path to the java installation to be used to run the server`
-     *  1. `SPC_FABRIC_INSTALLER_VERSION_SPC` : `Most recent version of the Fabric installer at the time of creating the scripts`
-     *  1. `SPC_QUILT_INSTALLER_VERSION_SPC` : `Most recent version of the Quilt installer at the time of creating the scripts`
-     *
-     *
-     * @param packConfig Model in which to ensure the default key-value pairs are present.
-     * @author Griefed
-     */
-    abstract fun ensureScriptSettingsDefaults(packConfig: PackConfig)
-
-    /**
-     * Checks whether the passed list of directories which are supposed to be in the modpack directory
-     * is empty, or whether all directories in the list exist in the modpack directory. If the user
-     * specified a `source/file;destination/file`-combination, it is checked whether the
-     * specified source-file exists on the host.
-     *
-     * @param inclusions Directories, or `source/file;destination/file`-combinations, to
-     * check for existence.
-     * `source/file;destination/file`-combinations must be absolute
-     * paths to the source-file.
-     * @param modpackDir        Path to the modpack directory in which to check for existence of the
-     * passed list of directories.
-     * @return `true` if every directory was found in the modpack directory. If any single one
-     * was not found, false is returned.
-     * @author Griefed
-     */
-    abstract fun checkInclusions(
-        inclusions: MutableList<InclusionSpecification>,
-        modpackDir: String,
-        configCheck: ConfigCheck,
-        printLog: Boolean
-    ): ConfigCheck
-
-    /**
-     * Check a given ZIP-archives contents. If the ZIP-archive only contains one directory, or if it
-     * contains neither the mods nor the config directories, consider it invalid.
-     *
-     * @param pathToZip         Path to the ZIP-file to check.
-     * @author Griefed
-     */
-    abstract fun checkZipArchive(pathToZip: String, configCheck: ConfigCheck): ConfigCheck
-
-    /**
-     * Update the destination to which the ZIP-archive will the extracted to, based on whether a
-     * directory of the same name already exists.
-     *
-     * @param destination The destination to where the ZIP-archive was about to be extracted to.
-     * @return The destination where the ZIP-archive will be extracted to.
-     * @author Griefed
-     */
-    abstract fun unzipDestination(destination: String): String
-
-    /**
-     * Creates a list of suggested directories to include in server pack which is later on written to
-     * a new configuration file. The list of directories to include in the server pack which is
-     * generated by this method excludes well know directories which would not be needed by a server
-     * pack. If you have suggestions to this list, open a feature request issue on [GitHub](https://github.com/Griefed/ServerPackCreator/issues/new/choose)
-     *
-     * @param modpackDir The directory for which to gather a list of directories to copy to the server
-     * pack.
-     * @return Directories inside the modpack, excluding well known client-side only directories.
-     * @author Griefed
-     */
-    abstract fun suggestInclusions(modpackDir: String): ArrayList<InclusionSpecification>
-
-    /**
-     * Check whether various manifests from various launchers exist and use them to update our
-     * ConfigurationModel and pack name.
-     *
-     * @param destination        The destination in which the manifests are.
-     * @param packConfig The ConfigurationModel to update.
-     * @param configCheck Collection of encountered errors, if any, for convenient result-checks.
-     * @return The name of the modpack currently being checked. `null` if the name could not be
-     * acquired.
-     * @author Griefed
-     */
-    abstract fun checkManifests(
-        destination: String,
-        packConfig: PackConfig,
-        configCheck: ConfigCheck
-    ): String?
-
-    /**
-     * Check whether a server pack for the given destination already exists and get an incrementor
-     * based on whether one exists, how many, or none exist. Think if this as the incrementation
-     * Windows does when a file of the same name is copied. `foo.bar` becomes
-     * `foo (1).bar` etc.
-     *
-     * @param source          The name of the modpack.
-     * @param destination The name of the server pack about to be generated.
-     * @return An incremented number, based on whether a server pack of the same name already exists.
-     * @author Griefed
-     */
-    abstract fun checkServerPacksForIncrement(source: String, destination: String): String
-
-    /**
-     * Prints all passed fields to the console and serverpackcreator.log. Used to show the user the
-     * configuration before ServerPackCreator starts the generation of the server pack or, if checks
-     * failed, to show the user their last configuration, so they can more easily identify problems
-     * with said configuration.
-     *
-     * Should a user report an issue on GitHub and include their logs (which I hope they do....), this would also help
-     * me help them. Logging is good. People should use more logging.
-     *
-     * @param modpackDirectory     The used modpackDir field either from a configuration file or from
-     * configuration setup.
-     * @param clientsideMods       List of clientside-only mods to exclude from the server pack...
-     * @param inclusions      List of directories in the modpack which are to be included in the
-     * server pack.
-     * @param minecraftVer         The Minecraft version the modpack uses.
-     * @param modloader            The modloader the modpack uses.
-     * @param modloaderVersion     The version of the modloader the modpack uses.
-     * @param includeIcon          Whether to include the server-icon.png in the server pack.
-     * @param includeProperties    Whether to include the server.properties in the server pack.
-     * @param includeZip           Whether to create a zip-archive of the server pack, excluding the
-     * Minecraft server JAR according to Mojang's TOS and EULA.
-     * @param javaArgs             Java arguments to write the start-scripts with.
-     * @param serverPackSuffix     Suffix to append to name of the server pack to be generated.
-     * @param serverIconPath       The path to the custom server-icon.png to be used in the server
-     * pack.
-     * @param serverPropertiesPath The path to the custom server.properties to be used in the server
-     * pack.
-     * @param scriptSettings       Custom settings for start script creation. `KEY`s are the
-     * placeholder, `VALUE`s are the values with which the
-     * placeholders are to be replaced.
-     * @author Griefed
-     */
-    abstract fun printConfigurationModel(
-        modpackDirectory: String,
-        clientsideMods: List<String>,
-        inclusions: List<InclusionSpecification>,
-        minecraftVer: String,
-        modloader: String,
-        modloaderVersion: String,
-        includeIcon: Boolean,
-        includeProperties: Boolean,
-        includeZip: Boolean,
-        javaArgs: String,
-        serverPackSuffix: String,
-        serverIconPath: String,
-        serverPropertiesPath: String,
-        scriptSettings: HashMap<String, String>
-    )
-
-    /**
-     * Acquire a list of directories in the base-directory of a ZIP-file.
-     *
-     * @param zipFile The ZIP-archive to get the list of files from.
-     * @return All directories in the base-directory of the ZIP-file.
-     * @author Griefed
-     */
-    abstract fun getDirectoriesInModpackZipBaseDirectory(zipFile: File): List<String>
-
-    /**
-     * **`manifest.json`**
-     *
-     * Update the given ConfigurationModel with values gathered from the downloaded CurseForge
-     * modpack. A manifest.json-file is usually created when a modpack is exported through launchers
-     * like Overwolf's CurseForge or GDLauncher.
-     *
-     * @param packConfig An instance containing a configuration for a modpack from which to
-     * create a server pack.
-     * @param manifest           The CurseForge manifest.json-file of the modpack to read.
-     * @author Griefed
-     */
-    abstract fun updateConfigModelFromCurseManifest(packConfig: PackConfig, manifest: F)
-
-    /**
-     * Acquire the modpacks name from the JSON previously acquired and stored in the
-     * ConfigurationModel.
-     *
-     * @param packConfig The ConfigurationModel containing the JsonNode from which to acquire
-     * the modpacks name.
-     * @param childNodes         The child nodes, in order, which contain the requested packname.
-     * @return The new name of the modpack.
-     * @author Griefed
-     */
-    abstract fun updatePackName(packConfig: PackConfig, vararg childNodes: String): String?
-
-    /**
-     * **`minecraftinstance.json`**
-     *
-     * Update the given ConfigurationModel with values gathered from the minecraftinstance.json of
-     * the modpack. A minecraftinstance.json is usually created by Overwolf's CurseForge launcher.
-     *
-     * @param packConfig An instance containing a configuration for a modpack from which to
-     * create a server pack.
-     * @param minecraftInstance  The minecraftinstance.json-file of the modpack to read.
-     * @author Griefed
-     */
-    abstract fun updateConfigModelFromMinecraftInstance(packConfig: PackConfig, minecraftInstance: F)
-
-    /**
-     * **`modrinth.index.json`**
-     *
-     * Update the given ConfigurationModel with values gathered from a Modrinth `modrinth.index.json`-manifest.
-     *
-     * @param packConfig The model to update.
-     * @param manifest           The manifest file.
-     * @author Griefed
-     */
-    abstract fun updateConfigModelFromModrinthManifest(packConfig: PackConfig, manifest: F)
-
-    /**
-     * **`instance.json`**
-     *
-     * Update the given ConfigurationModel with values gathered from a ATLauncher or XMCL manifest.
-     *
-     * @param packConfig The model to update.
-     * @param manifest           The manifest file.
-     * @author Griefed
-     */
-    abstract fun updateConfigModelFromInstance(packConfig: PackConfig, manifest: F)
-
-    /**
-     * **`config.json`**
-     *
-     * Update the given ConfigurationModel with values gathered from the modpacks config.json. A
-     * config.json is usually created by GDLauncher.
-     *
-     * @param packConfig An instance containing a configuration for a modpack from which to
-     * create a server pack.
-     * @param config             The config.json-file of the modpack to read.
-     * @author Griefed
-     */
-    abstract fun updateConfigModelFromConfigJson(packConfig: PackConfig, config: F)
-
-    /**
-     * **`mmc-pack.json`**
-     *
-     *
-     * Update the given ConfigurationModel with values gathered from the modpacks mmc-pack.json. A
-     * mmc-pack.json is usually created by the MultiMC launcher.
-     *
-     * @param packConfig An instance containing a configuration for a modpack from which to
-     * create a server pack.
-     * @param mmcPack            The config.json-file of the modpack to read.
-     * @author Griefed
-     */
-    abstract fun updateConfigModelFromMMCPack(packConfig: PackConfig, mmcPack: F)
-
-    /**
-     * **`instance.cfg`**
-     *
-     * Acquire the name of the modpack/instance of a MultiMC modpack from the modpacks
-     * instance.cfg, which is usually created by the MultiMC launcher.
-     *
-     * @param instanceCfg The config.json-file of the modpack to read.
-     * @return The instance name.
-     * @author Griefed
-     */
-    abstract fun updateDestinationFromInstanceCfg(instanceCfg: F): String
-
-    /**
-     * Ensures the modloader is normalized to first letter upper case and rest lower case. Basically
-     * allows the user to input Forge or Fabric in any combination of upper- and lowercase and
-     * ServerPackCreator will still be able to work with the users input.
-     *
-     * @param modloader Modloader String-representation to normalize.
-     * @return A normalized String of the specified modloader.
-     * @author Griefed
-     */
-    fun getModLoaderCase(modloader: String) = when {
-        modloader.lowercase().matches(forge) || modloader.lowercase().contains("forge") &&
-                !(modloader.lowercase().matches(neoForge) || modloader.lowercase().contains("NeoForge"))-> {
-            "Forge"
-        }
-        modloader.lowercase().matches(fabric) || modloader.lowercase().contains("fabric") -> {
-            "Fabric"
-        }
-        modloader.lowercase().matches(quilt) || modloader.lowercase().contains("quilt") -> {
-            "Quilt"
-        }
-        modloader.lowercase().matches(legacyFabric) || modloader.lowercase().contains("legacyfabric") -> {
-            "LegacyFabric"
-        }
-        modloader.lowercase().matches(neoForge) || modloader.lowercase().contains("NeoForge") -> {
-            "NeoForge"
-        }
-        else -> {
-            log.warn { "No suitable modloader found. Defaulting to Forge." }
-            "Forge"
-        }
-    }
-
-    /**
-     * Check the passed directory for existence and whether it is a directory, rather than a file.
-     *
-     * @param modpackDir The modpack directory.
-     * @param configCheck Collection of encountered errors, if any, for convenient result-checks.
-     * @return `true` if the directory exists.
-     * @author Griefed
-     */
-    abstract fun checkModpackDir(
-        modpackDir: String,
-        configCheck: ConfigCheck,
-        printLog: Boolean
-    ): ConfigCheck
-
-    /**
-     * Acquire a list of all files and directories in a ZIP-file.
-     *
-     * @param zipFile The ZIP-archive to get the list of files from.
-     * @return All files and directories in the ZIP-file.
-     * @author Griefed
-     */
-    abstract fun getAllFilesAndDirectoriesInModpackZip(zipFile: File): List<String>
-
-    /**
-     * Acquire a list of all directories in a ZIP-file. The resulting list excludes files.
-     *
-     * @param zipFile The ZIP-archive to get the list of files from.
-     * @return All directories in the ZIP-file.
-     * @author Griefed
-     */
-    abstract fun getDirectoriesInModpackZip(zipFile: File): List<String>
-
-    /**
-     * Acquire a list of all files in a ZIP-file. The resulting list excludes directories.
-     *
-     * @param zipFile The ZIP-archive to get the list of files from.
-     * @return All files in the ZIP-file.
-     * @author Griefed
-     */
-    abstract fun getFilesInModpackZip(zipFile: File): List<String>
-}
\ No newline at end of file
diff --git a/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/ConfigurationHandler.kt b/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/ConfigurationHandler.kt
deleted file mode 100644
index 12c5fcf22..000000000
--- a/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/ConfigurationHandler.kt
+++ /dev/null
@@ -1,82 +0,0 @@
-/* Copyright (C) 2024  Griefed
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301
- * USA
- *
- * The full license can be found at https:github.com/Griefed/ServerPackCreator/blob/main/LICENSE
- */
-package de.griefed.serverpackcreator.api
-
-import de.griefed.serverpackcreator.api.utilities.File
-
-/**
- * Check any given [PackConfig] for errors and, if so desired, add them to a passed
- * list of errors, so you may display them in a GUI, CLI or website. The most important method is
- * [checkConfiguration] and all of its variants which will check
- * your passed configuration model for errors, indicating whether it is safe to use for further
- * operations. Running your model through the checks also ensures that the default script settings
- * are present and set according to your pack's environment.
- *
- * @author Griefed
- */
-expect class ConfigurationHandler {
-    fun checkConfiguration(configFile: File, packConfig: PackConfig = PackConfig(), configCheck: ConfigCheck = ConfigCheck(), quietCheck: Boolean = false): ConfigCheck
-    fun checkConfiguration(packConfig: PackConfig = PackConfig(), configCheck: ConfigCheck = ConfigCheck(), quietCheck: Boolean = false): ConfigCheck
-    fun isDir(packConfig: PackConfig, configCheck: ConfigCheck = ConfigCheck()): ConfigCheck
-    fun isZip(packConfig: PackConfig, configCheck: ConfigCheck = ConfigCheck()): ConfigCheck
-    fun checkModloaderVersion(modloader: String, modloaderVersion: String, minecraftVersion: String, configCheck: ConfigCheck = ConfigCheck()): ConfigCheck
-    fun checkInclusions(inclusions: MutableList<InclusionSpecification>, modpackDir: String, configCheck: ConfigCheck = ConfigCheck(), printLog: Boolean = true): ConfigCheck
-    fun checkZipArchive(pathToZip: String, configCheck: ConfigCheck = ConfigCheck()): ConfigCheck
-    fun checkManifests(destination: String, packConfig: PackConfig, configCheck: ConfigCheck = ConfigCheck()): String?
-    fun checkModpackDir(modpackDir: String, configCheck: ConfigCheck = ConfigCheck(), printLog: Boolean = true): ConfigCheck
-    fun checkModloader(modloader: String,configCheck: ConfigCheck = ConfigCheck()): ConfigCheck
-
-    fun checkIconAndProperties(iconOrPropertiesPath: String = ""): Boolean
-
-    fun ensureScriptSettingsDefaults(packConfig: PackConfig)
-    fun sanitizeLinks(packConfig: PackConfig)
-    fun unzipDestination(destination: String): String
-    fun suggestInclusions(modpackDir: String): ArrayList<InclusionSpecification>
-    fun checkServerPacksForIncrement(source: String, destination: String): String
-    fun printConfigurationModel(
-        modpackDirectory: String,
-        clientsideMods: List<String>,
-        inclusions: List<InclusionSpecification>,
-        minecraftVer: String,
-        modloader: String,
-        modloaderVersion: String,
-        includeIcon: Boolean,
-        includeProperties: Boolean,
-        includeZip: Boolean,
-        javaArgs: String,
-        serverPackSuffix: String,
-        serverIconPath: String,
-        serverPropertiesPath: String,
-        scriptSettings: HashMap<String, String>
-    )
-
-    fun getDirectoriesInModpackZipBaseDirectory(zipFile: File): List<String>
-    fun updateConfigModelFromCurseManifest(packConfig: PackConfig, manifest: File)
-    fun updatePackName(packConfig: PackConfig, vararg childNodes: String): String?
-    fun updateConfigModelFromMinecraftInstance(packConfig: PackConfig, minecraftInstance: File)
-    fun updateConfigModelFromModrinthManifest(packConfig: PackConfig, manifest: File)
-    fun updateConfigModelFromInstance(packConfig: PackConfig, manifest: File)
-    fun updateConfigModelFromConfigJson(packConfig: PackConfig, config: File)
-    fun updateConfigModelFromMMCPack(packConfig: PackConfig, mmcPack: File)
-    fun updateDestinationFromInstanceCfg(instanceCfg: File): String
-    fun getAllFilesAndDirectoriesInModpackZip(zipFile: File): List<String>
-    fun getDirectoriesInModpackZip(zipFile: File): List<String>
-    fun getFilesInModpackZip(zipFile: File): List<String>
-}
\ No newline at end of file
diff --git a/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/InclusionSpecification.kt b/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/InclusionSpecification.kt
deleted file mode 100644
index 92cb1a065..000000000
--- a/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/InclusionSpecification.kt
+++ /dev/null
@@ -1,56 +0,0 @@
-/* Copyright (C) 2024  Griefed
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301
- * USA
- *
- * The full license can be found at https:github.com/Griefed/ServerPackCreator/blob/main/LICENSE
- */
-package de.griefed.serverpackcreator.api
-
-/**
- * A FileInclusionSpecification is at minimum a source-declaration from which files and directories will be included
- * in the server pack to be generated.
- *
- * Optionally, the following values can be specified:
- * * Destination
- * * Inclusion-filter (regex)
- * * Exclusion-filter (regex)
- *
- * * When a destination is specified, then every file and directory acquired from the source will be copied to the
- * specified destination in the server pack, whereas otherwise the source would be copied to a destination in the server
- * pack matching the name of the source.
- * * Inclusion filters help to further limit the files and directories to be included from the specified source. Any file
- * and directory matching this filter will be included.
- * * Exclusion filters help to further limit the files and directories to be included from the specified source. Any file
- * and directory matching this filter will NOT be included.
- *
- * @author Griefed
- */
-expect class InclusionSpecification(
-    source: String,
-    destination: String? = null,
-    inclusionFilter: String? = null,
-    exclusionFilter: String? = null
-) {
-    fun hasInclusionFilter(): Boolean
-    fun hasExclusionFilter(): Boolean
-    fun hasDestination(): Boolean
-    fun isGlobalFilter(): Boolean
-    fun asHashMap(): HashMap<String,String>
-    var source: String
-    var destination: String?
-    var inclusionFilter: String?
-    var exclusionFilter: String?
-}
\ No newline at end of file
diff --git a/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/Pack.kt b/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/Pack.kt
deleted file mode 100644
index 2824b5716..000000000
--- a/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/Pack.kt
+++ /dev/null
@@ -1,136 +0,0 @@
-/* Copyright (C) 2024  Griefed
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301
- * USA
- *
- * The full license can be found at https:github.com/Griefed/ServerPackCreator/blob/main/LICENSE
- */
-package de.griefed.serverpackcreator.api
-
-import de.griefed.serverpackcreator.api.utilities.CommentedConfig
-
-/**
- * A server pack configuration from which to generate a server pack.
- *
- * @author Griefed
- */
-@Suppress("MemberVisibilityCanBePrivate")
-abstract class Pack<F, J, out P> {
-    protected val forge = "^forge$".toRegex()
-    protected val neoForge = "^neoforge$".toRegex()
-    protected val fabric = "^fabric$".toRegex()
-    protected val quilt = "^quilt$".toRegex()
-    protected val legacyFabric = "^legacyfabric$".toRegex()
-    protected val whitespace = "^\\s+$".toRegex()
-
-    val clientMods: ArrayList<String> = ArrayList(1000)
-    val modsWhitelist: ArrayList<String> = ArrayList(1000)
-    val inclusions: ArrayList<InclusionSpecification> = ArrayList(100)
-    val scriptSettings = HashMap<String, String>(100)
-    val pluginsConfigs = HashMap<String, ArrayList<CommentedConfig>>(20)
-    var modpackDir = ""
-    var minecraftVersion = ""
-    var modloaderVersion = ""
-    var javaArgs = ""
-    var serverPackSuffix = ""
-    var serverIconPath = ""
-    var serverPropertiesPath = ""
-    var modloader = ""
-        set(newModLoader) {
-            if (newModLoader.lowercase().matches(forge)) {
-                field = "Forge"
-            } else if (newModLoader.lowercase().matches(neoForge)) {
-                field = "NeoForge"
-            } else if (newModLoader.lowercase().matches(fabric)) {
-                field = "Fabric"
-            } else if (newModLoader.lowercase().matches(quilt)) {
-                field = "Quilt"
-            } else if (newModLoader.lowercase().matches(legacyFabric)) {
-                field = "LegacyFabric"
-            }
-        }
-    var isServerIconInclusionDesired = true
-    var isServerPropertiesInclusionDesired = true
-    var isZipCreationDesired = true
-    var modpackJson: J? = null
-    var configVersion: String? = null
-
-    open var projectName: String? = null
-    open var fileName: String? = null
-    open var fileDiskName: String? = null
-
-    /**
-     * Save this configuration.
-     *
-     * @param destination The file to store the configuration in.
-     * @return The configuration for further operations.
-     * @author Griefed
-     */
-    abstract fun save(destination: F, apiProperties: ApiProperties): P
-
-    fun setPluginsConfigs(pluginConfigs: HashMap<String, ArrayList<CommentedConfig>>) {
-        this.pluginsConfigs.clear()
-        this.pluginsConfigs.putAll(pluginConfigs)
-    }
-
-    fun getPluginConfigs(pluginId: String): ArrayList<CommentedConfig> {
-        if (!pluginsConfigs.containsKey(pluginId)) {
-            pluginsConfigs[pluginId] = java.util.ArrayList(100)
-        }
-        return pluginsConfigs[pluginId]!!
-    }
-
-    fun setClientMods(newClientMods: MutableList<String>) {
-        clientMods.clear()
-        newClientMods.removeIf { entry: String -> entry.isBlank() || entry.matches(whitespace) }
-        clientMods.addAll(newClientMods)
-    }
-
-    fun setModsWhitelist(newModsWhitelist: MutableList<String>) {
-        modsWhitelist.clear()
-        newModsWhitelist.removeIf { entry: String -> entry.isBlank() || entry.matches(whitespace) }
-        modsWhitelist.addAll(newModsWhitelist)
-    }
-
-    fun setInclusions(newCopyDirs: ArrayList<InclusionSpecification>) {
-        inclusions.clear()
-        inclusions.addAll(newCopyDirs)
-    }
-
-    fun setScriptSettings(settings: HashMap<String, String>) {
-        scriptSettings.clear()
-        scriptSettings.putAll(settings)
-    }
-
-    override fun toString(): String {
-        return "Pack(" +
-                " clientMods=$clientMods," +
-                " whiteList=$modsWhitelist," +
-                " copyDirs=$inclusions," +
-                " scriptSettings=$scriptSettings," +
-                " pluginsConfigs=$pluginsConfigs," +
-                " modpackDir='$modpackDir'," +
-                " minecraftVersion='$minecraftVersion'," +
-                " modloaderVersion='$modloaderVersion'," +
-                " javaArgs='$javaArgs'," +
-                " serverPackSuffix='$serverPackSuffix'," +
-                " serverIconPath='$serverIconPath'," +
-                " serverPropertiesPath='$serverPropertiesPath'," +
-                " modloader='$modloader'," +
-                " isServerIconInclusionDesired=$isServerIconInclusionDesired," +
-                " isServerPropertiesInclusionDesired=$isServerPropertiesInclusionDesired," +
-                " isZipCreationDesired=$isZipCreationDesired)"
-    }
-}
\ No newline at end of file
diff --git a/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/PackConfig.kt b/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/PackConfig.kt
deleted file mode 100644
index 358c6a781..000000000
--- a/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/PackConfig.kt
+++ /dev/null
@@ -1,105 +0,0 @@
-/*
- * Copyright (C) 2024 Griefed.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301
- * USA
- *
- * The full license can be found at https:github.com/Griefed/ServerPackCreator/blob/main/LICENSE
- */
-package de.griefed.serverpackcreator.api
-
-import de.griefed.serverpackcreator.api.utilities.CommentedConfig
-import de.griefed.serverpackcreator.api.utilities.File
-
-/**
- * A PackConfig contains the settings required to create a server pack.
- * A configuration model usually consists of:
- *
- *  * Modpack directory
- *  * Minecraft version
- *  * Modloader
- *  * Modloader version
- *  * Java args for the start scripts
- *  * Files and directories to copy to the server pack
- *  * Whether to pre-install the modloader server
- *  * Whether to include a server-icon
- *  * Whether to include a server.properties
- *  * Whether to create a ZIP-archive
- *
- * @author Griefed
- */
-expect open class PackConfig {
-
-    val clientMods: ArrayList<String>
-    val modsWhitelist: ArrayList<String>
-    val inclusions: ArrayList<InclusionSpecification>
-    val scriptSettings: HashMap<String, String>
-    val pluginsConfigs: HashMap<String, ArrayList<CommentedConfig>>
-    var modpackDir: String
-    var minecraftVersion: String
-    var modloaderVersion: String
-    var javaArgs: String
-    var serverPackSuffix: String
-    var serverIconPath: String
-    var serverPropertiesPath: String
-    var modloader: String
-    var isServerIconInclusionDesired: Boolean
-    var isServerPropertiesInclusionDesired: Boolean
-
-    fun getPluginConfigs(pluginId: String): ArrayList<CommentedConfig>
-    fun save(destination: File, apiProperties: ApiProperties): PackConfig
-
-    /**
-     * Construct a new configuration model with custom values.
-     *
-     * @param clientMods                List of clientside mods to exclude from the server pack.
-     * @param whitelist                 List of mods to include if present, regardless whether a match was found through [clientMods]
-     * @param copyDirs                  List of directories and/or files to include in the server pack.
-     * @param modpackDir                The path to the modpack.
-     * @param minecraftVersion          The Minecraft version the modpack uses.
-     * @param modLoader                 The modloader the modpack uses. Either `Forge`, `Fabric` or `Quilt`.
-     * @param modLoaderVersion          The modloader version the modpack uses.
-     * @param javaArgs                  JVM flags to create the start scripts with.
-     * @param serverPackSuffix          Suffix to create the server pack with.
-     * @param serverIconPath            Path to the icon to use in the server pack.
-     * @param serverPropertiesPath      Path to the server.properties to create the server pack with.
-     * @param includeServerIcon         Whether to include the server-icon.png in the server pack.
-     * @param includeServerProperties   Whether to include the server.properties in the server pack.
-     * @param includeZipCreation        Whether to create a ZIP-archive of the server pack.
-     * @param scriptSettings            Map containing key-value pairs to be used in start script creation.
-     * @param pluginsConfigs             Configuration for any and all plugins used by this configuration.
-     * @author Griefed
-     */
-    constructor(
-        clientMods: List<String>,
-        whitelist: List<String>,
-        copyDirs: List<InclusionSpecification>,
-        modpackDir: String,
-        minecraftVersion: String,
-        modLoader: String,
-        modLoaderVersion: String,
-        javaArgs: String,
-        serverPackSuffix: String,
-        serverIconPath: String,
-        serverPropertiesPath: String,
-        includeServerIcon: Boolean,
-        includeServerProperties: Boolean,
-        includeZipCreation: Boolean,
-        scriptSettings: HashMap<String, String>,
-        pluginsConfigs: HashMap<String, ArrayList<CommentedConfig>>
-    )
-
-    constructor()
-}
\ No newline at end of file
diff --git a/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/ServerPack.kt b/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/ServerPack.kt
deleted file mode 100644
index 9b54a57a7..000000000
--- a/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/ServerPack.kt
+++ /dev/null
@@ -1,514 +0,0 @@
-/* Copyright (C) 2024  Griefed
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301
- * USA
- *
- * The full license can be found at https:github.com/Griefed/ServerPackCreator/blob/main/LICENSE
- */
-package de.griefed.serverpackcreator.api
-
-import de.griefed.serverpackcreator.api.utilities.common.escapePath
-import mu.KotlinLogging
-import java.io.File
-
-/**
- * Base-class for the [de.griefed.serverpackcreator.api.ServerPackHandler] to ensure we have the most important methods
- * for generating a server pack from a given configuration.
- *
- * @author Griefed
- */
-abstract class ServerPack<F, TS, TF> {
-    protected val log = KotlinLogging.logger {}
-    protected val modFileEndings = listOf("jar", "disabled")
-    protected val ending = "^\\.[0-9a-zA-Z]+$".toRegex()
-    protected val variables = """
-        ###
-        # Remember:
-        #   Escape \ and : in your Java path on Windows with another \
-        #   Example:
-        #     From: C:\Program Files\Eclipse Adoptium\jdk-17.0.9.9-hotspot\bin\java.exe
-        #     To:   C\:\\Program Files\\Eclipse Adoptium\\jdk-17.0.9.9-hotspot\\bin\\java.exe
-        # More on escape characters at https://en.wikipedia.org/wiki/Escape_character
-        ###
-        MINECRAFT_VERSION=SPC_MINECRAFT_VERSION_SPC
-        MODLOADER=SPC_MODLOADER_SPC
-        MODLOADER_VERSION=SPC_MODLOADER_VERSION_SPC
-        LEGACYFABRIC_INSTALLER_VERSION=SPC_LEGACYFABRIC_INSTALLER_VERSION_SPC
-        FABRIC_INSTALLER_VERSION=SPC_FABRIC_INSTALLER_VERSION_SPC
-        QUILT_INSTALLER_VERSION=SPC_QUILT_INSTALLER_VERSION_SPC
-        MINECRAFT_SERVER_URL=SPC_MINECRAFT_SERVER_URL_SPC
-        NEOFORGE_INSTALLER_URL=SPC_NEOFORGE_INSTALLER_URL_SPC
-        JAVA_ARGS="SPC_JAVA_ARGS_SPC"
-        JAVA="SPC_JAVA_SPC"
-        WAIT_FOR_USER_INPUT=SPC_WAIT_FOR_USER_INPUT_SPC
-    """.trimIndent()
-
-    /**
-     * Acquire the destination directory in which the server pack will be generated. The directory in
-     * which the server pack will be created has all its spaces replaces with underscores, so
-     * `Survive Create Prosper 4 - 5.0.1` would become `Survive_Create_Prosper_4_-_5.0.1 `
-     * Even though it is the year 2022, spaces in paths can and do still cause trouble. Such as for
-     * Powershell scripts. Powershell throws a complete fit if the path contains spaces....so, we
-     * remove them. Better safe than sorry.
-     *
-     * @param packConfig Model containing the modpack directory of the modpack from which the
-     * server pack will be generated.
-     * @return The complete path to the directory in which the server pack will be generated.
-     * @author Griefed
-     */
-    abstract fun getServerPackDestination(packConfig: Pack<*, *, *>): String
-
-    /**
-     * Create a server pack from a given instance of [PackConfig].
-     *
-     * @param packConfig An instance of [PackConfig] which contains the
-     * configuration of the modpack from which the server pack is to be
-     * created.
-     * @return `true` if the server pack was successfully generated.
-     * @author Griefed
-     */
-    abstract fun run(packConfig: PackConfig): Boolean
-
-    /**
-     * Deletes all files, directories and ZIP-archives of previously generated server packs to ensure
-     * newly generated server pack is as clean as possible. This will completely empty the server pack
-     * directory, so use with caution!
-     *
-     * @param deleteZip   Whether to delete the server pack ZIP-archive.
-     * @param destination The destination at which to clean up in.
-     * @author Griefed
-     */
-    abstract fun cleanupEnvironment(deleteZip: Boolean, destination: String)
-
-    /**
-     * Copies all specified directories and mods, excluding clientside-only mods, from the modpack
-     * directory into the server pack directory. If a `source/file;destination/file`
-     * -combination is provided, the specified source-file is copied to the specified
-     * destination-file. One of the reasons as to why it is recommended to run a given
-     * ConfigurationModel through the ConfigurationHandler first, is because the ConfigurationHandler
-     * will resolve links to their actual files first before then correcting the given
-     * ConfigurationModel.
-     *
-     * @param packConfig ConfigurationModel containing the modpack directory, list of
-     * directories and files to copy, list of clientside-only mods to
-     * exclude, the Minecraft version used by the modpack and server pack,
-     * and the modloader used by the modpack and server pack.
-     * @author Griefed
-     */
-    fun copyFiles(packConfig: Pack<*, *, *>, overwrite: Boolean = true) = copyFiles(
-        packConfig.modpackDir,
-        packConfig.inclusions,
-        packConfig.clientMods,
-        packConfig.modsWhitelist,
-        packConfig.minecraftVersion,
-        getServerPackDestination(packConfig),
-        packConfig.modloader,
-        overwrite
-    )
-
-    /**
-     * Download and provide the improved Fabric Server Launcher, if it is available for the given
-     * Minecraft and Fabric version.
-     *
-     * @param packConfig ConfigurationModel containing the Minecraft and Fabric version for
-     * which to acquire the improved Fabric Server Launcher.
-     * @author Griefed
-     */
-    fun provideImprovedFabricServerLauncher(packConfig: Pack<*, *, *>) = getImprovedFabricLauncher(
-        packConfig.minecraftVersion, packConfig.modloaderVersion, getServerPackDestination(packConfig)
-    )
-
-    /**
-     * Copies the server-icon.png into server pack. The sever-icon is automatically scaled to a
-     * resolution of 64x64 pixels.
-     *
-     * @param packConfig Containing the modpack directory to acquire the destination of the
-     * server pack and the path to the server icon to copy.
-     * @author Griefed
-     */
-    fun copyIcon(packConfig: Pack<*, *, *>) = copyIcon(getServerPackDestination(packConfig), packConfig.serverIconPath)
-
-    /**
-     * Copies the server.properties into server pack.
-     *
-     * @param packConfig Containing the modpack directory to acquire the destination of the
-     * server pack and the path to the server properties to copy.
-     * @author Griefed
-     */
-    fun copyProperties(packConfig: Pack<*, *, *>) =
-        copyProperties(getServerPackDestination(packConfig), packConfig.serverPropertiesPath)
-
-    /**
-     * Create start-scripts for the generated server pack using the templates the user has defined for
-     * their instance of ServerPackCreator in the property `de.griefed.serverpackcreator.serverpack.script.template`.
-     *
-     * @param packConfig Configuration model containing modpack specific values. keys to be
-     * replaced with their respective values in the start scripts, as well
-     * as the modpack directory from which the destination of the server
-     * pack is acquired.
-     * @param isLocal            Whether the start scripts should be created for a locally usable
-     * server pack. Use `false` if the start scripts should be created
-     * for a server pack about to be zipped.
-     * @author Griefed
-     */
-    fun createStartScripts(packConfig: Pack<*, *, *>, isLocal: Boolean) =
-        createStartScripts(packConfig.scriptSettings, getServerPackDestination(packConfig), isLocal)
-
-    /**
-     * Creates a ZIP-archive of the server pack previously generated. Depending on the property
-     * `de.griefed.serverpackcreator.serverpack.zip.exclude.enabled`, files will be excluded. To customize
-     * the files which will be excluded, see the property `de.griefed.serverpackcreator.serverpack.zip.exclude`
-     *
-     * @param packConfig Contains the Minecraft version used by the modpack and server pack,
-     * whether the modloader server was installed, the modpack directory to
-     * acquire the destination of the server pack, the modloader used by the
-     * modpack and server pack and the modloader version.
-     * @author Griefed
-     */
-    fun zipBuilder(packConfig: Pack<*, *, *>) = zipBuilder(
-        packConfig.minecraftVersion,
-        getServerPackDestination(packConfig),
-        packConfig.modloader,
-        packConfig.modloaderVersion
-    )
-
-    /**
-     * Copies all specified directories and mods, excluding clientside-only mods, from the modpack
-     * directory into the server pack directory. If a `source/file;destination/file`
-     * -combination is provided, the specified source-file is copied to the specified
-     * destination-file. One of the reasons as to why it is recommended to run a given
-     * ConfigurationModel through the ConfigurationHandler first, is because the ConfigurationHandler
-     * will resolve links to their actual files first before then correcting the given
-     * ConfigurationModel.
-     *
-     * @param modpackDir        Files and directories are copied into the server_pack directory inside
-     * the modpack directory.
-     * @param inclusions All directories and files therein to copy to the server pack.
-     * @param clientMods        List of clientside-only mods to exclude from the server pack.
-     * @param minecraftVersion  The Minecraft version the modpack uses.
-     * @param destination       The destination where the files should be copied to.
-     * @param modloader         The modloader used for mod sideness detection.
-     * @author Griefed
-     */
-    abstract fun copyFiles(
-        modpackDir: String,
-        inclusions: ArrayList<InclusionSpecification>,
-        clientMods: List<String>,
-        whitelist: List<String>,
-        minecraftVersion: String,
-        destination: String,
-        modloader: String,
-        overwrite: Boolean
-    )
-
-    /**
-     * Download and provide the improved Fabric Server Launcher, if it is available for the given
-     * Minecraft and Fabric version.
-     *
-     * @param minecraftVersion The Minecraft version the modpack uses and the Fabric Server Launcher
-     * should be downloaded for.
-     * @param fabricVersion    The modloader version the modpack uses and the Fabric Server Launcher
-     * should be downloaded for.
-     * @param destination      The destination of the server pack.
-     * @author Griefed
-     */
-    abstract fun getImprovedFabricLauncher(
-        minecraftVersion: String, fabricVersion: String, destination: String
-    )
-
-    /**
-     * Copies the server-icon.png into server pack. The sever-icon is automatically scaled to a
-     * resolution of 64x64 pixels.
-     *
-     * @param destination      The destination where the icon should be copied to.
-     * @param pathToServerIcon The path to the custom server-icon.
-     * @author Griefed
-     */
-    abstract fun copyIcon(destination: String, pathToServerIcon: String)
-
-    /**
-     * Copies the server.properties into server pack.
-     *
-     * @param destination            The destination where the properties should be copied to.
-     * @param pathToServerProperties The path to the custom server.properties.
-     * @author Griefed
-     */
-    abstract fun copyProperties(destination: String, pathToServerProperties: String)
-
-    /**
-     * Create start-scripts for the generated server pack using the templates the user has defined for
-     * their instance of ServerPackCreator in the property `de.griefed.serverpackcreator.serverpack.script.template`.
-     *
-     * @param scriptSettings Key-value pairs to replace in the script. A given key in the script is
-     * replaced with its value.
-     * @param destination    The destination where the scripts should be created in.
-     * @param isLocal        Whether the start scripts should be created for a locally usable server
-     * pack. Use `false` if the start scripts should be created for a
-     * server pack about to be zipped.
-     * @author Griefed
-     */
-    abstract fun createStartScripts(
-        scriptSettings: HashMap<String, String>, destination: String, isLocal: Boolean
-    )
-
-    /**
-     * Creates a ZIP-archive of specified directory. Depending on the property `de.griefed.serverpackcreator.serverpack.zip.exclude.enabled`,
-     * files will be excluded. To customize the files which will be excluded, the property `de.griefed.serverpackcreator.serverpack.zip.exclude`
-     * must be configured accordingly. The created ZIP-archive will be stored alongside the specified
-     * destination, with `_server_pack.zip` appended to its name.
-     *
-     * @param minecraftVersion          Determines the name of the Minecraft server JAR to exclude
-     * from the ZIP-archive if the modloader is Forge.
-     * @param destination               The destination where the ZIP-archive should be created in.
-     * @param modloader                 The modloader the modpack and server pack use.
-     * @param modloaderVersion          The modloader version the modpack and server pack use.
-     * @author Griefed
-     */
-    abstract fun zipBuilder(
-        minecraftVersion: String,
-        destination: String,
-        modloader: String,
-        modloaderVersion: String
-    )
-
-    /**
-     * Generates a list of all mods to include in the server pack. If the user specified
-     * clientside-mods to exclude, and/or if the automatic exclusion of clientside-only mods is
-     * active, they will be excluded, too.
-     *
-     * @param modsDir                 The mods-directory of the modpack of which to generate a list of
-     * all its contents.
-     * @param userSpecifiedClientMods A list of all clientside-only mods.
-     * @param userSpecifiedWhitelist  A list of mods to include regardless if a match was found in [userSpecifiedClientMods].
-     * @param minecraftVersion        The Minecraft version the modpack uses. When the modloader is
-     * Forge, this determines whether Annotations or Tomls are
-     * scanned.
-     * @param modloader               The modloader the modpack uses.
-     * @return A list of all mods to include in the server pack.
-     * @author Griefed
-     */
-    abstract fun getModsToInclude(
-        modsDir: String,
-        userSpecifiedClientMods: List<String>,
-        userSpecifiedModsWhitelist: List<String>,
-        minecraftVersion: String,
-        modloader: String
-    ): List<F>
-
-    /**
-     * Check whether the installer for the given combination of Minecraft version, modloader and
-     * modloader version is available/reachable.
-     *
-     * @param mcVersion        The Minecraft version.
-     * @param modloader        The modloader.
-     * @param modloaderVersion The modloader version.
-     * @return `true` if the installer can be downloaded.
-     * @author Griefed
-     */
-    abstract fun serverDownloadable(
-        mcVersion: String, modloader: String, modloaderVersion: String
-    ): Boolean
-
-    /**
-     * Deletes all files, directories and ZIP-archives of previously generated server packs to ensure
-     * newly generated server pack is as clean as possible. This will completely empty the server pack
-     * directory, so use with caution!
-     *
-     * @param deleteZip          Whether to delete the server pack ZIP-archive.
-     * @param packConfig ConfigurationModel containing the modpack directory from which the
-     * destination of the server pack is acquired.
-     * @author Griefed
-     */
-    fun cleanupEnvironment(deleteZip: Boolean, packConfig: Pack<*, *, *>) =
-        cleanupEnvironment(deleteZip, getServerPackDestination(packConfig))
-
-    /**
-     * Generates a list of all mods to include in the server pack. If the user specified
-     * clientside-mods to exclude, and/or if the automatic exclusion of clientside-only mods is
-     * active, they will be excluded, too.
-     *
-     * @param packConfig The configurationModel containing the modpack directory, list of
-     * clientside-only mods to exclude, Minecraft version used by the
-     * modpack and server pack and the modloader used by the modpack and
-     * server pack.
-     * @return A list of all mods to include in the server pack.
-     * @author Griefed
-     */
-    fun getModsToInclude(packConfig: Pack<*, *, *>) = getModsToInclude(
-        "${packConfig.modpackDir}${File.separator}mods",
-        packConfig.clientMods,
-        packConfig.modsWhitelist,
-        packConfig.minecraftVersion,
-        packConfig.modloader
-    )
-
-    /**
-     * Gather a list of all files from an explicit source;destination-combination. If the source is a
-     * file, a singular [ServerPackFile] is returned. If the source is a directory, then all
-     * files in said directory are returned.
-     *
-     * @param source source-file/directory
-     * @param destination destination-file/directory
-     * @param modpackDir  The modpack-directory.
-     * @param serverPackDestination The destination, normally the server pack-directory.
-     * @return List of [ServerPackFile].
-     * @author Griefed
-     */
-    abstract fun getExplicitFiles(
-        source: String, destination: String, modpackDir: String, serverPackDestination: String
-    ): MutableList<ServerPackFile>
-
-    /**
-     * Recursively acquire all files and directories inside the given save-directory as a list of
-     * [ServerPackFile].
-     *
-     * @param clientDir   Target directory in the server pack. Usually the name of the world.
-     * @param directory   The save-directory.
-     * @param destination The destination of the server pack.
-     * @return List of [ServerPackFile] which will be included in the server pack.
-     * @author Griefed
-     */
-    abstract fun getSaveFiles(
-        clientDir: String, directory: String, destination: String
-    ): List<ServerPackFile>
-
-    /**
-     * Recursively acquire all files and directories inside the given directory as a list of
-     * [ServerPackFile].
-     *
-     * @param source      The source-directory.
-     * @param destination The server pack-directory.
-     * @return List of files and folders of the server pack.
-     * @author Griefed
-     */
-    abstract fun getDirectoryFiles(
-        source: String, destination: String
-    ): List<ServerPackFile>
-
-    /**
-     * Check whether the given file or directory should be excluded from the server pack.
-     *
-     * @param modpackDir     The directory where the modpack resides in. Used to filter out any
-     * unwanted directories using the property `de.griefed.serverpackcreator.configuration.directories.shouldexclude`.
-     * @param fileToCheckFor The file or directory to check whether it should be excluded from the
-     * server pack.
-     * @param exclusions     Files or directories determined by ServerPackCreator to be excluded from
-     * the server pack
-     * @return `true` if the file or directory was determined to be excluded from the server
-     * pack.
-     * @author Griefed
-     */
-    abstract fun excludeFileOrDirectory(modpackDir: String, fileToCheckFor: F, exclusions: List<Regex>): Boolean
-
-    /**
-     * Cleans up the server_pack directory by deleting left-over files from modloader installations
-     * and version checking.
-     *
-     * @param destination      The destination where we should clean up in.
-     * @author Griefed
-     */
-    abstract fun postInstallCleanup(destination: String)
-
-    /**
-     * Exclude every automatically discovered clientside-only mod from the list of mods in the
-     * modpack.
-     *
-     * @param autodiscoveredClientMods Automatically discovered clientside-only mods in the modpack.
-     * @param modsInModpack            All mods in the modpack.
-     * @author Griefed
-     */
-    abstract fun excludeMods(autodiscoveredClientMods: List<F>, modsInModpack: TF)
-
-    /**
-     * Exclude user-specified mods from the server pack.
-     *
-     * @param userSpecifiedExclusions User-specified clientside-only mods to exclude from the server
-     * pack.
-     * @param modsInModpack           Every mod ending with `jar` or `disabled` in the
-     * modpack.
-     * @author Griefed
-     */
-    abstract fun excludeUserSpecifiedMod(userSpecifiedExclusions: List<String>, userSpecifiedModsWhitelist: List<String>, modsInModpack: TF)
-
-    /**
-     * Walk through the specified directory and add a [ServerPackFile] for every file/folder
-     * which matches the given regex.
-     *
-     * @param source          The source-directory to walk through and perform regex-matches in.
-     * @param destination     The destination-directory where a matched file should be copied to,
-     * usually the server pack directory.
-     * @param regex           Regex with which to perform matches against files in the
-     * source-directory.
-     * @param serverPackFiles List of files to copy to the server pack to which any matched file will
-     * be added to.
-     * @author Griefed
-     */
-    abstract fun regexWalk(source: F, destination: String, regex: Regex, serverPackFiles: MutableList<ServerPackFile>)
-
-    /**
-     * Go through the mods in the modpack and exclude any of the user-specified clientside-only mods
-     * according to the filter method set in the serverpackcreator.properties. For available filters,
-     * see [ExclusionFilter].
-     *
-     * @param userSpecifiedExclusion The client mod to check whether it needs to be excluded.
-     * @param modsInModpack          All mods in the modpack.
-     *
-     * @author Griefed
-     */
-    abstract fun exclude(userSpecifiedExclusion: String, userSpecifiedModsWhitelist: List<String>, modsInModpack: TF)
-
-    /**
-     * Cleans up the server_pack directory by deleting left-over files from modloader installations
-     * and version checking.
-     *
-     * @param packConfig Containing the Minecraft version used by the modpack and server pack,
-     * the modloader version used by the modpack and server pack and the
-     * modpack directory to acquire the destination of the server pack.
-     * @author Griefed
-     */
-    fun cleanUpServerPack(packConfig: Pack<*, *, *>) = postInstallCleanup(getServerPackDestination(packConfig))
-
-    /**
-     * Delete files and folders from previous installations to prevent errors during server installation due to already
-     * existing files.
-     * @param destination The folder in which to perform the cleanup operations.
-     *
-     * @author Griefed
-     */
-    abstract fun preInstallationCleanup(destination: String)
-
-    /**
-     * Replace placeholders for script settings in the given [content] with their respective values, both provided via the
-     * HashMap [scriptSettings].
-     *
-     * @param isLocal Whether the start scripts should be created for a locally usable server pack. Use false if the
-     * start scripts should be created for a server pack about to be zipped
-     *
-     * @author Griefed
-     */
-    fun replacePlaceholders(isLocal: Boolean, content: String, scriptSettings: HashMap<String, String>): String {
-        var result = content
-        for ((key, value) in scriptSettings) {
-            result = if (isLocal && key == "SPC_JAVA_SPC") {
-                result.replace(key, value.escapePath())
-            } else if (!isLocal && key == "SPC_JAVA_SPC") {
-                result.replace(key, "java")
-            } else {
-                result.replace(key, value)
-            }
-        }
-        return result
-    }
-}
\ No newline at end of file
diff --git a/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/ServerPackFile.kt b/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/ServerPackFile.kt
deleted file mode 100644
index ba1c894ba..000000000
--- a/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/ServerPackFile.kt
+++ /dev/null
@@ -1,37 +0,0 @@
-/* Copyright (C) 2024  Griefed
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301
- * USA
- *
- * The full license can be found at https:github.com/Griefed/ServerPackCreator/blob/main/LICENSE
- */
-package de.griefed.serverpackcreator.api
-
-/**
- * A ServerPackFile represents a source-destination-combination of two files/directories. The
- * source is the file/directory, usually in the modpack, whilst the destination is the file to
- * which the source is supposed to be copied to in the server pack.
- *
- * @author Griefed
- */
-expect class ServerPackFile {
-
-    /**
-     * Copy the file to the server pack.
-     *
-     * @author Griefed
-     */
-    fun copy(overwrite: Boolean = true)
-}
\ No newline at end of file
diff --git a/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/ServerPackHandler.kt b/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/ServerPackHandler.kt
deleted file mode 100644
index 4ca83b832..000000000
--- a/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/ServerPackHandler.kt
+++ /dev/null
@@ -1,57 +0,0 @@
-/* Copyright (C) 2024  Griefed
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301
- * USA
- *
- * The full license can be found at https:github.com/Griefed/ServerPackCreator/blob/main/LICENSE
- */
-package de.griefed.serverpackcreator.api
-
-import de.griefed.serverpackcreator.api.modscanning.ModScanner
-import de.griefed.serverpackcreator.api.utilities.common.Utilities
-import de.griefed.serverpackcreator.api.versionmeta.VersionMeta
-
-/**
- * Everything revolving around creating a server pack. The intended workflow is to create a [PackConfig] and run
- * it through any of the available [ConfigurationHandler.checkConfiguration]-variants, and then call [run] with the
- * previously checked configuration model. You may run with an unchecked configuration model, but no guarantees or
- * promises, yes not even support, is given for running a model without checking it first.
- *
- * This class also gives you access to the methods which are responsible for creating the server pack, in case you want
- * to do things manually.
- *
- * If you want to execute extensions, see
- * * [ApiPlugins.runPreGenExtensions]},
- * * [ApiPlugins.runPreZipExtensions]} and
- * * [ApiPlugins.runPostGenExtensions].
- *
- * @param apiProperties Base settings of ServerPackCreator needed for server pack generation, such as access to the
- * directories, script templates and so on.
- * @param versionMeta   Meta for modloader and version specific checks and information gathering, such as modloader
- * installer downloads.
- * @param utilities     Common utilities used across ServerPackCreator.
- * @param apiPlugins    Any addons which a user may want to execute during the generation of a server pack.
- * @param modScanner    In case a user enabled automatic sideness detection, this will exclude clientside-only mods
- * from a server pack.
- *
- * @author Griefed
- */
-expect class ServerPackHandler(
-    apiProperties: ApiProperties,
-    versionMeta: VersionMeta,
-    utilities: Utilities,
-    apiPlugins: ApiPlugins,
-    modScanner: ModScanner
-)
\ No newline at end of file
diff --git a/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/modscanning/FabricScanner.kt b/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/modscanning/FabricScanner.kt
deleted file mode 100644
index c9e8b263f..000000000
--- a/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/modscanning/FabricScanner.kt
+++ /dev/null
@@ -1,32 +0,0 @@
-/* Copyright (C) 2024  Griefed
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301
- * USA
- *
- * The full license can be found at https:github.com/Griefed/ServerPackCreator/blob/main/LICENSE
- */
-@file:Suppress("UnusedReceiverParameter")
-
-package de.griefed.serverpackcreator.api.modscanning
-
-/**
- * `fabric.mod.json`-based scanning of Fabric-Minecraft mods.
- *
- * @author Griefed
- */
-expect class FabricScanner
-
-val FabricScanner.dependencyExclusions: Regex
-    get() = "(fabric|fabricloader|java|minecraft)".toRegex()
\ No newline at end of file
diff --git a/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/modscanning/ForgeAnnotationScanner.kt b/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/modscanning/ForgeAnnotationScanner.kt
deleted file mode 100644
index 316a08447..000000000
--- a/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/modscanning/ForgeAnnotationScanner.kt
+++ /dev/null
@@ -1,34 +0,0 @@
-/* Copyright (C) 2024  Griefed
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301
- * USA
- *
- * The full license can be found at https:github.com/Griefed/ServerPackCreator/blob/main/LICENSE
- */
-@file:Suppress("UnusedReceiverParameter")
-
-package de.griefed.serverpackcreator.api.modscanning
-
-/**
- * `fml-cache-annotation.json`-based scanning of Forge-Minecraft mods of older versions.
- *
- * @author Griefed
- */
-expect class ForgeAnnotationScanner
-
-val ForgeAnnotationScanner.dependencyCheck: Regex
-    get() = "(before:.*|after:.*|required-after:.*|)".toRegex()
-val ForgeAnnotationScanner.dependencyReplace: Regex
-    get() = "(@.*|\\[.*)".toRegex()
\ No newline at end of file
diff --git a/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/modscanning/ForgeTomlScanner.kt b/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/modscanning/ForgeTomlScanner.kt
deleted file mode 100644
index 7617602c7..000000000
--- a/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/modscanning/ForgeTomlScanner.kt
+++ /dev/null
@@ -1,36 +0,0 @@
-/* Copyright (C) 2024  Griefed
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301
- * USA
- *
- * The full license can be found at https:github.com/Griefed/ServerPackCreator/blob/main/LICENSE
- */
-@file:Suppress("UnusedReceiverParameter")
-
-package de.griefed.serverpackcreator.api.modscanning
-
-/**
- * `mods.toml`-based scanning of Fabric-Minecraft mods for Minecraft 1.16.5 and newer.
- *
- * @author Griefed
- */
-expect open class ForgeTomlScanner {
-    open val modsToml: String
-}
-
-val ForgeTomlScanner.forgeMinecraft: Regex
-    get() = "^(forge|minecraft)$".toRegex()
-val ForgeTomlScanner.bothServer: Regex
-    get() = "^(BOTH|SERVER)$".toRegex()
\ No newline at end of file
diff --git a/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/modscanning/ModScanner.kt b/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/modscanning/ModScanner.kt
deleted file mode 100644
index 900ccf418..000000000
--- a/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/modscanning/ModScanner.kt
+++ /dev/null
@@ -1,45 +0,0 @@
-/* Copyright (C) 2024  Griefed
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301
- * USA
- *
- * The full license can be found at https:github.com/Griefed/ServerPackCreator/blob/main/LICENSE
- */
-package de.griefed.serverpackcreator.api.modscanning
-
-/**
- * Easy-access class for scanning of mods inside a modpack. This class itself does not do much,
- * other than bringing the different mod-scanners to one place for ease-of-use.
- *
- * @param forgeAnnotationScanner For scanning `fml-cache-annotation.json`
- * @param fabricScanner     For scanning `fabric.mod.json`
- * @param quiltScanner      For scanning `quilt.mod.json`
- * @param forgeTomlScanner       For scanning `mods.toml`
- *
- * @author Griefed
- */
-expect class ModScanner(
-    forgeAnnotationScanner: ForgeAnnotationScanner,
-    fabricScanner: FabricScanner,
-    quiltScanner: QuiltScanner,
-    forgeTomlScanner: ForgeTomlScanner,
-    neoForgeTomlScanner: NeoForgeTomlScanner
-) {
-    val forgeAnnotationScanner: ForgeAnnotationScanner
-    val fabricScanner: FabricScanner
-    val quiltScanner: QuiltScanner
-    val forgeTomlScanner: ForgeTomlScanner
-    val neoForgeTomlScanner: NeoForgeTomlScanner
-}
diff --git a/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/modscanning/NeoForgeTomlScanner.kt b/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/modscanning/NeoForgeTomlScanner.kt
deleted file mode 100644
index e22d9f9a9..000000000
--- a/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/modscanning/NeoForgeTomlScanner.kt
+++ /dev/null
@@ -1,7 +0,0 @@
-package de.griefed.serverpackcreator.api.modscanning
-
-import de.griefed.serverpackcreator.api.utilities.TomlParser
-
-expect class NeoForgeTomlScanner(tomlParser: TomlParser) : ForgeTomlScanner {
-    override val modsToml: String
-}
\ No newline at end of file
diff --git a/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/modscanning/QuiltScanner.kt b/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/modscanning/QuiltScanner.kt
deleted file mode 100644
index a49001b81..000000000
--- a/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/modscanning/QuiltScanner.kt
+++ /dev/null
@@ -1,32 +0,0 @@
-/* Copyright (C) 2024  Griefed
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301
- * USA
- *
- * The full license can be found at https:github.com/Griefed/ServerPackCreator/blob/main/LICENSE
- */
-@file:Suppress("UnusedReceiverParameter")
-
-package de.griefed.serverpackcreator.api.modscanning
-
-/**
- * `quilt.mod.json`-based scanning of Fabric-Minecraft mods.
- *
- * @author Griefed
- */
-expect class QuiltScanner
-
-val QuiltScanner.dependencyExclusions: Regex
-    get() = "(quilt_loader|quilt_base|quilted_fabric_api|java|minecraft)".toRegex()
\ No newline at end of file
diff --git a/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/plugins/ExtensionPoint.kt b/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/plugins/ExtensionPoint.kt
deleted file mode 100644
index 6292ab444..000000000
--- a/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/plugins/ExtensionPoint.kt
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * Copyright (C) 2024 Griefed.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301
- * USA
- *
- * The full license can be found at https:github.com/Griefed/ServerPackCreator/blob/main/LICENSE
- */
-package de.griefed.serverpackcreator.api.plugins
-
-/**
- * The extension point interface should provide an entry point from which to expand plugins from. See the implementation
- * in the JVM backend for an example with the pf4j-library.
- *
- * @author Griefed
- */
-expect interface ExtensionPoint
\ No newline at end of file
diff --git a/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/plugins/swinggui/ExtensionConfigPanel.kt b/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/plugins/swinggui/ExtensionConfigPanel.kt
deleted file mode 100644
index 163e92252..000000000
--- a/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/plugins/swinggui/ExtensionConfigPanel.kt
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- * Copyright (C) 2024 Griefed.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301
- * USA
- *
- * The full license can be found at https:github.com/Griefed/ServerPackCreator/blob/main/LICENSE
- */
-package de.griefed.serverpackcreator.api.plugins.swinggui
-
-import de.griefed.serverpackcreator.api.ApiProperties
-import de.griefed.serverpackcreator.api.utilities.CommentedConfig
-import de.griefed.serverpackcreator.api.utilities.Optional
-import de.griefed.serverpackcreator.api.utilities.common.Utilities
-import de.griefed.serverpackcreator.api.versionmeta.VersionMeta
-
-/**
- * Configuration panel for a given plugins configuration in the context of a server pack configuration. An
- * extension config panel should provide configuration options relevant to one server pack and one server pack only.
- * Every server pack configuration will receive/store/load one config for your plugin's panel.
- *
- * @author Griefed
- */
-expect abstract class ExtensionConfigPanel protected constructor(
-    versionMeta: VersionMeta,
-    apiProperties: ApiProperties,
-    utilities: Utilities,
-    serverPackConfigTab: ServerPackConfigTab,
-    pluginConfig: Optional<CommentedConfig>,
-    extensionName: String,
-    pluginID: String
-) {
-
-    val serverPackExtensionConfig: ArrayList<CommentedConfig>
-
-    /**
-     * Retrieve this extensions server pack specific configuration. When no configuration with configs
-     * for this extension has been loaded yet, the returned list is empty. Fill it with life!
-     *
-     * @return Config list to be used in subsequent server pack generation runs, by various other
-     * extensions.
-     * @author Griefed
-     */
-    abstract fun serverPackExtensionConfig(): ArrayList<CommentedConfig>
-
-    /**
-     * Pass the extension configuration to the configuration panel, so it can then, in turn, load the
-     * available configurations and make them editable, if so desired.
-     *
-     * @param serverPackExtensionConfig The list of extension configurations to pass to the
-     * configuration panel.
-     * @author Griefed
-     */
-    abstract fun setServerPackExtensionConfig(
-        serverPackExtensionConfig: ArrayList<CommentedConfig>
-    )
-
-    /**
-     * Clear the interface, or in other words, reset this extensions config panel UI. If your Config
-     * Panel Extensions has no elements you wish to reset, then simply overwrite this method with an
-     * empty method body.
-     *
-     * The `clear()`-method is called when the owning `TabCreateServerPack.clearInterface()`-method is called.
-     */
-    abstract fun clear()
-}
\ No newline at end of file
diff --git a/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/plugins/swinggui/ExtensionTab.kt b/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/plugins/swinggui/ExtensionTab.kt
deleted file mode 100644
index 4a26f5a7c..000000000
--- a/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/plugins/swinggui/ExtensionTab.kt
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Copyright (C) 2024 Griefed.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301
- * USA
- *
- * The full license can be found at https:github.com/Griefed/ServerPackCreator/blob/main/LICENSE
- */
-package de.griefed.serverpackcreator.api.plugins.swinggui
-
-/**
- * An extension tab is a Java Swing component which adds another, plugin specific, tab to ServerPackCreators GUI. Said tab
- * should provide the user with the ability to configure plugin-global settings, to be applied to every server pack
- * generation run.
- *
- * @author Griefed
- */
-expect abstract class ExtensionTab
\ No newline at end of file
diff --git a/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/plugins/swinggui/TabExtension.kt b/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/plugins/swinggui/TabExtension.kt
deleted file mode 100644
index e76cfd894..000000000
--- a/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/plugins/swinggui/TabExtension.kt
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * Copyright (C) 2024 Griefed.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301
- * USA
- *
- * The full license can be found at https:github.com/Griefed/ServerPackCreator/blob/main/LICENSE
- */
-package de.griefed.serverpackcreator.api.plugins.swinggui
-
-import de.griefed.serverpackcreator.api.ApiProperties
-import de.griefed.serverpackcreator.api.plugins.ExtensionInformation
-import de.griefed.serverpackcreator.api.utilities.CommentedConfig
-import de.griefed.serverpackcreator.api.utilities.File
-import de.griefed.serverpackcreator.api.utilities.Icon
-import de.griefed.serverpackcreator.api.utilities.Optional
-import de.griefed.serverpackcreator.api.utilities.common.Utilities
-import de.griefed.serverpackcreator.api.versionmeta.VersionMeta
-
-/**
- * Extension point for plugins which add additional tabs to the ServerPackCreator GUI.
- *
- * @author Griefed
- */
-@Suppress("unused")
-expect interface TabExtension : ExtensionInformation {
-    /**
-     * @param versionMeta           Instance of [VersionMeta] so you can work with available Minecraft, Forge, Fabric,
-     * LegacyFabric and Quilt versions.
-     * @param apiProperties Instance of [ApiProperties] The current configuration of ServerPackCreator,
-     * like the default list of clientside-only mods, the server pack directory etc.
-     * @param utilities             Instance of [Utilities] commonly used across ServerPackCreator.
-     * @param pluginConfig          Plugin specific configuration conveniently provided by ServerPackCreator. This is
-     * the global configuration of the plugin which provides the ConfigPanelExtension to ServerPackCreator.
-     * @param configFile            The config-file corresponding to the ID of the plugin, wrapped in an Optional.
-     * @return Component to add to the ServerPackCreator GUI as a tab.
-     * @author Griefed
-     */
-    fun getTab(
-        versionMeta: VersionMeta,
-        apiProperties: ApiProperties,
-        utilities: Utilities,
-        pluginConfig: Optional<CommentedConfig>,
-        configFile: Optional<File>
-    ): ExtensionTab
-
-    /**
-     * Get the [Icon] for this tab to display to the ServerPackCreator GUI.
-     *
-     * @return Icon to be used by the added tab.
-     * @author Griefed
-     */
-    val icon: Icon?
-
-    /**
-     * Get the title of this tab to display in the ServerPackCreator GUI.
-     *
-     * @return The title of this plugin's tabbed pane.
-     * @author Griefed
-     */
-    val title: String
-
-    /**
-     * Get the tooltip for this tab to display in the ServerPackCreator GUI.
-     *
-     * @return The tooltip of this plugin's tabbed pane.
-     * @author Griefed
-     */
-    val tooltip: String
-
-}
\ No newline at end of file
diff --git a/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/utilities/CommentedConfig.kt b/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/utilities/CommentedConfig.kt
deleted file mode 100644
index eab68ae25..000000000
--- a/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/utilities/CommentedConfig.kt
+++ /dev/null
@@ -1,26 +0,0 @@
-/* Copyright (C) 2024  Griefed
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301
- * USA
- *
- * The full license can be found at https:github.com/Griefed/ServerPackCreator/blob/main/LICENSE
- */
-package de.griefed.serverpackcreator.api.utilities
-
-/**
- * A modifiable config that supports comments.
- * @author Griefed
- */
-expect interface CommentedConfig
\ No newline at end of file
diff --git a/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/utilities/File.kt b/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/utilities/File.kt
deleted file mode 100644
index ae8ed9e44..000000000
--- a/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/utilities/File.kt
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Copyright (C) 2024 Griefed.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301
- * USA
- *
- * The full license can be found at https:github.com/Griefed/ServerPackCreator/blob/main/LICENSE
- */
-@file:Suppress("unused")
-
-package de.griefed.serverpackcreator.api.utilities
-
-/**
- * Class giving access to several things like:
- * - path
- * - absolute path
- * - parent-directory
- * - whether an instance is a file or directory
- * - separator / path separator depending on the filesystem
- * - constructor accepting a parent and the actual file
- * - constructor accepting the full path of the file
- * - constructor accepting the relative path to the file in relation to the current working directory
- * - name of the file
- * - check read and write access
- * - whether the file exists
- * - deletion
- * - recursive deletion if the file is a directory
- * - list contents of the file if it is a directory
- * - create a directory
- * - rename
- * - move
- * - copy
- * - copy recursively
- * - filesize
- * - directory size
- *
- * See the File-class from Java for reference.
- *
- * @author Griefed
- */
-expect class File
\ No newline at end of file
diff --git a/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/utilities/Icon.kt b/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/utilities/Icon.kt
deleted file mode 100644
index c9e92fcdb..000000000
--- a/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/utilities/Icon.kt
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright (C) 2024 Griefed.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301
- * USA
- *
- * The full license can be found at https:github.com/Griefed/ServerPackCreator/blob/main/LICENSE
- */
-package de.griefed.serverpackcreator.api.utilities
-
-/**
- * Fixed size picture for displaying and decorating components.
- *
- * This class should all you to create images from files and resources, as well as scaling said images and saving them
- * to disk.
- *
- * See javax.swing.Icon and javax.swing.ImageIcon for reference
- *
- * @author Griefed
- */
-expect interface Icon
\ No newline at end of file
diff --git a/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/utilities/Optional.kt b/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/utilities/Optional.kt
deleted file mode 100644
index 77e135ac5..000000000
--- a/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/utilities/Optional.kt
+++ /dev/null
@@ -1,32 +0,0 @@
-/* Copyright (C) 2024  Griefed
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301
- * USA
- *
- * The full license can be found at https:github.com/Griefed/ServerPackCreator/blob/main/LICENSE
- */
-@file:Suppress("unused")
-
-package de.griefed.serverpackcreator.api.utilities
-
-/**
- * Container object containing a value which may or may not be null, which allows for checking said value for null-ness,
- * retrieval of said value if it is not null, checking if a value is present.
- *
- * See java.util.Optional for reference.
- *
- * @author Griefed
- */
-expect class Optional<T>
\ No newline at end of file
diff --git a/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/utilities/TomlParser.kt b/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/utilities/TomlParser.kt
deleted file mode 100644
index 01e58fae0..000000000
--- a/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/utilities/TomlParser.kt
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * Copyright (C) 2024 Griefed.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301
- * USA
- *
- * The full license can be found at https:github.com/Griefed/ServerPackCreator/blob/main/LICENSE
- */
-package de.griefed.serverpackcreator.api.utilities
-
-/**
- * A configurable parser of TOML configurations.
- * @author Griefed
- */
-expect class TomlParser
\ No newline at end of file
diff --git a/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/utilities/URL.kt b/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/utilities/URL.kt
deleted file mode 100644
index 80bf0c2b1..000000000
--- a/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/utilities/URL.kt
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Copyright (C) 2024 Griefed.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301
- * USA
- *
- * The full license can be found at https:github.com/Griefed/ServerPackCreator/blob/main/LICENSE
- */
-package de.griefed.serverpackcreator.api.utilities
-
-/**
- * Uniform Resource Locator for files, resources, web-addresses.
- *
- * See java.net.URL for reference.
- *
- * @author Griefed
- */
-expect class URL
\ No newline at end of file
diff --git a/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/utilities/common/FileUtilities.kt b/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/utilities/common/FileUtilities.kt
deleted file mode 100644
index 62cdf69b9..000000000
--- a/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/utilities/common/FileUtilities.kt
+++ /dev/null
@@ -1,214 +0,0 @@
-/* Copyright (C) 2024  Griefed
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301
- * USA
- *
- * The full license can be found at https:github.com/Griefed/ServerPackCreator/blob/main/LICENSE
- */
-package de.griefed.serverpackcreator.api.utilities.common
-
-import de.griefed.serverpackcreator.api.utilities.File
-
-/**
- * Utility-class revolving around various file-interactions.
- *
- * @author Griefed
- */
-expect class FileUtilities {
-    /**
-     * Move a file from source to destination, and replace the destination file if it exists.
-     *
-     * @param sourceFile      The source file.
-     * @param destinationFile The destination file to be replaced by the source file.
-     * @return  Returns true if the file was successfully replaced.
-     * @author Griefed
-     */
-    fun replaceFile(sourceFile: File, destinationFile: File): Boolean
-
-    /**
-     * Unzips the downloaded modpack ZIP-archive to the specified directory.
-     *
-     * @param zipFile              The path to the ZIP-archive which we want to unzip.
-     * @param destinationDirectory The directory into which the ZIP-archive will be unzipped into.
-     * @author Griefed
-     */
-    fun unzipArchive(zipFile: String, destinationDirectory: String)
-
-    /**
-     * Check the given file for its type, whether it is a regular file, a Windows link or a UNIX
-     * symlink.
-     *
-     * @param file The file to check
-     * @return The type of the given file. Either [FileType.FILE], [FileType.LINK] or
-     * [FileType.SYMLINK]
-     * @author Griefed
-     */
-    fun checkFileType(file: String): FileType
-
-    /**
-     * Check the given file for its type, whether it is a regular file, a Windows link or a UNIX
-     * symlink.
-     *
-     * @param file The file to check
-     * @return The type of the given file. Either [FileType.FILE], [FileType.LINK] or
-     * [FileType.SYMLINK]
-     * @author Griefed
-     */
-    fun checkFileType(file: File): FileType
-
-    /**
-     * Check if the given file is a UNIX symlink or Windows lnk.
-     *
-     * @param file The file to check.
-     * @return `true` if the given file is a UNIX symlink or Windows lnk.
-     * @author Griefed
-     */
-    fun isLink(file: File): Boolean
-
-    /**
-     * Resolve a given link/symlink to its source.
-     *
-     * @param link The link you want to resolve.
-     * @return Path to the source of the link. If the specified file is not a link, the path to the
-     * passed file is returned.
-     * @author Griefed
-     */
-    fun resolveLink(link: File): String
-
-    /**
-     * Check the given file or directory for read-permission.
-     *
-     * @param fileOrDirectory File or directory.
-     * @return `true` if read-permissions are set.
-     * @author Griefed
-     */
-    fun isReadPermissionSet(fileOrDirectory: String): Boolean
-
-    /**
-     * Check the given file or directory for read-permission.
-     *
-     * @param fileOrDirectory File or directory.
-     * @return `true` if read-permissions are set.
-     * @author Griefed
-     */
-    fun isReadPermissionSet(fileOrDirectory: File): Boolean
-
-    /**
-     * Check the given file or directory for write-permission.
-     *
-     * @param fileOrDirectory File or directory.
-     * @return `true` if write-permissions are set.
-     * @author Griefed
-     */
-    fun isWritePermissionSet(fileOrDirectory: String): Boolean
-
-    /**
-     * Check the given file or directory for write-permission.
-     *
-     * @param fileOrDirectory File or directory.
-     * @return `true` if write-permissions are set.
-     * @author Griefed
-     */
-    fun isWritePermissionSet(fileOrDirectory: File): Boolean
-
-    /**
-     * Open the specified folder in the file explorer.
-     *
-     * @param folder The folder to open.
-     * @author Griefed
-     */
-    fun openFolder(folder: String)
-
-    /**
-     * Open the specified folder in the file explorer.
-     *
-     * @param folder The folder to open.
-     * @author Griefed
-     */
-    fun openFolder(folder: File)
-
-    /**
-     * Open the specified file in an editor.
-     *
-     * @param fileToOpen The file to open.
-     * @author Griefed
-     */
-    fun openFile(fileToOpen: String)
-
-    /**
-     * Open the specified file in an editor.
-     *
-     * @param fileToOpen The file to open.
-     * @author Griefed
-     */
-    fun openFile(fileToOpen: File)
-}
-
-/**
- * Try and delete this file or directory quietly. Deleting something quietly means that
- * * No guarantee is made whether the file or directory is successfully deleted
- * * No exceptions are thrown if an error occurs
- * * No information is carried outside should an exception occur, meaning you have no information about why the deletion, if it failed
- *
- * @author Griefed
- */
-expect fun File.deleteQuietly(): Boolean
-
-/**
- * Acquire the size of this file or directory in bytes. If this file-object denotes a directory, then the size of all
- * files in the directory will be checked and the sum of them returned.
- *
- * @return The filesize of this file, or sum of sizes of all files in this directory.
- * @author Griefed
- */
-expect fun File.size(): Double
-
-/**
- * Walk this directory and return all file-objects which match any of the regular expressions in the provided list.
- *
- * @param filters List of regular expressions to use for filtering.
- * @param direction The direction in which to walk the directory. Default is [FileWalkDirection.TOP_DOWN].
- * @return All files inside this directory which matched the given filters.
- * @author Griefed
- */
-expect fun File.regexWalk(
-    filters: List<Regex>,
-    direction: FileWalkDirection = FileWalkDirection.TOP_DOWN
-): MutableList<File>
-
-/**
- * Walk this directory and return all file-objects which match the specified filter-type using the passed list of filters.
- *
- * @param filters List of Strings to use for filtering
- * @param filterType Whether to filter by [FilterType.CONTAINS] (default), [FilterType.ENDS_WITH] or [FilterType.STARTS_WITH].
- * @param direction The direction in which to walk the directory. Default is [FileWalkDirection.TOP_DOWN].
- * @return All files inside this directory which matched the given filters.
- * @author Griefed
- */
-expect fun File.filteredWalk(
-    filters: List<String>,
-    filterType: FilterType = FilterType.CONTAINS,
-    direction: FileWalkDirection = FileWalkDirection.TOP_DOWN,
-    recursive: Boolean = true
-): MutableList<File>
-
-/**
- * All parent directories are created, but not the file itself.
- *
- * @param create Whether the file or directory should be created.
- * @param directory Whether a directory or file should be created
- * @author Griefed
- */
-expect fun File.createDirectories(create: Boolean = false, directory: Boolean = false)
\ No newline at end of file
diff --git a/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/utilities/common/FileUtilitiesExtensions.kt b/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/utilities/common/FileUtilitiesExtensions.kt
deleted file mode 100644
index 8531fc879..000000000
--- a/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/utilities/common/FileUtilitiesExtensions.kt
+++ /dev/null
@@ -1,44 +0,0 @@
-/* Copyright (C) 2024  Griefed
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301
- * USA
- *
- * The full license can be found at https:github.com/Griefed/ServerPackCreator/blob/main/LICENSE
- */
-@file:Suppress("unused")
-
-package de.griefed.serverpackcreator.api.utilities.common
-
-import de.griefed.serverpackcreator.api.utilities.File
-
-/**
- * Check the given file or directory for read- and write-permission.
- *
- * @param fileOrDirectory File or directory.
- * @return `true` if both read- and write-permissions are set.
- * @author Griefed
- */
-fun FileUtilities.isReadWritePermissionSet(fileOrDirectory: String) =
-    isReadPermissionSet(fileOrDirectory) && isWritePermissionSet(fileOrDirectory)
-
-/**
- * Check the given file or directory for read- and write-permission.
- *
- * @param fileOrDirectory File or directory.
- * @return `true` if both read- and write-permissions are set.
- * @author Griefed
- */
-fun FileUtilities.isReadWritePermissionSet(fileOrDirectory: File) =
-    isReadPermissionSet(fileOrDirectory) && isWritePermissionSet(fileOrDirectory)
\ No newline at end of file
diff --git a/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/utilities/common/JarUtilities.kt b/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/utilities/common/JarUtilities.kt
deleted file mode 100644
index e68a04a14..000000000
--- a/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/utilities/common/JarUtilities.kt
+++ /dev/null
@@ -1,27 +0,0 @@
-/* Copyright (C) 2024  Griefed
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301
- * USA
- *
- * The full license can be found at https:github.com/Griefed/ServerPackCreator/blob/main/LICENSE
- */
-package de.griefed.serverpackcreator.api.utilities.common
-
-/**
- * Some utilities used across ServerPackCreator, revolving around interacting with JAR-files.
- *
- * @author Griefed
- */
-expect class JarUtilities
\ No newline at end of file
diff --git a/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/utilities/common/JsonUtilities.kt b/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/utilities/common/JsonUtilities.kt
deleted file mode 100644
index a7709eeba..000000000
--- a/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/utilities/common/JsonUtilities.kt
+++ /dev/null
@@ -1,27 +0,0 @@
-/* Copyright (C) 2024  Griefed
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301
- * USA
- *
- * The full license can be found at https:github.com/Griefed/ServerPackCreator/blob/main/LICENSE
- */
-package de.griefed.serverpackcreator.api.utilities.common
-
-/**
- * JSON-based utility methods for acquiring and working with JSON from files and objects.
- *
- * @author Griefed
- */
-expect class JsonUtilities
diff --git a/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/utilities/common/SystemUtilities.kt b/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/utilities/common/SystemUtilities.kt
deleted file mode 100644
index 11f56179f..000000000
--- a/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/utilities/common/SystemUtilities.kt
+++ /dev/null
@@ -1,29 +0,0 @@
-/* Copyright (C) 2024  Griefed
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301
- * USA
- *
- * The full license can be found at https:github.com/Griefed/ServerPackCreator/blob/main/LICENSE
- */
-package de.griefed.serverpackcreator.api.utilities.common
-
-/**
- * Utility-class revolving around the system we are running on.
- *
- * @author Griefed
- */
-expect class SystemUtilities {
-    fun acquireJavaPathFromSystem(): String
-}
diff --git a/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/utilities/common/Utilities.kt b/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/utilities/common/Utilities.kt
deleted file mode 100644
index 19303fd59..000000000
--- a/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/utilities/common/Utilities.kt
+++ /dev/null
@@ -1,37 +0,0 @@
-/* Copyright (C) 2024  Griefed
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301
- * USA
- *
- * The full license can be found at https:github.com/Griefed/ServerPackCreator/blob/main/LICENSE
- */
-package de.griefed.serverpackcreator.api.utilities.common
-
-/**
- * Access to any and all utility-classes we may have.
- *
- * @author Griefed
- */
-expect class Utilities {
-    val booleanUtilities: BooleanUtilities
-    val fileUtilities: FileUtilities
-    val jarUtilities: JarUtilities
-    val listUtilities: ListUtilities
-    val stringUtilities: StringUtilities
-    val systemUtilities: SystemUtilities
-    val webUtilities: WebUtilities
-    val jsonUtilities: JsonUtilities
-    val xmlUtilities: XmlUtilities
-}
diff --git a/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/utilities/common/WebUtilities.kt b/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/utilities/common/WebUtilities.kt
deleted file mode 100644
index a0fa41f67..000000000
--- a/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/utilities/common/WebUtilities.kt
+++ /dev/null
@@ -1,133 +0,0 @@
-/* Copyright (C) 2024  Griefed
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301
- * USA
- *
- * The full license can be found at https:github.com/Griefed/ServerPackCreator/blob/main/LICENSE
- */
-package de.griefed.serverpackcreator.api.utilities.common
-
-import de.griefed.serverpackcreator.api.utilities.File
-import de.griefed.serverpackcreator.api.utilities.URL
-
-/**
- * Utility-class revolving around interactions with web-resources.
- *
- * @author Griefed
- */
-expect class WebUtilities {
-    /**
-     * Download the file from the specified URL to the specified destination, replacing the file if it
-     * already exists. The destination should end in a valid filename. Any directories up to the
-     * specified file will be created.
-     *
-     * @param fileDestination The file to store the web-resource in. Examples:
-     * * /tmp/some_folder/foo.bar
-     * * C:/temp/some_folder/bar.foo
-     * @param downloadURL     The URL to the file you want to download.
-     * @return Boolean. Returns true if the file could be found on the hosts' filesystem.
-     * @author Griefed
-     */
-    fun downloadAndReplaceFile(fileDestination: File, downloadURL: URL): Boolean
-
-    /**
-     * Download the file from the specified URL to the specified destination. The destination should
-     * end in a valid filename. Any directories up to the specified file will be created.
-     *
-     * @param file The destination where the file should be stored. Must include the filename as well. Examples:
-     * * /tmp/some_folder/foo.bar
-     * * C:/temp/some_folder/bar.foo
-     * @param downloadURL     The URL to the file you want to download.
-     * @return true if the file was created.
-     * @author Griefed
-     */
-    fun downloadFile(file: File, downloadURL: URL): Boolean
-
-    /**
-     * Open the given url in a browser.
-     *
-     * @param url The URI to the website you want to open.
-     * @author Griefed
-     */
-    fun openLinkInBrowser(url: URL)
-
-    /**
-     * Checks the filesize of the given file whether it is smaller or bigger than 10 MB.
-     *
-     * @param fileToCheck The file or directory to check.
-     * @return Boolean. True if the file is smaller, false if the file is bigger than 10 MB.
-     * @author Griefed
-     */
-    fun hasteBinPreChecks(fileToCheck: File): Boolean
-
-    /**
-     * Create a HasteBin post from a given text file. The text file provided is read into a string and
-     * then passed onto [Haste zneix](https://haste.zneix.eu) which creates a HasteBin post
-     * out of the passed String and returns the URL to the newly created post.
-     *
-     * Created with the help of [kaimu-ken's hastebin.java (MIT License)](https://github.com/kaimu-kun/hastebin.java)
-     * and edited to use HasteBin fork [zneix/haste-server](https://github.com/zneix/haste-server). My fork of kaimu-kun's
-     * hastebin.java is available at [Griefed/hastebin.java](https://github.com/Griefed/hastebin.java).
-     *
-     * @param textFile The file which will be read into a String of which then to create a HasteBin
-     * post of.
-     * @return String. Returns a String containing the URL to the newly created HasteBin post.
-     * @author [kaimu-kun/hastebin.java](https://github.com/kaimu-kun)
-     * @author Griefed
-     */
-    fun createHasteBinFromFile(textFile: File): String
-
-    /**
-     * Get the response of a call to a URL as a string.
-     *
-     * @param url The URL you want to get the response from
-     * @return The response.
-     */
-    fun getResponseAsString(url: URL): String
-
-    /**
-     * Get the response-code of a call to a URL as an integer.
-     *
-     * @param url The URL you want to get the response from
-     * @return The response.
-     */
-    fun getResponseCode(url: URL): Int
-
-    /**
-     * Check the availability of the host of the given URL and whether the URL gives a status code of
-     * 200. Only when both the host is available and the URL returns a status code of 200 does this
-     * method return `true`.
-     *
-     * @param url The URL of which to check for host-availability.
-     * @return `true` if, and only if, the host is available and the URL returns the status code 200.
-     */
-    fun isReachable(url: URL): Boolean
-
-    /**
-     * Create a HasteBin post from a given string. The text provided passed onto [Haste zneix](https://haste.zneix.eu)
-     * which creates a HasteBin post out of the passed String and returns the URL to the newly created post.
-     *
-     * Created with the help of [kaimu-ken's hastebin.java (MIT License)](https://github.com/kaimu-kun/hastebin.java)
-     * and edited to use HasteBin fork [zneix/haste-server](https://github.com/zneix/haste-server). My fork of kaimu-kun's
-     * hastebin.java is available at [Griefed/hastebin.java](https://github.com/Griefed/hastebin.java).
-     *
-     * @param text The file which will be read into a String of which then to create a HasteBin
-     * post of.
-     * @return String. Returns a String containing the URL to the newly created HasteBin post.
-     * @author [kaimu-kun/hastebin.java](https://github.com/kaimu-kun)
-     * @author Griefed
-     */
-    fun createHasteBinFromString(text: String): String
-}
diff --git a/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/utilities/common/XmlUtilities.kt b/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/utilities/common/XmlUtilities.kt
deleted file mode 100644
index dd9174144..000000000
--- a/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/utilities/common/XmlUtilities.kt
+++ /dev/null
@@ -1,27 +0,0 @@
-/* Copyright (C) 2024  Griefed
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301
- * USA
- *
- * The full license can be found at https:github.com/Griefed/ServerPackCreator/blob/main/LICENSE
- */
-package de.griefed.serverpackcreator.api.utilities.common
-
-/**
- * Commonly used XML utilities.
- *
- * @author Griefed
- */
-expect class XmlUtilities
\ No newline at end of file
diff --git a/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/versionmeta/VersionMeta.kt b/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/versionmeta/VersionMeta.kt
deleted file mode 100644
index 1609175e5..000000000
--- a/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/versionmeta/VersionMeta.kt
+++ /dev/null
@@ -1,108 +0,0 @@
-/*
- * Copyright (C) 2024 Griefed.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301
- * USA
- *
- * The full license can be found at https:github.com/Griefed/ServerPackCreator/blob/main/LICENSE
- */
-package de.griefed.serverpackcreator.api.versionmeta
-
-import de.griefed.serverpackcreator.api.utilities.URL
-import de.griefed.serverpackcreator.api.versionmeta.fabric.FabricMeta
-import de.griefed.serverpackcreator.api.versionmeta.forge.ForgeMeta
-import de.griefed.serverpackcreator.api.versionmeta.legacyfabric.LegacyFabricMeta
-import de.griefed.serverpackcreator.api.versionmeta.minecraft.MinecraftMeta
-import de.griefed.serverpackcreator.api.versionmeta.neoforge.NeoForgeMeta
-import de.griefed.serverpackcreator.api.versionmeta.quilt.QuiltMeta
-
-/**
- * VersionMeta containing available versions and important details for Minecraft, Fabric and Forge.
- *
- * @author Griefed
- */
-expect class VersionMeta {
-    @Suppress("MemberVisibilityCanBePrivate")
-    val legacyFabricUrlGame: URL
-
-    @Suppress("MemberVisibilityCanBePrivate")
-    val legacyFabricUrlLoader: URL
-
-    @Suppress("MemberVisibilityCanBePrivate")
-    val legacyfabricUrlManifest: URL
-
-    @Suppress("MemberVisibilityCanBePrivate")
-    val minecraftUrlManifest: URL
-
-    @Suppress("MemberVisibilityCanBePrivate")
-    val forgeUrlManifest: URL
-
-    @Suppress("MemberVisibilityCanBePrivate")
-    val oldNeoForgeUrlManifest: URL
-
-    @Suppress("MemberVisibilityCanBePrivate")
-    val newNeoForgeUrlManifest: URL
-
-    @Suppress("MemberVisibilityCanBePrivate")
-    val fabricUrlManifest: URL
-
-    @Suppress("MemberVisibilityCanBePrivate")
-    val fabricUrlIntermediariesManifest: URL
-
-    @Suppress("MemberVisibilityCanBePrivate")
-    val fabricUrlInstallerManifest: URL
-
-    @Suppress("MemberVisibilityCanBePrivate")
-    val quiltUrlManifest: URL
-
-    @Suppress("MemberVisibilityCanBePrivate")
-    val quiltUrlInstallerManifest: URL
-
-    /**
-     * The MinecraftMeta instance for working with Minecraft versions and information about them.
-     */
-    @Suppress("MemberVisibilityCanBePrivate")
-    val minecraft: MinecraftMeta
-
-    /**
-     * The QuiltMeta-instance for working with Fabric versions and information about them.
-     */
-    @Suppress("MemberVisibilityCanBePrivate")
-    val fabric: FabricMeta
-
-    /**
-     * The ForgeMeta-instance for working with Forge versions and information about them.
-     */
-    @Suppress("MemberVisibilityCanBePrivate")
-    val forge: ForgeMeta
-
-    /**
-     * The NeoForgeMeta-instance for working with NeoForge versions and information about them.
-     */
-    @Suppress("MemberVisibilityCanBePrivate")
-    val neoForge: NeoForgeMeta
-
-    /**
-     * The QuiltMeta-instance for working with Quilt versions and information about them.
-     */
-    @Suppress("MemberVisibilityCanBePrivate")
-    val quilt: QuiltMeta
-
-    /**
-     * The LegacyFabric-instance for working with Legacy Fabric versions and information about them.
-     */
-    @Suppress("MemberVisibilityCanBePrivate")
-    val legacyFabric: LegacyFabricMeta
-}
\ No newline at end of file
diff --git a/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/versionmeta/fabric/FabricMeta.kt b/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/versionmeta/fabric/FabricMeta.kt
deleted file mode 100644
index 5d6af4e41..000000000
--- a/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/versionmeta/fabric/FabricMeta.kt
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * Copyright (C) 2024 Griefed.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301
- * USA
- *
- * The full license can be found at https:github.com/Griefed/ServerPackCreator/blob/main/LICENSE
- */
-package de.griefed.serverpackcreator.api.versionmeta.fabric
-
-import de.griefed.serverpackcreator.api.utilities.File
-import de.griefed.serverpackcreator.api.utilities.Optional
-import de.griefed.serverpackcreator.api.utilities.URL
-import de.griefed.serverpackcreator.api.versionmeta.Meta
-
-/**
- * Fabric meta containing information about available Quilt versions and installers.
- *
- * @author Griefed
- */
-@Suppress("unused")
-expect class FabricMeta : Meta {
-    override fun latestLoader(): String
-    override fun releaseLoader(): String
-    override fun latestInstaller(): String
-    override fun releaseInstaller(): String
-    override fun loaderVersionsListAscending(): MutableList<String>
-    override fun loaderVersionsListDescending(): List<String>
-    override fun loaderVersionsArrayAscending(): Array<String>
-    override fun loaderVersionsArrayDescending(): Array<String>
-    override fun installerVersionsListAscending(): MutableList<String>
-    override fun installerVersionsListDescending(): List<String>
-    override fun installerVersionsArrayAscending(): Array<String>
-    override fun installerVersionsArrayDescending(): Array<String>
-    override fun latestInstallerUrl(): URL
-    override fun releaseInstallerUrl(): URL
-    override fun installerFor(version: String): Optional<File>
-
-    /**
-     * Download the improved Fabric launcher and store it in the launcher-cache directory.
-     * @author Griefed
-     */
-    fun launcherFor(minecraftVersion: String, fabricVersion: String): Optional<File>
-    override fun isInstallerUrlAvailable(version: String): Boolean
-    override fun getInstallerUrl(version: String): Optional<URL>
-    override fun isVersionValid(version: String): Boolean
-    override fun isMinecraftSupported(minecraftVersion: String): Boolean
-
-    /**
-     * Get the [URL] to the Fabric launcher for the specified Minecraft and Fabric version.
-     *
-     * @param minecraftVersion Minecraft version.
-     * @param fabricVersion    Fabric version.
-     * @return URL to the Fabric launcher for the specified Minecraft and Fabric version.
-     * @author Griefed
-     */
-    fun improvedLauncherUrl(minecraftVersion: String, fabricVersion: String): URL
-
-}
\ No newline at end of file
diff --git a/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/versionmeta/forge/ForgeMeta.kt b/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/versionmeta/forge/ForgeMeta.kt
deleted file mode 100644
index a9e8c187d..000000000
--- a/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/versionmeta/forge/ForgeMeta.kt
+++ /dev/null
@@ -1,240 +0,0 @@
-/*
- * Copyright (C) 2024 Griefed.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301
- * USA
- *
- * The full license can be found at https:github.com/Griefed/ServerPackCreator/blob/main/LICENSE
- */
-package de.griefed.serverpackcreator.api.versionmeta.forge
-
-import de.griefed.serverpackcreator.api.utilities.File
-import de.griefed.serverpackcreator.api.utilities.Optional
-import de.griefed.serverpackcreator.api.utilities.URL
-import de.griefed.serverpackcreator.api.utilities.common.Utilities
-
-/**
- * Forge meta containing information about available Forge releases.
- *
- * @param forgeManifest The manifest from which to acquire version information.
- * @param utilities     Commonly used utilities across ServerPackCreator.
- *
- * @author Griefed
- */
-@Suppress("unused")
-expect class ForgeMeta(
-    forgeManifest: File,
-    utilities: Utilities,
-    installerCacheDirectory: File
-) {
-    /**
-     * Check whether the given Minecraft and Forge versions are valid/supported/available.
-     *
-     * @param minecraftVersion Minecraft version.
-     * @param forgeVersion     Forge version.
-     * @return `true` if the given Minecraft and Forge versions are valid/supported/available.
-     * @author Griefed
-     */
-    fun isForgeAndMinecraftCombinationValid(
-        minecraftVersion: String,
-        forgeVersion: String
-    ): Boolean
-
-    /**
-     * Check whether a given Minecraft version is valid/supported/available.
-     *
-     * @param minecraftVersion Minecraft version.
-     * @return `true` if the given Minecraft version is valid/supported/available.
-     * @author Griefed
-     */
-    fun isMinecraftVersionSupported(minecraftVersion: String): Boolean
-
-    /**
-     * Check whether a given Forge version is valid/supported/available.
-     *
-     * @param forgeVersion Forge version.
-     * @return `true` if the given Forge version is valid/supported/available.
-     * @author Griefed
-     */
-    fun isForgeVersionValid(forgeVersion: String): Boolean
-
-    /**
-     * Check whether Forge is available for a given Forge- and Minecraft version.
-     *
-     * @param minecraftVersion Minecraft version.
-     * @param forgeVersion     Forge version.
-     * @return `true` if Forge is available for the given Forge- and Minecraft version.
-     * @author Griefed
-     */
-    fun isForgeInstanceAvailable(minecraftVersion: String, forgeVersion: String): Boolean
-
-    /**
-     * Check whether Forge is available for a given Forge version
-     *
-     * @param forgeVersion Forge version.
-     * @return `true` if Forge is available for the given Forge version.
-     * @author Griefed
-     */
-    fun isForgeInstanceAvailable(forgeVersion: String): Boolean
-
-    /**
-     * Latest Forge version for a given Minecraft version, wrapped in [Optional]
-     *
-     * @param minecraftVersion Minecraft version.
-     * @return Latest Forge version for the given Minecraft version, wrapped in an [Optional]
-     * @author Griefed
-     */
-    fun newestForgeVersion(minecraftVersion: String): Optional<String>
-
-    /**
-     * Oldest Forge version for a given Minecraft version, wrapped in [Optional]
-     *
-     * @param minecraftVersion Minecraft version.
-     * @return Oldest Forge version for the given Minecraft version, wrapped in [Optional]
-     * @author Griefed
-     */
-    fun oldestForgeVersion(minecraftVersion: String): Optional<String>
-
-    /**
-     * Get the list of available Forge versions, in ascending order.
-     *
-     * @return List of available Forge versions.
-     * @author Griefed
-     */
-    fun forgeVersionsAscending(): MutableList<String>
-
-    /**
-     * Get the list of available Forge versions, in descending order.
-     *
-     * @return List of available Forge versions.
-     * @author Griefed
-     */
-    fun forgeVersionsDescending(): List<String>
-
-    /**
-     * Get the array of available Forge versions, in ascending order.
-     *
-     * @return Array of available Forge versions.
-     * @author Griefed
-     */
-    fun forgeVersionsAscendingArray(): Array<String>
-
-    /**
-     * Get the array of available Forge versions, in descending order.
-     *
-     * @return Array of available Forge versions.
-     * @author Griefed
-     */
-    fun forgeVersionsDescendingArray(): Array<String>
-
-    /**
-     * Get a list of available Forge version for a given Minecraft version in ascending order.
-     *
-     * @param minecraftVersion Minecraft version.
-     * @return List of available Forge versions for the given Minecraft version in ascending order.
-     * @author Griefed
-     */
-    fun supportedForgeVersionsAscending(minecraftVersion: String): Optional<List<String>>
-
-    /**
-     * Get a list of available Forge version for a given Minecraft version in descending order.
-     *
-     * @param minecraftVersion Minecraft version.
-     * @return List of available Forge versions for the given Minecraft version in descending order.
-     * @author Griefed
-     */
-    fun supportedForgeVersionsDescending(minecraftVersion: String): Optional<List<String>>
-
-    /**
-     * Get an array of available Forge version for a given Minecraft version, in ascending order,
-     * wrapped in an [Optional].
-     *
-     * @param minecraftVersion Minecraft version.
-     * @return Array of available Forge versions for the given Minecraft version, in ascending order,
-     * wrapped in an [Optional]
-     * @author Griefed
-     */
-    fun supportedForgeVersionsAscendingArray(minecraftVersion: String): Optional<Array<String>>
-
-    /**
-     * Get an array of available Forge version for a given Minecraft version, in descending order,
-     * wrapped in an [Optional].
-     *
-     * @param minecraftVersion Minecraft version.
-     * @return Array of available Forge versions for the given Minecraft version, in descending order,
-     * wrapped in an [Optional]
-     * @author Griefed
-     */
-    fun supportedForgeVersionsDescendingArray(minecraftVersion: String): Optional<Array<String>>
-
-    /**
-     * Get the Minecraft version for a given Forge version, wrapped in an [Optional].
-     *
-     * @param forgeVersion Forge version.
-     * @return Minecraft version for the given Forge version, wrapped in an [Optional].
-     * @author Griefed
-     */
-    fun minecraftVersion(forgeVersion: String): Optional<String>
-
-    /**
-     * Get the list of Forge supported Minecraft versions, in ascending order.
-     *
-     * @return List of Forge supported Minecraft versions, in ascending order.
-     * @author Griefed
-     */
-    fun supportedMinecraftVersionsAscending(): MutableList<String>
-
-    /**
-     * Get the list of Forge supported Minecraft versions, in descending order.
-     *
-     * @return List of Forge supported Minecraft versions, in descending order.
-     * @author Griefed
-     */
-    fun supportedMinecraftVersionsDescending(): List<String>
-
-    /**
-     * Get the array of Forge supported Minecraft versions, in ascending order.
-     *
-     * @return Array of Forge supported Minecraft versions, in ascending order.
-     * @author Griefed
-     */
-    fun supportedMinecraftVersionsAscendingArray(): Array<String>
-
-    /**
-     * Get the array of Forge supported Minecraft versions, in descending order.
-     *
-     * @return Array of Forge supported Minecraft versions, in descending order.
-     * @author Griefed
-     */
-    fun supportedMinecraftVersionsDescendingArray(): Array<String>
-
-    /**
-     * Get the Forge server installer URL for a given Forge version, wrapped in an [Optional].
-     *
-     * @param forgeVersion Forge version.
-     * @return Forge server installer URL for the given Forge version, wrapped in an [Optional].
-     * @author Griefed
-     */
-    fun installerUrl(forgeVersion: String): Optional<URL>
-
-    /**
-     * Installer file for the specified [forgeVersion] and [minecraftVersion] version, wrapped in an [Optional], so you
-     * can check whether it is available first.
-     * @author Griefed
-     */
-    fun installerFor(forgeVersion: String, minecraftVersion: String): Optional<File>
-
-
-}
\ No newline at end of file
diff --git a/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/versionmeta/legacyfabric/LegacyFabricMeta.kt b/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/versionmeta/legacyfabric/LegacyFabricMeta.kt
deleted file mode 100644
index f6e2b0863..000000000
--- a/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/versionmeta/legacyfabric/LegacyFabricMeta.kt
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- * Copyright (C) 2024 Griefed.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301
- * USA
- *
- * The full license can be found at https:github.com/Griefed/ServerPackCreator/blob/main/LICENSE
- */
-package de.griefed.serverpackcreator.api.versionmeta.legacyfabric
-
-import de.griefed.serverpackcreator.api.utilities.File
-import de.griefed.serverpackcreator.api.utilities.Optional
-import de.griefed.serverpackcreator.api.utilities.common.Utilities
-import de.griefed.serverpackcreator.api.versionmeta.Meta
-
-/**
- * LegacyFabric meta providing game, loader and installer version information.
- *
- * @param gameVersionsManifest      Game version manifest.
- * @param loaderVersionsManifest    Loader version manifest.
- * @param installerVersionsManifest Installer version manifest.
- * @param utilities                 Commonly used utilities across ServerPackCreator.
- * @param installerCacheDirectory   The cache-directory for all installers.
- *
- * @author Griefed
- */
-@Suppress("unused")
-expect class LegacyFabricMeta(
-    gameVersionsManifest: File,
-    loaderVersionsManifest: File,
-    installerVersionsManifest: File,
-    utilities: Utilities,
-    installerCacheDirectory: File
-) : Meta {
-    override fun latestLoader(): String
-    override fun releaseLoader(): String
-    override fun latestInstaller(): String
-    override fun releaseInstaller(): String
-    override fun loaderVersionsListAscending(): MutableList<String>
-    override fun loaderVersionsListDescending(): MutableList<String>
-    override fun loaderVersionsArrayAscending(): Array<String>
-    override fun loaderVersionsArrayDescending(): Array<String>
-    override fun installerVersionsListAscending(): MutableList<String>
-    override fun installerVersionsListDescending(): MutableList<String>
-    override fun installerVersionsArrayAscending(): Array<String>
-    override fun installerVersionsArrayDescending(): Array<String>
-    override fun installerFor(version: String): Optional<File>
-    override fun isInstallerUrlAvailable(version: String): Boolean
-    override fun isVersionValid(version: String): Boolean
-    override fun isMinecraftSupported(minecraftVersion: String): Boolean
-
-    /**
-     * All Legacy Fabric supported Minecraft versions.
-     *
-     * @return All Legacy Fabric supported Minecraft versions.
-     * @author Griefed
-     */
-    fun supportedMinecraftVersions(): MutableList<String>
-
-
-}
\ No newline at end of file
diff --git a/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/versionmeta/minecraft/MinecraftMeta.kt b/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/versionmeta/minecraft/MinecraftMeta.kt
deleted file mode 100644
index b4c054b6c..000000000
--- a/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/versionmeta/minecraft/MinecraftMeta.kt
+++ /dev/null
@@ -1,166 +0,0 @@
-/*
- * Copyright (C) 2024 Griefed.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301
- * USA
- *
- * The full license can be found at https:github.com/Griefed/ServerPackCreator/blob/main/LICENSE
- */
-package de.griefed.serverpackcreator.api.versionmeta.minecraft
-
-/**
- * Minecraft meta containing information about available client- and server releases.
- *
- * @author Griefed
- */
-expect class MinecraftMeta {
-    /**
-     * Check whether a client is available for the specified Minecraft-version.
-     *
-     * @param minecraftVersion The Minecraft-version.
-     * @return `true` if a client is available.
-     * @author Griefed
-     */
-    fun isMinecraftVersionAvailable(minecraftVersion: String): Boolean
-
-    /**
-     * Get the array of available Minecraft version of the [de.griefed.serverpackcreator.api.versionmeta.Type.RELEASE] in
-     * descending order.
-     *
-     * @return Array of all available Minecraft [de.griefed.serverpackcreator.api.versionmeta.Type.RELEASE] versions in
-     * descending order.
-     * @author Griefed
-     */
-    fun releaseVersionsArrayDescending(): Array<String>
-
-    /**
-     * Get the list of available Minecraft version of the [de.griefed.serverpackcreator.api.versionmeta.Type.RELEASE] in
-     * descending order.
-     *
-     * @return List of all available Minecraft [de.griefed.serverpackcreator.api.versionmeta.Type.RELEASE] versions in
-     * descending order.
-     * @author Griefed
-     */
-    fun releaseVersionsDescending(): List<String>
-
-    /**
-     * Get the array of available Minecraft version of the [de.griefed.serverpackcreator.api.versionmeta.Type.RELEASE] in
-     * ascending order.
-     *
-     * @return Array of all available Minecraft [de.griefed.serverpackcreator.api.versionmeta.Type.RELEASE] versions in
-     * ascending order.
-     * @author Griefed
-     */
-    fun releaseVersionsArrayAscending(): Array<String>
-
-    /**
-     * Get the list of available Minecraft version of the [de.griefed.serverpackcreator.api.versionmeta.Type.RELEASE] in
-     * ascending order.
-     *
-     * @return List of all available Minecraft [de.griefed.serverpackcreator.api.versionmeta.Type.RELEASE] versions in ascending
-     * order.
-     * @author Griefed
-     */
-    fun releaseVersionsAscending(): List<String>
-
-    /**
-     * Get the array of available Minecraft version of the [de.griefed.serverpackcreator.api.versionmeta.Type.SNAPSHOT] in
-     * descending order.
-     *
-     * @return Array of all available Minecraft [de.griefed.serverpackcreator.api.versionmeta.Type.SNAPSHOT] versions in
-     * descending order.
-     * @author Griefed
-     */
-    fun snapshotVersionsArrayDescending(): Array<String>
-
-    /**
-     * Get the list of available Minecraft version of the [de.griefed.serverpackcreator.api.versionmeta.Type.SNAPSHOT] in
-     * descending order.
-     *
-     * @return List of all available Minecraft [de.griefed.serverpackcreator.api.versionmeta.Type.SNAPSHOT] versions in
-     * descending order.
-     * @author Griefed
-     */
-    fun snapshotVersionsDescending(): List<String>
-
-    /**
-     * Get the array of available Minecraft version of the [de.griefed.serverpackcreator.api.versionmeta.Type.SNAPSHOT] in
-     * ascending order.
-     *
-     * @return Array of all available Minecraft [de.griefed.serverpackcreator.api.versionmeta.Type.SNAPSHOT] versions in
-     * ascending order.
-     * @author Griefed
-     */
-    fun snapshotVersionsArrayAscending(): Array<String>
-
-    /**
-     * Get the list of available Minecraft version of the [de.griefed.serverpackcreator.api.versionmeta.Type.SNAPSHOT] in
-     * ascending order.
-     *
-     * @return List of all available Minecraft [de.griefed.serverpackcreator.api.versionmeta.Type.SNAPSHOT] versions in
-     * ascending order.
-     * @author Griefed
-     */
-    fun snapshotVersionsAscending(): List<String>
-
-    /**
-     * Get an array of all available Minecraft versions of the [de.griefed.serverpackcreator.api.versionmeta.Type.RELEASE] and
-     * [de.griefed.serverpackcreator.api.versionmeta.Type.SNAPSHOT] in descending order.
-     *
-     * @return All available Minecraft versions in descending order.
-     * @author Griefed
-     */
-    fun allVersionsArrayDescending(): Array<String>
-
-    /**
-     * Get a list of all available Minecraft versions of the [de.griefed.serverpackcreator.api.versionmeta.Type.RELEASE] and
-     * [de.griefed.serverpackcreator.api.versionmeta.Type.SNAPSHOT] in descending order.
-     *
-     * @return All available Minecraft versions in descending order.
-     * @author Griefed
-     */
-    @Suppress("MemberVisibilityCanBePrivate")
-    fun allVersionsDescending(): List<String>
-
-    /**
-     * Get an array of all available Minecraft versions of the [de.griefed.serverpackcreator.api.versionmeta.Type.RELEASE] and
-     * [de.griefed.serverpackcreator.api.versionmeta.Type.SNAPSHOT] in ascending order.
-     *
-     * @return All available Minecraft versions in ascending order.
-     * @author Griefed
-     */
-    @Suppress("unused")
-    fun allVersionsArrayAscending(): Array<String>
-
-    /**
-     * Get a list of all available Minecraft versions of the [de.griefed.serverpackcreator.api.versionmeta.Type.RELEASE] and
-     * [de.griefed.serverpackcreator.api.versionmeta.Type.SNAPSHOT] in ascending order.
-     *
-     * @return All available Minecraft versions in ascending order.
-     * @author Griefed
-     */
-    @Suppress("MemberVisibilityCanBePrivate")
-    fun allVersionsAscending(): List<String>
-
-    /**
-     * Check whether a server is available for the specified Minecraft-version.
-     *
-     * @param minecraftVersion The Minecraft-version.
-     * @return `true` if a server is available.
-     * @author Griefed
-     */
-    fun isServerAvailable(minecraftVersion: String): Boolean
-
-}
\ No newline at end of file
diff --git a/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/versionmeta/neoforge/NeoForgeMeta.kt b/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/versionmeta/neoforge/NeoForgeMeta.kt
deleted file mode 100644
index c02407c65..000000000
--- a/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/versionmeta/neoforge/NeoForgeMeta.kt
+++ /dev/null
@@ -1,221 +0,0 @@
-package de.griefed.serverpackcreator.api.versionmeta.neoforge
-
-import de.griefed.serverpackcreator.api.utilities.common.Utilities
-import java.io.File
-import java.net.URL
-import java.util.*
-
-/**
- * Forge meta containing information about available Forge releases.
- *
- * @param neoForgeManifest The manifest from which to acquire version information.
- * @param utilities     Commonly used utilities across ServerPackCreator.
- *
- * @author Griefed
- */
-@Suppress("unused")
-expect class NeoForgeMeta(
-    oldNeoForgeManifest: File,
-    newNeoForgeManifest: File,
-    utilities: Utilities,
-    installerCacheDirectory: File
-) {
-    /**
-     * Check whether the given Minecraft and Forge versions are valid/supported/available.
-     *
-     * @param minecraftVersion Minecraft version.
-     * @param neoForgeVersion     Forge version.
-     * @return `true` if the given Minecraft and Forge versions are valid/supported/available.
-     * @author Griefed
-     */
-    fun isNeoForgeAndMinecraftCombinationValid(
-        minecraftVersion: String,
-        neoForgeVersion: String
-    ): Boolean
-
-    /**
-     * Check whether a given Minecraft version is valid/supported/available.
-     *
-     * @param minecraftVersion Minecraft version.
-     * @return `true` if the given Minecraft version is valid/supported/available.
-     * @author Griefed
-     */
-    fun isMinecraftVersionSupported(minecraftVersion: String): Boolean
-
-    /**
-     * Check whether a given Forge version is valid/supported/available.
-     *
-     * @param neoForgeVersion Forge version.
-     * @return `true` if the given Forge version is valid/supported/available.
-     * @author Griefed
-     */
-    fun isNeoForgeVersionValid(neoForgeVersion: String): Boolean
-
-    /**
-     * Check whether Forge is available for a given Forge- and Minecraft version.
-     *
-     * @param minecraftVersion Minecraft version.
-     * @param neoForgeVersion     Forge version.
-     * @return `true` if Forge is available for the given Forge- and Minecraft version.
-     * @author Griefed
-     */
-    fun isNeoForgeInstanceAvailable(minecraftVersion: String, neoForgeVersion: String): Boolean
-
-    /**
-     * Check whether Forge is available for a given Forge version
-     *
-     * @param neoForgeVersion Forge version.
-     * @return `true` if Forge is available for the given Forge version.
-     * @author Griefed
-     */
-    fun isNeoForgeInstanceAvailable(neoForgeVersion: String): Boolean
-
-    /**
-     * Latest Forge version for a given Minecraft version, wrapped in [Optional]
-     *
-     * @param minecraftVersion Minecraft version.
-     * @return Latest Forge version for the given Minecraft version, wrapped in an [Optional]
-     * @author Griefed
-     */
-    fun newestNeoForgeVersion(minecraftVersion: String): Optional<String>
-
-    /**
-     * Oldest Forge version for a given Minecraft version, wrapped in [Optional]
-     *
-     * @param minecraftVersion Minecraft version.
-     * @return Oldest Forge version for the given Minecraft version, wrapped in [Optional]
-     * @author Griefed
-     */
-    fun oldestNeoForgeVersion(minecraftVersion: String): Optional<String>
-
-    /**
-     * Get the list of available Forge versions, in ascending order.
-     *
-     * @return List of available Forge versions.
-     * @author Griefed
-     */
-    fun neoForgeVersionsAscending(): MutableList<String>
-
-    /**
-     * Get the list of available Forge versions, in descending order.
-     *
-     * @return List of available Forge versions.
-     * @author Griefed
-     */
-    fun neoForgeVersionsDescending(): List<String>
-
-    /**
-     * Get the array of available Forge versions, in ascending order.
-     *
-     * @return Array of available Forge versions.
-     * @author Griefed
-     */
-    fun neoForgeVersionsAscendingArray(): Array<String>
-
-    /**
-     * Get the array of available Forge versions, in descending order.
-     *
-     * @return Array of available Forge versions.
-     * @author Griefed
-     */
-    fun neoForgeVersionsDescendingArray(): Array<String>
-
-    /**
-     * Get a list of available Forge version for a given Minecraft version in ascending order.
-     *
-     * @param minecraftVersion Minecraft version.
-     * @return List of available Forge versions for the given Minecraft version in ascending order.
-     * @author Griefed
-     */
-    fun supportedNeoForgeVersionsAscending(minecraftVersion: String): Optional<List<String>>
-
-    /**
-     * Get a list of available Forge version for a given Minecraft version in descending order.
-     *
-     * @param minecraftVersion Minecraft version.
-     * @return List of available Forge versions for the given Minecraft version in descending order.
-     * @author Griefed
-     */
-    fun supportedNeoForgeVersionsDescending(minecraftVersion: String): Optional<List<String>>
-
-    /**
-     * Get an array of available Forge version for a given Minecraft version, in ascending order,
-     * wrapped in an [Optional].
-     *
-     * @param minecraftVersion Minecraft version.
-     * @return Array of available Forge versions for the given Minecraft version, in ascending order,
-     * wrapped in an [Optional]
-     * @author Griefed
-     */
-    fun supportedNeoForgeVersionsAscendingArray(minecraftVersion: String): Optional<Array<String>>
-
-    /**
-     * Get an array of available Forge version for a given Minecraft version, in descending order,
-     * wrapped in an [Optional].
-     *
-     * @param minecraftVersion Minecraft version.
-     * @return Array of available Forge versions for the given Minecraft version, in descending order,
-     * wrapped in an [Optional]
-     * @author Griefed
-     */
-    fun supportedNeoForgeVersionsDescendingArray(minecraftVersion: String): Optional<Array<String>>
-
-    /**
-     * Get the Minecraft version for a given Forge version, wrapped in an [Optional].
-     *
-     * @param neoForgeVersion Forge version.
-     * @return Minecraft version for the given Forge version, wrapped in an [Optional].
-     * @author Griefed
-     */
-    fun minecraftVersion(neoForgeVersion: String): Optional<String>
-
-    /**
-     * Get the list of Forge supported Minecraft versions, in ascending order.
-     *
-     * @return List of Forge supported Minecraft versions, in ascending order.
-     * @author Griefed
-     */
-    fun supportedMinecraftVersionsAscending(): MutableList<String>
-
-    /**
-     * Get the list of Forge supported Minecraft versions, in descending order.
-     *
-     * @return List of Forge supported Minecraft versions, in descending order.
-     * @author Griefed
-     */
-    fun supportedMinecraftVersionsDescending(): List<String>
-
-    /**
-     * Get the array of Forge supported Minecraft versions, in ascending order.
-     *
-     * @return Array of Forge supported Minecraft versions, in ascending order.
-     * @author Griefed
-     */
-    fun supportedMinecraftVersionsAscendingArray(): Array<String>
-
-    /**
-     * Get the array of Forge supported Minecraft versions, in descending order.
-     *
-     * @return Array of Forge supported Minecraft versions, in descending order.
-     * @author Griefed
-     */
-    fun supportedMinecraftVersionsDescendingArray(): Array<String>
-
-    /**
-     * Get the Forge server installer URL for a given Forge version, wrapped in an [Optional].
-     *
-     * @param neoForgeVersion Forge version.
-     * @return Forge server installer URL for the given Forge version, wrapped in an [Optional].
-     * @author Griefed
-     */
-    fun installerUrl(neoForgeVersion: String): Optional<URL>
-
-    /**
-     * Installer file for the specified [neoForgeVersion] and [minecraftVersion] version, wrapped in an [Optional], so you
-     * can check whether it is available first.
-     * @author Griefed
-     */
-    fun installerFor(neoForgeVersion: String, minecraftVersion: String): Optional<File>
-
-
-}
\ No newline at end of file
diff --git a/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/versionmeta/quilt/QuiltMeta.kt b/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/versionmeta/quilt/QuiltMeta.kt
deleted file mode 100644
index 5e63384d3..000000000
--- a/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/versionmeta/quilt/QuiltMeta.kt
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Copyright (C) 2024 Griefed.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301
- * USA
- *
- * The full license can be found at https:github.com/Griefed/ServerPackCreator/blob/main/LICENSE
- */
-package de.griefed.serverpackcreator.api.versionmeta.quilt
-
-import de.griefed.serverpackcreator.api.utilities.File
-import de.griefed.serverpackcreator.api.utilities.Optional
-import de.griefed.serverpackcreator.api.utilities.URL
-import de.griefed.serverpackcreator.api.versionmeta.Meta
-
-/**
- * Quilt meta containing information about available Quilt versions and installers.
- *
- * @author Griefed
- */
-expect class QuiltMeta : Meta {
-    override fun latestLoader(): String
-    override fun releaseLoader(): String
-    override fun latestInstaller(): String
-    override fun releaseInstaller(): String
-    override fun loaderVersionsListAscending(): MutableList<String>
-    override fun loaderVersionsListDescending(): List<String>
-    override fun loaderVersionsArrayAscending(): Array<String>
-    override fun loaderVersionsArrayDescending(): Array<String>
-    override fun installerVersionsListAscending(): MutableList<String>
-    override fun installerVersionsListDescending(): List<String>
-    override fun installerVersionsArrayAscending(): Array<String>
-    override fun installerVersionsArrayDescending(): Array<String>
-    override fun latestInstallerUrl(): URL
-    override fun releaseInstallerUrl(): URL
-    override fun installerFor(version: String): Optional<File>
-    override fun isInstallerUrlAvailable(version: String): Boolean
-    override fun getInstallerUrl(version: String): Optional<URL>
-    override fun isVersionValid(version: String): Boolean
-    override fun isMinecraftSupported(minecraftVersion: String): Boolean
-}
\ No newline at end of file
diff --git a/serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/LoggingConfig.kt b/serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/LoggingConfig.kt
deleted file mode 100644
index 854e6239b..000000000
--- a/serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/LoggingConfig.kt
+++ /dev/null
@@ -1,237 +0,0 @@
-/* Copyright (C) 2024  Griefed
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301
- * USA
- *
- * The full license can be found at https:github.com/Griefed/ServerPackCreator/blob/main/LICENSE
- */
-package de.griefed.serverpackcreator.api
-
-import de.griefed.serverpackcreator.api.utilities.common.JarInformation
-import de.griefed.serverpackcreator.api.utilities.common.JarUtilities
-import de.griefed.serverpackcreator.api.utilities.common.createDirectories
-import de.griefed.serverpackcreator.api.utilities.common.readText
-import org.apache.logging.log4j.core.LoggerContext
-import org.apache.logging.log4j.core.config.Configuration
-import org.apache.logging.log4j.core.config.ConfigurationFactory
-import org.apache.logging.log4j.core.config.ConfigurationSource
-import org.apache.logging.log4j.core.config.Order
-import org.apache.logging.log4j.core.config.plugins.Plugin
-import org.apache.logging.log4j.core.config.xml.XmlConfiguration
-import java.io.File
-import java.io.IOException
-import java.util.*
-
-/**
- * Custom logging configuration setup to prevent incorrect log-directories when executing
- * ServerPackCreator from CLI from a completely other directory. Or possibly when using symlinks,
- * too. This class prevents the logs being written to the `logs`-directory inside the
- * directory from which SPC is being run from.
- *
- * @author Griefed
- */
-@Suppress("unused")
-@Plugin(name = "ServerPackCreatorConfigFactory", category = "ConfigurationFactory")
-@Order(50)
-class LoggingConfig : ConfigurationFactory() {
-    private val suffixes = arrayOf(".xml")
-    private val log4jXml: File
-
-    /**
-     * Check possible home-directories for a viable `serverpackcreator.properties` and check
-     * whether the `de.griefed.serverpackcreator.home`-property is available. If it is, then use
-     * said directory to create the log4j config if it does not already exist, with the path to the
-     * logs-directory being set within the aforementioned home-directory.
-     *
-     * @author Griefed
-     */
-    init {
-        System.setProperty("log4j2.formatMsgNoLookups", "true")
-        val serverPackCreatorProperties = "serverpackcreator.properties"
-        val jarInformation = JarInformation(this.javaClass, JarUtilities())
-        var isDevVersion = false
-        val logDirPath: String
-        val props = Properties()
-        val userHome = System.getProperty("user.home")
-        var log4j: String
-
-        val jarFolderFile = File(jarInformation.jarFolder.absoluteFile, serverPackCreatorProperties).absoluteFile
-        val serverPackCreatorHomeDir = File(userHome, "ServerPackCreator").absoluteFile
-        val homeDirFile = File(serverPackCreatorHomeDir,serverPackCreatorProperties).absoluteFile
-        val relativeDirFile = File(serverPackCreatorProperties).absoluteFile
-        val overrideProperties = File(jarInformation.jarFolder.absoluteFile, "overrides.properties")
-
-        // Load the properties file from the classpath, providing default values.
-        try {
-            this.javaClass.getResourceAsStream("/$serverPackCreatorProperties").use {
-                props.load(it)
-            }
-            println("Loaded properties from classpath.")
-        } catch (ex: Exception) {
-            println("Couldn't read properties from classpath.")
-            ex.printStackTrace()
-        }
-
-        // If our properties-file exists in SPCs home directory, load it.
-        loadFile(jarFolderFile, props)
-        // If our properties-file exists in the users home dir ServerPackCreator-dir, load it.
-        loadFile(homeDirFile, props)
-        // If our properties-file in the directory from which the user is executing SPC exists, load it.
-        loadFile(relativeDirFile, props)
-        // If an overrides-file exists, load it
-        loadFile(overrideProperties,props)
-
-        val home = if (props.containsKey("de.griefed.serverpackcreator.home")) {
-            File(props.getProperty("de.griefed.serverpackcreator.home"))
-        } else {
-            if (jarInformation.jarPath.toFile().isDirectory) {
-                // Dev environment
-                isDevVersion = true
-                File("").absoluteFile
-            } else {
-                File(userHome, "ServerPackCreator")
-            }
-        }
-        home.createDirectories(create = true, directory = true)
-
-        logDirPath = File(home, "logs").absolutePath
-        log4jXml = File(home, "log4j2.xml")
-
-        val oldLogs = "<Property name=\"log-path\">logs</Property>"
-        val newLogs = "<Property name=\"log-path\">$logDirPath</Property>"
-        if (!log4jXml.isFile) {
-            try {
-                this.javaClass.getResourceAsStream("/log4j2.xml").use {
-                    log4j = it?.readText().toString()
-                    log4j = log4j.replace(oldLogs, newLogs)
-                    if (isDevVersion) {
-                        log4j = log4j.replace(
-                            "<Property name=\"log-level-spc\">INFO</Property>",
-                            "<Property name=\"log-level-spc\">DEBUG</Property>"
-                        )
-                    }
-                    log4jXml.writeText(log4j)
-                }
-            } catch (ex: IOException) {
-                println("Error reading/writing log4j2.xml.")
-                ex.printStackTrace()
-            }
-        }
-    }
-
-    override fun getSupportedTypes() = suffixes
-
-    /**
-     * Load the [propertiesFile] into the provided [props]
-     *
-     * @author Griefed
-     */
-    private fun loadFile(propertiesFile: File, props: Properties) {
-        if (!propertiesFile.isFile) {
-            println("Properties-file does not exist: ${propertiesFile.absolutePath}.")
-            return
-        }
-        try {
-            propertiesFile.inputStream().use {
-                props.load(it)
-            }
-            println("Loaded properties from $propertiesFile.")
-        } catch (ex: Exception) {
-            println("Couldn't read properties from ${propertiesFile.absolutePath}.")
-            ex.printStackTrace()
-        }
-    }
-
-
-    /**
-     * Depending on whether this is the first run of ServerPackCreator on a users machine, the default
-     * log4j2 configuration may be present at different locations. The default one is the config
-     * inside the home-directory of SPC, of which we will try to set up our logging with. If said file
-     * fails for whatever reason, we will try to use a config inside the directory from which SPC was
-     * executed. Should that fail, too, the config from the classpath is used, to ensure we always
-     * have default configs available. Should that fail, too, though, log4j is set up with its own
-     * default settings.
-     *
-     * @param loggerContext logger context passed from log4j itself
-     * @param source        configuration source passed from log4j itself. Attempts to overwrite it
-     * are made, but if all else fails it is used to set up logging with log4j's
-     * default config.
-     * @return Custom configuration with proper logs-directory set.
-     * @author Griefed
-     */
-    override fun getConfiguration(loggerContext: LoggerContext, source: ConfigurationSource): Configuration {
-        val config = File(File("").absolutePath, "log4j2.xml")
-        val configSource: ConfigurationSource
-        if (log4jXml.isFile) {
-            try {
-                return getXmlConfig(log4jXml, loggerContext)
-            } catch (ex: IOException) {
-                println("Couldn't parse $log4jXml.")
-                ex.printStackTrace()
-            }
-        } else if (config.isFile) {
-            try {
-                return getXmlConfig(config, loggerContext)
-            } catch (ex: IOException) {
-                println("Couldn't parse $config.")
-                ex.printStackTrace()
-            }
-        }
-        try {
-            configSource = ConfigurationSource(this.javaClass.getResourceAsStream("/log4j2.xml")!!)
-            return CustomXmlConfiguration(loggerContext, configSource)
-        } catch (ex: IOException) {
-            println("Couldn't parse resource log4j2.xml.")
-            ex.printStackTrace()
-        }
-        return CustomXmlConfiguration(loggerContext, source)
-    }
-
-    private fun getXmlConfig(sourceFile: File, loggerContext: LoggerContext): CustomXmlConfiguration {
-        val configSource: ConfigurationSource
-        val stream = sourceFile.inputStream()
-        configSource = ConfigurationSource(stream, sourceFile)
-        val custom = CustomXmlConfiguration(loggerContext, configSource)
-        stream.close()
-        return custom
-    }
-
-    /**
-     * Custom XmlConfiguration to pass our custom log4j2.xml config to log4j.
-     *
-     * Set up the XML configuration with the passed context and config source. For the config source
-     * being used, [LoggingConfig.getConfiguration] where
-     * multiple attempts at creating a new CustomXmlConfiguration using our own log4j2.xml are made
-     * before the default log4j setup is used.
-     *
-     * @param loggerContext logger context passed from log4j itself
-     * @param configSource  configuration source passed from
-     * [LoggingConfig.getConfiguration].
-     * @author Griefed
-     */
-    @Suppress("RedundantOverride")
-    inner class CustomXmlConfiguration(loggerContext: LoggerContext?, configSource: ConfigurationSource?) :
-        XmlConfiguration(loggerContext, configSource) {
-
-        /**
-         * For now, all this does is call the [XmlConfiguration.doConfigure]-method to set up the
-         * configuration with the passed source from the constructor. Custom values and settings can be
-         * set here in the future, should a need arise to do so.
-         *
-         * @author Griefed
-         */
-        override fun doConfigure() = super.doConfigure()
-    }
-}
\ No newline at end of file
diff --git a/serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/modscanning/NeoForgeTomlScanner.kt b/serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/modscanning/NeoForgeTomlScanner.kt
deleted file mode 100644
index 504f05395..000000000
--- a/serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/modscanning/NeoForgeTomlScanner.kt
+++ /dev/null
@@ -1,8 +0,0 @@
-package de.griefed.serverpackcreator.api.modscanning
-
-import de.griefed.serverpackcreator.api.utilities.TomlParser
-
-actual class NeoForgeTomlScanner actual constructor(private val tomlParser: TomlParser): ForgeTomlScanner(tomlParser) {
-    actual override val modsToml: String
-        get() = "META-INF/neoforge.mods.toml"
-}
\ No newline at end of file
diff --git a/serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/plugins/TypeAliases.kt b/serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/plugins/TypeAliases.kt
deleted file mode 100644
index 8e5d02db2..000000000
--- a/serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/plugins/TypeAliases.kt
+++ /dev/null
@@ -1,25 +0,0 @@
-/* Copyright (C) 2024  Griefed
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301
- * USA
- *
- * The full license can be found at https:github.com/Griefed/ServerPackCreator/blob/main/LICENSE
- */
-package de.griefed.serverpackcreator.api.plugins
-
-/**
- * Type alias to link the [ExtensionPoint] to [org.pf4j.ExtensionPoint]
- */
-actual typealias ExtensionPoint = org.pf4j.ExtensionPoint
\ No newline at end of file
diff --git a/serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/utilities/TypeAliases.kt b/serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/utilities/TypeAliases.kt
deleted file mode 100644
index 2e7e1af6c..000000000
--- a/serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/utilities/TypeAliases.kt
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * Copyright (C) 2024 Griefed.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301
- * USA
- *
- * The full license can be found at https:github.com/Griefed/ServerPackCreator/blob/main/LICENSE
- */
-package de.griefed.serverpackcreator.api.utilities
-
-/**
- * Type alias to link [Optional] to [java.util.Optional]
- */
-actual typealias Optional<T> = java.util.Optional<T>
-
-/**
- * Type alias to link [CommentedConfig] to [com.electronwill.nightconfig.core.CommentedConfig]
- */
-actual typealias CommentedConfig = com.electronwill.nightconfig.core.CommentedConfig
-
-/**
- * Type alias to link [TomlParser] to [com.electronwill.nightconfig.toml.TomlParser]
- */
-actual typealias TomlParser = com.electronwill.nightconfig.toml.TomlParser
-
-/**
- * Type alias to link [File] to [java.io.File]
- */
-actual typealias File = java.io.File
-
-/**
- * Type alias to link [URL] to [java.net.URL]
- */
-actual typealias URL = java.net.URL
-
-/**
- * Type alias to link [Icon] to [javax.swing.Icon]
- */
-actual typealias Icon = javax.swing.Icon
-
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/minecraft-manifest.json b/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/minecraft-manifest.json
deleted file mode 100644
index 70abe2191..000000000
--- a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/minecraft-manifest.json
+++ /dev/null
@@ -1 +0,0 @@
-{"latest": {"release": "1.20.4", "snapshot": "24w07a"}, "versions": [{"id": "24w07a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/60823331a5b8805ac1fcca472f8069aa7bbddd1c/24w07a.json", "time": "2024-02-14T12:59:20+00:00", "releaseTime": "2024-02-14T12:51:01+00:00"}, {"id": "24w06a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/b8c3bb16137c554bb111d45380ee91605a2f0ac5/24w06a.json", "time": "2024-02-14T10:23:40+00:00", "releaseTime": "2024-02-07T14:47:18+00:00"}, {"id": "24w05b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/24d017bb669cb0d6369d6098276fa9f426f684c5/24w05b.json", "time": "2024-02-14T12:27:44+00:00", "releaseTime": "2024-02-01T12:55:14+00:00"}, {"id": "24w05a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/5478297366d5746bb57a2b0776bac4caea39867e/24w05a.json", "time": "2024-02-14T12:27:44+00:00", "releaseTime": "2024-01-31T13:05:26+00:00"}, {"id": "24w04a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/b0efc87eb2583d5cf5148caec5e6c9340030c84d/24w04a.json", "time": "2024-02-14T12:27:44+00:00", "releaseTime": "2024-01-24T13:42:45+00:00"}, {"id": "24w03b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/be9a1e98195b0ebf5b9fec52955753a89b701c4c/24w03b.json", "time": "2024-02-14T12:27:44+00:00", "releaseTime": "2024-01-18T12:42:37+00:00"}, {"id": "24w03a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/812c3cba4eb343e16512a8cd4b79bcd1eea750a6/24w03a.json", "time": "2024-02-14T12:27:44+00:00", "releaseTime": "2024-01-17T13:19:20+00:00"}, {"id": "23w51b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/6b9c7f971601b13ca667631501ffff7020a08442/23w51b.json", "time": "2024-02-14T12:27:44+00:00", "releaseTime": "2023-12-18T15:39:14+00:00"}, {"id": "23w51a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/4cb476a0df1607790df423895abd200d89472eaa/23w51a.json", "time": "2024-02-14T12:27:44+00:00", "releaseTime": "2023-12-18T13:36:46+00:00"}, {"id": "1.20.4", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/487afa9d48c57e0b2137367c6596e0cf4f9fc64e/1.20.4.json", "time": "2024-02-14T12:27:44+00:00", "releaseTime": "2023-12-07T12:56:20+00:00"}, {"id": "1.20.4-rc1", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/e4beca2b0898b0e9b2b86923a08d502767cf2490/1.20.4-rc1.json", "time": "2024-02-14T12:27:44+00:00", "releaseTime": "2023-12-06T14:38:01+00:00"}, {"id": "1.20.3", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/6562181dd0ea1933ed682b2abf72dbd85a89529f/1.20.3.json", "time": "2024-02-14T12:27:44+00:00", "releaseTime": "2023-12-04T12:10:32+00:00"}, {"id": "1.20.3-rc1", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/d67d84cb1bb95d9f8ec8f912dcbc58388891831d/1.20.3-rc1.json", "time": "2024-02-14T12:27:44+00:00", "releaseTime": "2023-11-30T13:41:45+00:00"}, {"id": "1.20.3-pre4", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/bd3027bb1888bc2cdf2a2d255b028fb97de58754/1.20.3-pre4.json", "time": "2024-02-14T12:27:44+00:00", "releaseTime": "2023-11-28T13:47:32+00:00"}, {"id": "1.20.3-pre3", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/a2bee72f1bece23638c48d99f0c6fdffa3e6284f/1.20.3-pre3.json", "time": "2024-02-14T12:27:44+00:00", "releaseTime": "2023-11-27T14:24:36+00:00"}, {"id": "1.20.3-pre2", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/776abfcc0e9a3773f2fcd222ef7eccc76a83c1bd/1.20.3-pre2.json", "time": "2024-02-14T12:27:44+00:00", "releaseTime": "2023-11-22T12:21:26+00:00"}, {"id": "1.20.3-pre1", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/ef23636271b496c488b55eadea6e0dde54d9080e/1.20.3-pre1.json", "time": "2024-02-14T12:27:44+00:00", "releaseTime": "2023-11-20T15:40:14+00:00"}, {"id": "23w46a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/c922efe1be32467ff57cabdca5cdccbf01435222/23w46a.json", "time": "2024-02-14T06:27:29+00:00", "releaseTime": "2023-11-16T14:11:33+00:00"}, {"id": "23w45a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/257bbc3202cb5154eebffe00a18587307346348b/23w45a.json", "time": "2024-02-14T06:27:29+00:00", "releaseTime": "2023-11-08T13:59:58+00:00"}, {"id": "23w44a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/954d2a95402aa9510de5c5f3c56a83ce02b39252/23w44a.json", "time": "2024-02-14T06:26:59+00:00", "releaseTime": "2023-11-01T12:30:52+00:00"}, {"id": "23w43b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/add25040c55bf8b1a3065b95aec30005b765bfbc/23w43b.json", "time": "2024-02-14T06:26:59+00:00", "releaseTime": "2023-10-26T13:46:16+00:00"}, {"id": "23w43a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/bc758929df7bca5d86a3e9b8439a4052f1a43938/23w43a.json", "time": "2024-02-14T06:26:59+00:00", "releaseTime": "2023-10-25T13:34:37+00:00"}, {"id": "23w42a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/a06e6d7e64d62dafb93f808f3d21f0ecc076643b/23w42a.json", "time": "2024-02-14T06:31:22+00:00", "releaseTime": "2023-10-18T11:37:28+00:00"}, {"id": "23w41a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/7c645769579a5d0d9d1c987452e1a2f98c576a29/23w41a.json", "time": "2024-02-14T06:30:52+00:00", "releaseTime": "2023-10-11T12:32:46+00:00"}, {"id": "23w40a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/156bb700ce83ef46d2d33c45dc3028e1bc192556/23w40a.json", "time": "2024-02-14T06:30:52+00:00", "releaseTime": "2023-10-04T12:48:53+00:00"}, {"id": "1.20.2", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/ec0f1b6571c89eb5c924d680a6ccc58af4e567f1/1.20.2.json", "time": "2024-02-14T06:30:52+00:00", "releaseTime": "2023-09-20T09:02:57+00:00"}, {"id": "1.20.2-rc2", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/39dbfc7a415d20dd91bc9b464c8fd6c170d9b5d9/1.20.2-rc2.json", "time": "2024-02-14T06:30:52+00:00", "releaseTime": "2023-09-18T12:34:57+00:00"}, {"id": "1.20.2-rc1", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/62a2827bc2466c974378a8e428c55c724c16a501/1.20.2-rc1.json", "time": "2024-02-14T06:30:52+00:00", "releaseTime": "2023-09-15T13:10:30+00:00"}, {"id": "1.20.2-pre4", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/d29b574032d79d416a1e1e39ad88431896ae3d8c/1.20.2-pre4.json", "time": "2024-02-14T06:30:52+00:00", "releaseTime": "2023-09-13T15:06:51+00:00"}, {"id": "1.20.2-pre3", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/c3fa259f4d7b177701407c9e3370c14bec28a8e2/1.20.2-pre3.json", "time": "2024-02-14T06:30:52+00:00", "releaseTime": "2023-09-12T12:15:08+00:00"}, {"id": "1.20.2-pre2", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/51ed27dbc56aaeff0bf826e35a8485cd9d4c1fb8/1.20.2-pre2.json", "time": "2024-02-14T06:30:52+00:00", "releaseTime": "2023-09-07T12:42:32+00:00"}, {"id": "1.20.2-pre1", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/5d0c5c636147fef96c08d2ced4c6c232b4303421/1.20.2-pre1.json", "time": "2024-02-14T06:30:23+00:00", "releaseTime": "2023-09-05T12:06:20+00:00"}, {"id": "23w35a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/4423cde4f0b4ad71673c9041a44ec3ca305e83d8/23w35a.json", "time": "2024-02-14T06:30:23+00:00", "releaseTime": "2023-08-30T11:24:35+00:00"}, {"id": "23w33a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/048a2878f7c48bcb7cc922fa4c065b3a7196cb71/23w33a.json", "time": "2024-02-14T06:30:23+00:00", "releaseTime": "2023-08-17T11:39:08+00:00"}, {"id": "23w32a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/55a07fee161227d0c36b7afa4a84b0addbc3b835/23w32a.json", "time": "2024-02-14T06:30:23+00:00", "releaseTime": "2023-08-09T12:14:25+00:00"}, {"id": "23w31a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/fc3f2995e46d99c842a8ce15cddc458043dc7c8a/23w31a.json", "time": "2024-02-14T06:29:53+00:00", "releaseTime": "2023-08-01T10:03:13+00:00"}, {"id": "1.20.1", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/4fdbfecb16fd5ed3952919eeb6ff4883d9ad77cd/1.20.1.json", "time": "2024-02-14T06:29:24+00:00", "releaseTime": "2023-06-12T13:25:51+00:00"}, {"id": "1.20.1-rc1", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/88af588cae7dbbf63d01d817cf88308e93f3281b/1.20.1-rc1.json", "time": "2024-02-14T06:29:24+00:00", "releaseTime": "2023-06-09T14:15:49+00:00"}, {"id": "1.20", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/900d9aeaac64088cb6e65713bda7570d8e3e5a41/1.20.json", "time": "2024-02-14T06:29:24+00:00", "releaseTime": "2023-06-02T08:36:17+00:00"}, {"id": "1.20-rc1", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/147b63e6058bfac2e1e7c56fc1c6bfa9c887a1e5/1.20-rc1.json", "time": "2024-02-14T06:29:24+00:00", "releaseTime": "2023-05-31T12:33:33+00:00"}, {"id": "1.20-pre7", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/d5bea37318677a7f57c3689c1a829726e6cd94ee/1.20-pre7.json", "time": "2024-02-14T06:29:24+00:00", "releaseTime": "2023-05-29T13:44:34+00:00"}, {"id": "1.20-pre6", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/afbe83d99c4b46f71a3b55eadd13ee819ca27007/1.20-pre6.json", "time": "2024-02-14T06:29:24+00:00", "releaseTime": "2023-05-25T12:22:00+00:00"}, {"id": "1.20-pre5", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/423dbeecb640a6699e835c460b9f2738324f4a94/1.20-pre5.json", "time": "2024-02-14T06:29:24+00:00", "releaseTime": "2023-05-23T12:22:52+00:00"}, {"id": "1.20-pre4", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/bb869ba0d4435a26a469631b3d45954c5236780b/1.20-pre4.json", "time": "2024-02-14T06:29:24+00:00", "releaseTime": "2023-05-19T13:13:45+00:00"}, {"id": "1.20-pre3", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/f7ae5f3347e24c170359a53a84ddaa19d4edcbfd/1.20-pre3.json", "time": "2024-02-14T06:29:24+00:00", "releaseTime": "2023-05-19T11:39:46+00:00"}, {"id": "1.20-pre2", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/8b3636cdb4e02060d2fdfb69ffff06f81f439083/1.20-pre2.json", "time": "2024-02-14T06:29:24+00:00", "releaseTime": "2023-05-16T11:34:54+00:00"}, {"id": "1.20-pre1", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/1080aa81195afc2e81ac84f737d1cdb2eadd120f/1.20-pre1.json", "time": "2024-02-14T06:29:24+00:00", "releaseTime": "2023-05-10T12:19:34+00:00"}, {"id": "23w18a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/bb96df333a46cb541a1224592e4fe5b20a4afed6/23w18a.json", "time": "2024-02-14T06:29:24+00:00", "releaseTime": "2023-05-03T11:29:26+00:00"}, {"id": "23w17a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/5c8dc28a77a3895fa810e564f9d06122e774f84b/23w17a.json", "time": "2024-02-14T06:29:24+00:00", "releaseTime": "2023-04-26T12:09:48+00:00"}, {"id": "23w16a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/43cc67a4968b49fe6b58f18521ad08fdc412b832/23w16a.json", "time": "2024-02-14T06:28:55+00:00", "releaseTime": "2023-04-20T11:55:19+00:00"}, {"id": "23w14a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/a9a53e5abfec16b42f40a9940782ea344ea8c2a6/23w14a.json", "time": "2024-02-14T06:28:55+00:00", "releaseTime": "2023-04-05T12:05:17+00:00"}, {"id": "23w13a_or_b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/8dda30a6a7b40d8c23eeea936cf9f4397d6754e2/23w13a_or_b.json", "time": "2024-02-14T06:28:26+00:00", "releaseTime": "2023-04-01T12:52:18+00:00"}, {"id": "23w13a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/563c045969f7b51f9b7f5ff32a262bdb4cace4ef/23w13a.json", "time": "2024-02-14T06:28:26+00:00", "releaseTime": "2023-03-29T13:54:16+00:00"}, {"id": "23w12a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/9e40321a2ae83fb6e57bf7c4c2ba2ce173e568cd/23w12a.json", "time": "2024-02-14T06:28:26+00:00", "releaseTime": "2023-03-22T13:28:42+00:00"}, {"id": "1.19.4", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/94aa32edf820b5b42c208c7b0a5a72fb6863cb27/1.19.4.json", "time": "2024-02-14T06:28:26+00:00", "releaseTime": "2023-03-14T12:56:18+00:00"}, {"id": "1.19.4-rc3", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/c7e823612ba124d36b8668625cbd76f9880d386b/1.19.4-rc3.json", "time": "2024-02-14T06:28:26+00:00", "releaseTime": "2023-03-13T10:03:11+00:00"}, {"id": "1.19.4-rc2", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/1cb5bb21bdbb4870ee1b03198c44bbbb3f862735/1.19.4-rc2.json", "time": "2024-02-14T06:28:26+00:00", "releaseTime": "2023-03-10T12:42:54+00:00"}, {"id": "1.19.4-rc1", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/b89d4f2241fa8b61f6f26e369c5afeeef245d1bc/1.19.4-rc1.json", "time": "2024-02-14T06:28:26+00:00", "releaseTime": "2023-03-09T14:35:50+00:00"}, {"id": "1.19.4-pre4", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/6ecc95cb84a4a0e244b7ee642d23f1bff25ad915/1.19.4-pre4.json", "time": "2024-02-14T06:28:26+00:00", "releaseTime": "2023-03-08T13:08:22+00:00"}, {"id": "1.19.4-pre3", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/e1c07ab8d32abc8b8683dee3a6efb951aabfecca/1.19.4-pre3.json", "time": "2024-02-14T06:28:26+00:00", "releaseTime": "2023-03-01T14:11:05+00:00"}, {"id": "1.19.4-pre2", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/d5602df64866b1ed8aef6e328aa7f82200c35a24/1.19.4-pre2.json", "time": "2024-02-14T06:28:26+00:00", "releaseTime": "2023-02-27T13:38:53+00:00"}, {"id": "1.19.4-pre1", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/6a4be9b4f5cefa904c029e556749a39d1e4c6354/1.19.4-pre1.json", "time": "2024-02-14T06:28:26+00:00", "releaseTime": "2023-02-22T16:00:34+00:00"}, {"id": "23w07a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/9ee00143e9282cb1a3ac3531527b224ed42cd046/23w07a.json", "time": "2024-02-14T06:27:57+00:00", "releaseTime": "2023-02-15T14:32:29+00:00"}, {"id": "23w06a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/5a06a6f7dabdacc032135e1acad6314350087a60/23w06a.json", "time": "2024-02-14T06:27:57+00:00", "releaseTime": "2023-02-08T15:00:04+00:00"}, {"id": "23w05a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/12f243215c907bdff76944a3b124a21a6cabc4e1/23w05a.json", "time": "2024-02-14T06:27:57+00:00", "releaseTime": "2023-02-01T14:20:33+00:00"}, {"id": "23w04a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/99ef64d2dd255d63b77ac46fe90351b5f31ab2e2/23w04a.json", "time": "2024-02-14T06:27:57+00:00", "releaseTime": "2023-01-24T15:19:06+00:00"}, {"id": "23w03a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/fed6c5f1d6a2f2f60fcb6d0795ef793ba85a8f24/23w03a.json", "time": "2024-02-14T06:27:57+00:00", "releaseTime": "2023-01-18T13:10:31+00:00"}, {"id": "1.19.3", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/79f0c52c94491ad0e74f40c5796acbd9e66ac6f0/1.19.3.json", "time": "2024-02-14T06:27:57+00:00", "releaseTime": "2022-12-07T08:17:18+00:00"}, {"id": "1.19.3-rc3", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/d4e0bf72580438a39cd00c5cf5a9c783d2250db3/1.19.3-rc3.json", "time": "2024-02-14T06:27:57+00:00", "releaseTime": "2022-12-06T10:24:01+00:00"}, {"id": "1.19.3-rc2", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/ff5583b739f7db47b09708707c3b34fdc5cd09af/1.19.3-rc2.json", "time": "2024-02-14T06:27:57+00:00", "releaseTime": "2022-12-05T13:21:34+00:00"}, {"id": "1.19.3-rc1", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/9ebf5ed646cabc1e61db0aaccc1c3d2f031ad8af/1.19.3-rc1.json", "time": "2024-02-14T06:27:57+00:00", "releaseTime": "2022-12-01T13:45:18+00:00"}, {"id": "1.19.3-pre3", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/8871b908ed37c611cd8989d010ddf456500036e9/1.19.3-pre3.json", "time": "2024-02-14T06:27:57+00:00", "releaseTime": "2022-11-29T14:28:08+00:00"}, {"id": "1.19.3-pre2", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/d876a03a49811d8b4076773a2c18b71c8498bd4f/1.19.3-pre2.json", "time": "2024-02-14T06:27:57+00:00", "releaseTime": "2022-11-23T16:12:25+00:00"}, {"id": "1.19.3-pre1", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/8b3d37c6a23a348ebcfce459128fd40a334e5d57/1.19.3-pre1.json", "time": "2024-02-14T06:27:57+00:00", "releaseTime": "2022-11-22T13:59:37+00:00"}, {"id": "22w46a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/72c3489f2fec559b406cd4f02af38d6a3cce1411/22w46a.json", "time": "2024-02-14T06:27:57+00:00", "releaseTime": "2022-11-16T13:32:50+00:00"}, {"id": "22w45a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/7b99f8aa69c8ad2b95caee660f39e527a8283718/22w45a.json", "time": "2024-02-14T06:27:57+00:00", "releaseTime": "2022-11-09T14:30:16+00:00"}, {"id": "22w44a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/7d7d539e8431eaf94eee88061f096436d53ee37d/22w44a.json", "time": "2024-02-14T06:26:29+00:00", "releaseTime": "2022-11-02T13:15:43+00:00"}, {"id": "22w43a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/445cb9a4eea11c0cccbd531373b04a070c98ced4/22w43a.json", "time": "2024-02-14T06:26:29+00:00", "releaseTime": "2022-10-26T11:55:59+00:00"}, {"id": "22w42a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/52ccc019eb718de161e4ebf996099e0951910af7/22w42a.json", "time": "2024-02-14T06:26:29+00:00", "releaseTime": "2022-10-19T09:34:22+00:00"}, {"id": "1.19.2", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/ed548106acf3ac7e8205a6ee8fd2710facfa164f/1.19.2.json", "time": "2023-06-07T10:31:30+00:00", "releaseTime": "2022-08-05T11:57:05+00:00"}, {"id": "1.19.2-rc2", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/ebecfcfa284240daa29737c84eb98a2d2e1a33c2/1.19.2-rc2.json", "time": "2023-06-07T10:31:30+00:00", "releaseTime": "2022-08-04T15:19:44+00:00"}, {"id": "1.19.2-rc1", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/f8549c05d26a79c0fb5701ba66d200465daa5f18/1.19.2-rc1.json", "time": "2023-06-07T10:31:30+00:00", "releaseTime": "2022-08-04T10:07:26+00:00"}, {"id": "1.19.1", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/39d5e8925d37490c6f2abb2e02b8c6f1b35719df/1.19.1.json", "time": "2023-06-07T10:31:30+00:00", "releaseTime": "2022-07-27T09:25:33+00:00"}, {"id": "1.19.1-rc3", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/8762a93dc173c7a8e68d70ac5517b37e2c5f969f/1.19.1-rc3.json", "time": "2023-06-07T10:31:30+00:00", "releaseTime": "2022-07-26T15:34:35+00:00"}, {"id": "1.19.1-rc2", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/be8528e20ead28832f20e4278f45519d1e28022a/1.19.1-rc2.json", "time": "2023-06-07T10:31:30+00:00", "releaseTime": "2022-07-21T16:25:50+00:00"}, {"id": "1.19.1-pre6", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/a0d36b2776f02dc9d864f0f931b6c052435f7918/1.19.1-pre6.json", "time": "2023-06-07T10:31:30+00:00", "releaseTime": "2022-07-20T15:49:31+00:00"}, {"id": "1.19.1-pre5", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/1e832137d90ae9915e1b1a22537f30feb0178ce0/1.19.1-pre5.json", "time": "2023-06-07T10:31:30+00:00", "releaseTime": "2022-07-15T11:51:44+00:00"}, {"id": "1.19.1-pre4", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/b2cebb78f1c95d5d886e2c30e8cf913f574ecd3f/1.19.1-pre4.json", "time": "2023-06-07T10:31:30+00:00", "releaseTime": "2022-07-08T11:41:59+00:00"}, {"id": "1.19.1-pre3", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/05935ad004751df834add5d8111bea341f388849/1.19.1-pre3.json", "time": "2023-06-07T10:31:30+00:00", "releaseTime": "2022-07-06T14:50:46+00:00"}, {"id": "1.19.1-pre2", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/4c2e4db17880bd4dad87cb2cd87d4b5f5d159a6e/1.19.1-pre2.json", "time": "2023-06-07T10:31:30+00:00", "releaseTime": "2022-06-30T15:57:20+00:00"}, {"id": "1.19.1-rc1", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/dc09b172bbef8c24a69c4c6711e96051464204ad/1.19.1-rc1.json", "time": "2023-06-07T10:31:30+00:00", "releaseTime": "2022-06-23T16:32:41+00:00"}, {"id": "1.19.1-pre1", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/b684045dca48e65dbf5ec5f09070d9382731d0ab/1.19.1-pre1.json", "time": "2023-06-07T10:31:30+00:00", "releaseTime": "2022-06-21T17:13:59+00:00"}, {"id": "22w24a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/1a490c090ec1affab43deba00929558c73dd1e23/22w24a.json", "time": "2023-06-07T10:31:30+00:00", "releaseTime": "2022-06-15T16:21:49+00:00"}, {"id": "1.19", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/14bbfb25fb1c1c798e3c9b9482b081a78d1f3a9d/1.19.json", "time": "2023-06-07T10:31:30+00:00", "releaseTime": "2022-06-07T09:42:18+00:00"}, {"id": "1.19-rc2", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/ae2b88a016be92e5838afa6232005b41e2935622/1.19-rc2.json", "time": "2023-06-07T10:31:30+00:00", "releaseTime": "2022-06-03T11:47:25+00:00"}, {"id": "1.19-rc1", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/f216ace4c19321071a80e7c6dd51efe402032e94/1.19-rc1.json", "time": "2023-06-07T10:31:30+00:00", "releaseTime": "2022-06-02T12:12:52+00:00"}, {"id": "1.19-pre5", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/800c849fe1e8694e8023920e01174e3d2f73065b/1.19-pre5.json", "time": "2023-06-07T10:31:30+00:00", "releaseTime": "2022-06-01T10:56:23+00:00"}, {"id": "1.19-pre4", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/11edfa21e200734858abdd466aeead7754cc68e2/1.19-pre4.json", "time": "2023-06-07T10:31:30+00:00", "releaseTime": "2022-05-30T14:43:01+00:00"}, {"id": "1.19-pre3", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/bf1ebc7ae0dbef7b92307a11eb0cbbfeaa3359e2/1.19-pre3.json", "time": "2023-06-07T10:31:30+00:00", "releaseTime": "2022-05-25T09:56:47+00:00"}, {"id": "1.19-pre2", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/5dbf076b98594a81069a3d574d985f8e3a701990/1.19-pre2.json", "time": "2023-06-07T10:31:30+00:00", "releaseTime": "2022-05-23T14:54:00+00:00"}, {"id": "1.19-pre1", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/277c1456e8de294125887c0937ad39f9d286f7e6/1.19-pre1.json", "time": "2023-06-07T10:31:30+00:00", "releaseTime": "2022-05-18T13:51:54+00:00"}, {"id": "22w19a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/b823251598bcefadad774283db6979e40044e229/22w19a.json", "time": "2023-06-07T10:31:30+00:00", "releaseTime": "2022-05-12T15:36:11+00:00"}, {"id": "22w18a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/1de25e62031021df204de79c264822898c937447/22w18a.json", "time": "2023-06-07T10:31:30+00:00", "releaseTime": "2022-05-04T14:41:35+00:00"}, {"id": "22w17a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/4df4e4831fafbaa4d41895f448a0596d779425f3/22w17a.json", "time": "2023-06-07T10:31:30+00:00", "releaseTime": "2022-04-27T15:54:15+00:00"}, {"id": "22w16b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/f6f22cde08f4603aa90aec80a9c5b60b93a09b15/22w16b.json", "time": "2023-06-07T10:31:30+00:00", "releaseTime": "2022-04-20T17:25:32+00:00"}, {"id": "22w16a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/a39b0f1591257664a1296b8e95a0689c1cbdad73/22w16a.json", "time": "2023-06-07T10:31:30+00:00", "releaseTime": "2022-04-20T14:37:07+00:00"}, {"id": "22w15a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/2ed4589fdbc1d58a6d60e2b6809ac956d0a7cf34/22w15a.json", "time": "2023-06-07T10:31:30+00:00", "releaseTime": "2022-04-13T15:41:17+00:00"}, {"id": "22w14a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/36abf1492f25e5bb7187307fefc91470cd40817d/22w14a.json", "time": "2023-06-07T10:31:30+00:00", "releaseTime": "2022-04-06T13:37:12+00:00"}, {"id": "22w13oneblockatatime", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/d70cef49b7606e8c37e49abad4ff542e2ce21d09/22w13oneblockatatime.json", "time": "2023-06-07T10:31:30+00:00", "releaseTime": "2022-04-01T11:56:58+00:00"}, {"id": "22w13a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/bd1e0454545c498d20d25e4d1bc8fd4ddeeb06fe/22w13a.json", "time": "2023-06-07T10:31:30+00:00", "releaseTime": "2022-03-31T14:53:25+00:00"}, {"id": "22w12a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/24998bd342996995e1a2007111056906f465a867/22w12a.json", "time": "2023-06-07T10:31:30+00:00", "releaseTime": "2022-03-24T16:15:02+00:00"}, {"id": "22w11a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/4f1500bb4141a58c8692224e1157c986c6a00075/22w11a.json", "time": "2023-06-07T10:31:30+00:00", "releaseTime": "2022-03-16T15:55:38+00:00"}, {"id": "1.18.2", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/334b33fcba3c9be4b7514624c965256535bd7eba/1.18.2.json", "time": "2023-06-07T10:50:17+00:00", "releaseTime": "2022-02-28T10:42:45+00:00"}, {"id": "1.18.2-rc1", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/a88f2199e697f43c06d7051186762cd514f5f629/1.18.2-rc1.json", "time": "2023-06-07T10:50:17+00:00", "releaseTime": "2022-02-25T13:25:40+00:00"}, {"id": "1.18.2-pre3", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/c93d7580baf1b292763fa14a379516ffe5822967/1.18.2-pre3.json", "time": "2023-06-07T10:50:17+00:00", "releaseTime": "2022-02-23T15:23:12+00:00"}, {"id": "1.18.2-pre2", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/46e96658399bf2e1487d88181bd75689978491f8/1.18.2-pre2.json", "time": "2023-06-07T10:50:17+00:00", "releaseTime": "2022-02-21T15:26:19+00:00"}, {"id": "1.18.2-pre1", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/59bd690c22c69ace39595d3b14bf85a01bb54f35/1.18.2-pre1.json", "time": "2023-06-07T10:50:17+00:00", "releaseTime": "2022-02-18T16:00:32+00:00"}, {"id": "22w07a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/83d4e38c96c37a840fed51747e98d45d82115405/22w07a.json", "time": "2023-06-07T10:50:17+00:00", "releaseTime": "2022-02-16T16:13:58+00:00"}, {"id": "22w06a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/f46697f288f553f7a21a42291b85d708924128e8/22w06a.json", "time": "2023-06-07T10:50:17+00:00", "releaseTime": "2022-02-09T16:47:48+00:00"}, {"id": "22w05a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/bebb4be7c06e5b311e08a46212328c0d1dee1e60/22w05a.json", "time": "2023-06-07T10:50:17+00:00", "releaseTime": "2022-02-02T16:08:39+00:00"}, {"id": "22w03a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/b19476adc780897c3ea2805bc90ff91f694093bd/22w03a.json", "time": "2023-06-07T10:50:17+00:00", "releaseTime": "2022-01-19T16:04:59+00:00"}, {"id": "1.18.1", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/7ff864e988a2c29907154d5f9701e87e5d5e554a/1.18.1.json", "time": "2023-06-07T10:50:17+00:00", "releaseTime": "2021-12-10T08:23:00+00:00"}, {"id": "1.18.1-rc3", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/027ff0f43a3589b3ea16771ec11d052fc0fdf45e/1.18.1-rc3.json", "time": "2023-06-07T10:50:17+00:00", "releaseTime": "2021-12-10T03:36:38+00:00"}, {"id": "1.18.1-rc2", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/0e114a6a9e1f246dea4c8835e8046b3d8ce575e3/1.18.1-rc2.json", "time": "2023-06-07T10:50:17+00:00", "releaseTime": "2021-12-08T12:29:36+00:00"}, {"id": "1.18.1-rc1", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/2f24188f9c0759be5c844acae8b47fb582c75e7e/1.18.1-rc1.json", "time": "2023-06-07T10:50:17+00:00", "releaseTime": "2021-12-07T15:52:47+00:00"}, {"id": "1.18.1-pre1", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/01cb59a31c5af10b73ce11d04df73b469e5e8664/1.18.1-pre1.json", "time": "2023-06-07T10:50:17+00:00", "releaseTime": "2021-12-03T13:45:38+00:00"}, {"id": "1.18", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/7367ea8b7cad7c7830192441bb2846be0d2ceeac/1.18.json", "time": "2023-06-07T10:50:17+00:00", "releaseTime": "2021-11-30T09:16:29+00:00"}, {"id": "1.18-rc4", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/489269e1139f4c9ce6af64e9e80ac094accd3515/1.18-rc4.json", "time": "2023-06-07T10:50:17+00:00", "releaseTime": "2021-11-29T13:43:42+00:00"}, {"id": "1.18-rc3", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/0cea86833bdfb8de6d85f2b87b4dda2081f3fc3c/1.18-rc3.json", "time": "2023-06-07T10:50:17+00:00", "releaseTime": "2021-11-26T15:51:56+00:00"}, {"id": "1.18-rc2", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/1cd29ca38d308f1375529c2c52c7819a21bb6410/1.18-rc2.json", "time": "2023-06-07T10:50:17+00:00", "releaseTime": "2021-11-26T10:02:04+00:00"}, {"id": "1.18-rc1", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/92779f7a433c8b65d2fe52dca236a0b99a877964/1.18-rc1.json", "time": "2023-06-07T10:50:17+00:00", "releaseTime": "2021-11-25T14:28:49+00:00"}, {"id": "1.18-pre8", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/befe1636010c86b29a0b3b74d9614eaca4679185/1.18-pre8.json", "time": "2023-06-07T10:50:17+00:00", "releaseTime": "2021-11-24T14:57:32+00:00"}, {"id": "1.18-pre7", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/14c6eee2ef0b2ec4dd66d21a45288df9ea445853/1.18-pre7.json", "time": "2023-06-07T10:50:17+00:00", "releaseTime": "2021-11-23T16:37:41+00:00"}, {"id": "1.18-pre6", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/881f1e388c66a0a27f1e39759d594aba7fc827cc/1.18-pre6.json", "time": "2023-06-07T10:50:17+00:00", "releaseTime": "2021-11-22T17:09:05+00:00"}, {"id": "1.18-pre5", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/1c7297b2645db73c3548d9c7bcec9d1f1daf9a3d/1.18-pre5.json", "time": "2023-06-07T10:50:17+00:00", "releaseTime": "2021-11-19T15:47:09+00:00"}, {"id": "1.18-pre4", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/2604a38227d2943e072fb6d1e1885cf71659a620/1.18-pre4.json", "time": "2023-06-07T10:50:17+00:00", "releaseTime": "2021-11-17T18:07:56+00:00"}, {"id": "1.18-pre3", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/6bd8b415c9df47ba64474f10ce777e34d31462de/1.18-pre3.json", "time": "2023-06-07T10:50:17+00:00", "releaseTime": "2021-11-17T16:04:25+00:00"}, {"id": "1.18-pre2", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/f7bc077f4bae337c5d783a77246cdfc019f5a85e/1.18-pre2.json", "time": "2023-06-07T10:50:17+00:00", "releaseTime": "2021-11-16T17:04:48+00:00"}, {"id": "1.18-pre1", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/bad40b99d4019c10ef43641ff11dfecd5fd0a2e0/1.18-pre1.json", "time": "2023-06-07T10:50:17+00:00", "releaseTime": "2021-11-11T16:14:06+00:00"}, {"id": "21w44a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/a0a663bcbd3c43ced8e0e4889e82b79e48d2c42c/21w44a.json", "time": "2023-06-07T10:50:17+00:00", "releaseTime": "2021-11-03T16:14:34+00:00"}, {"id": "21w43a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/87fce70da2c59051a18e3d792f35839f7a799f82/21w43a.json", "time": "2023-06-07T10:50:17+00:00", "releaseTime": "2021-10-27T14:38:55+00:00"}, {"id": "21w42a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/3ce8fdf60e69bfb0944e479ada4cf6b60dcc3995/21w42a.json", "time": "2023-06-07T10:50:17+00:00", "releaseTime": "2021-10-20T12:41:25+00:00"}, {"id": "21w41a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/f05122bd9496b5277cfb24312c1a7a70510cc84a/21w41a.json", "time": "2023-06-07T10:50:17+00:00", "releaseTime": "2021-10-13T15:23:23+00:00"}, {"id": "21w40a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/a6a012bab1380ce87f9fc4a20212fd7031ac93a4/21w40a.json", "time": "2023-06-07T10:50:17+00:00", "releaseTime": "2021-10-07T11:17:50+00:00"}, {"id": "21w39a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/008cea9c2128244b9f1ffa3b9512db1e60558390/21w39a.json", "time": "2023-06-07T10:50:17+00:00", "releaseTime": "2021-09-29T16:27:05+00:00"}, {"id": "21w38a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/893da3cf2aaf60457e4805994f8d526305685e77/21w38a.json", "time": "2023-06-07T10:50:17+00:00", "releaseTime": "2021-09-23T14:36:06+00:00"}, {"id": "21w37a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/fd90ab042d60935a123a579ec03efc422f06e4bb/21w37a.json", "time": "2023-06-07T10:50:17+00:00", "releaseTime": "2021-09-15T16:04:30+00:00"}, {"id": "1.17.1", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/e0e7ab5ed6f55bbd874ef95be3c9356d67e64b57/1.17.1.json", "time": "2023-06-07T11:00:54+00:00", "releaseTime": "2021-07-06T12:01:34+00:00"}, {"id": "1.17.1-rc2", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/4224a23efdcd362508457bda732b502d3d8bfbaf/1.17.1-rc2.json", "time": "2023-06-07T11:00:54+00:00", "releaseTime": "2021-07-05T12:58:01+00:00"}, {"id": "1.17.1-rc1", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/27d7a88469c5a59420d7b060f2a253802164185f/1.17.1-rc1.json", "time": "2023-06-07T11:00:54+00:00", "releaseTime": "2021-07-01T15:23:37+00:00"}, {"id": "1.17.1-pre3", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/30637bf484bc2e530db468c42e6d2695bb806420/1.17.1-pre3.json", "time": "2023-06-07T11:00:54+00:00", "releaseTime": "2021-06-30T15:43:16+00:00"}, {"id": "1.17.1-pre2", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/95f076c3f748ab83f44bc4c80b0039626b67806e/1.17.1-pre2.json", "time": "2023-06-07T11:00:54+00:00", "releaseTime": "2021-06-29T15:14:12+00:00"}, {"id": "1.17.1-pre1", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/609fa7a9bb0d1c3855111e1d511d4ba2a398a524/1.17.1-pre1.json", "time": "2023-06-07T11:00:54+00:00", "releaseTime": "2021-06-18T12:24:40+00:00"}, {"id": "1.17", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/0d9ace8a2ecfd1f4c782786f4b985a499240ff12/1.17.json", "time": "2023-06-07T11:00:54+00:00", "releaseTime": "2021-06-08T11:00:40+00:00"}, {"id": "1.17-rc2", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/45b8f00ecc9ca265c80da0d8ad9a6710f088bc21/1.17-rc2.json", "time": "2023-06-07T11:00:54+00:00", "releaseTime": "2021-06-07T11:46:28+00:00"}, {"id": "1.17-rc1", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/ed41604ce5637dfc62e062e1ce809817d54aa46d/1.17-rc1.json", "time": "2023-06-07T11:00:54+00:00", "releaseTime": "2021-06-04T13:24:48+00:00"}, {"id": "1.17-pre5", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/29bd60294ee8387f7ca7d9c1abd835484f71bbfc/1.17-pre5.json", "time": "2023-06-07T11:00:54+00:00", "releaseTime": "2021-06-03T17:01:28+00:00"}, {"id": "1.17-pre4", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/9c91afc7b8e9bab61facd2423bd75b375df0fc2e/1.17-pre4.json", "time": "2023-06-07T11:00:54+00:00", "releaseTime": "2021-06-02T16:15:43+00:00"}, {"id": "1.17-pre3", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/de4dd57535bea923731008c1f29562211740aba6/1.17-pre3.json", "time": "2023-06-07T11:00:54+00:00", "releaseTime": "2021-06-01T15:43:46+00:00"}, {"id": "1.17-pre2", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/76f54994dc32298f0743e2a9031ad1bba04cf753/1.17-pre2.json", "time": "2023-06-07T11:00:54+00:00", "releaseTime": "2021-05-31T15:54:05+00:00"}, {"id": "1.17-pre1", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/ba419fd73cb07512bd2ca090f179e84333f9804c/1.17-pre1.json", "time": "2023-06-07T11:00:54+00:00", "releaseTime": "2021-05-27T09:39:21+00:00"}, {"id": "21w20a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/6757e49a93f18fe7b8d522f83b62d47629da37ab/21w20a.json", "time": "2023-06-07T11:00:54+00:00", "releaseTime": "2021-05-19T15:22:02+00:00"}, {"id": "21w19a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/4a43adfb683de80b158a5c6899f34f3a041dc578/21w19a.json", "time": "2023-06-07T11:00:54+00:00", "releaseTime": "2021-05-12T11:19:15+00:00"}, {"id": "21w18a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/b3266f58ade03b19896163c7cfb40cf815aa8e28/21w18a.json", "time": "2023-06-07T11:00:54+00:00", "releaseTime": "2021-05-05T15:24:35+00:00"}, {"id": "21w17a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/2af27c4d5412f4476b43882052b5cb510cbc0984/21w17a.json", "time": "2023-06-07T11:00:54+00:00", "releaseTime": "2021-04-28T13:54:05+00:00"}, {"id": "21w16a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/f083b566dd515b5706ead9522c42b187b3f2f2f6/21w16a.json", "time": "2023-06-07T11:00:54+00:00", "releaseTime": "2021-04-21T16:41:14+00:00"}, {"id": "21w15a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/ce5b993772ae22cc5f518e72b93744954945f755/21w15a.json", "time": "2023-06-07T11:00:54+00:00", "releaseTime": "2021-04-14T13:41:34+00:00"}, {"id": "21w14a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/7a67f727cc7847efc3753de26a32d051348b5fba/21w14a.json", "time": "2023-06-07T11:00:54+00:00", "releaseTime": "2021-04-07T14:04:09+00:00"}, {"id": "21w13a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/c20df75b956c2eb982a9028ceff965e1aae40345/21w13a.json", "time": "2023-06-07T11:00:54+00:00", "releaseTime": "2021-03-31T16:17:46+00:00"}, {"id": "21w11a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/c0d562d6db031a67b9569c0765c8ef68434e0ee2/21w11a.json", "time": "2023-06-07T11:00:54+00:00", "releaseTime": "2021-03-17T15:05:50+00:00"}, {"id": "21w10a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/d4982f2015d40e966beeae097307e33e2f26fa57/21w10a.json", "time": "2023-06-07T11:00:54+00:00", "releaseTime": "2021-03-10T15:24:38+00:00"}, {"id": "21w08b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/d7dbd5a6f2eaa20726235a2b40f955004339b7af/21w08b.json", "time": "2023-06-07T11:00:54+00:00", "releaseTime": "2021-02-25T11:46:34+00:00"}, {"id": "21w08a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/bc80c3181bbeebd6e0cab46fc445b76b6c9dadb1/21w08a.json", "time": "2023-06-07T11:00:54+00:00", "releaseTime": "2021-02-24T14:38:51+00:00"}, {"id": "21w07a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/96476dbdb5d6689b3f1a47c025f1b7ad3630bd95/21w07a.json", "time": "2023-06-07T11:00:54+00:00", "releaseTime": "2021-02-17T16:35:40+00:00"}, {"id": "21w06a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/446e380daf0fa4a9d42d5fcfa8984f8a9500e063/21w06a.json", "time": "2023-06-07T11:00:54+00:00", "releaseTime": "2021-02-10T17:13:54+00:00"}, {"id": "21w05b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/7e957c6d798c266d5978835fcf8f74f7af96153e/21w05b.json", "time": "2023-06-07T11:00:54+00:00", "releaseTime": "2021-02-04T15:09:29+00:00"}, {"id": "21w05a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/f28b435faf0610838bb6ddf6ace922ea27b89de9/21w05a.json", "time": "2023-06-07T11:00:54+00:00", "releaseTime": "2021-02-03T15:56:54+00:00"}, {"id": "21w03a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/4b7bb5c32164c0497717ab7ec5dc3016de6dfdc0/21w03a.json", "time": "2023-06-07T11:00:54+00:00", "releaseTime": "2021-01-20T14:56:29+00:00"}, {"id": "1.16.5", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/fba9f7833e858a1257d810d21a3a9e3c967f9077/1.16.5.json", "time": "2023-06-07T11:09:02+00:00", "releaseTime": "2021-01-14T16:05:32+00:00"}, {"id": "1.16.5-rc1", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/79b63085fb7b4805877ee719f6518ab3c87b3833/1.16.5-rc1.json", "time": "2023-06-07T11:09:02+00:00", "releaseTime": "2021-01-13T15:58:55+00:00"}, {"id": "20w51a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/08f2e16bc1ab7f7bdeaa95f2762ff05c7407100d/20w51a.json", "time": "2023-06-07T11:00:54+00:00", "releaseTime": "2020-12-16T16:27:57+00:00"}, {"id": "20w49a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/ba1eaa1e4396bd42eb1ef2a0897fcf0043551f6f/20w49a.json", "time": "2023-06-07T11:00:54+00:00", "releaseTime": "2020-12-02T16:47:20+00:00"}, {"id": "20w48a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/cbbe53da94d1368c5e2fd8309f0e7b1645957516/20w48a.json", "time": "2023-06-07T11:00:54+00:00", "releaseTime": "2020-11-25T15:42:24+00:00"}, {"id": "20w46a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/d1d7a38b0d650c51473ba04019176b575fd6f34b/20w46a.json", "time": "2023-06-07T11:00:54+00:00", "releaseTime": "2020-11-11T15:30:32+00:00"}, {"id": "20w45a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/913ae8af6dcc8b308fb58da1ee3b58e3a83f5f28/20w45a.json", "time": "2023-06-07T11:00:54+00:00", "releaseTime": "2020-11-04T16:42:00+00:00"}, {"id": "1.16.4", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/596ad61fda7612d9edf8881cf81869276bdb7f82/1.16.4.json", "time": "2023-06-07T11:09:02+00:00", "releaseTime": "2020-10-29T15:49:37+00:00"}, {"id": "1.16.4-rc1", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/ef95b0f319cb282802a4cc38e57e79d4fafc9567/1.16.4-rc1.json", "time": "2023-06-07T11:09:02+00:00", "releaseTime": "2020-10-27T16:31:08+00:00"}, {"id": "1.16.4-pre2", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/5af340937921b990c1b7da8bdac9d04fad7c3c95/1.16.4-pre2.json", "time": "2023-06-07T11:09:02+00:00", "releaseTime": "2020-10-22T15:32:17+00:00"}, {"id": "1.16.4-pre1", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/b48239bf7935185c788e07d9c2d83d788ce3f27b/1.16.4-pre1.json", "time": "2023-06-07T11:09:02+00:00", "releaseTime": "2020-10-13T14:36:07+00:00"}, {"id": "1.16.3", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/6485dd131ef68c968041a9f6fd73094b027e42e1/1.16.3.json", "time": "2023-06-07T11:09:02+00:00", "releaseTime": "2020-09-10T13:42:37+00:00"}, {"id": "1.16.3-rc1", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/5ba5cfa865db9020ddab97df365ea8821d3eb454/1.16.3-rc1.json", "time": "2023-06-07T11:09:02+00:00", "releaseTime": "2020-09-07T12:34:06+00:00"}, {"id": "1.16.2", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/998d9ef5770d05c20d760dc16cf85151f35009f2/1.16.2.json", "time": "2023-06-07T11:09:02+00:00", "releaseTime": "2020-08-11T10:13:46+00:00"}, {"id": "1.16.2-rc2", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/278e49a115bce14e99b5fa9420103652692c9f6b/1.16.2-rc2.json", "time": "2023-06-07T11:09:02+00:00", "releaseTime": "2020-08-10T11:43:36+00:00"}, {"id": "1.16.2-rc1", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/541ad2a92d12e6d36fb6c2b29b5d69ae4b97ab23/1.16.2-rc1.json", "time": "2023-06-07T11:09:02+00:00", "releaseTime": "2020-08-07T14:35:39+00:00"}, {"id": "1.16.2-pre3", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/3df6469e9cc759a1ac0a8f6690289922d547f97b/1.16.2-pre3.json", "time": "2023-06-07T11:09:02+00:00", "releaseTime": "2020-08-06T16:44:52+00:00"}, {"id": "1.16.2-pre2", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/7768698c025d559928042452df9d79910e7818eb/1.16.2-pre2.json", "time": "2023-06-07T11:09:02+00:00", "releaseTime": "2020-08-05T15:30:50+00:00"}, {"id": "1.16.2-pre1", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/9709f88b92c9078c3d0a95dae3a225dc8cd70a34/1.16.2-pre1.json", "time": "2023-06-07T11:09:02+00:00", "releaseTime": "2020-07-29T13:19:05+00:00"}, {"id": "20w30a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/3de2ee50c31ebcd4b1fa9577e2550a6020710df5/20w30a.json", "time": "2023-06-07T11:09:02+00:00", "releaseTime": "2020-07-22T15:05:15+00:00"}, {"id": "20w29a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/d869c8cda528228a47b80dde5cc9ea138f514a99/20w29a.json", "time": "2023-06-07T11:09:02+00:00", "releaseTime": "2020-07-15T14:13:47+00:00"}, {"id": "20w28a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/33142315373d1ed7289fa6e5b8b2de6980147de8/20w28a.json", "time": "2023-06-07T11:09:02+00:00", "releaseTime": "2020-07-08T15:10:40+00:00"}, {"id": "20w27a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/e442b0f37792b83bf46e9ae0258f45faff33a7cf/20w27a.json", "time": "2023-06-07T11:09:02+00:00", "releaseTime": "2020-07-01T15:07:35+00:00"}, {"id": "1.16.1", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/54fa3af57d041d2771e66d390197b2c0288e697c/1.16.1.json", "time": "2023-06-07T11:09:02+00:00", "releaseTime": "2020-06-24T10:31:40+00:00"}, {"id": "1.16", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/e9d21d375f9c961f0e9731d4e463306d76e77c48/1.16.json", "time": "2023-06-07T11:09:02+00:00", "releaseTime": "2020-06-23T16:20:52+00:00"}, {"id": "1.16-rc1", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/49d94686688119e1d85d8c7ebc690b0f6d71ebd8/1.16-rc1.json", "time": "2023-06-07T11:09:02+00:00", "releaseTime": "2020-06-18T12:49:28+00:00"}, {"id": "1.16-pre8", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/d85ab25ae33462045ba050774cf9cbb978afebca/1.16-pre8.json", "time": "2023-06-07T11:09:02+00:00", "releaseTime": "2020-06-17T14:45:23+00:00"}, {"id": "1.16-pre7", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/ec4dc4530869505923e1ebf6fc80ea08eda831e1/1.16-pre7.json", "time": "2023-06-07T11:09:02+00:00", "releaseTime": "2020-06-16T15:31:35+00:00"}, {"id": "1.16-pre6", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/4c1ed3dcbbf22fe0a17eb05b3f1f1445f25508d6/1.16-pre6.json", "time": "2023-06-07T11:09:02+00:00", "releaseTime": "2020-06-15T16:57:57+00:00"}, {"id": "1.16-pre5", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/e41cdd44896fcfd96db07aecf89a58bbc89d6c6f/1.16-pre5.json", "time": "2023-06-07T11:09:02+00:00", "releaseTime": "2020-06-12T14:33:59+00:00"}, {"id": "1.16-pre4", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/68b121aae24c9f217378ac64e7e27e1a4ca6c6e0/1.16-pre4.json", "time": "2023-06-07T11:09:02+00:00", "releaseTime": "2020-06-11T15:45:55+00:00"}, {"id": "1.16-pre3", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/72e9981dd7fb9bc1e775a04aa844ef79192bfebc/1.16-pre3.json", "time": "2023-06-07T11:09:02+00:00", "releaseTime": "2020-06-10T14:57:43+00:00"}, {"id": "1.16-pre2", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/81ae4d3c6cabf02af6c67abd87c6b9c9501bdf26/1.16-pre2.json", "time": "2023-06-07T11:09:02+00:00", "releaseTime": "2020-06-05T10:47:59+00:00"}, {"id": "1.16-pre1", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/bcfd0eeee263ea7779c23ba7d55034607ba4b00e/1.16-pre1.json", "time": "2023-06-07T11:09:02+00:00", "releaseTime": "2020-06-04T18:17:51+00:00"}, {"id": "20w22a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/a0bbbe0674789a5b2b11705bb868a446bfd660fd/20w22a.json", "time": "2023-06-07T11:09:02+00:00", "releaseTime": "2020-05-29T11:25:02+00:00"}, {"id": "20w21a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/3d95fdd82e0fa506eb4099f3e948c378124a2baf/20w21a.json", "time": "2023-06-07T11:09:02+00:00", "releaseTime": "2020-05-20T12:07:18+00:00"}, {"id": "20w20b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/2ac29186d5062224ff326d868fe78bea79360ad1/20w20b.json", "time": "2023-06-07T11:09:02+00:00", "releaseTime": "2020-05-14T08:16:26+00:00"}, {"id": "20w20a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/4e5118f80f061490e54d843216780dabdaaf59fd/20w20a.json", "time": "2023-06-07T11:09:02+00:00", "releaseTime": "2020-05-13T15:11:43+00:00"}, {"id": "20w19a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/be653aac3f8e6cfc2bc40cc9be764f0a4ba46121/20w19a.json", "time": "2023-06-07T11:09:02+00:00", "releaseTime": "2020-05-06T16:23:24+00:00"}, {"id": "20w18a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/1c7978f8d1b6735bb0b6d813f3aed0363bf1bd8d/20w18a.json", "time": "2023-06-07T11:09:02+00:00", "releaseTime": "2020-04-29T15:16:34+00:00"}, {"id": "20w17a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/98807b36f1ee047d5e4e2744d94b28d9e5c1b7cd/20w17a.json", "time": "2023-06-07T11:09:02+00:00", "releaseTime": "2020-04-22T13:47:50+00:00"}, {"id": "20w16a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/9ca086c9195b437c08f9f0c38d25dc1955d91870/20w16a.json", "time": "2023-06-07T11:09:02+00:00", "releaseTime": "2020-04-15T14:13:01+00:00"}, {"id": "20w15a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/bbf16435ce4c151d3908b442987c162e6f7cf8c5/20w15a.json", "time": "2023-06-07T11:09:02+00:00", "releaseTime": "2020-04-08T12:29:24+00:00"}, {"id": "20w14a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/1e548dbfeb7cb9aa76888b7308112c1a03cf0cc0/20w14a.json", "time": "2023-06-07T11:09:02+00:00", "releaseTime": "2020-04-02T14:28:06+00:00"}, {"id": "20w14infinite", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/73eb2a736f0a7349fb5f73e685f847826e5321fd/20w14infinite.json", "time": "2023-06-07T11:09:02+00:00", "releaseTime": "2020-04-01T12:47:08+00:00"}, {"id": "20w13b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/430033af05f29add54241c55be62bbde6b640cd5/20w13b.json", "time": "2023-06-07T11:09:02+00:00", "releaseTime": "2020-03-26T13:00:34+00:00"}, {"id": "20w13a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/2e7daff8b5d319aca184bfa818f073663ada22d7/20w13a.json", "time": "2023-06-07T11:09:02+00:00", "releaseTime": "2020-03-25T17:05:33+00:00"}, {"id": "20w12a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/79a74e0bfd167b1d09713accb7c2fe6cd1c5dd8c/20w12a.json", "time": "2023-06-07T11:09:02+00:00", "releaseTime": "2020-03-18T16:42:06+00:00"}, {"id": "20w11a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/ac08e450ea036741d61bcb7e5ea09e5db2e945d7/20w11a.json", "time": "2023-06-07T11:09:02+00:00", "releaseTime": "2020-03-11T16:28:27+00:00"}, {"id": "20w10a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/781dbf396510e90e3ec6c845d60e05719a3c8853/20w10a.json", "time": "2023-06-07T11:09:02+00:00", "releaseTime": "2020-03-04T16:21:41+00:00"}, {"id": "20w09a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/191f7a06170d42a2aed63c2a8adf4aaae4799892/20w09a.json", "time": "2023-06-07T11:09:02+00:00", "releaseTime": "2020-02-26T16:43:08+00:00"}, {"id": "20w08a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/77545f4f812d127fd032e36413901b85215662d9/20w08a.json", "time": "2023-06-07T11:09:02+00:00", "releaseTime": "2020-02-19T13:30:09+00:00"}, {"id": "20w07a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/49b9a7a4d3ae78d74dcba384e2aea08cb58fbe37/20w07a.json", "time": "2023-06-07T11:09:02+00:00", "releaseTime": "2020-02-14T13:20:49+00:00"}, {"id": "20w06a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/59a5d77dce749c868f7338c5d6241312a9dc2f1a/20w06a.json", "time": "2023-06-07T11:09:02+00:00", "releaseTime": "2020-02-05T16:05:22+00:00"}, {"id": "1.15.2", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/e9d0adb8f642abe422909ede50f651b2b58a3573/1.15.2.json", "time": "2023-06-07T11:17:08+00:00", "releaseTime": "2020-01-17T10:03:52+00:00"}, {"id": "1.15.2-pre2", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/2b1688e3a06c0427a99cd0042554ed40eb4fafa4/1.15.2-pre2.json", "time": "2023-06-07T11:17:08+00:00", "releaseTime": "2020-01-16T12:35:57+00:00"}, {"id": "1.15.2-pre1", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/d7f37c8d4695dff2a9f553952e9c97a49ee471ca/1.15.2-pre1.json", "time": "2023-06-07T11:17:08+00:00", "releaseTime": "2020-01-14T16:19:31+00:00"}, {"id": "1.15.1", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/18c3063de87ae126b4e017121219ba802be0755b/1.15.1.json", "time": "2023-06-07T11:17:08+00:00", "releaseTime": "2019-12-16T10:29:47+00:00"}, {"id": "1.15.1-pre1", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/1b5aee0865f805a44ecdbed04c964352e86534f2/1.15.1-pre1.json", "time": "2023-06-07T11:17:08+00:00", "releaseTime": "2019-12-12T14:02:30+00:00"}, {"id": "1.15", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/833322370ab320e77717097082effe1d124d48bd/1.15.json", "time": "2023-06-07T11:17:08+00:00", "releaseTime": "2019-12-09T13:13:38+00:00"}, {"id": "1.15-pre7", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/e60f500bb19e44c0e632e02da12807ff2fe92e49/1.15-pre7.json", "time": "2023-06-07T11:17:08+00:00", "releaseTime": "2019-12-09T12:14:11+00:00"}, {"id": "1.15-pre6", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/6da29669f5a9cd8ddf8ee92888125a23eb09b877/1.15-pre6.json", "time": "2023-06-07T11:17:08+00:00", "releaseTime": "2019-12-06T12:04:30+00:00"}, {"id": "1.15-pre5", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/1e842a4e2c50234213a19931ac8a462de3021467/1.15-pre5.json", "time": "2023-06-07T11:17:08+00:00", "releaseTime": "2019-12-05T13:20:00+00:00"}, {"id": "1.15-pre4", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/b4ca2162a7a098e4e4f7dce619666d0aa6f3e2fc/1.15-pre4.json", "time": "2023-06-07T11:17:08+00:00", "releaseTime": "2019-12-03T12:24:24+00:00"}, {"id": "1.15-pre3", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/1f31491b1ea5e89427393ab3ca6aefb5e0e9c34a/1.15-pre3.json", "time": "2023-06-07T11:17:08+00:00", "releaseTime": "2019-11-28T17:17:50+00:00"}, {"id": "1.15-pre2", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/62c8b621f2be16d47fa2f05f8f6380a696cfeda3/1.15-pre2.json", "time": "2023-06-07T11:17:08+00:00", "releaseTime": "2019-11-25T18:09:38+00:00"}, {"id": "1.15-pre1", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/66e8035a07e8d2610491003ebf7c51a9c4b0ed67/1.15-pre1.json", "time": "2023-06-07T11:17:08+00:00", "releaseTime": "2019-11-21T17:01:17+00:00"}, {"id": "19w46b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/18f4384dd05ad7711714742e5c22947a3828d6a2/19w46b.json", "time": "2023-06-07T11:17:08+00:00", "releaseTime": "2019-11-14T13:29:24+00:00"}, {"id": "19w46a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/91bef07ec9143752f2ce038434f60f08e6f10089/19w46a.json", "time": "2023-06-07T11:17:08+00:00", "releaseTime": "2019-11-13T16:37:46+00:00"}, {"id": "19w45b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/ce9a87180664cce2eaa96518f6dae923943efe4c/19w45b.json", "time": "2023-06-07T11:17:08+00:00", "releaseTime": "2019-11-08T12:42:44+00:00"}, {"id": "19w45a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/7e459f7878fde73117da2cb89cbaaa6d649b1a39/19w45a.json", "time": "2023-06-07T11:17:08+00:00", "releaseTime": "2019-11-07T16:19:20+00:00"}, {"id": "19w44a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/652ec7dc926df9b0c7a7f7d00e9cfe34b3b82470/19w44a.json", "time": "2023-06-07T11:17:08+00:00", "releaseTime": "2019-10-30T15:31:44+00:00"}, {"id": "19w42a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/4c7d6f4ba7786e252c79a73a13106eb077e622a3/19w42a.json", "time": "2023-06-07T11:17:08+00:00", "releaseTime": "2019-10-16T15:30:39+00:00"}, {"id": "19w41a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/a73a6135db91f13d7399fc9d438c24a7a80fb819/19w41a.json", "time": "2023-06-07T11:17:08+00:00", "releaseTime": "2019-10-09T15:21:35+00:00"}, {"id": "19w40a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/c2b4b675af813d9e8e43767991539a1770b93e6b/19w40a.json", "time": "2023-06-07T11:17:08+00:00", "releaseTime": "2019-10-02T13:40:26+00:00"}, {"id": "19w39a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/14180226c4e65289831b3f28fc75aebf8e114deb/19w39a.json", "time": "2023-06-07T11:17:08+00:00", "releaseTime": "2019-09-27T10:13:33+00:00"}, {"id": "19w38b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/72fea837ad3bf55eaf4a1163109afba0d1f9976c/19w38b.json", "time": "2023-06-07T11:17:08+00:00", "releaseTime": "2019-09-18T14:59:13+00:00"}, {"id": "19w38a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/e43b0e8f8944107fafb785cb50e2994c4be1676f/19w38a.json", "time": "2023-06-07T11:17:08+00:00", "releaseTime": "2019-09-18T10:03:22+00:00"}, {"id": "19w37a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/8a986a197d87f45205a5650018708c7f9d9056ad/19w37a.json", "time": "2023-06-07T11:17:08+00:00", "releaseTime": "2019-09-11T11:46:44+00:00"}, {"id": "19w36a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/90bc200686ed385ca3ccae265393d28a8d3191fe/19w36a.json", "time": "2023-06-07T11:17:08+00:00", "releaseTime": "2019-09-04T11:19:34+00:00"}, {"id": "19w35a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/39e153ff4f57f533069cf24441f9fa0a23b6d223/19w35a.json", "time": "2023-06-07T11:17:08+00:00", "releaseTime": "2019-08-28T15:01:44+00:00"}, {"id": "19w34a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/79310fef2c7bb69085e9459568152049f706e52d/19w34a.json", "time": "2023-06-07T11:17:08+00:00", "releaseTime": "2019-08-22T12:06:21+00:00"}, {"id": "1.14.4", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/be146d5f66a3627ed0a87c234c4d8dde8ab35098/1.14.4.json", "time": "2023-06-07T11:25:16+00:00", "releaseTime": "2019-07-19T09:25:47+00:00"}, {"id": "1.14.4-pre7", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/9fa32d63671ca8ad48ffc01f478bb5528a9780bb/1.14.4-pre7.json", "time": "2023-06-07T11:25:16+00:00", "releaseTime": "2019-07-18T11:32:36+00:00"}, {"id": "1.14.4-pre6", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/fc516c11532c5dd97de371786969d0103df1aff9/1.14.4-pre6.json", "time": "2023-06-07T11:25:16+00:00", "releaseTime": "2019-07-15T12:39:49+00:00"}, {"id": "1.14.4-pre5", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/6561296e73e1cbc2371cda68e0f045191d413ea3/1.14.4-pre5.json", "time": "2023-06-07T11:25:16+00:00", "releaseTime": "2019-07-11T10:52:33+00:00"}, {"id": "1.14.4-pre4", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/a08857ff791232848fb4f361c05bfc3096cf02b3/1.14.4-pre4.json", "time": "2023-06-07T11:25:16+00:00", "releaseTime": "2019-07-10T12:53:29+00:00"}, {"id": "1.14.4-pre3", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/1304801a59f94205cf234f809f2ddaf78e2b64a8/1.14.4-pre3.json", "time": "2023-06-07T11:25:16+00:00", "releaseTime": "2019-07-08T11:21:42+00:00"}, {"id": "1.14.4-pre2", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/33921eca48b26430ff698ce196645d166529f270/1.14.4-pre2.json", "time": "2023-06-07T11:25:16+00:00", "releaseTime": "2019-07-04T14:41:05+00:00"}, {"id": "1.14.4-pre1", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/22fef20b2c50855f8702a06a836dc4f31412436a/1.14.4-pre1.json", "time": "2023-06-07T11:25:16+00:00", "releaseTime": "2019-07-03T13:01:01+00:00"}, {"id": "1.14.3", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/e21618620e02be5a14543d1d17ffdba941d09aa8/1.14.3.json", "time": "2023-06-07T11:25:16+00:00", "releaseTime": "2019-06-24T12:52:52+00:00"}, {"id": "1.14.3-pre4", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/e197ff501e791295140b7b6b02ca5f476075f634/1.14.3-pre4.json", "time": "2023-06-07T11:25:16+00:00", "releaseTime": "2019-06-19T11:44:29+00:00"}, {"id": "1.14.3-pre3", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/cee4ea21267c4f62171f5cf19bf5b3322424be33/1.14.3-pre3.json", "time": "2023-06-07T11:25:16+00:00", "releaseTime": "2019-06-14T08:03:33+00:00"}, {"id": "1.14.3-pre2", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/f4a376be79a51403d9cd0c1dbec1a25a2994dc85/1.14.3-pre2.json", "time": "2023-06-07T11:25:16+00:00", "releaseTime": "2019-06-07T09:11:29+00:00"}, {"id": "1.14.3-pre1", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/6345b47eb7abe7b74870ff11dbd03e282e1b0112/1.14.3-pre1.json", "time": "2023-06-07T11:25:16+00:00", "releaseTime": "2019-06-03T14:34:20+00:00"}, {"id": "1.14.2", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/83299b3bf3139ebd9ae5547b3144dcf68d4cb1fd/1.14.2.json", "time": "2023-06-07T11:25:16+00:00", "releaseTime": "2019-05-27T11:48:25+00:00"}, {"id": "1.14.2 Pre-Release 4", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/75bf72d8e4b38cf5f729637efc116697edec4334/1.14.2%20Pre-Release%204.json", "time": "2023-06-07T11:25:16+00:00", "releaseTime": "2019-05-27T07:21:11+00:00"}, {"id": "1.14.2 Pre-Release 3", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/4a0126da466f90d6e52eb3e27332f7f7070f4be8/1.14.2%20Pre-Release%203.json", "time": "2023-06-07T11:25:16+00:00", "releaseTime": "2019-05-22T13:12:51+00:00"}, {"id": "1.14.2 Pre-Release 2", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/dee854f57cac0fc9f1b96b96254a67829dd103ae/1.14.2%20Pre-Release%202.json", "time": "2023-06-07T11:25:16+00:00", "releaseTime": "2019-05-17T12:21:03+00:00"}, {"id": "1.14.2 Pre-Release 1", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/0525ae4750d18d6c3cf9edee1f510333919c6003/1.14.2%20Pre-Release%201.json", "time": "2023-06-07T11:25:16+00:00", "releaseTime": "2019-05-16T15:40:25+00:00"}, {"id": "1.14.1", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/183e49ba0fabb5ef8a304f8f5907fa887f40c466/1.14.1.json", "time": "2023-06-07T11:25:16+00:00", "releaseTime": "2019-05-13T11:10:12+00:00"}, {"id": "1.14.1 Pre-Release 2", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/1d0ccfff5f8d13d3ecaddbc481a9a4815e312e4e/1.14.1%20Pre-Release%202.json", "time": "2023-06-07T11:25:16+00:00", "releaseTime": "2019-05-09T14:01:04+00:00"}, {"id": "1.14.1 Pre-Release 1", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/656e98e9c5a418b4747b0e5892fd301963b0bcc7/1.14.1%20Pre-Release%201.json", "time": "2023-06-07T11:25:16+00:00", "releaseTime": "2019-05-07T14:44:42+00:00"}, {"id": "1.14", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/0fd01dd81eaa451d3130b1cf025a10f129585b10/1.14.json", "time": "2023-06-07T11:25:16+00:00", "releaseTime": "2019-04-23T14:52:44+00:00"}, {"id": "1.14 Pre-Release 5", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/157959b1daeda81293854032102eef36e76af108/1.14%20Pre-Release%205.json", "time": "2023-06-07T11:25:16+00:00", "releaseTime": "2019-04-18T11:05:19+00:00"}, {"id": "1.14 Pre-Release 4", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/93ca7217fa9027019328b1b8f9b2e8f82436622d/1.14%20Pre-Release%204.json", "time": "2023-06-07T11:25:16+00:00", "releaseTime": "2019-04-17T15:31:12+00:00"}, {"id": "1.14 Pre-Release 3", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/af8a6b1a9d8d44e080451553060a602e1214a7bb/1.14%20Pre-Release%203.json", "time": "2023-06-07T11:25:16+00:00", "releaseTime": "2019-04-16T13:57:10+00:00"}, {"id": "1.14 Pre-Release 2", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/fcbaaa318bf47cecb0c37da7a37903e4bcf24e90/1.14%20Pre-Release%202.json", "time": "2023-06-07T11:25:16+00:00", "releaseTime": "2019-04-12T11:38:53+00:00"}, {"id": "1.14 Pre-Release 1", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/76dd36e6b4fb2db5e474dd3b44cd96f3f498433d/1.14%20Pre-Release%201.json", "time": "2023-06-07T11:25:16+00:00", "releaseTime": "2019-04-10T14:24:16+00:00"}, {"id": "19w14b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/eac7bd3b9b9a8beed783fda4920b76b792120861/19w14b.json", "time": "2023-06-07T11:25:16+00:00", "releaseTime": "2019-04-05T10:33:58+00:00"}, {"id": "19w14a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/3f547c294bf6f82e76120f760d5574d6b3eb88bc/19w14a.json", "time": "2023-06-07T11:25:16+00:00", "releaseTime": "2019-04-03T13:45:00+00:00"}, {"id": "3D Shareware v1.34", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/5b59564acaa4cc153b6f934e566226642ed978ab/3D%20Shareware%20v1.34.json", "time": "2023-06-07T12:27:21+00:00", "releaseTime": "2019-04-01T11:18:08+00:00"}, {"id": "19w13b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/fd82b31c5890e7f118c7ffa9122a0f6b29c87936/19w13b.json", "time": "2023-06-07T11:25:16+00:00", "releaseTime": "2019-03-29T16:53:22+00:00"}, {"id": "19w13a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/b6b6aa23cbbce46b65e36d0c1bccd4f18438118a/19w13a.json", "time": "2023-06-07T11:25:16+00:00", "releaseTime": "2019-03-27T15:15:31+00:00"}, {"id": "19w12b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/2b7c619474e2a5c19e43494199d47cafba395abf/19w12b.json", "time": "2023-06-07T11:25:16+00:00", "releaseTime": "2019-03-21T15:20:01+00:00"}, {"id": "19w12a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/91e9bb4b6af34b07c6a89c95696b988b8156702b/19w12a.json", "time": "2023-06-07T11:25:16+00:00", "releaseTime": "2019-03-20T16:47:34+00:00"}, {"id": "19w11b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/065fec1702d92598089ad37f9e64b2e52ca30114/19w11b.json", "time": "2023-06-07T11:25:16+00:00", "releaseTime": "2019-03-14T14:26:23+00:00"}, {"id": "19w11a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/ec8d1b45727e11cec93a813cc8b66bd48a6a3bad/19w11a.json", "time": "2023-06-07T11:25:16+00:00", "releaseTime": "2019-03-13T13:59:29+00:00"}, {"id": "19w09a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/fe35acc600f18d6247ec9e4228c53447e695f8a3/19w09a.json", "time": "2023-06-07T11:25:16+00:00", "releaseTime": "2019-02-27T14:44:30+00:00"}, {"id": "19w08b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/8d59acdc1b78c6d4a690c2906bcb0a875f119652/19w08b.json", "time": "2023-06-07T11:25:16+00:00", "releaseTime": "2019-02-21T13:38:09+00:00"}, {"id": "19w08a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/b21d6ece2b83e7ec488a4536dbe9f9228b744b34/19w08a.json", "time": "2023-06-07T11:25:16+00:00", "releaseTime": "2019-02-20T14:56:58+00:00"}, {"id": "19w07a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/0be11f1e510a44d0042ad471a72371e7633c9777/19w07a.json", "time": "2023-06-07T11:25:16+00:00", "releaseTime": "2019-02-13T16:12:08+00:00"}, {"id": "19w06a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/384c37467913bcd11a0d7f8d8b9ec81c7058f1de/19w06a.json", "time": "2023-06-07T11:25:16+00:00", "releaseTime": "2019-02-06T16:24:13+00:00"}, {"id": "19w05a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/87712b3fed60308203939e9ac846470f4b9672d3/19w05a.json", "time": "2023-06-07T11:25:16+00:00", "releaseTime": "2019-01-30T15:16:49+00:00"}, {"id": "19w04b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/aaf60b4748fbfa2b08c90c6abb1762fb92cac367/19w04b.json", "time": "2023-06-07T11:25:16+00:00", "releaseTime": "2019-01-25T12:20:15+00:00"}, {"id": "19w04a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/4eeb1dae750f4152927fe51c5065ca7aa3d53e3e/19w04a.json", "time": "2023-06-07T11:25:16+00:00", "releaseTime": "2019-01-24T15:31:52+00:00"}, {"id": "19w03c", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/e7a922f060cc4441841e4722b0a6bab631492c1e/19w03c.json", "time": "2023-06-07T11:25:16+00:00", "releaseTime": "2019-01-18T11:27:13+00:00"}, {"id": "19w03b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/a600b0a22f97147e59cd6060b362086ac84cb13e/19w03b.json", "time": "2023-06-07T11:25:16+00:00", "releaseTime": "2019-01-17T16:43:27+00:00"}, {"id": "19w03a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/e10947fbb39e5d58fb42000348be423e8c0cad64/19w03a.json", "time": "2023-06-07T11:25:16+00:00", "releaseTime": "2019-01-16T16:45:02+00:00"}, {"id": "19w02a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/5b51ed792b91ce4d281666c64c49084a134ac11d/19w02a.json", "time": "2023-06-07T11:25:16+00:00", "releaseTime": "2019-01-09T15:52:07+00:00"}, {"id": "18w50a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/307a38d1f592a92fcff056165ef05323cb499bfc/18w50a.json", "time": "2023-06-07T11:25:16+00:00", "releaseTime": "2018-12-12T14:58:13+00:00"}, {"id": "18w49a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/7e37cc7f1f8c8d9cde81b7754fda64954578170a/18w49a.json", "time": "2023-06-07T11:25:16+00:00", "releaseTime": "2018-12-05T12:24:30+00:00"}, {"id": "18w48b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/cece9e08337e073961bd7802672050718bf07d0d/18w48b.json", "time": "2023-06-07T11:25:16+00:00", "releaseTime": "2018-11-30T10:37:31+00:00"}, {"id": "18w48a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/fff0948616360b5545f236e5900af4c7c6da5d86/18w48a.json", "time": "2023-06-07T11:25:16+00:00", "releaseTime": "2018-11-29T13:11:38+00:00"}, {"id": "18w47b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/9d60a4e4f408db78e5f7797e8996d87e555674d8/18w47b.json", "time": "2023-06-07T11:25:16+00:00", "releaseTime": "2018-11-23T10:46:41+00:00"}, {"id": "18w47a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/b9345c8f73a33095fba323ebd4c4784796cf4436/18w47a.json", "time": "2023-06-07T11:25:16+00:00", "releaseTime": "2018-11-21T15:45:22+00:00"}, {"id": "18w46a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/1b24c105bfb11d85b4f8cb946c89f762cf099aa2/18w46a.json", "time": "2023-06-07T11:25:16+00:00", "releaseTime": "2018-11-15T13:43:14+00:00"}, {"id": "18w45a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/f8a857bfb02953d2578458402792e3b416d25f9f/18w45a.json", "time": "2023-06-07T11:25:16+00:00", "releaseTime": "2018-11-07T14:40:06+00:00"}, {"id": "18w44a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/7bee20111c1cd50fb0e26b689ea648ff84989ae6/18w44a.json", "time": "2023-06-07T11:25:16+00:00", "releaseTime": "2018-10-31T15:29:16+00:00"}, {"id": "18w43c", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/509730930d8dcd19bd3c6db819d33eb00d272ef4/18w43c.json", "time": "2023-06-07T11:25:16+00:00", "releaseTime": "2018-10-26T08:40:46+00:00"}, {"id": "18w43b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/ba1edcdba89ea57137c04952e4c7755926263a76/18w43b.json", "time": "2023-06-07T11:25:16+00:00", "releaseTime": "2018-10-24T15:02:30+00:00"}, {"id": "18w43a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/d07adde0060f5cbdb01b90ebc03cde154aacebcb/18w43a.json", "time": "2023-06-07T11:25:16+00:00", "releaseTime": "2018-10-24T10:52:16+00:00"}, {"id": "1.13.2", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/fa3ddc22146c46bfeb0e9d322c6f83b937e25005/1.13.2.json", "time": "2023-06-07T11:32:59+00:00", "releaseTime": "2018-10-22T11:41:07+00:00"}, {"id": "1.13.2-pre2", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/7b915c9ca867e916dcbacecdfe19cff3cd94cab8/1.13.2-pre2.json", "time": "2023-06-07T11:32:59+00:00", "releaseTime": "2018-10-18T14:46:12+00:00"}, {"id": "1.13.2-pre1", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/28eb641c164c2ae0879358f884f42f7e2393c366/1.13.2-pre1.json", "time": "2023-06-07T11:32:59+00:00", "releaseTime": "2018-10-16T13:40:58+00:00"}, {"id": "1.13.1", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/f37fe6f0912ddb7ac3e7d5201a73d56ce170a57f/1.13.1.json", "time": "2023-06-07T11:32:59+00:00", "releaseTime": "2018-08-22T14:03:42+00:00"}, {"id": "1.13.1-pre2", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/f82e1057225a7c9dfe3c75b45924a6bfa4aaeafa/1.13.1-pre2.json", "time": "2023-06-07T11:32:59+00:00", "releaseTime": "2018-08-20T13:52:09+00:00"}, {"id": "1.13.1-pre1", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/73f5439743e168a8270b538061832f22625369c9/1.13.1-pre1.json", "time": "2023-06-07T11:32:59+00:00", "releaseTime": "2018-08-16T13:08:44+00:00"}, {"id": "18w33a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/495ee0c97c88cf15b6614dd68bc70994413f8e5f/18w33a.json", "time": "2023-06-07T11:32:59+00:00", "releaseTime": "2018-08-15T14:28:56+00:00"}, {"id": "18w32a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/fa7c2eaa0539d16d3e3887ac16ecd19f25757505/18w32a.json", "time": "2023-06-07T11:32:59+00:00", "releaseTime": "2018-08-08T13:16:57+00:00"}, {"id": "18w31a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/5f20fbe733b3db3758045626e9ffff050029daf6/18w31a.json", "time": "2023-06-07T11:32:59+00:00", "releaseTime": "2018-08-01T12:54:44+00:00"}, {"id": "18w30b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/81891c454a12e9bf4a262002d5c89320bb4ae153/18w30b.json", "time": "2023-06-07T11:32:59+00:00", "releaseTime": "2018-07-26T16:06:57+00:00"}, {"id": "18w30a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/3e9adc4f817f01b8f92e00cb19e2d604473a83d3/18w30a.json", "time": "2023-06-07T11:32:59+00:00", "releaseTime": "2018-07-25T14:29:31+00:00"}, {"id": "1.13", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/c24c2fd37c8ca2e1c18721e2c77caf4d24c87f92/1.13.json", "time": "2023-06-07T11:41:22+00:00", "releaseTime": "2018-07-18T15:11:46+00:00"}, {"id": "1.13-pre10", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/0d4e1471e49b9657226ffb8684ed6da72bb5068e/1.13-pre10.json", "time": "2023-06-07T11:41:22+00:00", "releaseTime": "2018-07-17T14:48:06+00:00"}, {"id": "1.13-pre9", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/43f426cd0895c936110629532c6db46717b2d827/1.13-pre9.json", "time": "2023-06-07T11:41:22+00:00", "releaseTime": "2018-07-16T14:17:42+00:00"}, {"id": "1.13-pre8", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/28369586c81d7db81d6aea81a6464d2bb1765da8/1.13-pre8.json", "time": "2023-06-07T11:41:22+00:00", "releaseTime": "2018-07-13T11:45:00+00:00"}, {"id": "1.13-pre7", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/44314cf050787819e3c4b440f736a8c5e18ff862/1.13-pre7.json", "time": "2023-06-07T11:41:22+00:00", "releaseTime": "2018-07-10T14:21:42+00:00"}, {"id": "1.13-pre6", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/2e5288f29d1cd7b894ed99610828e713c3ba65ac/1.13-pre6.json", "time": "2023-06-07T11:41:22+00:00", "releaseTime": "2018-07-04T12:36:00+00:00"}, {"id": "1.13-pre5", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/f0500efb357283322169d38fd52d24e195d56e05/1.13-pre5.json", "time": "2023-06-07T11:41:22+00:00", "releaseTime": "2018-06-28T13:58:53+00:00"}, {"id": "1.13-pre4", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/5722f90decabdc54cf498d5c2e27e3a094c14018/1.13-pre4.json", "time": "2023-06-07T11:41:22+00:00", "releaseTime": "2018-06-26T13:00:55+00:00"}, {"id": "1.13-pre3", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/26564723c707a7eadfc07db2962295934c846296/1.13-pre3.json", "time": "2023-06-07T11:41:22+00:00", "releaseTime": "2018-06-21T12:57:11+00:00"}, {"id": "1.13-pre2", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/657c4cf0ac64074dbc4d97de063275aba31c9bc0/1.13-pre2.json", "time": "2023-06-07T11:41:22+00:00", "releaseTime": "2018-06-15T09:20:00+00:00"}, {"id": "1.13-pre1", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/28db6a1653a70fc1ac1b352e63f542d21397f59d/1.13-pre1.json", "time": "2023-06-07T11:41:22+00:00", "releaseTime": "2018-06-04T15:17:34+00:00"}, {"id": "18w22c", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/b16aeae7fd19224ec48c0e0937321faae2d241ff/18w22c.json", "time": "2023-06-07T11:41:22+00:00", "releaseTime": "2018-05-31T13:53:15+00:00"}, {"id": "18w22b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/8e22c333dbaff27f1dfb068aee0a343d7bc3544c/18w22b.json", "time": "2023-06-07T11:41:22+00:00", "releaseTime": "2018-05-30T13:48:58+00:00"}, {"id": "18w22a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/587dd0b2f3ac3ffd96b2a3451434d1b23b351066/18w22a.json", "time": "2023-06-07T11:41:22+00:00", "releaseTime": "2018-05-29T13:23:55+00:00"}, {"id": "18w21b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/aaae28bb5baa12bf5c7ca8c7f3cc8c558a39c038/18w21b.json", "time": "2023-06-07T11:41:22+00:00", "releaseTime": "2018-05-25T10:09:09+00:00"}, {"id": "18w21a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/92a0cd0254365df7df5e7ad7974ad15285020b32/18w21a.json", "time": "2023-06-07T11:41:22+00:00", "releaseTime": "2018-05-23T13:11:49+00:00"}, {"id": "18w20c", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/a9d4d7cd84c112e644f134cc0cbeb0b2efe1d9e5/18w20c.json", "time": "2023-06-07T11:41:22+00:00", "releaseTime": "2018-05-17T14:06:56+00:00"}, {"id": "18w20b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/566f11647d85194f292d2300fa550631bf75510a/18w20b.json", "time": "2023-06-07T11:41:22+00:00", "releaseTime": "2018-05-16T14:35:35+00:00"}, {"id": "18w20a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/a287a82f4f84e9529f8d387f3f23c680d262cf6a/18w20a.json", "time": "2023-06-07T11:41:22+00:00", "releaseTime": "2018-05-15T14:02:25+00:00"}, {"id": "18w19b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/48a0d019a8ce73d2e492f029e64c9e2791b49339/18w19b.json", "time": "2023-06-07T11:41:22+00:00", "releaseTime": "2018-05-09T10:00:51+00:00"}, {"id": "18w19a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/56cac74df46a43a6385708beafeed1df79590eb2/18w19a.json", "time": "2023-06-07T11:41:22+00:00", "releaseTime": "2018-05-08T13:05:19+00:00"}, {"id": "18w16a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/5fcd79de4734a0b058aab67607e44b1a09464290/18w16a.json", "time": "2023-06-07T11:41:22+00:00", "releaseTime": "2018-04-19T14:46:35+00:00"}, {"id": "18w15a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/c9fe2e1e80b8a5078af2c30cd6b764ca508beaa0/18w15a.json", "time": "2023-06-07T11:41:22+00:00", "releaseTime": "2018-04-11T14:54:22+00:00"}, {"id": "18w14b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/8b4dc5007c1306f5823cfcefd4dbb1e944c8439e/18w14b.json", "time": "2023-06-07T11:41:22+00:00", "releaseTime": "2018-04-05T14:44:02+00:00"}, {"id": "18w14a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/c976a8bb4510edcdcaafca651aae6b49df731bc9/18w14a.json", "time": "2023-06-07T11:41:22+00:00", "releaseTime": "2018-04-04T14:36:14+00:00"}, {"id": "18w11a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/d07fefcabe464b19876597340187732ffd59be5f/18w11a.json", "time": "2023-06-07T11:41:22+00:00", "releaseTime": "2018-03-13T15:10:59+00:00"}, {"id": "18w10d", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/282418aaec344de75724caaf9b2def18e892b213/18w10d.json", "time": "2023-06-07T11:41:22+00:00", "releaseTime": "2018-03-09T15:19:12+00:00"}, {"id": "18w10c", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/ab5cfc50c9e95c44d744a9501808621278aec8df/18w10c.json", "time": "2023-06-07T11:41:22+00:00", "releaseTime": "2018-03-08T15:29:23+00:00"}, {"id": "18w10b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/316ed74ddf2fa0ae65adb2a170ed5aacdada4d51/18w10b.json", "time": "2023-06-07T11:41:22+00:00", "releaseTime": "2018-03-07T15:56:01+00:00"}, {"id": "18w10a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/fac132e97632d4beff518e7f3f8224c07f9239de/18w10a.json", "time": "2023-06-07T11:41:22+00:00", "releaseTime": "2018-03-06T15:54:24+00:00"}, {"id": "18w09a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/fecf14145dffb1c28922b3c16f14e2972779b1e8/18w09a.json", "time": "2023-06-07T11:41:22+00:00", "releaseTime": "2018-03-01T14:15:10+00:00"}, {"id": "18w08b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/3563f3093515369cb24ba5c2d1db610a62e88379/18w08b.json", "time": "2023-06-07T11:41:22+00:00", "releaseTime": "2018-02-22T15:44:49+00:00"}, {"id": "18w08a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/dc7c9d4df688697de0b2f13dc46749e55cbd00ef/18w08a.json", "time": "2023-06-07T11:41:22+00:00", "releaseTime": "2018-02-21T14:59:00+00:00"}, {"id": "18w07c", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/c286a5129959684ce6c416f9a150560d6db263af/18w07c.json", "time": "2023-06-07T11:41:22+00:00", "releaseTime": "2018-02-16T13:23:32+00:00"}, {"id": "18w07b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/dea62b145246671ae46ed157e6ef2cd2de485a1e/18w07b.json", "time": "2023-06-07T11:41:22+00:00", "releaseTime": "2018-02-15T14:28:42+00:00"}, {"id": "18w07a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/211e0152bce6081564fc9c40603463c04f89d835/18w07a.json", "time": "2023-06-07T11:41:22+00:00", "releaseTime": "2018-02-14T17:34:13+00:00"}, {"id": "18w06a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/a19117df869fb45cdd7a3692a3a01aab3979253f/18w06a.json", "time": "2023-06-07T11:41:22+00:00", "releaseTime": "2018-02-09T12:09:55+00:00"}, {"id": "18w05a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/a33a7a4c76821853a7a578920d7d784b91e9581d/18w05a.json", "time": "2023-06-07T11:41:22+00:00", "releaseTime": "2018-01-31T13:32:09+00:00"}, {"id": "18w03b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/3321f5a7180f93f885b2546368a88a928e11a70a/18w03b.json", "time": "2023-06-07T11:41:22+00:00", "releaseTime": "2018-01-17T15:09:14+00:00"}, {"id": "18w03a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/a5e5d97e17af55625c66fa993b105fb774c2d967/18w03a.json", "time": "2023-06-07T11:41:22+00:00", "releaseTime": "2018-01-17T14:25:24+00:00"}, {"id": "18w02a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/8b9bdc1df5d704f0de0a1f2c6b8a721618371213/18w02a.json", "time": "2023-06-07T11:41:22+00:00", "releaseTime": "2018-01-10T11:54:55+00:00"}, {"id": "18w01a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/58589469cc95d98a7cb18823f9dfdd7f14c9d023/18w01a.json", "time": "2023-06-07T11:49:20+00:00", "releaseTime": "2018-01-03T13:29:30+00:00"}, {"id": "17w50a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/63a9166163a505dfb457a236e3e5d0f2ae983c2f/17w50a.json", "time": "2023-06-07T11:49:20+00:00", "releaseTime": "2017-12-11T15:28:08+00:00"}, {"id": "17w49b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/2f0a11dbf1fd65a650310359ccd9c3c36f481688/17w49b.json", "time": "2023-06-07T11:49:20+00:00", "releaseTime": "2017-12-07T15:29:54+00:00"}, {"id": "17w49a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/9fba986bf446a39962189fb76b4236ea81e2f5f8/17w49a.json", "time": "2023-06-07T11:49:20+00:00", "releaseTime": "2017-12-06T14:24:30+00:00"}, {"id": "17w48a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/3b07a3dbdf52535bf05c377cbeb4e4308c6dfd42/17w48a.json", "time": "2023-06-07T11:49:20+00:00", "releaseTime": "2017-11-27T15:36:33+00:00"}, {"id": "17w47b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/687c352e333feb8e36ac38e1a3cad8aa1a45affc/17w47b.json", "time": "2023-06-07T11:49:20+00:00", "releaseTime": "2017-11-23T15:30:12+00:00"}, {"id": "17w47a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/4f2089e0b8a7c209e811fe2ff86c4f9ab5b7bceb/17w47a.json", "time": "2023-06-07T11:49:20+00:00", "releaseTime": "2017-11-22T12:40:05+00:00"}, {"id": "17w46a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/a073800fa0f758a0570696446cd16df88ffc65f6/17w46a.json", "time": "2023-06-07T11:49:20+00:00", "releaseTime": "2017-11-15T15:21:55+00:00"}, {"id": "17w45b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/ad4e836a7bc594aebc70fae5cfda50b2ca410abd/17w45b.json", "time": "2023-06-07T11:49:20+00:00", "releaseTime": "2017-11-10T10:07:02+00:00"}, {"id": "17w45a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/b9fbd5f68cb9e4d0326d20afeb248595e4a278b8/17w45a.json", "time": "2023-06-07T11:49:20+00:00", "releaseTime": "2017-11-08T15:48:00+00:00"}, {"id": "17w43b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/6ceca710ad234e4db4c75c8fb9418878f2a8abf7/17w43b.json", "time": "2023-06-07T11:49:20+00:00", "releaseTime": "2017-10-26T13:36:22+00:00"}, {"id": "17w43a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/50714e6fa84ca0bd804d3fa2f8419bbc08298e76/17w43a.json", "time": "2023-06-07T11:49:20+00:00", "releaseTime": "2017-10-25T14:43:50+00:00"}, {"id": "1.12.2", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/832d95b9f40699d4961394dcf6cf549e65f15dc5/1.12.2.json", "time": "2023-06-07T11:49:20+00:00", "releaseTime": "2017-09-18T08:39:46+00:00"}, {"id": "1.12.2-pre2", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/1eff7a3a362a1005f202da0d3b7112b00c6259e7/1.12.2-pre2.json", "time": "2023-06-07T11:49:20+00:00", "releaseTime": "2017-09-15T08:21:17+00:00"}, {"id": "1.12.2-pre1", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/360cab493afe35971fca74d75fbd6b43c41aa797/1.12.2-pre1.json", "time": "2023-06-07T11:49:20+00:00", "releaseTime": "2017-09-13T13:33:31+00:00"}, {"id": "1.12.1", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/5b3e7d137ea360e1d418f0cf68de160acf93fbff/1.12.1.json", "time": "2023-06-07T11:49:20+00:00", "releaseTime": "2017-08-03T12:40:39+00:00"}, {"id": "1.12.1-pre1", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/36781397c4c05b1ee74276afd9247f9dc33ce692/1.12.1-pre1.json", "time": "2023-06-07T11:49:20+00:00", "releaseTime": "2017-08-02T10:53:55+00:00"}, {"id": "17w31a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/d500ab4e0838c53f4f7ffc5300521df0be9b9853/17w31a.json", "time": "2023-06-07T11:49:20+00:00", "releaseTime": "2017-08-01T09:41:23+00:00"}, {"id": "1.12", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/da76e0a25ffccf2765f9e86ce61c063e44b2183b/1.12.json", "time": "2023-06-07T11:49:20+00:00", "releaseTime": "2017-06-02T13:50:27+00:00"}, {"id": "1.12-pre7", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/92c171fe6fcf3c16ba95f03307618bcac5e3d947/1.12-pre7.json", "time": "2023-06-07T11:49:20+00:00", "releaseTime": "2017-05-31T10:56:41+00:00"}, {"id": "1.12-pre6", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/b1ba9c1c184e57e1bb970cdf4caa35ece8fb4eac/1.12-pre6.json", "time": "2023-06-07T11:49:20+00:00", "releaseTime": "2017-05-29T11:45:12+00:00"}, {"id": "1.12-pre5", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/f5dab6422cd2471a7a1b26435c912679cf66c58a/1.12-pre5.json", "time": "2023-06-07T11:49:20+00:00", "releaseTime": "2017-05-19T07:43:28+00:00"}, {"id": "1.12-pre4", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/8e05acd26ca220bb6399f396c0be0893bc74808d/1.12-pre4.json", "time": "2023-06-07T11:49:20+00:00", "releaseTime": "2017-05-18T12:28:16+00:00"}, {"id": "1.12-pre3", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/47d8cbd470539006d9825de3a890f07e342e4168/1.12-pre3.json", "time": "2023-06-07T11:49:20+00:00", "releaseTime": "2017-05-17T14:09:18+00:00"}, {"id": "1.12-pre2", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/5d014cb12b9aecd84a8d08a7f70bdac55ded1f26/1.12-pre2.json", "time": "2023-06-07T11:49:20+00:00", "releaseTime": "2017-05-11T12:11:12+00:00"}, {"id": "1.12-pre1", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/80d68dc92cdf2557aada495061e93c2ce4f5ca08/1.12-pre1.json", "time": "2023-06-07T11:49:20+00:00", "releaseTime": "2017-05-10T11:37:17+00:00"}, {"id": "17w18b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/69a0095dd897d6ef87fd449328215d4f3d71c78d/17w18b.json", "time": "2023-06-07T11:49:20+00:00", "releaseTime": "2017-05-04T13:40:22+00:00"}, {"id": "17w18a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/659b3c3b8578d45d265b58a0f1e428c044183ab2/17w18a.json", "time": "2023-06-07T11:49:20+00:00", "releaseTime": "2017-05-03T14:50:23+00:00"}, {"id": "17w17b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/8cd9ea793f3ee4608edf4fac8efad1b68fbceb65/17w17b.json", "time": "2023-06-07T11:49:20+00:00", "releaseTime": "2017-04-27T13:24:23+00:00"}, {"id": "17w17a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/9599f29c91fc8f57a77f7a79f4676a09e2ca1fe4/17w17a.json", "time": "2023-06-07T11:49:20+00:00", "releaseTime": "2017-04-26T13:48:23+00:00"}, {"id": "17w16b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/38e2d76bea9091f1ed89e9f9c5b4630fcec103d9/17w16b.json", "time": "2023-06-07T11:49:20+00:00", "releaseTime": "2017-04-21T12:02:59+00:00"}, {"id": "17w16a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/b0369bcb956a4853bcc094ffe0020964061a1379/17w16a.json", "time": "2023-06-07T11:49:20+00:00", "releaseTime": "2017-04-20T13:58:35+00:00"}, {"id": "17w15a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/84285c1ad87efc7f59ef75ca4e35ddf57c7193ae/17w15a.json", "time": "2023-06-07T11:49:20+00:00", "releaseTime": "2017-04-12T09:30:50+00:00"}, {"id": "17w14a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/3d56c3a0ac83f263ab173de90dd6f044523a5274/17w14a.json", "time": "2023-06-07T11:49:20+00:00", "releaseTime": "2017-04-05T13:58:01+00:00"}, {"id": "17w13b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/b06914e45949d4d0167e339daea5217dc2f1f3c4/17w13b.json", "time": "2023-06-07T11:49:20+00:00", "releaseTime": "2017-03-31T11:06:35+00:00"}, {"id": "17w13a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/c5d31a532de28fd250af810ed468a6bd70f3de54/17w13a.json", "time": "2023-06-07T11:49:20+00:00", "releaseTime": "2017-03-30T09:32:19+00:00"}, {"id": "17w06a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/a2a4b51368580cf7abc22d99d360eab2d4f2fec4/17w06a.json", "time": "2023-06-07T11:59:01+00:00", "releaseTime": "2017-02-08T13:16:29+00:00"}, {"id": "1.11.2", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/fa3f6d94a9fad648ff97d18fd710997261a421e8/1.11.2.json", "time": "2023-06-07T11:59:01+00:00", "releaseTime": "2016-12-21T09:29:12+00:00"}, {"id": "1.11.1", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/b244f9fc1721a2ac90b6e12220f5e40246d2c84d/1.11.1.json", "time": "2023-06-07T11:59:01+00:00", "releaseTime": "2016-12-20T14:05:34+00:00"}, {"id": "16w50a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/d4db7d96831cec8c3ad090110dfffae8f6f52aec/16w50a.json", "time": "2023-06-07T11:59:01+00:00", "releaseTime": "2016-12-15T14:38:52+00:00"}, {"id": "1.11", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/935062464617c9904d20045065515cfd3f1b76d2/1.11.json", "time": "2023-06-07T11:59:01+00:00", "releaseTime": "2016-11-14T14:34:40+00:00"}, {"id": "1.11-pre1", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/7bdd264a5a18799413f665a808de94451af68cb7/1.11-pre1.json", "time": "2023-06-07T11:59:01+00:00", "releaseTime": "2016-11-08T13:42:50+00:00"}, {"id": "16w44a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/a75c5e9b85de3c7f89e1acbe02702dd4515df5eb/16w44a.json", "time": "2023-06-07T11:59:01+00:00", "releaseTime": "2016-11-03T14:17:11+00:00"}, {"id": "16w43a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/ecdc354d9d658e08c5371a7ce961e4aa35849913/16w43a.json", "time": "2023-06-07T11:59:01+00:00", "releaseTime": "2016-10-27T09:00:51+00:00"}, {"id": "16w42a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/a133f828ccd3261131132a504729e3106f17f071/16w42a.json", "time": "2023-06-07T11:59:01+00:00", "releaseTime": "2016-10-19T11:17:47+00:00"}, {"id": "16w41a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/802bb9d6882c23e6f47e844c09d97914f1e90491/16w41a.json", "time": "2023-06-07T11:59:01+00:00", "releaseTime": "2016-10-13T14:28:35+00:00"}, {"id": "16w40a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/c5c9e009d6875b2b54c231fb81cea4670b7950d5/16w40a.json", "time": "2023-06-07T11:59:01+00:00", "releaseTime": "2016-10-06T13:57:59+00:00"}, {"id": "16w39c", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/636990dd6311f6cadddf50c1e4c0a51f8fcdaf2d/16w39c.json", "time": "2023-06-07T11:59:01+00:00", "releaseTime": "2016-09-30T14:11:48+00:00"}, {"id": "16w39b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/e4aac42badba700c6b8364ee5ebdc6a3b09073ca/16w39b.json", "time": "2023-06-07T11:59:01+00:00", "releaseTime": "2016-09-29T14:39:39+00:00"}, {"id": "16w39a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/a550f22fab3e847433aa3289c6bedbca49057527/16w39a.json", "time": "2023-06-07T11:59:01+00:00", "releaseTime": "2016-09-28T13:32:06+00:00"}, {"id": "16w38a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/687018ed85a2784dc63695af097daa280c9a8093/16w38a.json", "time": "2023-06-07T11:59:01+00:00", "releaseTime": "2016-09-20T12:40:49+00:00"}, {"id": "16w36a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/b49e747382603492f3ca5617a661f39c0c4e4e77/16w36a.json", "time": "2023-06-07T11:59:01+00:00", "releaseTime": "2016-09-08T14:55:10+00:00"}, {"id": "16w35a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/1ea0cec35ba30ccf2359303a8fbfd643179f0bcf/16w35a.json", "time": "2023-06-07T11:59:01+00:00", "releaseTime": "2016-09-01T13:13:38+00:00"}, {"id": "16w33a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/e9fde68c65264789e91e61ce3d5db783fd537d2c/16w33a.json", "time": "2023-06-07T11:59:01+00:00", "releaseTime": "2016-08-17T12:48:57+00:00"}, {"id": "16w32b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/f5e6026e390a7fde3928682740425d49a44d7786/16w32b.json", "time": "2023-06-07T11:59:01+00:00", "releaseTime": "2016-08-11T14:34:29+00:00"}, {"id": "16w32a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/66d012257108f502883cee77b2ecd7cc40aa6ebc/16w32a.json", "time": "2023-06-07T12:09:50+00:00", "releaseTime": "2016-08-10T12:30:10+00:00"}, {"id": "1.10.2", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/819460dcabf1a2e41b0cf65d342b18ad8dc12281/1.10.2.json", "time": "2023-06-07T12:09:50+00:00", "releaseTime": "2016-06-23T09:17:32+00:00"}, {"id": "1.10.1", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/9c23be6c5a48ab7dc7698586b5d7177fff4b441a/1.10.1.json", "time": "2023-06-07T12:09:50+00:00", "releaseTime": "2016-06-22T10:13:22+00:00"}, {"id": "1.10", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/a827abf9c022a08ed9c4c7807a8c1b7f2f05deca/1.10.json", "time": "2023-06-07T12:09:50+00:00", "releaseTime": "2016-06-08T13:06:18+00:00"}, {"id": "1.10-pre2", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/16ae6b8daf0522d443a64b79b04fae94077027f0/1.10-pre2.json", "time": "2023-06-07T12:09:50+00:00", "releaseTime": "2016-06-07T14:56:34+00:00"}, {"id": "1.10-pre1", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/0ac1b4475692d7e7d457bf16ad6dfac040e9f265/1.10-pre1.json", "time": "2023-06-07T12:17:49+00:00", "releaseTime": "2016-06-02T14:45:16+00:00"}, {"id": "16w21b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/49b8423070619688f106e5fa6f4fd9176fc54a93/16w21b.json", "time": "2023-06-07T12:17:49+00:00", "releaseTime": "2016-05-26T12:47:22+00:00"}, {"id": "16w21a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/325467ff1dae5a0ef55427a0a7a81c9c7e65ceea/16w21a.json", "time": "2023-06-07T12:17:49+00:00", "releaseTime": "2016-05-25T13:12:09+00:00"}, {"id": "16w20a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/9286a8e316080ccf271051a014abc7d886469979/16w20a.json", "time": "2023-06-07T12:17:49+00:00", "releaseTime": "2016-05-18T12:45:14+00:00"}, {"id": "1.9.4", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/b1a314ce2b67b3639bd6407ddcd549ce236de6f6/1.9.4.json", "time": "2023-06-07T12:17:49+00:00", "releaseTime": "2016-05-10T10:17:16+00:00"}, {"id": "1.9.3", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/4d37195227760207d397224c509ded4b0c68ea37/1.9.3.json", "time": "2023-06-07T12:17:49+00:00", "releaseTime": "2016-05-10T08:33:35+00:00"}, {"id": "1.9.3-pre3", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/bd10c446533e8059a6bb0018525e1bce31572bb9/1.9.3-pre3.json", "time": "2023-06-07T12:17:49+00:00", "releaseTime": "2016-05-03T09:28:11+00:00"}, {"id": "1.9.3-pre2", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/e179d52f490ab24205b495cb6554f172077db374/1.9.3-pre2.json", "time": "2023-06-07T12:17:49+00:00", "releaseTime": "2016-04-27T13:33:20+00:00"}, {"id": "1.9.3-pre1", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/75c4b0e87d82f8972f9513797915ab8624c60177/1.9.3-pre1.json", "time": "2023-06-07T12:17:49+00:00", "releaseTime": "2016-04-21T12:41:42+00:00"}, {"id": "16w15b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/0d4cf718d11fc50923c10d331be462c11836beb7/16w15b.json", "time": "2023-06-07T12:17:49+00:00", "releaseTime": "2016-04-13T13:56:41+00:00"}, {"id": "16w15a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/13ae720e4e324deb0f7a7dbbdfb37c330d3adcf2/16w15a.json", "time": "2023-06-07T12:17:49+00:00", "releaseTime": "2016-04-11T14:38:28+00:00"}, {"id": "16w14a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/c748934ad99af11076a95658af606686bdcbce7d/16w14a.json", "time": "2023-06-07T12:17:49+00:00", "releaseTime": "2016-04-07T12:47:51+00:00"}, {"id": "1.RV-Pre1", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/23761c1cc8b5c7c72f6604e1e7322a056a6af2f8/1.RV-Pre1.json", "time": "2023-06-07T12:36:15+00:00", "releaseTime": "2016-03-31T16:18:53+00:00"}, {"id": "1.9.2", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/9623ca73a57c6d183a28513c894c2337cfe65995/1.9.2.json", "time": "2023-06-07T12:17:49+00:00", "releaseTime": "2016-03-30T15:23:55+00:00"}, {"id": "1.9.1", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/fdca0cf4bdab9959fce30413202a00a1bce35be5/1.9.1.json", "time": "2023-06-07T12:17:49+00:00", "releaseTime": "2016-03-30T13:43:07+00:00"}, {"id": "1.9.1-pre3", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/2fa68c071c9cc440e792d70f3b2c2e02e016d657/1.9.1-pre3.json", "time": "2023-06-07T12:17:49+00:00", "releaseTime": "2016-03-11T09:20:36+00:00"}, {"id": "1.9.1-pre2", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/8da8881815e3d53da86adbdc051f836d0c4e2b93/1.9.1-pre2.json", "time": "2023-06-07T12:17:49+00:00", "releaseTime": "2016-03-10T15:06:03+00:00"}, {"id": "1.9.1-pre1", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/1e7ecc95790b3bac41c4c59e9c7186c8b35e3bb3/1.9.1-pre1.json", "time": "2023-06-07T12:17:49+00:00", "releaseTime": "2016-03-09T16:27:29+00:00"}, {"id": "1.9", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/9178828493e41a24452841039710f05728c466d6/1.9.json", "time": "2023-06-07T12:17:49+00:00", "releaseTime": "2016-02-29T13:49:54+00:00"}, {"id": "1.9-pre4", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/47874af37fe9a921ed0386321445be1dd5754976/1.9-pre4.json", "time": "2023-06-07T12:17:49+00:00", "releaseTime": "2016-02-26T15:21:11+00:00"}, {"id": "1.9-pre3", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/b34824eb8099df04af6542722d571ab20381b416/1.9-pre3.json", "time": "2023-06-07T12:17:49+00:00", "releaseTime": "2016-02-24T15:52:36+00:00"}, {"id": "1.9-pre2", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/99775b58e157766cb7c4058b244a1a2b357b0889/1.9-pre2.json", "time": "2023-06-07T12:17:49+00:00", "releaseTime": "2016-02-18T17:41:00+00:00"}, {"id": "1.9-pre1", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/06ae803d5a838a287548f6414b8ede0ebcefe64b/1.9-pre1.json", "time": "2023-06-07T12:17:49+00:00", "releaseTime": "2016-02-17T15:23:19+00:00"}, {"id": "16w07b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/d7abe006dec5beaffac1eb5fcddf86731f6eb97d/16w07b.json", "time": "2023-06-07T12:17:49+00:00", "releaseTime": "2016-02-16T15:22:39+00:00"}, {"id": "16w07a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/73a10d7e61011af19d4c00565bc4faeaae693c7b/16w07a.json", "time": "2023-06-07T12:17:49+00:00", "releaseTime": "2016-02-15T15:48:46+00:00"}, {"id": "16w06a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/86dfa5200058cdb6f96cd2648ec86ddd04bbaf41/16w06a.json", "time": "2023-06-07T12:17:49+00:00", "releaseTime": "2016-02-10T15:06:41+00:00"}, {"id": "16w05b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/f89c22833e743a144e56aaed3e238c142148d9b2/16w05b.json", "time": "2023-06-07T12:17:49+00:00", "releaseTime": "2016-02-04T15:28:02+00:00"}, {"id": "16w05a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/848849c124e368f87bca8a990cbdc9043f678366/16w05a.json", "time": "2023-06-07T12:17:49+00:00", "releaseTime": "2016-02-03T15:48:38+00:00"}, {"id": "16w04a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/ec6cfa675974817435326b87987a512c5af7fbdf/16w04a.json", "time": "2023-06-07T12:17:49+00:00", "releaseTime": "2016-01-28T15:37:24+00:00"}, {"id": "16w03a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/d254f6fc2e3abb57e016feb6734bfa6ff38802eb/16w03a.json", "time": "2023-06-07T12:17:49+00:00", "releaseTime": "2016-01-20T14:29:24+00:00"}, {"id": "16w02a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/1ba834734412a1d7532e85844a32ec2ba18c1580/16w02a.json", "time": "2023-06-07T12:17:49+00:00", "releaseTime": "2016-01-13T15:15:16+00:00"}, {"id": "15w51b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/40b2a92fcabe632c1239c615188f802a36b3854d/15w51b.json", "time": "2023-06-07T12:17:49+00:00", "releaseTime": "2015-12-17T15:30:41+00:00"}, {"id": "15w51a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/a120a6cce86982907628a84aca21cfc6b9064463/15w51a.json", "time": "2023-06-07T12:17:49+00:00", "releaseTime": "2015-12-17T14:02:37+00:00"}, {"id": "15w50a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/8356a6a93d89e3cc95328b4ee6bbd0697e0de200/15w50a.json", "time": "2023-06-07T12:17:49+00:00", "releaseTime": "2015-12-09T15:35:57+00:00"}, {"id": "15w49b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/f8472901afe69ddbe599112d9fc656d3adcd1d5c/15w49b.json", "time": "2023-06-07T12:17:49+00:00", "releaseTime": "2015-12-03T15:23:22+00:00"}, {"id": "1.8.9", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/d546f1707a3f2b7d034eece5ea2e311eda875787/1.8.9.json", "time": "2021-12-15T15:44:12+00:00", "releaseTime": "2015-12-03T09:24:39+00:00"}, {"id": "15w49a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/4b2fbb35b426fbd63932801bd5f198229dfd0f62/15w49a.json", "time": "2023-06-07T12:17:49+00:00", "releaseTime": "2015-12-02T15:09:37+00:00"}, {"id": "15w47c", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/2e61f29ace59ae1d4d1cb1473b673b225115dc8a/15w47c.json", "time": "2023-06-07T12:17:49+00:00", "releaseTime": "2015-11-20T12:46:56+00:00"}, {"id": "15w47b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/dd2a6ff3fd726a25ea42b020764a0f1c4e935849/15w47b.json", "time": "2023-06-07T12:17:49+00:00", "releaseTime": "2015-11-19T14:48:03+00:00"}, {"id": "15w47a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/3bab1680f0ec6330a832457f466654c03d799a0e/15w47a.json", "time": "2023-06-07T12:17:49+00:00", "releaseTime": "2015-11-18T15:53:41+00:00"}, {"id": "15w46a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/8b40019e05283d502aab6bcf40fa498e333cb08c/15w46a.json", "time": "2023-06-07T12:17:49+00:00", "releaseTime": "2015-11-12T12:11:47+00:00"}, {"id": "15w45a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/c581934b794e798ce74736fd3e802128a44aa698/15w45a.json", "time": "2023-06-07T12:17:49+00:00", "releaseTime": "2015-11-05T13:04:07+00:00"}, {"id": "15w44b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/17c7995e26759d671cb4ba41485b7ddf05bc2aba/15w44b.json", "time": "2023-06-07T12:17:49+00:00", "releaseTime": "2015-10-30T11:23:17+00:00"}, {"id": "15w44a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/dfce16ddf5118c95bb981ae7d84448ad3a60fc73/15w44a.json", "time": "2023-06-07T12:17:49+00:00", "releaseTime": "2015-10-28T15:09:36+00:00"}, {"id": "15w43c", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/9a348e6e81aadc6fb563f1586149424af39d5268/15w43c.json", "time": "2023-06-07T12:17:49+00:00", "releaseTime": "2015-10-23T15:35:55+00:00"}, {"id": "15w43b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/2a40420c0409f6f8fc24efe2c904e03715b22623/15w43b.json", "time": "2023-06-07T12:17:49+00:00", "releaseTime": "2015-10-22T14:11:58+00:00"}, {"id": "15w43a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/4aaabcbd0079e99840294002ebed569801729483/15w43a.json", "time": "2023-06-07T12:17:49+00:00", "releaseTime": "2015-10-21T15:28:52+00:00"}, {"id": "15w42a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/7b18842c1dbbe945d991851ffaff49ecd7efbb91/15w42a.json", "time": "2021-12-15T15:45:57+00:00", "releaseTime": "2015-10-14T13:25:14+00:00"}, {"id": "15w41b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/27ab9716cf332d457be085a808eb170fe1a1ff2c/15w41b.json", "time": "2021-12-15T15:45:56+00:00", "releaseTime": "2015-10-07T14:07:26+00:00"}, {"id": "15w41a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/38026b4c0301e3441d8e0d5b367392d3212dc51d/15w41a.json", "time": "2021-12-15T15:45:56+00:00", "releaseTime": "2015-10-07T13:19:53+00:00"}, {"id": "15w40b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/a00ee3d8eb0c1cb38d928f5efb4a473768fa5286/15w40b.json", "time": "2021-12-15T15:45:56+00:00", "releaseTime": "2015-09-30T14:13:54+00:00"}, {"id": "15w40a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/f5c9662f1674f7f0e55e82a77109ad88a6bc9df7/15w40a.json", "time": "2021-12-15T15:45:55+00:00", "releaseTime": "2015-09-30T13:13:54+00:00"}, {"id": "15w39c", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/134e9d87a2c86e82d98bc7f8ba5965b7fd6634c1/15w39c.json", "time": "2021-12-15T15:45:55+00:00", "releaseTime": "2015-09-23T13:13:54+00:00"}, {"id": "15w39b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/909aa3af2988edc58b1e9c66f906a883d9a34815/15w39b.json", "time": "2021-12-15T15:45:54+00:00", "releaseTime": "2015-09-21T15:09:52+00:00"}, {"id": "15w39a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/7f914aa1098b8b35e20e9c021b57378d0a8fcc6c/15w39a.json", "time": "2021-12-15T15:45:54+00:00", "releaseTime": "2015-09-21T13:16:32+00:00"}, {"id": "15w38b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/222a234de865b9147cad4e3b2545d8af93c35065/15w38b.json", "time": "2021-12-15T15:45:54+00:00", "releaseTime": "2015-09-17T14:22:31+00:00"}, {"id": "15w38a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/1b4dcb4c07599a5e5571d9d71570641086e821e4/15w38a.json", "time": "2021-12-15T15:45:53+00:00", "releaseTime": "2015-09-16T14:22:31+00:00"}, {"id": "15w37a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/9459c8c56ba4577b69cc12a9034769f0d20fb3dc/15w37a.json", "time": "2021-12-15T15:45:53+00:00", "releaseTime": "2015-09-10T14:22:31+00:00"}, {"id": "15w36d", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/49a6f0d3a233d103b5fdeb6aefd7a6b0208b5ce9/15w36d.json", "time": "2021-12-15T15:45:53+00:00", "releaseTime": "2015-09-04T14:22:31+00:00"}, {"id": "15w36c", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/b1a04bae902de441013791777aa0461d446bd2c7/15w36c.json", "time": "2021-12-15T15:45:52+00:00", "releaseTime": "2015-09-02T16:07:22+00:00"}, {"id": "15w36b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/2268159e9ce438054660ac86d55db3ddfed1e20b/15w36b.json", "time": "2021-12-15T15:45:52+00:00", "releaseTime": "2015-09-02T15:36:25+00:00"}, {"id": "15w36a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/c185b19d54c00e43f85c610858909c40f9163708/15w36a.json", "time": "2021-12-15T15:45:51+00:00", "releaseTime": "2015-09-02T14:46:40+00:00"}, {"id": "15w35e", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/1fade4fe9d2587106ac3fa14775f9126d3198103/15w35e.json", "time": "2021-12-15T15:45:51+00:00", "releaseTime": "2015-08-28T18:14:02+00:00"}, {"id": "15w35d", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/f7eeb1ed37ec5c38cd8a04ba1fe90a50a1b24752/15w35d.json", "time": "2021-12-15T15:45:51+00:00", "releaseTime": "2015-08-28T16:25:35+00:00"}, {"id": "15w35c", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/362bda12d03da60b8481c79f4779bba7a2602c89/15w35c.json", "time": "2021-12-15T15:45:50+00:00", "releaseTime": "2015-08-28T11:21:00+00:00"}, {"id": "15w35b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/fda82bd0b305eba9607742b9314a41a54f0a9952/15w35b.json", "time": "2021-12-15T15:45:50+00:00", "releaseTime": "2015-08-24T15:39:18+00:00"}, {"id": "15w35a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/801ae2c7be9b3e558a7aef6c766bddb74d4be66a/15w35a.json", "time": "2021-12-15T15:45:50+00:00", "releaseTime": "2015-08-24T14:19:31+00:00"}, {"id": "15w34d", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/3c0d347369147a3951163679127a5bf8e78be5a2/15w34d.json", "time": "2021-12-15T15:45:49+00:00", "releaseTime": "2015-08-21T15:27:55+00:00"}, {"id": "15w34c", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/44d6774de6881154fd5f9ac6154dee5f202eb121/15w34c.json", "time": "2021-12-15T15:45:49+00:00", "releaseTime": "2015-08-21T12:45:20+00:00"}, {"id": "15w34b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/3bec850cf623d63b26caf462b0be177bc9954a0a/15w34b.json", "time": "2021-12-15T15:45:48+00:00", "releaseTime": "2015-08-20T14:00:03+00:00"}, {"id": "15w34a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/b8fdc5838196c33646a68610ed7586678a53b085/15w34a.json", "time": "2021-12-15T15:45:48+00:00", "releaseTime": "2015-08-19T12:56:01+00:00"}, {"id": "15w33c", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/c602ac43b9f2c23b4c39999a6368bbccd31852ca/15w33c.json", "time": "2021-12-15T15:45:48+00:00", "releaseTime": "2015-08-14T13:10:46+00:00"}, {"id": "15w33b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/c108562e1ee548ba05439441e97fdcb0b01d1194/15w33b.json", "time": "2021-12-15T15:45:47+00:00", "releaseTime": "2015-08-12T15:29:11+00:00"}, {"id": "15w33a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/e5b7e666fd697aef925f539d3983d03ed5d4457e/15w33a.json", "time": "2021-12-15T15:45:47+00:00", "releaseTime": "2015-08-12T14:05:07+00:00"}, {"id": "15w32c", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/2bf1e36bc4099bba503063ec507b7600ca088e4c/15w32c.json", "time": "2021-12-15T15:45:46+00:00", "releaseTime": "2015-08-07T14:08:17+00:00"}, {"id": "15w32b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/59db82d67a0a1c6b6a31d22cd050ff6c43f1611b/15w32b.json", "time": "2021-12-15T15:45:46+00:00", "releaseTime": "2015-08-06T13:51:47+00:00"}, {"id": "15w32a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/4e80b2295bdb531e64326c4d3fbf93e8d330c5e7/15w32a.json", "time": "2021-12-15T15:45:45+00:00", "releaseTime": "2015-08-05T12:22:42+00:00"}, {"id": "15w31c", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/1345a9c6d2442415e5980c12fd7bd838072dbd90/15w31c.json", "time": "2021-12-15T15:45:44+00:00", "releaseTime": "2015-07-31T13:45:08+00:00"}, {"id": "15w31b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/c9c8d4b706ebb7a057bb91ac69d84ea060b8d174/15w31b.json", "time": "2021-12-15T15:45:44+00:00", "releaseTime": "2015-07-30T13:38:32+00:00"}, {"id": "15w31a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/4c9ad2064a55148bef3da7d98dde8d9ff50596ea/15w31a.json", "time": "2021-12-15T15:45:43+00:00", "releaseTime": "2015-07-29T13:24:33+00:00"}, {"id": "1.8.8", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/690172f1227e1c1d2fa8fceadd0f578f7851a69e/1.8.8.json", "time": "2021-12-15T15:44:12+00:00", "releaseTime": "2015-07-27T10:31:28+00:00"}, {"id": "1.8.7", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/7152f102903cd3ce7514d84c8ac98efecac30839/1.8.7.json", "time": "2021-12-15T15:44:11+00:00", "releaseTime": "2015-06-05T10:10:44+00:00"}, {"id": "1.8.6", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/acccbb056a3e8f3086c4614974fb3a894317853a/1.8.6.json", "time": "2021-12-15T15:44:11+00:00", "releaseTime": "2015-05-25T10:31:19+00:00"}, {"id": "1.8.5", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/16da5f5be7478f3602c25182a90f2057ba2f60d8/1.8.5.json", "time": "2021-12-15T15:44:11+00:00", "releaseTime": "2015-05-22T11:15:28+00:00"}, {"id": "1.8.4", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/043b84efde9fc25d849e979329c03101ac9b7795/1.8.4.json", "time": "2021-12-15T15:44:10+00:00", "releaseTime": "2015-04-17T11:37:50+00:00"}, {"id": "15w14a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/e9349d236c0f4b8760f75621b3eaad538055c759/15w14a.json", "time": "2021-12-15T15:45:43+00:00", "releaseTime": "2015-04-01T07:08:00+00:00"}, {"id": "1.8.3", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/413ad8fdcf8f29f4f1c2b4425aa0dade00f75dd4/1.8.3.json", "time": "2021-12-15T15:44:10+00:00", "releaseTime": "2015-02-20T14:00:09+00:00"}, {"id": "1.8.2", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/1e35829856a71261f5a7b2b3a83012c7434b2203/1.8.2.json", "time": "2021-12-15T15:44:09+00:00", "releaseTime": "2015-02-19T15:47:29+00:00"}, {"id": "1.8.2-pre7", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/d07a07da8ffe68a0929710c72346073a02a94933/1.8.2-pre7.json", "time": "2021-12-15T15:45:10+00:00", "releaseTime": "2015-02-16T13:01:35+00:00"}, {"id": "1.8.2-pre6", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/07ae1d9b67d36399e239a2ff46d43a1f96ef141a/1.8.2-pre6.json", "time": "2021-12-15T15:45:10+00:00", "releaseTime": "2015-01-30T11:58:24+00:00"}, {"id": "1.8.2-pre5", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/08e7827173655705e938233cf148f955b4f67901/1.8.2-pre5.json", "time": "2021-12-15T15:45:09+00:00", "releaseTime": "2015-01-26T15:03:24+00:00"}, {"id": "1.8.2-pre4", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/db4c583ec25447f7418fc8e458798905a1282b88/1.8.2-pre4.json", "time": "2021-12-15T15:45:09+00:00", "releaseTime": "2015-01-16T14:19:59+00:00"}, {"id": "1.8.2-pre3", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/3d371e2f8c3b04b44c76ae908a1e6f800895aa80/1.8.2-pre3.json", "time": "2021-12-15T15:45:08+00:00", "releaseTime": "2015-01-15T16:44:33+00:00"}, {"id": "1.8.2-pre2", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/50c6a27cbbd2df6adff74aaea9953a00c6ce38e3/1.8.2-pre2.json", "time": "2021-12-15T15:45:08+00:00", "releaseTime": "2015-01-15T15:07:31+00:00"}, {"id": "1.8.2-pre1", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/79c984156100e076c37316d6d6377ced3daaf379/1.8.2-pre1.json", "time": "2021-12-15T15:45:07+00:00", "releaseTime": "2014-12-18T11:29:41+00:00"}, {"id": "1.8.1", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/62f9f77f67fd7d6c92cfae57cecd445be14ccd4e/1.8.1.json", "time": "2021-12-15T15:44:09+00:00", "releaseTime": "2014-11-24T14:13:31+00:00"}, {"id": "1.8.1-pre5", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/4460bbf278fef1312f03c1483599c31149fe85a7/1.8.1-pre5.json", "time": "2021-12-15T15:45:07+00:00", "releaseTime": "2014-11-19T14:30:48+00:00"}, {"id": "1.8.1-pre4", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/e9024ad2831e3fc4450977aafe7bb3d07ff0d542/1.8.1-pre4.json", "time": "2021-12-15T15:45:06+00:00", "releaseTime": "2014-11-06T14:10:50+00:00"}, {"id": "1.8.1-pre3", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/c2f5fb57bf63012594b3dc34a80a8d888ec017ac/1.8.1-pre3.json", "time": "2021-12-15T15:45:06+00:00", "releaseTime": "2014-10-23T12:59:42+00:00"}, {"id": "1.8.1-pre2", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/8e77dedf93135552e1aaaebcec4c8d154d4dea04/1.8.1-pre2.json", "time": "2021-12-15T15:45:05+00:00", "releaseTime": "2014-10-16T14:19:27+00:00"}, {"id": "1.8.1-pre1", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/f470d54d32f9e1d1a02e4e84e33b2407325ab62d/1.8.1-pre1.json", "time": "2021-12-15T15:45:05+00:00", "releaseTime": "2014-10-15T13:25:11+00:00"}, {"id": "1.8", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/9eb165eef46294062d8698c8a78e8ac914949e7a/1.8.json", "time": "2021-12-15T15:44:13+00:00", "releaseTime": "2014-09-02T08:24:35+00:00"}, {"id": "1.8-pre3", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/7fd3abc53ee1f813f5b574c8dc758fd694b6abd3/1.8-pre3.json", "time": "2021-12-15T15:45:05+00:00", "releaseTime": "2014-08-28T09:40:54+00:00"}, {"id": "1.8-pre2", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/2c6bf8e3d17565117bbb5e188544439518d3ad95/1.8-pre2.json", "time": "2021-12-15T15:45:04+00:00", "releaseTime": "2014-08-25T14:52:18+00:00"}, {"id": "1.8-pre1", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/00ddc59925abc10e08047c94657e3365b1e031d6/1.8-pre1.json", "time": "2021-12-15T15:45:04+00:00", "releaseTime": "2014-08-21T13:56:26+00:00"}, {"id": "14w34d", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/e314c5316fc189a9883f5a786a6b9daffcff8e84/14w34d.json", "time": "2021-12-15T15:45:43+00:00", "releaseTime": "2014-08-20T12:46:59+00:00"}, {"id": "14w34c", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/a82b66557f41c05f41477481e39be5d5ceec3c62/14w34c.json", "time": "2021-12-15T15:45:42+00:00", "releaseTime": "2014-08-19T15:31:24+00:00"}, {"id": "14w34b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/f24d3b4a363411fec20a36c2bd92a62b628be003/14w34b.json", "time": "2021-12-15T15:45:42+00:00", "releaseTime": "2014-08-18T15:14:28+00:00"}, {"id": "14w34a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/dc020c20f2d7a79dee3f601317a8a7cb191c0538/14w34a.json", "time": "2021-12-15T15:45:41+00:00", "releaseTime": "2014-08-18T14:14:11+00:00"}, {"id": "14w33c", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/de314d5c6f011057f764e546a212731d40736c1f/14w33c.json", "time": "2021-12-15T15:45:41+00:00", "releaseTime": "2014-08-15T18:00:26+00:00"}, {"id": "14w33b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/dec4943bf73d83402d455243f83c8c550e36f7b5/14w33b.json", "time": "2021-12-15T15:45:40+00:00", "releaseTime": "2014-08-15T16:23:51+00:00"}, {"id": "14w33a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/a1a938359171774c96e06f54bc0c12352a9d7992/14w33a.json", "time": "2021-12-15T15:45:40+00:00", "releaseTime": "2014-08-13T15:08:14+00:00"}, {"id": "14w32d", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/414e33e7d03d873966c199d959426da08aa5aebc/14w32d.json", "time": "2021-12-15T15:45:40+00:00", "releaseTime": "2014-08-08T15:13:41+00:00"}, {"id": "14w32c", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/3dfa2c82cd06c89735ac0c9b05151b4994efab19/14w32c.json", "time": "2021-12-15T15:45:39+00:00", "releaseTime": "2014-08-08T14:11:20+00:00"}, {"id": "14w32b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/6230265cc1f324689cb5fbb7df21235ca0013e70/14w32b.json", "time": "2021-12-15T15:45:39+00:00", "releaseTime": "2014-08-07T14:45:17+00:00"}, {"id": "14w32a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/3af16f96e7800a8f0c31500a873b008c00036c84/14w32a.json", "time": "2021-12-15T15:45:38+00:00", "releaseTime": "2014-08-06T14:01:16+00:00"}, {"id": "14w31a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/1243fe2c047064613e42a2c0e7ce0018fdf94035/14w31a.json", "time": "2021-12-15T15:45:38+00:00", "releaseTime": "2014-07-30T15:38:05+00:00"}, {"id": "14w30c", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/6327714a7712f723bb74492e2f5fcbb92b8b12a9/14w30c.json", "time": "2021-12-15T15:45:37+00:00", "releaseTime": "2014-07-24T14:39:09+00:00"}, {"id": "14w30b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/dddd3cf12b88f179baa286a9bb51f4c3902c3780/14w30b.json", "time": "2021-12-15T15:45:37+00:00", "releaseTime": "2014-07-23T15:03:03+00:00"}, {"id": "14w30a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/f73b4bad130911c1ef16066aeb740574f20f90f7/14w30a.json", "time": "2021-12-15T15:45:36+00:00", "releaseTime": "2014-07-23T13:15:42+00:00"}, {"id": "14w29b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/02a4803aa427d29f9db910d22b263686d0135fcc/14w29b.json", "time": "2021-12-15T15:45:36+00:00", "releaseTime": "2014-07-16T17:27:40+00:00"}, {"id": "14w29a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/5219707e16e90d57fbba55f635b68e4725d72b8f/14w29a.json", "time": "2021-12-15T15:45:36+00:00", "releaseTime": "2014-07-16T15:18:17+00:00"}, {"id": "14w28b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/c18437b0194fb2af464b5fe0cb67ed0eeafb44e8/14w28b.json", "time": "2021-12-15T15:45:35+00:00", "releaseTime": "2014-07-10T14:28:48+00:00"}, {"id": "14w28a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/6d6b755e76453633e464ed09f82b0979a414d8e4/14w28a.json", "time": "2021-12-15T15:45:35+00:00", "releaseTime": "2014-07-09T15:42:36+00:00"}, {"id": "14w27b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/08f1ed6374fb9d87e34fe81ab50d19d01e3055dc/14w27b.json", "time": "2021-12-15T15:45:34+00:00", "releaseTime": "2014-07-02T18:34:56+00:00"}, {"id": "14w27a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/c0e594ad64eac1b322e4724b92292daad80951eb/14w27a.json", "time": "2021-12-15T15:45:34+00:00", "releaseTime": "2014-07-02T16:07:20+00:00"}, {"id": "14w26c", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/2fe002bebd830ccb5328329ed7efb7e9fb555519/14w26c.json", "time": "2021-12-15T15:45:34+00:00", "releaseTime": "2014-06-26T15:05:03+00:00"}, {"id": "14w26b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/288aa1d9c5840c8d0f75ee682bc8a0a1564babfb/14w26b.json", "time": "2021-12-15T15:45:33+00:00", "releaseTime": "2014-06-25T15:08:39+00:00"}, {"id": "14w26a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/6d41ffb32ced2eaaeed6b0ddd38b5e53f849c25f/14w26a.json", "time": "2021-12-15T15:45:33+00:00", "releaseTime": "2014-06-25T13:59:27+00:00"}, {"id": "14w25b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/d8b348b5a412e809748f35f694fe5dc395a83b3a/14w25b.json", "time": "2021-12-15T15:45:32+00:00", "releaseTime": "2014-06-19T12:29:48+00:00"}, {"id": "14w25a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/0091b9fe0f95dc765e187840ff41235638ce22d6/14w25a.json", "time": "2021-12-15T15:45:32+00:00", "releaseTime": "2014-06-18T15:52:28+00:00"}, {"id": "14w21b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/c5791a666929e783ba360e98247ff744b5ac3520/14w21b.json", "time": "2021-12-15T15:45:32+00:00", "releaseTime": "2014-05-22T15:17:55+00:00"}, {"id": "14w21a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/f8c912b97cf684f4339571b27592e85b7ec84a19/14w21a.json", "time": "2021-12-15T15:45:31+00:00", "releaseTime": "2014-05-22T14:44:33+00:00"}, {"id": "14w20b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/b4b682e67ff47a689cf3ff0b405eeec5758dfa9a/14w20b.json", "time": "2021-12-15T15:45:31+00:00", "releaseTime": "2014-05-15T16:47:21+00:00"}, {"id": "14w20a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/674e75f032a5473ad91531dfbfa7b8cb42f55f71/14w20a.json", "time": "2021-12-15T15:45:31+00:00", "releaseTime": "2014-05-15T14:01:20+00:00"}, {"id": "1.7.10", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/ed5d8789ed29872ea2ef1c348302b0c55e3f3468/1.7.10.json", "time": "2021-12-15T15:44:05+00:00", "releaseTime": "2014-05-14T17:29:23+00:00"}, {"id": "1.7.10-pre4", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/f2a4a03329bb07d70d4837b6893c435f97deed25/1.7.10-pre4.json", "time": "2021-12-15T15:45:02+00:00", "releaseTime": "2014-05-14T16:29:23+00:00"}, {"id": "1.7.10-pre3", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/94578a1fc1db7cb804a9be044008e54367f4905e/1.7.10-pre3.json", "time": "2021-12-15T15:45:01+00:00", "releaseTime": "2014-05-14T15:29:23+00:00"}, {"id": "1.7.10-pre2", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/2e8103cd14fc9a7db0c56f68cbc41a0b26ea9954/1.7.10-pre2.json", "time": "2021-12-15T15:45:01+00:00", "releaseTime": "2014-05-14T14:29:23+00:00"}, {"id": "1.7.10-pre1", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/a526665974dfa717f79f15529ae294d0a6074fc5/1.7.10-pre1.json", "time": "2021-12-15T15:45:00+00:00", "releaseTime": "2014-05-14T13:29:23+00:00"}, {"id": "14w19a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/ffcc6382a2d12310c42cc1b654ea8d88117cf105/14w19a.json", "time": "2021-12-15T15:45:30+00:00", "releaseTime": "2014-05-08T14:24:19+00:00"}, {"id": "14w18b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/0aa29d5bc6915b347505a194260bd51bc8bf2960/14w18b.json", "time": "2021-12-15T15:45:30+00:00", "releaseTime": "2014-05-02T11:38:17+00:00"}, {"id": "14w18a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/c64cc4d300948e2d8e5fb05e394b69edc680027e/14w18a.json", "time": "2021-12-15T15:45:29+00:00", "releaseTime": "2014-04-30T10:25:35+00:00"}, {"id": "14w17a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/2d857ecd809f15008f4718dc3b11ef5b60548ce4/14w17a.json", "time": "2021-12-15T15:45:29+00:00", "releaseTime": "2014-04-24T15:44:49+00:00"}, {"id": "14w11b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/022ade13058d98289f1625857462994a6ec40110/14w11b.json", "time": "2021-12-15T15:45:28+00:00", "releaseTime": "2014-04-14T14:36:19+00:00"}, {"id": "1.7.9", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/5579bc9e25a9bb5e3187a2570693a0c6658edce4/1.7.9.json", "time": "2021-12-15T15:44:08+00:00", "releaseTime": "2014-04-14T13:29:23+00:00"}, {"id": "1.7.8", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/03d8e2e1c192d48ffc406cb7a483861cf26dfe25/1.7.8.json", "time": "2021-12-15T15:44:08+00:00", "releaseTime": "2014-04-09T07:58:16+00:00"}, {"id": "1.7.7", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/47e228263557da73d0e2be803e5d83e5b246ae75/1.7.7.json", "time": "2021-12-15T15:44:07+00:00", "releaseTime": "2014-04-09T07:52:16+00:00"}, {"id": "1.7.6", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/b6dd3e6496ad415f0c57867dea1f97710d5f184c/1.7.6.json", "time": "2021-12-15T15:44:07+00:00", "releaseTime": "2014-04-09T07:52:06+00:00"}, {"id": "14w11a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/ed3b597f26c1140b31d4c7421054e83398270e19/14w11a.json", "time": "2021-12-15T15:45:28+00:00", "releaseTime": "2014-03-13T14:02:50+00:00"}, {"id": "1.7.6-pre2", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/977e8f92b306b2d798a7b69858f48fbe06dbb302/1.7.6-pre2.json", "time": "2021-12-15T15:45:03+00:00", "releaseTime": "2014-03-08T11:00:01+00:00"}, {"id": "1.7.6-pre1", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/39e402b6972475126fa9e8a883915a9ce5d7722a/1.7.6-pre1.json", "time": "2021-12-15T15:45:02+00:00", "releaseTime": "2014-03-08T11:00:00+00:00"}, {"id": "14w10c", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/312e632fcac49d7c1dca6a7fa58824eace01d91d/14w10c.json", "time": "2021-12-15T15:45:28+00:00", "releaseTime": "2014-03-07T13:49:55+00:00"}, {"id": "14w10b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/90e924daa64f7908e69d4c7c4451599d2592f9d3/14w10b.json", "time": "2021-12-15T15:45:27+00:00", "releaseTime": "2014-03-06T16:25:39+00:00"}, {"id": "14w10a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/643d852decb88d011fab20df4cb14ed100362f0f/14w10a.json", "time": "2021-12-15T15:45:27+00:00", "releaseTime": "2014-03-06T14:23:04+00:00"}, {"id": "14w08a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/4c04557fe5dcfe1c2e302265b677549384008c14/14w08a.json", "time": "2021-12-15T15:45:26+00:00", "releaseTime": "2014-02-26T17:00:00+00:00"}, {"id": "1.7.5", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/4afb628501a6a206b80a47ab4f29ea6b98caac90/1.7.5.json", "time": "2021-12-15T15:44:06+00:00", "releaseTime": "2014-02-26T09:22:17+00:00"}, {"id": "14w07a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/23dbadcc03150f2e3447d528f7f546ba8fd62246/14w07a.json", "time": "2021-12-15T15:45:26+00:00", "releaseTime": "2014-02-14T11:05:07+00:00"}, {"id": "14w06b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/2c381742bc9cadc33fbc0a823b4fb734aad78533/14w06b.json", "time": "2021-12-15T15:45:26+00:00", "releaseTime": "2014-02-06T17:30:42+00:00"}, {"id": "14w06a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/a59d77f95afc36421554f9fee3a930d6cca9209d/14w06a.json", "time": "2021-12-15T15:45:25+00:00", "releaseTime": "2014-02-06T14:30:17+00:00"}, {"id": "14w05b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/0b0f0bb2354640bfeeafe8611a8cfb53e9c3edff/14w05b.json", "time": "2021-12-15T15:45:25+00:00", "releaseTime": "2014-01-31T14:05:50+00:00"}, {"id": "14w05a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/e9d4eb5a505a84dda9c36ea32f7ebb998a60a97f/14w05a.json", "time": "2021-12-15T15:45:24+00:00", "releaseTime": "2014-01-30T15:32:41+00:00"}, {"id": "14w04b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/62524cf35e56e365a5dff36353fb77a38ff35269/14w04b.json", "time": "2021-12-15T15:45:24+00:00", "releaseTime": "2014-01-24T15:48:46+00:00"}, {"id": "14w04a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/41307eaf3c2bf6b526986d8bb2fd698099298a2f/14w04a.json", "time": "2021-12-15T15:45:23+00:00", "releaseTime": "2014-01-23T15:26:13+00:00"}, {"id": "14w03b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/4c3bab6bfb32daed6b30d298818e4b8bb37c4bb2/14w03b.json", "time": "2021-12-15T15:45:23+00:00", "releaseTime": "2014-01-16T16:36:19+00:00"}, {"id": "14w03a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/73f7ed186402ac8927ce415507cfa70b6aa5483f/14w03a.json", "time": "2021-12-15T15:45:23+00:00", "releaseTime": "2014-01-16T14:45:13+00:00"}, {"id": "14w02c", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/e7c40fe6754d5912ebc119a53e752c9024130e3f/14w02c.json", "time": "2021-12-15T15:45:22+00:00", "releaseTime": "2014-01-10T15:42:36+00:00"}, {"id": "14w02b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/25f758976bfd97d533af7e38680db8983d2cf82d/14w02b.json", "time": "2021-12-15T15:45:22+00:00", "releaseTime": "2014-01-09T15:45:55+00:00"}, {"id": "14w02a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/1348f531ae51631ea0ee1e467348440c5f93dcc2/14w02a.json", "time": "2021-12-15T15:45:22+00:00", "releaseTime": "2014-01-09T14:44:41+00:00"}, {"id": "1.7.4", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/5db9d89cb6b89573384f324aa585b4c99525b37a/1.7.4.json", "time": "2021-12-15T15:44:06+00:00", "releaseTime": "2013-12-09T12:28:10+00:00"}, {"id": "1.7.3", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/cd133f90b7e339c50b3cdce64188a51469c6a128/1.7.3.json", "time": "2021-12-15T15:44:06+00:00", "releaseTime": "2013-12-06T13:55:34+00:00"}, {"id": "13w49a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/82cf56aabfbca3a1f1d13b4404050d9877b5a67e/13w49a.json", "time": "2021-12-15T15:45:21+00:00", "releaseTime": "2013-12-05T14:34:41+00:00"}, {"id": "13w48b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/55543db98b2df3a986c99d8cdc8278a70493eb4a/13w48b.json", "time": "2021-12-15T15:45:21+00:00", "releaseTime": "2013-11-26T18:36:08+00:00"}, {"id": "13w48a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/329f28adfb5ba0d6d81ceae27209e1eb97c4ef88/13w48a.json", "time": "2021-12-15T15:45:20+00:00", "releaseTime": "2013-11-25T16:53:39+00:00"}, {"id": "13w47e", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/81b30470c108a201cfb2dfd548dc0a52afa20a0a/13w47e.json", "time": "2021-12-15T15:45:20+00:00", "releaseTime": "2013-11-22T15:16:38+00:00"}, {"id": "13w47d", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/ccf62018b2e8aa9628dab2353ed85a4239368f63/13w47d.json", "time": "2021-12-15T15:45:20+00:00", "releaseTime": "2013-11-22T13:51:15+00:00"}, {"id": "13w47c", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/ca7616ffa259c99e2350f010555eba54e54b4dd0/13w47c.json", "time": "2021-12-15T15:45:19+00:00", "releaseTime": "2013-11-21T17:10:33+00:00"}, {"id": "13w47b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/ac1dc3c3a7d33aa47e97c7b3d419510696f57cde/13w47b.json", "time": "2021-12-15T15:45:19+00:00", "releaseTime": "2013-11-21T16:57:41+00:00"}, {"id": "13w47a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/9bb727f63e3af146df7cbd47a6a3332d31550855/13w47a.json", "time": "2021-12-15T15:45:18+00:00", "releaseTime": "2013-11-21T15:59:58+00:00"}, {"id": "1.7.2", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/c2e8ecbf355760a74c93d7210767fa043d53f27c/1.7.2.json", "time": "2021-12-15T15:44:05+00:00", "releaseTime": "2013-10-25T13:00:00+00:00"}, {"id": "1.7.1", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/744a42505862bea0bdd5da55ff06e09536f36d66/1.7.1.json", "time": "2021-12-15T15:45:00+00:00", "releaseTime": "2013-10-23T12:01:07+00:00"}, {"id": "1.7", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/7a5aa5f3e3fba022efe0752660a5c7cd2dff2d16/1.7.json", "time": "2021-12-15T15:45:03+00:00", "releaseTime": "2013-10-22T15:04:05+00:00"}, {"id": "13w43a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/d7c2d81bf137c9e1a84576241767de08909c29fd/13w43a.json", "time": "2021-12-15T15:45:18+00:00", "releaseTime": "2013-10-21T16:34:47+00:00"}, {"id": "13w42b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/ce863b81986e6acce2983be040d2071711f6403c/13w42b.json", "time": "2021-12-15T15:45:17+00:00", "releaseTime": "2013-10-18T16:34:08+00:00"}, {"id": "13w42a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/8cef2eee33892b62b3a28559246c750c3487dd8f/13w42a.json", "time": "2021-12-15T15:45:17+00:00", "releaseTime": "2013-10-17T18:33:05+00:00"}, {"id": "13w41b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/015456cd8b5c68d0076536d4e867111cd36b541a/13w41b.json", "time": "2021-12-15T15:45:17+00:00", "releaseTime": "2013-10-11T15:09:17+00:00"}, {"id": "13w41a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/43622c17e011441b8b63b0a27d79887c2f7516aa/13w41a.json", "time": "2021-12-15T15:45:16+00:00", "releaseTime": "2013-10-10T14:21:43+00:00"}, {"id": "13w39b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/b2d2f0b1fd23b08f8d2fb9beff39f173a2d65160/13w39b.json", "time": "2021-12-13T14:56:26+00:00", "releaseTime": "2013-09-27T12:15:58+00:00"}, {"id": "13w39a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/61b88e8c311ed6a647ebf13d9934c6a1e3a94a75/13w39a.json", "time": "2021-12-13T14:56:26+00:00", "releaseTime": "2013-09-26T15:11:19+00:00"}, {"id": "13w38c", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/a9e87e0699f19fea280878f5deb744c5d5d3ccb1/13w38c.json", "time": "2019-06-28T07:08:09+00:00", "releaseTime": "2013-09-20T15:11:34+00:00"}, {"id": "13w38b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/6f426be1993b140ab5d10459c91eb1f542d58c82/13w38b.json", "time": "2019-06-28T07:08:09+00:00", "releaseTime": "2013-09-20T13:45:40+00:00"}, {"id": "13w38a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/e6dc1d9f9c8efeec67af438d5bf61be082f6e8a4/13w38a.json", "time": "2019-06-28T07:08:09+00:00", "releaseTime": "2013-09-19T16:34:21+00:00"}, {"id": "1.6.4", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/b71bae449192fbbe1582ff32fb3765edf0b9b0a8/1.6.4.json", "time": "2019-06-28T07:06:16+00:00", "releaseTime": "2013-09-19T15:52:37+00:00"}, {"id": "13w37b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/b8d28154ee056af6af3c8c37815418fe0e9f34f8/13w37b.json", "time": "2019-06-28T07:08:08+00:00", "releaseTime": "2013-09-13T10:54:41+00:00"}, {"id": "1.6.3", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/903d6ba1bc87c301d88fa418f8b33446201c7d4e/1.6.3.json", "time": "2019-06-28T07:07:47+00:00", "releaseTime": "2013-09-13T10:54:41+00:00"}, {"id": "13w37a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/2f33c613a4bb81ef5f56be03a8f578208ada382a/13w37a.json", "time": "2019-06-28T07:08:08+00:00", "releaseTime": "2013-09-12T14:23:14+00:00"}, {"id": "13w36b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/4a538e23057a596fc8c7e04d8a7738d866467f51/13w36b.json", "time": "2019-06-28T07:08:08+00:00", "releaseTime": "2013-09-06T12:31:58+00:00"}, {"id": "13w36a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/bc915c4dc167dfba92fcc0ae3aa051ae0f9f089b/13w36a.json", "time": "2019-06-28T07:08:08+00:00", "releaseTime": "2013-09-05T13:05:40+00:00"}, {"id": "1.6.2", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/c0729761bf65dc58138ce508645dba1442fa78b8/1.6.2.json", "time": "2019-06-28T07:06:16+00:00", "releaseTime": "2013-07-05T13:09:02+00:00"}, {"id": "1.6.1", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/7fd8e0c76f62813eb0465e31bb74b160c01472d6/1.6.1.json", "time": "2019-06-28T07:06:16+00:00", "releaseTime": "2013-06-28T14:48:41+00:00"}, {"id": "1.6", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/20116297638f7c70cd046e25a6ac90fee4cae61a/1.6.json", "time": "2019-06-28T07:07:47+00:00", "releaseTime": "2013-06-25T13:08:56+00:00"}, {"id": "13w26a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/b349702aef5e3adaebec30c79338300423943930/13w26a.json", "time": "2019-06-28T07:08:08+00:00", "releaseTime": "2013-06-24T16:06:06+00:00"}, {"id": "13w25c", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/934788bc580ef0a19725ee5bd31f02a0b866e0bf/13w25c.json", "time": "2019-06-28T07:08:08+00:00", "releaseTime": "2013-06-20T15:23:37+00:00"}, {"id": "13w25b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/8b7870ddd0d0b38779479ad782d65ad80e688cf7/13w25b.json", "time": "2019-06-28T07:08:08+00:00", "releaseTime": "2013-06-18T15:13:27+00:00"}, {"id": "13w25a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/65c0e5fff89b477ac6f8ddb336f0e718d525d311/13w25a.json", "time": "2019-06-28T07:08:08+00:00", "releaseTime": "2013-06-17T14:08:06+00:00"}, {"id": "13w24b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/e1294b52803771cfb06767c4c40dced70475cb25/13w24b.json", "time": "2019-06-28T07:08:08+00:00", "releaseTime": "2013-06-14T12:19:13+00:00"}, {"id": "13w24a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/74666ab85cc5539f08aec638eabd63a552ed4125/13w24a.json", "time": "2019-06-28T07:08:07+00:00", "releaseTime": "2013-06-13T15:32:23+00:00"}, {"id": "13w23b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/f17829f3e412b9b727437ec9f8433bdfc6c7b9a7/13w23b.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2013-06-08T00:32:01+00:00"}, {"id": "13w23a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/8234057ec006c5bb62a28ca4f6787323968438e6/13w23a.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2013-06-07T16:04:20+00:00"}, {"id": "13w22a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/597a15f27cc0913a77ff7e1e9c62c3affc627fe8/13w22a.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2013-05-30T14:38:40+00:00"}, {"id": "13w21b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/98f66e115fbab6dcd05f2e5e0a23dd78c0a5e7a3/13w21b.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2013-05-27T08:50:42+00:00"}, {"id": "13w21a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/aebfb9b82f0712de3e6ef78bc2cafe5dcb742130/13w21a.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2013-05-23T15:38:28+00:00"}, {"id": "13w19a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/8bb131515d6b483baa76f1b42ea5a1018d11bb22/13w19a.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2013-05-10T14:48:02+00:00"}, {"id": "13w18c", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/93738bf22f33d9ba5e2980bec849b097a5050c8f/13w18c.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2013-05-03T09:19:35+00:00"}, {"id": "13w18b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/2cab9aae9eef3558d6abe8ac2708ea19322a1594/13w18b.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2013-05-02T17:12:25+00:00"}, {"id": "13w18a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/79bef69b5542046e705a57784cc63574748effe2/13w18a.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2013-05-02T15:45:59+00:00"}, {"id": "13w17a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/d21e61b16b0e446b5062e8ee72c9d0ff3bfbd155/13w17a.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2013-04-25T15:50:00+00:00"}, {"id": "1.5.2", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/924a2dcd8bdc31f8e9d36229811c298b3537bbc7/1.5.2.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2013-04-25T15:45:00+00:00"}, {"id": "13w16b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/5f4e1c860d1c79d346f3e4574615ca1fd9da01ed/13w16b.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2013-04-23T21:51:22+00:00"}, {"id": "13w16a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/c355e2ee0495dfcc8ec9806955c8d2993179b40c/13w16a.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2013-04-21T12:49:30+00:00"}, {"id": "1.5.1", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/3c514114d9c2a3ea78f72c4f9fb4eeb56747135a/1.5.1.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2013-03-20T10:00:00+00:00"}, {"id": "1.5", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/bb882e3d97bee9c5b5e486da04b85f977e770150/1.5.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2013-03-06T22:00:00+00:00"}, {"id": "1.4.7", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/7aa8e9aeacf4e1076bfd81c096f78de9b883ebe6/1.4.7.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2012-12-27T22:00:00+00:00"}, {"id": "1.4.5", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/d64a902a48a6a618f9a0a82c183be454e7a1f23b/1.4.5.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2012-12-19T22:00:00+00:00"}, {"id": "1.4.6", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/09832797138da79745ade734da775f44c254066b/1.4.6.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2012-12-19T22:00:00+00:00"}, {"id": "1.4.4", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/f7de827181036b09444abb6b64c1fcc663b8e98e/1.4.4.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2012-12-13T22:00:00+00:00"}, {"id": "1.4.3", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/3ab416ac64dac1a6123402a8aabd8ef3caeef087/1.4.3.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2012-11-30T22:00:00+00:00"}, {"id": "1.4.2", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/2fd77aa19aba2860bbf4c1fd9f84f232703dd287/1.4.2.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2012-11-24T22:00:00+00:00"}, {"id": "1.4.1", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/14c3ba517b5baabdfc61b60eb49d9aa7da012906/1.4.1.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2012-11-22T22:00:00+00:00"}, {"id": "1.4", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/d979a4671611bf8704c0a2a0cf09964ca25eefd7/1.4.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2012-11-18T22:00:00+00:00"}, {"id": "1.3.2", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/598eedd6f67db4aefbae6ed119029e3d7373ecf5/1.3.2.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2012-08-15T22:00:00+00:00"}, {"id": "1.3.1", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/637aa8466c4dac462b88682caaf753290f37798f/1.3.1.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2012-07-31T22:00:00+00:00"}, {"id": "1.3", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/b384219c6d4879e56b92eea01a0d986e20d55dea/1.3.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2012-07-25T22:00:00+00:00"}, {"id": "1.2.5", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/5158765caf1ca14958cb6c45d52c8e09ed9b046c/1.2.5.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2012-03-29T22:00:00+00:00"}, {"id": "1.2.4", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/69a67fcf11ed1298c6b43a00d64461908a318749/1.2.4.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2012-03-21T22:00:00+00:00"}, {"id": "1.2.3", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/2f7eaec33e3017a413c677eefa59df2e5919e536/1.2.3.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2012-03-01T22:00:00+00:00"}, {"id": "1.2.2", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/4e2e449ba0b8b5da7055f0decea1a3257b282f17/1.2.2.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2012-02-29T22:00:01+00:00"}, {"id": "1.2.1", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/1a45c035ebb969dbac4e0c39582e974ad7f74a9e/1.2.1.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2012-02-29T22:00:00+00:00"}, {"id": "1.1", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/c0cb9368dbdbb1e8dbcb9363a28d8da74cf6fc5e/1.1.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2012-01-11T22:00:00+00:00"}, {"id": "1.0", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/75062586b830dd5160f13f1c9130eb365e01f1b9/1.0.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2011-11-17T22:00:00+00:00"}, {"id": "b1.8.1", "type": "old_beta", "url": "https://piston-meta.mojang.com/v1/packages/440e3b845c3991492a3d0c5f0ccfda78ab90d9b6/b1.8.1.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2011-09-18T22:00:00+00:00"}, {"id": "b1.8", "type": "old_beta", "url": "https://piston-meta.mojang.com/v1/packages/e5b20b1a15daa60effefd86da94b118086214e8b/b1.8.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2011-09-14T22:00:00+00:00"}, {"id": "b1.7.3", "type": "old_beta", "url": "https://piston-meta.mojang.com/v1/packages/44f6969326bd45aa00dcd3c4ca3a7c05ebb24c04/b1.7.3.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2011-07-07T22:00:00+00:00"}, {"id": "b1.7.2", "type": "old_beta", "url": "https://piston-meta.mojang.com/v1/packages/00f5aff7cbf6ce109ecf2c8e1a5dc1bcbadb5680/b1.7.2.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2011-06-30T22:00:00+00:00"}, {"id": "b1.7", "type": "old_beta", "url": "https://piston-meta.mojang.com/v1/packages/f3a725f9f27e90f2a2622ad82c182c1a1178572f/b1.7.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2011-06-29T22:00:00+00:00"}, {"id": "b1.6.6", "type": "old_beta", "url": "https://piston-meta.mojang.com/v1/packages/16cb1aa6f7c9c3953fa2f53abd8f57558efd3e71/b1.6.6.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2011-05-30T22:00:00+00:00"}, {"id": "b1.6.5", "type": "old_beta", "url": "https://piston-meta.mojang.com/v1/packages/eae37053bb49092ce93d40e762f4c3a573ee2880/b1.6.5.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2011-05-27T22:00:00+00:00"}, {"id": "b1.6.4", "type": "old_beta", "url": "https://piston-meta.mojang.com/v1/packages/ac98b5e9e44038f3a311736111c16fc30006e1fd/b1.6.4.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2011-05-25T22:00:04+00:00"}, {"id": "b1.6.3", "type": "old_beta", "url": "https://piston-meta.mojang.com/v1/packages/87785f4386cd308defcc876fb6d62bf3681be6bc/b1.6.3.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2011-05-25T22:00:03+00:00"}, {"id": "b1.6.2", "type": "old_beta", "url": "https://piston-meta.mojang.com/v1/packages/23f8e2f1634d1db8875521d8e0d3fb5340623fd2/b1.6.2.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2011-05-25T22:00:02+00:00"}, {"id": "b1.6.1", "type": "old_beta", "url": "https://piston-meta.mojang.com/v1/packages/1958ecd7b20c5a2849b4e1e7a9921891e49178da/b1.6.1.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2011-05-25T22:00:01+00:00"}, {"id": "b1.6", "type": "old_beta", "url": "https://piston-meta.mojang.com/v1/packages/7442961ad4f23c60787ab2a3c97a5037c40a92f2/b1.6.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2011-05-25T22:00:00+00:00"}, {"id": "b1.5_01", "type": "old_beta", "url": "https://piston-meta.mojang.com/v1/packages/0f0b24408e6ca445e9c4a3ea2a676f71f96f5d35/b1.5_01.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2011-04-19T22:00:00+00:00"}, {"id": "b1.5", "type": "old_beta", "url": "https://piston-meta.mojang.com/v1/packages/3fa704bd73444368f04351d6d4add8a3eead9b4e/b1.5.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2011-04-18T22:00:00+00:00"}, {"id": "b1.4_01", "type": "old_beta", "url": "https://piston-meta.mojang.com/v1/packages/d47fcb0e4d9b7169fbb26c0bce56ed2082c3bb1d/b1.4_01.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2011-04-04T22:00:00+00:00"}, {"id": "b1.4", "type": "old_beta", "url": "https://piston-meta.mojang.com/v1/packages/2cf34d1caca87b68ee104e348480e38f45eb7621/b1.4.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2011-03-30T22:00:00+00:00"}, {"id": "b1.3_01", "type": "old_beta", "url": "https://piston-meta.mojang.com/v1/packages/a0e0a27d8f7d4c23b6441e473a3e44b45a958284/b1.3_01.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2011-02-22T22:00:00+00:00"}, {"id": "b1.3b", "type": "old_beta", "url": "https://piston-meta.mojang.com/v1/packages/16ffb877701f7b41c6f27fb09def7a8e5d667df1/b1.3b.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2011-02-21T22:00:00+00:00"}, {"id": "b1.2_02", "type": "old_beta", "url": "https://piston-meta.mojang.com/v1/packages/5352763f0a944e7940e718fd66aae03bc57dc2ef/b1.2_02.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2011-01-20T22:00:00+00:00"}, {"id": "b1.2_01", "type": "old_beta", "url": "https://piston-meta.mojang.com/v1/packages/0fea71dc8c4199581753d8ecb3ae69039a302340/b1.2_01.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2011-01-13T22:00:00+00:00"}, {"id": "b1.2", "type": "old_beta", "url": "https://piston-meta.mojang.com/v1/packages/67bcdada56d272e4508ecb8e35827ffa4a4c18d1/b1.2.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2011-01-12T22:00:00+00:00"}, {"id": "b1.1_02", "type": "old_beta", "url": "https://piston-meta.mojang.com/v1/packages/01042e0ecdd894894ebc6f45300ae306010c154f/b1.1_02.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2010-12-21T22:00:01+00:00"}, {"id": "b1.1_01", "type": "old_beta", "url": "https://piston-meta.mojang.com/v1/packages/1bab185d888a549a3fcb4e528557caa3e7884290/b1.1_01.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2010-12-21T22:00:00+00:00"}, {"id": "b1.0.2", "type": "old_beta", "url": "https://piston-meta.mojang.com/v1/packages/e0a317286013bdd8e6de6da5e709422af61597d8/b1.0.2.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2010-12-20T22:00:00+00:00"}, {"id": "b1.0_01", "type": "old_beta", "url": "https://piston-meta.mojang.com/v1/packages/d3eec813918ee87826f7bca65dd1558b33841798/b1.0_01.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2010-12-19T22:00:01+00:00"}, {"id": "b1.0", "type": "old_beta", "url": "https://piston-meta.mojang.com/v1/packages/e5348beaf3d3c366c522b1c70044f8b7be168b02/b1.0.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2010-12-19T22:00:00+00:00"}, {"id": "a1.2.6", "type": "old_alpha", "url": "https://piston-meta.mojang.com/v1/packages/1c888e4d8aed380db25aeb3835f5918297bb5e3a/a1.2.6.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2010-12-02T22:00:00+00:00"}, {"id": "a1.2.5", "type": "old_alpha", "url": "https://piston-meta.mojang.com/v1/packages/a925f00e3f7f1bde95240152bef4d15f36971394/a1.2.5.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2010-11-30T22:00:00+00:00"}, {"id": "a1.2.4_01", "type": "old_alpha", "url": "https://piston-meta.mojang.com/v1/packages/64d6a749cb24ddd8a27546f9555ac7c2853c5943/a1.2.4_01.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2010-11-29T22:00:00+00:00"}, {"id": "a1.2.3_04", "type": "old_alpha", "url": "https://piston-meta.mojang.com/v1/packages/59c7719b82023e5b71e334a69d3c13137014a2bc/a1.2.3_04.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2010-11-25T22:00:00+00:00"}, {"id": "a1.2.3_02", "type": "old_alpha", "url": "https://piston-meta.mojang.com/v1/packages/b22eadebb4bfb63cdc42e9811da8fd2234eaaa6e/a1.2.3_02.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2010-11-24T22:00:00+00:00"}, {"id": "a1.2.3_01", "type": "old_alpha", "url": "https://piston-meta.mojang.com/v1/packages/da7b740e70324be7e189c65f1f834f0a30c0588f/a1.2.3_01.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2010-11-23T22:00:01+00:00"}, {"id": "a1.2.3", "type": "old_alpha", "url": "https://piston-meta.mojang.com/v1/packages/6c059b7bdb14b29c8d5cca2b250472962fe3b0b1/a1.2.3.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2010-11-23T22:00:00+00:00"}, {"id": "a1.2.2b", "type": "old_alpha", "url": "https://piston-meta.mojang.com/v1/packages/2aba3e114e0a7190ea3dff1553787d5044e1c420/a1.2.2b.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2010-11-09T22:00:01+00:00"}, {"id": "a1.2.2a", "type": "old_alpha", "url": "https://piston-meta.mojang.com/v1/packages/03cde2f4856b59adab177ab10673b6d951bfd7c8/a1.2.2a.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2010-11-09T22:00:00+00:00"}, {"id": "a1.2.1_01", "type": "old_alpha", "url": "https://piston-meta.mojang.com/v1/packages/f20e3a7757a92e1d429dcf45fa545cc84a9699da/a1.2.1_01.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2010-11-04T22:00:01+00:00"}, {"id": "a1.2.1", "type": "old_alpha", "url": "https://piston-meta.mojang.com/v1/packages/05773451d61d92c0e8fa73cdb2e4c0fd23c4e1d4/a1.2.1.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2010-11-04T22:00:00+00:00"}, {"id": "a1.2.0_02", "type": "old_alpha", "url": "https://piston-meta.mojang.com/v1/packages/57ff567f186230b303af60241fbce283dad44bb2/a1.2.0_02.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2010-11-03T22:00:00+00:00"}, {"id": "a1.2.0_01", "type": "old_alpha", "url": "https://piston-meta.mojang.com/v1/packages/bed2a50ed2f9ce6a920394916ea66ce41b09b166/a1.2.0_01.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2010-10-30T22:00:00+00:00"}, {"id": "a1.2.0", "type": "old_alpha", "url": "https://piston-meta.mojang.com/v1/packages/abc94a77d94b94042d01476ee0c2e4b8c4eb08e1/a1.2.0.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2010-10-29T22:00:00+00:00"}, {"id": "a1.1.2_01", "type": "old_alpha", "url": "https://piston-meta.mojang.com/v1/packages/8730e3503e352fc03cca8a6c6ee614a17d66d8c6/a1.1.2_01.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2010-09-22T22:00:00+00:00"}, {"id": "a1.1.2", "type": "old_alpha", "url": "https://piston-meta.mojang.com/v1/packages/b515b79ecaba79a0b5a4a5a03bf2b077f6c53334/a1.1.2.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2010-09-19T22:00:00+00:00"}, {"id": "a1.1.0", "type": "old_alpha", "url": "https://piston-meta.mojang.com/v1/packages/6054271bd0a275ed3030be97b6e9f81977abdf5d/a1.1.0.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2010-09-12T22:00:00+00:00"}, {"id": "a1.0.17_04", "type": "old_alpha", "url": "https://piston-meta.mojang.com/v1/packages/fc2b6231e945558df29b6ed12522758860c511ab/a1.0.17_04.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2010-08-22T22:00:00+00:00"}, {"id": "a1.0.17_02", "type": "old_alpha", "url": "https://piston-meta.mojang.com/v1/packages/a261074f38c555d9770ba7f1a4cae9351af19d73/a1.0.17_02.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2010-08-19T22:00:00+00:00"}, {"id": "a1.0.16", "type": "old_alpha", "url": "https://piston-meta.mojang.com/v1/packages/205ed38d0d1e135b467702a746e64ed2623b4679/a1.0.16.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2010-08-11T22:00:00+00:00"}, {"id": "a1.0.15", "type": "old_alpha", "url": "https://piston-meta.mojang.com/v1/packages/05a0fdef0a0d62273290eb1c145ad10501941f75/a1.0.15.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2010-08-03T22:00:00+00:00"}, {"id": "a1.0.14", "type": "old_alpha", "url": "https://piston-meta.mojang.com/v1/packages/5af21fa2467997914940beb39279f0d545a48335/a1.0.14.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2010-07-29T22:00:00+00:00"}, {"id": "a1.0.11", "type": "old_alpha", "url": "https://piston-meta.mojang.com/v1/packages/b98235f44e6422741df02c781cf0016fce1c4a84/a1.0.11.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2010-07-22T22:00:00+00:00"}, {"id": "a1.0.5_01", "type": "old_alpha", "url": "https://piston-meta.mojang.com/v1/packages/4adaca651189d96ea9d7aa031038ab7b7d3fd807/a1.0.5_01.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2010-07-12T22:00:00+00:00"}, {"id": "a1.0.4", "type": "old_alpha", "url": "https://piston-meta.mojang.com/v1/packages/16c818f17af9e8560589f9e3cae57f0931011c25/a1.0.4.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2010-07-08T22:00:00+00:00"}, {"id": "inf-20100618", "type": "old_alpha", "url": "https://piston-meta.mojang.com/v1/packages/51a5c512af384d3d2a79a3efb93f7d4b9a1c6ec2/inf-20100618.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2010-06-15T22:00:00+00:00"}, {"id": "c0.30_01c", "type": "old_alpha", "url": "https://piston-meta.mojang.com/v1/packages/9392d3f635770ac4dfd3f8c9444f319b00b08945/c0.30_01c.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2009-12-21T22:00:00+00:00"}, {"id": "c0.0.13a", "type": "old_alpha", "url": "https://piston-meta.mojang.com/v1/packages/5ef11c52e02c27f40924ea0c323efee716de568d/c0.0.13a.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2009-05-30T22:00:00+00:00"}, {"id": "c0.0.13a_03", "type": "old_alpha", "url": "https://piston-meta.mojang.com/v1/packages/21122dee2365147033ef6214702098cf7b2549bd/c0.0.13a_03.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2009-05-21T22:00:00+00:00"}, {"id": "c0.0.11a", "type": "old_alpha", "url": "https://piston-meta.mojang.com/v1/packages/2339fd5639204675b9f18dff6055dae83fc91c7e/c0.0.11a.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2009-05-16T22:00:00+00:00"}, {"id": "rd-161348", "type": "old_alpha", "url": "https://piston-meta.mojang.com/v1/packages/f22a3882d124ef4468f6eb50b12836c53286e18a/rd-161348.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2009-05-16T11:48:00+00:00"}, {"id": "rd-160052", "type": "old_alpha", "url": "https://piston-meta.mojang.com/v1/packages/0cac2ceab812568826c6e5aeb4cf980397550479/rd-160052.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2009-05-15T22:52:00+00:00"}, {"id": "rd-20090515", "type": "old_alpha", "url": "https://piston-meta.mojang.com/v1/packages/a3165080e2b0bf20519eac5f55ee841f3491e277/rd-20090515.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2009-05-14T22:00:00+00:00"}, {"id": "rd-132328", "type": "old_alpha", "url": "https://piston-meta.mojang.com/v1/packages/4ec49ff663f96e78a5cf0d9538adb9d1358fc485/rd-132328.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2009-05-13T21:28:00+00:00"}, {"id": "rd-132211", "type": "old_alpha", "url": "https://piston-meta.mojang.com/v1/packages/d090f5d3766a28425316473d9ab6c37234d48b02/rd-132211.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2009-05-13T20:11:00+00:00"}]}
\ No newline at end of file
diff --git a/serverpackcreator-api/src/jvmMain/resources/log4j2.component.properties b/serverpackcreator-api/src/jvmMain/resources/log4j2.component.properties
deleted file mode 100644
index 13bdbb813..000000000
--- a/serverpackcreator-api/src/jvmMain/resources/log4j2.component.properties
+++ /dev/null
@@ -1,3 +0,0 @@
-log4j.configurationFile=log4j2.xml
-log4j.formatMsgNoLookups=true
-log4j.configurationFactory=de.griefed.serverpackcreator.api.LoggingConfig
\ No newline at end of file
diff --git a/serverpackcreator-api/src/jvmTest/kotlin/de/griefed/serverpackcreator/api/modscanning/ModScannerTest.kt b/serverpackcreator-api/src/jvmTest/kotlin/de/griefed/serverpackcreator/api/modscanning/ModScannerTest.kt
deleted file mode 100644
index b849ca055..000000000
--- a/serverpackcreator-api/src/jvmTest/kotlin/de/griefed/serverpackcreator/api/modscanning/ModScannerTest.kt
+++ /dev/null
@@ -1,229 +0,0 @@
-package de.griefed.serverpackcreator.api.modscanning
-
-import de.griefed.serverpackcreator.api.ApiWrapper
-import de.griefed.serverpackcreator.api.utilities.common.FilterType
-import de.griefed.serverpackcreator.api.utilities.common.filteredWalk
-import org.junit.jupiter.api.Assertions
-import org.junit.jupiter.api.Test
-import java.io.File
-
-class ModScannerTest internal constructor() {
-    private var modScanner: ModScanner =
-        ApiWrapper.api(File("src/jvmTest/resources/serverpackcreator.properties")).modScanner
-
-    @Suppress("SpellCheckingInspection")
-    @Test
-    fun tomlTest() {
-        val files: Collection<File> =
-            File("src/jvmTest/resources/forge_tests/mods").filteredWalk(listOf("jar"), FilterType.ENDS_WITH)
-
-        val excluded: List<File> = modScanner.forgeTomlScanner.scan(files).toList()
-        Assertions.assertTrue(
-            excluded.contains(File("src/jvmTest/resources/forge_tests/mods/aaaaa.jar"))
-        )
-        Assertions.assertTrue(
-            excluded.contains(File("src/jvmTest/resources/forge_tests/mods/bbbbb.jar"))
-        )
-        Assertions.assertTrue(
-            excluded.contains(File("src/jvmTest/resources/forge_tests/mods/ccccc.jar"))
-        )
-        Assertions.assertTrue(
-            excluded.contains(File("src/jvmTest/resources/forge_tests/mods/ddddd.jar"))
-        )
-        Assertions.assertTrue(
-            excluded.contains(File("src/jvmTest/resources/forge_tests/mods/fffff.jar"))
-        )
-        Assertions.assertTrue(
-            excluded.contains(File("src/jvmTest/resources/forge_tests/mods/ggggg.jar"))
-        )
-        Assertions.assertTrue(
-            excluded.contains(File("src/jvmTest/resources/forge_tests/mods/hhhhh.jar"))
-        )
-        Assertions.assertTrue(
-            excluded.contains(File("src/jvmTest/resources/forge_tests/mods/iiiii.jar"))
-        )
-        Assertions.assertTrue(
-            excluded.contains(File("src/jvmTest/resources/forge_tests/mods/jjjjj.jar"))
-        )
-        Assertions.assertTrue(
-            excluded.contains(File("src/jvmTest/resources/forge_tests/mods/kkkkk.jar"))
-        )
-        Assertions.assertTrue(
-            excluded.contains(File("src/jvmTest/resources/forge_tests/mods/lllll.jar"))
-        )
-        Assertions.assertTrue(
-            excluded.contains(File("src/jvmTest/resources/forge_tests/mods/nnnnn.jar"))
-        )
-        Assertions.assertTrue(
-            excluded.contains(File("src/jvmTest/resources/forge_tests/mods/ppppp.jar"))
-        )
-        Assertions.assertFalse(
-            excluded.contains(File("src/jvmTest/resources/forge_tests/mods/qqqqq.jar"))
-        )
-        Assertions.assertFalse(
-            excluded.contains(File("src/jvmTest/resources/forge_tests/mods/rrrrr.jar"))
-        )
-        Assertions.assertFalse(
-            excluded.contains(File("src/jvmTest/resources/forge_tests/mods/testmod.jar"))
-        )
-        Assertions.assertFalse(
-            excluded.contains(File("src/jvmTest/resources/forge_tests/mods/uuuuu.jar"))
-        )
-        Assertions.assertFalse(
-            excluded.contains(File("src/jvmTest/resources/forge_tests/mods/vvvvv.jar"))
-        )
-        Assertions.assertFalse(
-            excluded.contains(File("src/jvmTest/resources/forge_tests/mods/wwwww.jar"))
-        )
-        Assertions.assertFalse(
-            excluded.contains(File("src/jvmTest/resources/forge_tests/mods/xxxxx.jar"))
-        )
-        Assertions.assertFalse(
-            excluded.contains(File("src/jvmTest/resources/forge_tests/mods/yyyyy.jar"))
-        )
-        Assertions.assertFalse(
-            excluded.contains(File("src/jvmTest/resources/forge_tests/mods/zzzzz.jar"))
-        )
-    }
-
-    @Suppress("SpellCheckingInspection")
-    @Test
-    fun fabricTest() {
-        val files: Collection<File> =
-            File("src/jvmTest/resources/fabric_tests/mods").filteredWalk(listOf("jar"), FilterType.ENDS_WITH)
-
-        val excluded: List<File> = modScanner.fabricScanner.scan(files).toList()
-        Assertions.assertTrue(
-            excluded.contains(File("src/jvmTest/resources/fabric_tests/mods/aaaaa.jar"))
-        )
-        Assertions.assertTrue(
-            excluded.contains(File("src/jvmTest/resources/fabric_tests/mods/bbbbb.jar"))
-        )
-        Assertions.assertTrue(
-            excluded.contains(File("src/jvmTest/resources/fabric_tests/mods/ccccc.jar"))
-        )
-        Assertions.assertTrue(
-            excluded.contains(File("src/jvmTest/resources/fabric_tests/mods/ddddd.jar"))
-        )
-        Assertions.assertTrue(
-            excluded.contains(File("src/jvmTest/resources/fabric_tests/mods/eeeee.jar"))
-        )
-        Assertions.assertTrue(
-            excluded.contains(File("src/jvmTest/resources/fabric_tests/mods/fffff.jar"))
-        )
-        Assertions.assertTrue(
-            excluded.contains(File("src/jvmTest/resources/fabric_tests/mods/ggggg.jar"))
-        )
-        Assertions.assertTrue(
-            excluded.contains(File("src/jvmTest/resources/fabric_tests/mods/hhhhh.jar"))
-        )
-        Assertions.assertFalse(
-            excluded.contains(File("src/jvmTest/resources/fabric_tests/mods/iiiii.jar"))
-        )
-        Assertions.assertFalse(
-            excluded.contains(File("src/jvmTest/resources/fabric_tests/mods/jjjjj.jar"))
-        )
-        Assertions.assertFalse(
-            excluded.contains(File("src/jvmTest/resources/fabric_tests/mods/kkkkk.jar"))
-        )
-        Assertions.assertFalse(
-            excluded.contains(File("src/jvmTest/resources/fabric_tests/mods/lllll.jar"))
-        )
-        Assertions.assertFalse(
-            excluded.contains(File("src/jvmTest/resources/fabric_tests/mods/mmmmm.jar"))
-        )
-        Assertions.assertFalse(
-            excluded.contains(File("src/jvmTest/resources/fabric_tests/mods/nnnnn.jar"))
-        )
-        Assertions.assertFalse(
-            excluded.contains(File("src/jvmTest/resources/fabric_tests/mods/ooooo.jar"))
-        )
-        Assertions.assertFalse(
-            excluded.contains(File("src/jvmTest/resources/fabric_tests/mods/ppppp.jar"))
-        )
-        Assertions.assertFalse(
-            excluded.contains(File("src/jvmTest/resources/fabric_tests/mods/qqqqq.jar"))
-        )
-        Assertions.assertFalse(
-            excluded.contains(File("src/jvmTest/resources/fabric_tests/mods/testmod.jar"))
-        )
-    }
-
-    @Suppress("SpellCheckingInspection")
-    @Test
-    fun quiltTest() {
-        val files: Collection<File> =
-            File("src/jvmTest/resources/quilt_tests/mods").filteredWalk(listOf("jar"), FilterType.ENDS_WITH)
-
-        val excluded: List<File> = modScanner.quiltScanner.scan(files).toList()
-        Assertions.assertTrue(
-            excluded.contains(File("src/jvmTest/resources/quilt_tests/mods/aaaaa.jar"))
-        )
-        Assertions.assertTrue(
-            excluded.contains(File("src/jvmTest/resources/quilt_tests/mods/bbbbb.jar"))
-        )
-        Assertions.assertFalse(
-            excluded.contains(File("src/jvmTest/resources/quilt_tests/mods/testmod.jar"))
-        )
-    }
-
-    @Suppress("SpellCheckingInspection")
-    @Test
-    fun annotationTest() {
-        val files: Collection<File> =
-            File("src/jvmTest/resources/forge_old/mods").filteredWalk(listOf("jar"), FilterType.ENDS_WITH)
-
-        val excluded: List<File> = modScanner.forgeAnnotationScanner.scan(files).toList()
-        Assertions.assertTrue(
-            excluded.contains(File("src/jvmTest/resources/forge_old/mods/aaaaa.jar"))
-        )
-        Assertions.assertTrue(
-            excluded.contains(File("src/jvmTest/resources/forge_old/mods/bbbbb.jar"))
-        )
-        Assertions.assertTrue(
-            excluded.contains(File("src/jvmTest/resources/forge_old/mods/ccccc.jar"))
-        )
-        Assertions.assertTrue(
-            excluded.contains(File("src/jvmTest/resources/forge_old/mods/ddddd.jar"))
-        )
-        Assertions.assertTrue(
-            excluded.contains(File("src/jvmTest/resources/forge_old/mods/eeeee.jar"))
-        )
-        Assertions.assertTrue(
-            excluded.contains(File("src/jvmTest/resources/forge_old/mods/fffff.jar"))
-        )
-        Assertions.assertTrue(
-            excluded.contains(File("src/jvmTest/resources/forge_old/mods/ggggg.jar"))
-        )
-        Assertions.assertTrue(
-            excluded.contains(File("src/jvmTest/resources/forge_old/mods/hhhhh.jar"))
-        )
-        Assertions.assertTrue(
-            excluded.contains(File("src/jvmTest/resources/forge_old/mods/iiiii.jar"))
-        )
-        Assertions.assertTrue(
-            excluded.contains(File("src/jvmTest/resources/forge_old/mods/jjjjj.jar"))
-        )
-        Assertions.assertTrue(
-            excluded.contains(File("src/jvmTest/resources/forge_old/mods/kkkkk.jar"))
-        )
-        Assertions.assertFalse(
-            excluded.contains(File("src/jvmTest/resources/forge_old/mods/lllll.jar"))
-        )
-        Assertions.assertFalse(
-            excluded.contains(File("src/jvmTest/resources/forge_old/mods/mmmmm.jar"))
-        )
-        Assertions.assertFalse(
-            excluded.contains(File("src/jvmTest/resources/forge_old/mods/nnnnn.jar"))
-        )
-        Assertions.assertFalse(
-            excluded.contains(File("src/jvmTest/resources/forge_old/mods/ooooo.jar"))
-        )
-        Assertions.assertFalse(
-            excluded.contains(File("src/jvmTest/resources/forge_old/mods/ppppp.jar"))
-        )
-        Assertions.assertFalse(
-            excluded.contains(File("src/jvmTest/resources/forge_old/mods/qqqqq.jar"))
-        )
-    }
-}
\ No newline at end of file
diff --git a/serverpackcreator-api/src/jvmTest/resources/fabric_tests/server_pack.zip b/serverpackcreator-api/src/jvmTest/resources/fabric_tests/server_pack.zip
deleted file mode 100644
index b0a87033147c241515000c18100a994959789701..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 5418
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

diff --git a/serverpackcreator-api/src/jvmTest/resources/forge_tests/server_pack.zip b/serverpackcreator-api/src/jvmTest/resources/forge_tests/server_pack.zip
deleted file mode 100644
index b0a87033147c241515000c18100a994959789701..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 5418
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

diff --git a/serverpackcreator-api/src/jvmTest/resources/legacyfabric_tests/server_pack.zip b/serverpackcreator-api/src/jvmTest/resources/legacyfabric_tests/server_pack.zip
deleted file mode 100644
index b0a87033147c241515000c18100a994959789701..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 5418
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

diff --git a/serverpackcreator-api/src/jvmTest/resources/log4j2.component.properties b/serverpackcreator-api/src/jvmTest/resources/log4j2.component.properties
deleted file mode 100644
index 13bdbb813..000000000
--- a/serverpackcreator-api/src/jvmTest/resources/log4j2.component.properties
+++ /dev/null
@@ -1,3 +0,0 @@
-log4j.configurationFile=log4j2.xml
-log4j.formatMsgNoLookups=true
-log4j.configurationFactory=de.griefed.serverpackcreator.api.LoggingConfig
\ No newline at end of file
diff --git a/serverpackcreator-api/src/jvmTest/resources/neoforge_tests/server_pack.zip b/serverpackcreator-api/src/jvmTest/resources/neoforge_tests/server_pack.zip
deleted file mode 100644
index b0a87033147c241515000c18100a994959789701..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 5418
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

diff --git a/serverpackcreator-api/src/jvmTest/resources/overridestest/overrides/mods/aaaaa.jar b/serverpackcreator-api/src/jvmTest/resources/overridestest/overrides/mods/aaaaa.jar
deleted file mode 100644
index e69de29bb..000000000
diff --git a/serverpackcreator-api/src/jvmTest/resources/overridestest/overrides/mods/bbbbb.jar b/serverpackcreator-api/src/jvmTest/resources/overridestest/overrides/mods/bbbbb.jar
deleted file mode 100644
index e69de29bb..000000000
diff --git a/serverpackcreator-api/src/jvmTest/resources/overridestest/overrides/mods/ccccc.jar b/serverpackcreator-api/src/jvmTest/resources/overridestest/overrides/mods/ccccc.jar
deleted file mode 100644
index e69de29bb..000000000
diff --git a/serverpackcreator-api/src/jvmTest/resources/overridestest/overrides/mods/fffff.jar b/serverpackcreator-api/src/jvmTest/resources/overridestest/overrides/mods/fffff.jar
deleted file mode 100644
index e69de29bb..000000000
diff --git a/serverpackcreator-api/src/jvmTest/resources/overridestest/overrides/mods/ggggg.jar b/serverpackcreator-api/src/jvmTest/resources/overridestest/overrides/mods/ggggg.jar
deleted file mode 100644
index e69de29bb..000000000
diff --git a/serverpackcreator-api/src/jvmTest/resources/overridestest/overrides/mods/hhhhh.jar b/serverpackcreator-api/src/jvmTest/resources/overridestest/overrides/mods/hhhhh.jar
deleted file mode 100644
index e69de29bb..000000000
diff --git a/serverpackcreator-api/src/jvmTest/resources/overridestest/overrides/mods/iiiii.jar b/serverpackcreator-api/src/jvmTest/resources/overridestest/overrides/mods/iiiii.jar
deleted file mode 100644
index e69de29bb..000000000
diff --git a/serverpackcreator-api/src/jvmTest/resources/overridestest/overrides/mods/jjjjj.jar b/serverpackcreator-api/src/jvmTest/resources/overridestest/overrides/mods/jjjjj.jar
deleted file mode 100644
index e69de29bb..000000000
diff --git a/serverpackcreator-api/src/jvmTest/resources/overridestest/overrides/mods/kkkkk.jar b/serverpackcreator-api/src/jvmTest/resources/overridestest/overrides/mods/kkkkk.jar
deleted file mode 100644
index e69de29bb..000000000
diff --git a/serverpackcreator-api/src/jvmTest/resources/overridestest/overrides/mods/lllll.jar b/serverpackcreator-api/src/jvmTest/resources/overridestest/overrides/mods/lllll.jar
deleted file mode 100644
index e69de29bb..000000000
diff --git a/serverpackcreator-api/src/jvmTest/resources/overridestest/overrides/mods/nnnnn.jar b/serverpackcreator-api/src/jvmTest/resources/overridestest/overrides/mods/nnnnn.jar
deleted file mode 100644
index e69de29bb..000000000
diff --git a/serverpackcreator-api/src/jvmTest/resources/overridestest/overrides/mods/ppppp.jar b/serverpackcreator-api/src/jvmTest/resources/overridestest/overrides/mods/ppppp.jar
deleted file mode 100644
index e69de29bb..000000000
diff --git a/serverpackcreator-api/src/jvmTest/resources/overridestest/overrides/mods/qqqqq.jar b/serverpackcreator-api/src/jvmTest/resources/overridestest/overrides/mods/qqqqq.jar
deleted file mode 100644
index e69de29bb..000000000
diff --git a/serverpackcreator-api/src/jvmTest/resources/overridestest/overrides/mods/rrrrr.jar b/serverpackcreator-api/src/jvmTest/resources/overridestest/overrides/mods/rrrrr.jar
deleted file mode 100644
index e69de29bb..000000000
diff --git a/serverpackcreator-api/src/jvmTest/resources/overridestest/overrides/mods/uuuuu.jar b/serverpackcreator-api/src/jvmTest/resources/overridestest/overrides/mods/uuuuu.jar
deleted file mode 100644
index e69de29bb..000000000
diff --git a/serverpackcreator-api/src/jvmTest/resources/overridestest/overrides/mods/vvvvv.jar b/serverpackcreator-api/src/jvmTest/resources/overridestest/overrides/mods/vvvvv.jar
deleted file mode 100644
index e69de29bb..000000000
diff --git a/serverpackcreator-api/src/jvmTest/resources/overridestest/overrides/mods/wwwww.jar b/serverpackcreator-api/src/jvmTest/resources/overridestest/overrides/mods/wwwww.jar
deleted file mode 100644
index e69de29bb..000000000
diff --git a/serverpackcreator-api/src/jvmTest/resources/overridestest/overrides/mods/xxxxx.jar b/serverpackcreator-api/src/jvmTest/resources/overridestest/overrides/mods/xxxxx.jar
deleted file mode 100644
index e69de29bb..000000000
diff --git a/serverpackcreator-api/src/jvmTest/resources/overridestest/overrides/mods/yyyyy.jar b/serverpackcreator-api/src/jvmTest/resources/overridestest/overrides/mods/yyyyy.jar
deleted file mode 100644
index e69de29bb..000000000
diff --git a/serverpackcreator-api/src/jvmTest/resources/overridestest/overrides/mods/zzzzz.jar b/serverpackcreator-api/src/jvmTest/resources/overridestest/overrides/mods/zzzzz.jar
deleted file mode 100644
index e69de29bb..000000000
diff --git a/serverpackcreator-api/src/jvmTest/resources/quilt_tests/server_pack.zip b/serverpackcreator-api/src/jvmTest/resources/quilt_tests/server_pack.zip
deleted file mode 100644
index b0a87033147c241515000c18100a994959789701..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 5418
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

diff --git a/serverpackcreator-api/src/jvmTest/resources/testresources/server_pack.zip b/serverpackcreator-api/src/jvmTest/resources/testresources/server_pack.zip
deleted file mode 100644
index b0a87033147c241515000c18100a994959789701..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 5418
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

diff --git a/serverpackcreator-api/src/jvmTest/resources/testresources/server_pack/mods/testmod.jar b/serverpackcreator-api/src/jvmTest/resources/testresources/server_pack/mods/testmod.jar
deleted file mode 100644
index e69de29bb..000000000
diff --git a/serverpackcreator-api/src/commonMain/i18n/Translations_en_GB.properties b/serverpackcreator-api/src/main/i18n/Translations_en_GB.properties
similarity index 99%
rename from serverpackcreator-api/src/commonMain/i18n/Translations_en_GB.properties
rename to serverpackcreator-api/src/main/i18n/Translations_en_GB.properties
index 76d00940b..7a9d87461 100644
--- a/serverpackcreator-api/src/commonMain/i18n/Translations_en_GB.properties
+++ b/serverpackcreator-api/src/main/i18n/Translations_en_GB.properties
@@ -566,6 +566,7 @@ configuration.title.error=This configuration has errors!
 configuration.title.warning=Unsaved changes!
 configuration.log.error.checkconfig.start=Couldn't parse config file. Consider checking your config file and fixing empty values. If the value needs to be an empty string, leave its value to "".
 configuration.log.error.checkmodpackdir=Modpack directory not specified. Please specify an existing directory.
+configuration.log.error.modpack.overrides=Modpack contains directory \"overrides\". Modpacks must be installed through a client such as CurseForge, GDLauncher, MultiMC etc. Full modpacks shouldn't contain the overrides directory anymore.
 configuration.log.error.serverpack.suffix=Suffix contains illegal characters.
 configuration.log.error.checkcopydirs.empty=No directories or files specified for copying. This would result in an empty serverpack.
 configuration.log.error.checkcopydirs.notfound=Copy-file or copy-directory {0} does not exist. Please specify existing directories or files.
diff --git a/serverpackcreator-api/src/commonMain/i18n/Translations_pt_BR.properties b/serverpackcreator-api/src/main/i18n/Translations_pt_BR.properties
similarity index 99%
rename from serverpackcreator-api/src/commonMain/i18n/Translations_pt_BR.properties
rename to serverpackcreator-api/src/main/i18n/Translations_pt_BR.properties
index 9eb13b749..ec6c524ce 100644
--- a/serverpackcreator-api/src/commonMain/i18n/Translations_pt_BR.properties
+++ b/serverpackcreator-api/src/main/i18n/Translations_pt_BR.properties
@@ -566,6 +566,7 @@ configuration.title.error=Esta configura
 configuration.title.warning=Mudanças não salvas!
 configuration.log.error.checkconfig.start=Não foi possível analisar o arquivo de configuração. Considere verificar seu arquivo de configuração e corrigir valores vazios. Se o valor precisar ser uma string vazia, deixe o valor como "".
 configuration.log.error.checkmodpackdir=Diretório do modpack não especificado. Por favor, especifique um diretório existente.
+configuration.log.error.modpack.overrides=
 configuration.log.error.serverpack.suffix=O sufixo contém caracteres inválidos.
 configuration.log.error.checkcopydirs.empty=Nenhum diretório ou arquivo especificado para cópia. Isso resultaria em um servidor vazio.
 configuration.log.error.checkcopydirs.notfound=Arquivo ou diretório de cópia {0} não existe. Por favor, especifique diretórios ou arquivos existentes.
diff --git a/serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/ApiPlugins.kt b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/ApiPlugins.kt
similarity index 97%
rename from serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/ApiPlugins.kt
rename to serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/ApiPlugins.kt
index 36d14003e..5c6614353 100644
--- a/serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/ApiPlugins.kt
+++ b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/ApiPlugins.kt
@@ -58,13 +58,13 @@ import javax.swing.JTabbedPane
  * @author Griefed
  */
 @Suppress("unused", "MemberVisibilityCanBePrivate")
-actual class ApiPlugins(
+class ApiPlugins(
     tomlParser: TomlParser,
     private val apiProperties: ApiProperties,
     private val versionMeta: VersionMeta,
     private val utilities: Utilities
 ) : JarPluginManager(apiProperties.pluginsDirectory.toPath()) {
-    private val log = cachedLoggerOf(this.javaClass)
+    private val log by lazy { cachedLoggerOf(this.javaClass) }
     private val pluginsLog = logger("PluginsLogger")
     private val pluginConfigs: HashMap<String, CommentedConfig> = HashMap<String, CommentedConfig>(100)
     private val pluginConfigFiles = HashMap<String, File>(100)
@@ -227,7 +227,7 @@ actual class ApiPlugins(
      * @return The global plugin configuration, wrapped in an Optional.
      * @author Griefed
      */
-    actual fun getPluginConfig(pluginId: String) = Optional.ofNullable<CommentedConfig>(pluginConfigs[pluginId])
+    fun getPluginConfig(pluginId: String) = Optional.ofNullable<CommentedConfig>(pluginConfigs[pluginId])
 
     /**
      * Get and return any configuration for the extension about to be run. If none is available, the
@@ -294,7 +294,7 @@ actual class ApiPlugins(
      * at.
      * @author Griefed
      */
-    actual fun runPreGenExtensions(packConfig: PackConfig, destination: String) {
+    fun runPreGenExtensions(packConfig: PackConfig, destination: String) {
         for (plugin in getPlugins()) {
             log.info("Executing PreGenExtension extensions.")
             pluginsLog.info("Executing PreGenExtension extensions.")
@@ -333,7 +333,7 @@ actual class ApiPlugins(
      * at.
      * @author Griefed
      */
-    actual fun runPreZipExtensions(packConfig: PackConfig, destination: String) {
+    fun runPreZipExtensions(packConfig: PackConfig, destination: String) {
         for (plugin in getPlugins()) {
             log.info("Executing PreZipExtension extensions.")
             pluginsLog.info("Executing PreZipExtension extensions.")
@@ -372,7 +372,7 @@ actual class ApiPlugins(
      * at.
      * @author Griefed
      */
-    actual fun runPostGenExtensions(packConfig: PackConfig, destination: String) {
+    fun runPostGenExtensions(packConfig: PackConfig, destination: String) {
         for (plugin in getPlugins()) {
             log.info("Executing PostGenExtension extensions.")
             pluginsLog.info("Executing PostGenExtension extensions.")
@@ -490,9 +490,9 @@ actual class ApiPlugins(
      * errored.
      * @author Griefed
      */
-    actual fun runConfigCheckExtensions(
+    fun runConfigCheckExtensions(
         packConfig: PackConfig,
-        configCheck: ConfigCheck
+        configCheck: ConfigCheck = ConfigCheck()
     ): ConfigCheck {
         for (plugin in getPlugins()) {
             log.info("Executing ConfigCheckExtensions extensions.")
@@ -537,5 +537,5 @@ actual class ApiPlugins(
      * @return The config-file corresponding to the ID of the plugin, wrapped in an Optional.
      * @author Griefed
      */
-    actual fun getPluginConfigFile(pluginId: String) = Optional.ofNullable(pluginConfigFiles[pluginId])
+    fun getPluginConfigFile(pluginId: String) = Optional.ofNullable(pluginConfigFiles[pluginId])
 }
\ No newline at end of file
diff --git a/serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/ApiProperties.kt b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/ApiProperties.kt
similarity index 91%
rename from serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/ApiProperties.kt
rename to serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/ApiProperties.kt
index 1d86e1a29..73a04c519 100644
--- a/serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/ApiProperties.kt
+++ b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/ApiProperties.kt
@@ -24,6 +24,14 @@ import de.comahe.i18n4k.config.I18n4kConfigDefault
 import de.comahe.i18n4k.i18n4k
 import de.comahe.i18n4k.toTag
 import de.griefed.serverpackcreator.api.utilities.common.*
+import org.apache.logging.log4j.core.Core
+import org.apache.logging.log4j.core.LoggerContext
+import org.apache.logging.log4j.core.config.Configuration
+import org.apache.logging.log4j.core.config.ConfigurationFactory
+import org.apache.logging.log4j.core.config.ConfigurationSource
+import org.apache.logging.log4j.core.config.Order
+import org.apache.logging.log4j.core.config.plugins.Plugin
+import org.apache.logging.log4j.core.config.xml.XmlConfiguration
 import org.apache.logging.log4j.kotlin.cachedLoggerOf
 import java.io.BufferedReader
 import java.io.File
@@ -31,7 +39,6 @@ import java.io.IOException
 import java.io.InputStreamReader
 import java.net.URI
 import java.util.*
-import java.util.prefs.Preferences
 
 /**
  * Base settings of ServerPackCreator, such as working directories, default list of clientside-only
@@ -48,20 +55,20 @@ import java.util.prefs.Preferences
  * @author Griefed
  */
 @Suppress("unused")
-actual class ApiProperties(
-    private val fileUtilities: FileUtilities,
-    private val systemUtilities: SystemUtilities,
-    private val listUtilities: ListUtilities,
-    jarUtilities: JarUtilities,
+@Plugin(name = "ServerPackCreatorConfigFactory", category = Core.CATEGORY_NAME)
+@Order(50)
+class ApiProperties(
+    private val fileUtilities: FileUtilities = FileUtilities(),
+    private val systemUtilities: SystemUtilities = SystemUtilities(),
+    private val listUtilities: ListUtilities = ListUtilities(),
+    jarUtilities: JarUtilities = JarUtilities(),
     propertiesFile: File = File("serverpackcreator.properties")
-) {
-    private val log = cachedLoggerOf(javaClass)
+) : ConfigurationFactory() {
+    private val log by lazy { cachedLoggerOf(this.javaClass) }
     private val internalProps = Properties()
-    private val userPreferences = Preferences.userRoot().node("ServerPackCreator")
     private val serverPackCreatorProperties = "serverpackcreator.properties"
-    private val jarInformation: JarInformation = JarInformation(javaClass, jarUtilities)
-    private val jarFolderProperties: File =
-        File(jarInformation.jarFolder.absoluteFile, serverPackCreatorProperties).absoluteFile
+    private val jarInformation: JarInformation = JarInformation(this.javaClass, jarUtilities)
+    private val jarFolderProperties: File = File(jarInformation.jarFolder.absoluteFile, serverPackCreatorProperties)
     private val pVersionCheckPreRelease =
         "de.griefed.serverpackcreator.versioncheck.prerelease"
     private val pLanguage =
@@ -138,12 +145,15 @@ actual class ApiProperties(
         "spring.datasource.username"
     private val pSpringDatasourcePassword =
         "spring.datasource.password"
+    private val suffixes = arrayOf(".xml")
 
-    val home: File = if (System.getProperty("user.home").isNotEmpty()) {
-        File(System.getProperty("user.home"))
-    } else {
-        jarInformation.jarFolder.absoluteFile
-    }
+    /**
+     * Default home-directory for ServerPackCreator. The directory containing the
+     * ServerPackCreator JAR.
+     *
+     * @author Griefed
+     */
+    val home: File = jarInformation.jarFolder.absoluteFile
 
     private var fallbackModsWhitelist = TreeSet(
         listOf(
@@ -594,7 +604,7 @@ actual class ApiProperties(
             " -Dusing.aikars.flags=https://mcflags.emc.gs" +
             " -Daikars.new.flags=true"
     val fallbackUpdateURL =
-        "https://raw.githubusercontent.com/Griefed/ServerPackCreator/main/serverpackcreator-api/src/jvmMain/resources/serverpackcreator.properties"
+        "https://raw.githubusercontent.com/Griefed/ServerPackCreator/main/serverpackcreator-api/src/main/resources/serverpackcreator.properties"
     val fallbackExclusionFilter = ExclusionFilter.START
     val fallbackOverwriteEnabled = true
     val fallbackJavaScriptAutoupdateEnabled = true
@@ -752,12 +762,6 @@ actual class ApiProperties(
         "4"
     }
 
-    init {
-        i18n4k = i18n4kConfig
-        i18n4kConfig.defaultLocale = Locale("en_GB")
-        loadProperties(propertiesFile, false)
-    }
-
     /**
      * Only the first call to this property will return true if this is the first time ServerPackCreator is being run
      * on a given host. Any subsequent call will return false. Handle with care!
@@ -766,11 +770,6 @@ actual class ApiProperties(
      */
     val firstRun: Boolean
 
-    init {
-        firstRun = getBoolProperty("de.griefed.serverpackcreator.firstrun", true)
-        setBoolProperty("de.griefed.serverpackcreator.firstrun", false)
-    }
-
     /**
      * Directories to include in a server pack.
      */
@@ -1327,16 +1326,6 @@ actual class ApiProperties(
         return "jdbc:postgresql://localhost:5432/serverpackcreator"
     }
 
-    /**
-     * Default home-directory for ServerPackCreator. If there's no user-home, then the directory containing the
-     * ServerPackCreator JAR will be used as the home-directory for ServerPackCreator.
-     *
-     * @author Griefed
-     */
-    fun defaultHomeDirectory(): File {
-        return File(home, "ServerPackCreator").absoluteFile
-    }
-
     /**
      * ServerPackCreators home directory, in which all important files and folders are stored in.
      *
@@ -1347,25 +1336,29 @@ actual class ApiProperties(
      * [serverPacksDirectory], which can be configured independently of ServerPackCreators
      * home-directory.
      */
-    var homeDirectory: File = File(home, "ServerPackCreator").absoluteFile
+    var homeDirectory: File = home.absoluteFile
         get() {
-            val prop = internalProps.getProperty(pHomeDirectory)
-            field = if (internalProps.containsKey(pHomeDirectory) && File(prop).absoluteFile.isDirectory) {
-                File(prop).absoluteFile
-            } else if (jarInformation.jarPath.toFile().isDirectory) {
+            val customHome = if (internalProps.containsKey(pHomeDirectory)) {
+                internalProps.getProperty(pHomeDirectory)
+            } else {
+                ""
+            }
+            field = if (customHome.isNotBlank()) {
+                File(customHome).absoluteFile
+            } else if (jarInformation.jarPath.toFile().isDirectory || devBuild) {
                 // Dev environment
                 File("").absoluteFile
             } else {
-                File(home, "ServerPackCreator").absoluteFile
+                home.absoluteFile
             }
             if (!field.isDirectory) {
-                field.createDirectories(create = true, directory = true)
+                field.create(create = true, directory = true)
             }
+            internalProps.setProperty(pHomeDirectory, field.absolutePath)
             return field
         }
         set(value) {
             internalProps.setProperty(pHomeDirectory, value.absolutePath)
-            userPreferences.put(pHomeDirectory, value.absolutePath)
             field = value.absoluteFile
             log.info("Home directory set to: $field")
             log.warn("Restart ServerPackCreator for this change to take full effect.")
@@ -1383,6 +1376,16 @@ actual class ApiProperties(
         }
         private set
 
+    /**
+     * Overrides which, well, override, any property which may be set in the regular [serverPackCreatorPropertiesFile].
+     */
+    var overridesPropertiesFile: File = File(homeDirectory,"overrides.properties")
+        get() {
+            field = File(homeDirectory,"overrides.properties")
+            return field
+        }
+        private set
+
     /**
      * Default configuration-file for a server pack generation inside ServerPackCreators
      * home-directory.
@@ -1479,8 +1482,13 @@ actual class ApiProperties(
     @Suppress("MemberVisibilityCanBePrivate")
     var tomcatLogsDirectory: File = logsDirectory
         get() {
-            val default = File(homeDirectory, "logs").absolutePath
-            val dir = internalProps.getProperty(pTomcatLogsDirectory, default)
+            val default = logsDirectory.absolutePath
+            val prop = internalProps.getProperty(pTomcatLogsDirectory, default)
+            val dir = if (File(prop).canWrite()) {
+                internalProps.getProperty(pTomcatLogsDirectory, default)
+            } else {
+                default
+            }
             field = File(dir).absoluteFile
             return field
         }
@@ -1912,15 +1920,19 @@ actual class ApiProperties(
         }
     }
 
-    private fun loadOverrides(): Properties {
+    private fun loadOverrides() {
         val tempProps = Properties()
-        val overrides = File(homeDirectory, "overrides.properties")
-        if (overrides.isFile) {
-            File(homeDirectory, "overrides.properties").inputStream().use {
+        if (overridesPropertiesFile.isFile) {
+            overridesPropertiesFile.inputStream().use {
                 tempProps.load(it)
             }
         }
-        return tempProps
+        for ((key,value) in tempProps) {
+            log.warn("Overriding:")
+            log.warn("  $key")
+            log.warn("  $value")
+        }
+        internalProps.putAll(tempProps)
     }
 
     /**
@@ -1966,24 +1978,14 @@ actual class ApiProperties(
         // Load the specified properties-file.
         loadFile(propertiesFile, props)
 
-        // Load all values from the overrides-properties
-        for (key in userPreferences.keys()) {
-            props[key] = userPreferences[key, null]
-        }
-
         internalProps.putAll(props)
         internalProps.setProperty(pTomcatBaseDirectory, homeDirectory.absolutePath)
         if (internalProps.getProperty(pLanguage) != "en_GB") {
             changeLocale(Locale(internalProps.getProperty(pLanguage)))
         }
 
-        val overrides = loadOverrides()
-        for ((key, value) in overrides) {
-            log.warn("Overriding:")
-            log.warn("  $key")
-            log.warn("  $value")
-        }
-        internalProps.putAll(overrides)
+        // Load all values from the overrides-properties
+        loadOverrides()
 
         if (updateFallback()) {
             log.info("Fallback lists updated.")
@@ -2231,17 +2233,6 @@ actual class ApiProperties(
         }
     }
 
-    /**
-     * Write the overrides-properties which, as the name implies, will override any other property loaded previously during [loadProperties].
-     * CAUTION: Depending on the type of installation, the overrides.properties will reside inside a directory which
-     * requires root/admin-privileges to write in. The directory in which this file will be created in is [getJarFolder].
-     *
-     * @author Griefed
-     */
-    fun saveOverrides() {
-        userPreferences.sync()
-    }
-
     /**
      * Removes unwanted properties. Called during the save-operation, to ensure that legacy-properties are removed.
      *
@@ -2509,23 +2500,6 @@ actual class ApiProperties(
      */
     fun oldVersion(): String = internalProps.getProperty(pOldVersion, "")
 
-    init {
-        serverFilesDirectory.createDirectories(create = true, directory = true)
-        propertiesDirectory.createDirectories(create = true, directory = true)
-        iconsDirectory.createDirectories(create = true, directory = true)
-        configsDirectory.createDirectories(create = true, directory = true)
-        workDirectory.createDirectories(create = true, directory = true)
-        tempDirectory.createDirectories(create = true, directory = true)
-        modpacksDirectory.createDirectories(create = true, directory = true)
-        serverPacksDirectory.createDirectories(create = true, directory = true)
-        pluginsDirectory.createDirectories(create = true, directory = true)
-        pluginsConfigsDirectory.createDirectories(create = true, directory = true)
-        manifestsDirectory.createDirectories(create = true, directory = true)
-        minecraftServerManifestsDirectory.createDirectories(create = true, directory = true)
-        installerCacheDirectory.createDirectories(create = true, directory = true)
-        printSettings()
-    }
-
     @Suppress("MemberVisibilityCanBePrivate")
     fun printSettings() {
         log.info("============================== PROPERTIES ==============================")
@@ -2564,18 +2538,142 @@ actual class ApiProperties(
         log.info("============================== PROPERTIES ==============================")
     }
 
+    val installLocationXml: File = File(home,"log4j2.xml")
+    val log4jXml: File
+
     init {
-        System.setProperty("user.dir", homeDirectory.absolutePath)
+        i18n4k = i18n4kConfig
+        i18n4kConfig.defaultLocale = Locale("en_GB")
+        loadProperties(propertiesFile, false)
+        log4jXml = File(homeDirectory, "log4j2.xml")
+        try {
+            var log4j: String
+            val oldLogs = "<Property name=\"log-path\">logs</Property>"
+            val newLogs = "<Property name=\"log-path\">${logsDirectory.absolutePath}</Property>"
+            this.javaClass.getResourceAsStream("/log4j2.xml").use {
+                log4j = it?.readText().toString()
+                log4j = log4j.replace(oldLogs, newLogs)
+                if (devBuild || preRelease) {
+                    log4j = log4j.replace(
+                        "<Property name=\"log-level-spc\">INFO</Property>",
+                        "<Property name=\"log-level-spc\">DEBUG</Property>"
+                    )
+                }
+                log4jXml.writeText(log4j)
+            }
+        } catch (ex: IOException) {
+            println("Error reading/writing log4j2.xml.")
+            ex.printStackTrace()
+        }
+        firstRun = getBoolProperty("de.griefed.serverpackcreator.firstrun", true)
+        setBoolProperty("de.griefed.serverpackcreator.firstrun", false)
+        logsDirectory.create(create = true, directory = true)
+        serverFilesDirectory.create(create = true, directory = true)
+        propertiesDirectory.create(create = true, directory = true)
+        iconsDirectory.create(create = true, directory = true)
+        configsDirectory.create(create = true, directory = true)
+        workDirectory.create(create = true, directory = true)
+        tempDirectory.create(create = true, directory = true)
+        modpacksDirectory.create(create = true, directory = true)
+        serverPacksDirectory.create(create = true, directory = true)
+        pluginsDirectory.create(create = true, directory = true)
+        pluginsConfigsDirectory.create(create = true, directory = true)
+        manifestsDirectory.create(create = true, directory = true)
+        minecraftServerManifestsDirectory.create(create = true, directory = true)
+        installerCacheDirectory.create(create = true, directory = true)
+        printSettings()
         saveProperties(File(homeDirectory, serverPackCreatorProperties).absoluteFile)
     }
 
-    actual companion object {
+    companion object {
         /**
          * @author Griefed
          */
         @JvmStatic
-        actual fun getSeparator(): String {
+        fun getSeparator(): String {
             return File.separator
         }
     }
+
+    override fun getSupportedTypes(): Array<String> = suffixes
+
+    /**
+     * Depending on whether this is the first run of ServerPackCreator on a users machine, the default
+     * log4j2 configuration may be present at different locations. The default one is the config
+     * inside the home-directory of SPC, of which we will try to set up our logging with. If said file
+     * fails for whatever reason, we will try to use a config inside the directory from which SPC was
+     * executed. Should that fail, too, the config from the classpath is used, to ensure we always
+     * have default configs available. Should that fail, too, though, log4j is set up with its own
+     * default settings.
+     *
+     * @param loggerContext logger context passed from log4j itself
+     * @param source        configuration source passed from log4j itself. Attempts to overwrite it
+     * are made, but if all else fails it is used to set up logging with log4j's
+     * default config.
+     * @return Custom configuration with proper logs-directory set.
+     * @author Griefed
+     */
+    override fun getConfiguration(loggerContext: LoggerContext, source: ConfigurationSource): Configuration {
+        val configSource: ConfigurationSource
+        if (log4jXml.isFile) {
+            try {
+                return getXmlConfig(log4jXml, loggerContext)
+            } catch (ex: IOException) {
+                println("Couldn't parse $log4jXml.")
+                ex.printStackTrace()
+            }
+        } else if (installLocationXml.isFile) {
+            try {
+                return getXmlConfig(installLocationXml, loggerContext)
+            } catch (ex: IOException) {
+                println("Couldn't parse $installLocationXml.")
+                ex.printStackTrace()
+            }
+        }
+        try {
+            configSource = ConfigurationSource(this.javaClass.getResourceAsStream("/log4j2.xml")!!)
+            return CustomXMLConfiguration(loggerContext, configSource)
+        } catch (ex: IOException) {
+            println("Couldn't parse resource log4j2.xml.")
+            ex.printStackTrace()
+        }
+        return CustomXMLConfiguration(loggerContext, source)
+    }
+
+    private fun getXmlConfig(sourceFile: File, loggerContext: LoggerContext): CustomXMLConfiguration {
+        val configSource: ConfigurationSource
+        val stream = sourceFile.inputStream()
+        configSource = ConfigurationSource(stream, sourceFile)
+        val custom = CustomXMLConfiguration(loggerContext, configSource)
+        stream.close()
+        return custom
+    }
+
+    /**
+     * Custom XmlConfiguration to pass our custom log4j2.xml config to log4j.
+     *
+     * Set up the XML configuration with the passed context and config source. For the config source
+     * being used, [ApiProperties.getConfiguration] where
+     * multiple attempts at creating a new private val log by lazy { cachedLoggerOf(this.javaClass) } using our own log4j2.xml are made
+     * before the default log4j setup is used.
+     *
+     * @param loggerContext logger context passed from log4j itself
+     * @param configSource  configuration source passed from
+     * [ApiProperties.getConfiguration].
+     * @author Griefed
+     */
+    inner class CustomXMLConfiguration(loggerContext: LoggerContext?, configSource: ConfigurationSource?) :
+        XmlConfiguration(loggerContext, configSource) {
+
+        /**
+         * For now, all this does is call the [XmlConfiguration.doConfigure]-method to set up the
+         * configuration with the passed source from the constructor. Custom values and settings can be
+         * set here in the future, should a need arise to do so.
+         *
+         * @author Griefed
+         */
+        override fun doConfigure() {
+            super.doConfigure()
+        }
+    }
 }
\ No newline at end of file
diff --git a/serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/ApiWrapper.kt b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/ApiWrapper.kt
similarity index 77%
rename from serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/ApiWrapper.kt
rename to serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/ApiWrapper.kt
index 115834f72..436c74c46 100644
--- a/serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/ApiWrapper.kt
+++ b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/ApiWrapper.kt
@@ -26,6 +26,7 @@ import com.fasterxml.jackson.databind.ObjectMapper
 import de.griefed.serverpackcreator.api.modscanning.*
 import de.griefed.serverpackcreator.api.utilities.common.*
 import de.griefed.serverpackcreator.api.versionmeta.VersionMeta
+import org.apache.logging.log4j.kotlin.cachedLoggerOf
 import org.xml.sax.SAXException
 import java.io.File
 import java.io.IOException
@@ -41,11 +42,14 @@ import javax.xml.parsers.ParserConfigurationException
  * @param runSetup   Whether to run the file-setup during API inizialization.
  * @author Griefed
  */
-actual class ApiWrapper private constructor(
+class ApiWrapper private constructor(
     val properties: File = File("serverpackcreator.properties"),
     runSetup: Boolean = true
-) : Api<File>() {
-
+) {
+    val versionsRegex = ".*(alpha|beta|dev).*".toRegex()
+    val xmlJsonRegex = ".*\\.(xml|json)".toRegex()
+    var setupWasRun: Boolean = false
+    private val log by lazy { cachedLoggerOf(this.javaClass) }
     /**
      * This instances settings used across ServerPackCreator, such as the working-directories, files
      * and other settings.
@@ -54,10 +58,35 @@ actual class ApiWrapper private constructor(
      * @author Griefed
      */
     @get:Synchronized
-    actual val apiProperties: ApiProperties by lazy {
+    val apiProperties: ApiProperties by lazy {
         ApiProperties(fileUtilities, systemUtilities, listUtilities, jarUtilities, properties)
     }
 
+    /**
+     * This instances common boolean utilities used across ServerPackCreator.
+     *
+     * @return Common boolean utilities used across ServerPackCreator.
+     * @author Griefed
+     */
+    val booleanUtilities: BooleanUtilities = BooleanUtilities()
+
+    /**
+     * This instances common String utilities used across ServerPackCreator.
+     *
+     * @return Common String utilities used across ServerPackCreator.
+     * @author Griefed
+     */
+    val stringUtilities: StringUtilities = StringUtilities()
+
+
+    /**
+     * This instances common list utilities used across ServerPackCreator.
+     *
+     * @return Common list utilities used across ServerPackCreator.
+     * @author Griefed
+     */
+    val listUtilities: ListUtilities = ListUtilities()
+
     /**
      * This instances common file utilities used across ServerPackCreator.
      *
@@ -65,7 +94,7 @@ actual class ApiWrapper private constructor(
      * @author Griefed
      */
     @get:Synchronized
-    actual val fileUtilities: FileUtilities = FileUtilities()
+    val fileUtilities: FileUtilities = FileUtilities()
 
     /**
      * This instances common JAR-utilities used across ServerPackCreator.
@@ -74,7 +103,7 @@ actual class ApiWrapper private constructor(
      * @author Griefed
      */
     @get:Synchronized
-    actual val jarUtilities: JarUtilities = JarUtilities()
+    val jarUtilities: JarUtilities = JarUtilities()
 
     /**
      * This instances common system utilities used across ServerPackCreator.
@@ -83,7 +112,7 @@ actual class ApiWrapper private constructor(
      * @author Griefed
      */
     @get:Synchronized
-    actual val systemUtilities: SystemUtilities = SystemUtilities()
+    val systemUtilities: SystemUtilities = SystemUtilities()
 
     /**
      * This instances JSON-ObjectMapper used across ServerPackCreator with which this instance was
@@ -110,7 +139,7 @@ actual class ApiWrapper private constructor(
      * @author Griefed
      */
     @get:Synchronized
-    actual val jsonUtilities: JsonUtilities = JsonUtilities(objectMapper)
+    val jsonUtilities: JsonUtilities = JsonUtilities(objectMapper)
 
     /**
      * This instances common web utilities used across ServerPackCreator.
@@ -119,7 +148,7 @@ actual class ApiWrapper private constructor(
      * @author Griefed
      */
     @get:Synchronized
-    actual val webUtilities: WebUtilities by lazy {
+    val webUtilities: WebUtilities by lazy {
         WebUtilities(apiProperties)
     }
 
@@ -139,7 +168,7 @@ actual class ApiWrapper private constructor(
      * @author Griefed
      */
     @get:Synchronized
-    actual val xmlUtilities: XmlUtilities = XmlUtilities(documentBuilderFactory)
+    val xmlUtilities: XmlUtilities = XmlUtilities(documentBuilderFactory)
 
     /**
      * This instances collection of common utilities used across ServerPackCreator.
@@ -148,7 +177,7 @@ actual class ApiWrapper private constructor(
      * @author Griefed
      */
     @get:Synchronized
-    actual val utilities: Utilities by lazy {
+    val utilities: Utilities by lazy {
         Utilities(
             booleanUtilities,
             fileUtilities,
@@ -174,7 +203,7 @@ actual class ApiWrapper private constructor(
      */
     @get:Throws(IOException::class, ParserConfigurationException::class, SAXException::class)
     @get:Synchronized
-    actual val versionMeta: VersionMeta by lazy {
+    val versionMeta: VersionMeta by lazy {
         VersionMeta(
             apiProperties.minecraftVersionManifest,
             apiProperties.forgeVersionManifest,
@@ -209,7 +238,7 @@ actual class ApiWrapper private constructor(
      */
     @get:Throws(IOException::class, ParserConfigurationException::class, SAXException::class)
     @get:Synchronized
-    actual val configurationHandler: ConfigurationHandler by lazy {
+    val configurationHandler: ConfigurationHandler by lazy {
         ConfigurationHandler(versionMeta, apiProperties, utilities, apiPlugins)
     }
 
@@ -229,7 +258,7 @@ actual class ApiWrapper private constructor(
      */
     @get:Throws(IOException::class, ParserConfigurationException::class, SAXException::class)
     @get:Synchronized
-    actual val apiPlugins: ApiPlugins by lazy {
+    val apiPlugins: ApiPlugins by lazy {
         ApiPlugins(tomlParser, apiProperties, versionMeta, utilities)
     }
 
@@ -246,7 +275,7 @@ actual class ApiWrapper private constructor(
      */
     @get:Throws(IOException::class, ParserConfigurationException::class, SAXException::class)
     @get:Synchronized
-    actual val serverPackHandler: ServerPackHandler by lazy {
+    val serverPackHandler: ServerPackHandler by lazy {
         ServerPackHandler(apiProperties, versionMeta, utilities, apiPlugins, modScanner)
     }
 
@@ -259,7 +288,7 @@ actual class ApiWrapper private constructor(
      * @author Griefed
      */
     @get:Synchronized
-    actual val modScanner: ModScanner by lazy {
+    val modScanner: ModScanner by lazy {
         ModScanner(forgeAnnotationScanner, fabricScanner, quiltScanner, forgeTomlScanner, neoForgeTomlScanner)
     }
 
@@ -272,7 +301,7 @@ actual class ApiWrapper private constructor(
      * @author Griefed
      */
     @get:Synchronized
-    actual val forgeAnnotationScanner: ForgeAnnotationScanner by lazy {
+    val forgeAnnotationScanner: ForgeAnnotationScanner by lazy {
         ForgeAnnotationScanner(objectMapper, utilities)
     }
 
@@ -283,7 +312,7 @@ actual class ApiWrapper private constructor(
      * @author Griefed
      */
     @get:Synchronized
-    actual val fabricScanner: FabricScanner by lazy {
+    val fabricScanner: FabricScanner by lazy {
         FabricScanner(objectMapper, utilities)
     }
 
@@ -294,7 +323,7 @@ actual class ApiWrapper private constructor(
      * @author Griefed
      */
     @get:Synchronized
-    actual val quiltScanner: QuiltScanner by lazy {
+    val quiltScanner: QuiltScanner by lazy {
         QuiltScanner(objectMapper, utilities)
     }
 
@@ -306,7 +335,7 @@ actual class ApiWrapper private constructor(
      * @author Griefed
      */
     @get:Synchronized
-    actual val tomlParser: TomlParser = TomlParser()
+    val tomlParser: TomlParser = TomlParser()
 
     /**
      * This instances toml scanner to determine the sideness of Forge mods for Minecraft 1.13.x and
@@ -315,8 +344,7 @@ actual class ApiWrapper private constructor(
      * @return Scanner to determine the sideness of Forge mods for Minecraft 1.13.x and newer.
      * @author Griefed
      */
-    @get:Synchronized
-    actual val forgeTomlScanner: ForgeTomlScanner = ForgeTomlScanner(tomlParser)
+    val forgeTomlScanner: ForgeTomlScanner = ForgeTomlScanner(tomlParser)
 
     /**
      * This instances toml scanner to determine the sideness of NeoForge mods for Minecraft 1.20.5 and
@@ -326,7 +354,7 @@ actual class ApiWrapper private constructor(
      * @author Griefed
      */
     @get:Synchronized
-    actual val neoForgeTomlScanner: NeoForgeTomlScanner = NeoForgeTomlScanner(tomlParser)
+    val neoForgeTomlScanner: NeoForgeTomlScanner = NeoForgeTomlScanner(tomlParser)
 
     init {
         if (runSetup) {
@@ -364,9 +392,14 @@ actual class ApiWrapper private constructor(
         }
     }
 
+    /**
+     * Convenience method to set up ServerPackCreator.
+     *
+     * @author Griefed
+     */
     @Synchronized
     @Throws(IOException::class, ParserConfigurationException::class, SAXException::class)
-    override fun setup(force: Boolean): ApiWrapper {
+    fun setup(force: Boolean = false): ApiWrapper {
         if (force) {
             setupWasRun = false
         }
@@ -379,7 +412,42 @@ actual class ApiWrapper private constructor(
         return this
     }
 
-    override fun stageOne() {
+    /**
+     * Stage one of starting ServerPackCreator.
+     *
+     * Creates and prepares the environment for ServerPackCreator to run by creating required
+     * directories and copying required files from the JAR-file to the filesystem. Some of these files
+     * can and should be edited by a given user, others however, not.
+     *
+     *  * Checks the read- and write-permissions of ServerPackCreators base-directory.
+     *  * Copies the `README.md` from the JAR to the home-directory.
+     *  * Copies the `HELP.md` from the JAR to the home-directory.
+     *  * Copies the `CHANGELOG.md` from the JAR to the home-directory.
+     *  * Copies the `LICENSE` from the JAR to the home-directory.
+     *  * Copies the fallback version-manifests to the manifests.
+     *  * Creates default directories:
+     *
+     *  * server_files
+     *  * work
+     *  * temp
+     *  * work/modpacks
+     *  * server-packs (depending on the users settings, this may be anywhere on the users system)
+     *  * plugins
+     *  * plugins/config
+     *
+     *  * Example `disabled.txt`-file in plugins/disabled.txt.
+     *  * Creates the default `server.properties` if it doesn't exist.
+     *  * Creates the default `server-icon.png` if it doesn't exist.
+     *  * Creates the default PowerShell and Shell script templates or overwrites them if they already exist.
+     *  * Determines whether this instance of ServerPackCreator was updated from a previous version.
+     *
+     * If an update was detected, and migrations are available for any of the steps of the update, they are executed,
+     * thus ensuring users are safe to update their instances. Writes ServerPackCreator and system information to the
+     * console and logs, important for error reporting and debugging.
+     *
+     * @author Griefed
+     */
+    fun stageOne() {
         utilities.jarUtilities.copyFileFromJar(
             "README.md", true, this.javaClass, apiProperties.homeDirectory.absoluteFile.toString()
         )
@@ -468,29 +536,62 @@ actual class ApiWrapper private constructor(
         log.info("Include this information when reporting an issue on GitHub.")
     }
 
+    /**
+     * Initialize [de.griefed.serverpackcreator.api.versionmeta.VersionMeta], [ConfigurationHandler].
+     *
+     * @author Griefed
+     */
     @Throws(IOException::class, ParserConfigurationException::class, SAXException::class)
-    override fun stageTwo() {
+    fun stageTwo() {
         versionMeta
         configurationHandler
     }
 
+    /**
+     * Initialize [ApiPlugins], [de.griefed.serverpackcreator.api.modscanning.ModScanner] (consisting of [TomlParser],
+     * [de.griefed.serverpackcreator.api.modscanning.ForgeAnnotationScanner],
+     * [de.griefed.serverpackcreator.api.modscanning.FabricScanner],
+     * [de.griefed.serverpackcreator.api.modscanning.ForgeTomlScanner],
+     * [de.griefed.serverpackcreator.api.modscanning.QuiltScanner]),
+     * [ServerPackHandler].
+     *
+     * @author Griefed
+     */
     @Throws(IOException::class, ParserConfigurationException::class, SAXException::class)
-    override fun stageThree() {
+    fun stageThree() {
         apiPlugins
         forgeAnnotationScanner
+        forgeTomlScanner
+        neoForgeTomlScanner
         fabricScanner
         quiltScanner
         modScanner
         serverPackHandler
     }
 
-    override fun checkServerFilesFile(fileToCheckFor: File) = utilities.jarUtilities.copyFileFromJar(
+    /**
+     * Check whether the specified server-files file exists and create it if it doesn't.
+     *
+     * @param fileToCheckFor The file which is to be checked for whether it exists and if it doesn't,
+     * should be created.
+     * @return `true` if the file was generated.
+     * @author Griefed
+     */
+    fun checkServerFilesFile(fileToCheckFor: File) = utilities.jarUtilities.copyFileFromJar(
         "de/griefed/resources/server_files/${fileToCheckFor.name}",
         File(apiProperties.serverFilesDirectory, fileToCheckFor.name),
         this.javaClass
     )
 
-    override fun overwriteServerFilesFile(fileToOverwrite: File) {
+    /**
+     * Overwrite the specified server-files file, even when it exists. Used to ensure files like the
+     * default script templates are always up-to-date.
+     *
+     * @param fileToOverwrite The file which is to be overwritten. If it exists. it is first deleted,
+     * then extracted from our JAR-file.
+     * @author Griefed
+     */
+    fun overwriteServerFilesFile(fileToOverwrite: File) {
         File(apiProperties.serverFilesDirectory, fileToOverwrite.name).deleteQuietly()
         checkServerFilesFile(fileToOverwrite)
     }
diff --git a/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/ConfigCheck.kt b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/ConfigCheck.kt
similarity index 100%
rename from serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/ConfigCheck.kt
rename to serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/ConfigCheck.kt
diff --git a/serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/ConfigurationHandler.kt b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/ConfigurationHandler.kt
similarity index 63%
rename from serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/ConfigurationHandler.kt
rename to serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/ConfigurationHandler.kt
index e392c34ac..dbc02f577 100644
--- a/serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/ConfigurationHandler.kt
+++ b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/ConfigurationHandler.kt
@@ -21,12 +21,13 @@ package de.griefed.serverpackcreator.api
 
 import Translations
 import com.fasterxml.jackson.databind.JsonNode
-import de.griefed.serverpackcreator.api.utilities.File
 import de.griefed.serverpackcreator.api.utilities.common.InvalidFileTypeException
 import de.griefed.serverpackcreator.api.utilities.common.Utilities
 import de.griefed.serverpackcreator.api.utilities.common.isNotValidZipFile
 import de.griefed.serverpackcreator.api.versionmeta.VersionMeta
+import mu.KotlinLogging
 import net.lingala.zip4j.ZipFile
+import java.io.File
 import java.io.IOException
 import java.net.URI
 import java.nio.file.*
@@ -49,15 +50,41 @@ import java.util.regex.PatternSyntaxException
  *
  * @author Griefed
  */
-actual class ConfigurationHandler(
+class ConfigurationHandler(
     private val versionMeta: VersionMeta,
     private val apiProperties: ApiProperties,
     private val utilities: Utilities,
     private val apiPlugins: ApiPlugins
-) : Configuration<File, Path>() {
+) {
     private val zipRegex = "\\.[Zz][Ii][Pp]".toRegex()
-
-    actual override fun checkConfiguration(configFile: File, packConfig: PackConfig, configCheck: ConfigCheck, quietCheck: Boolean): ConfigCheck {
+    protected val log by lazy { KotlinLogging.logger {} }
+    protected val forge = "^forge$".toRegex()
+    protected val neoForge = "^neoforge$".toRegex()
+    protected val fabric = "^fabric$".toRegex()
+    protected val quilt = "^quilt$".toRegex()
+    protected val legacyFabric = "^legacyfabric$".toRegex()
+    protected val whitespace = "^\\s+$".toRegex()
+    protected val previous = ".*_\\d".toRegex()
+    protected val zipCheck = "^\\w+[/\\\\]$".toRegex()
+
+    /**
+     * Check the passed configuration-file. If any check returns `true` then the server pack
+     * will not be created. In order to find out which check failed, the user has to check their
+     * serverpackcreator.log in the logs-directory.
+     *
+     * @param configFile         The configuration file to check. Must either be an existing file to
+     * load a configuration from or null if you want to use the passed
+     * configuration model.
+     * @param packConfig Instance of a configuration of a modpack. Can be used to further
+     * display or use any information within, as it may be changed or
+     * otherwise altered by this method.
+     * @param configCheck Contains all encountered errors during the check of the passed configuration.
+     * @param quietCheck         Whether the configuration should be printed to the console and logs.
+     * Pass false to quietly check the configuration.
+     * @return `false` if the configuration has passed all tests.
+     * @author Griefed
+     */
+    fun checkConfiguration(configFile: File, packConfig: PackConfig = PackConfig(), configCheck: ConfigCheck = ConfigCheck(), quietCheck: Boolean = false): ConfigCheck {
         try {
             val fileConf = PackConfig(utilities, configFile)
             packConfig.setClientMods(fileConf.clientMods)
@@ -88,7 +115,24 @@ actual class ConfigurationHandler(
         }
     }
 
-    actual override fun checkConfiguration(packConfig: PackConfig, configCheck: ConfigCheck, quietCheck: Boolean): ConfigCheck {
+    /**
+     * Check the passed [packConfig]. If any check returns `true` then the server
+     * pack will not be created. In order to find out which check failed, the user has to check their
+     * serverpackcreator.log in the logs-directory.
+     *
+     * The passed [packConfig] can be used to further display or use any information within, as it may be changed or otherwise
+     * altered by this method.
+     *
+     * @param packConfig Instance of a configuration of a modpack. Can be used to further
+     * display or use any information within, as it may be changed or
+     * otherwise altered by this method.
+     * @param configCheck Contains all encountered errors during the check of the passed configuration.
+     * @param quietCheck         Whether the configuration should be printed to the console and logs.
+     * Pass false to quietly check the configuration.
+     * @return `false` if all checks are passed.
+     * @author Griefed
+     */
+    fun checkConfiguration(packConfig: PackConfig, configCheck: ConfigCheck = ConfigCheck(), quietCheck: Boolean = false): ConfigCheck {
         sanitizeLinks(packConfig)
         log.info("Checking configuration...")
         if (packConfig.clientMods.isEmpty()) {
@@ -126,6 +170,7 @@ actual class ConfigurationHandler(
         if (modpack.isDirectory) {
             isDir(packConfig, configCheck)
         } else if (modpack.isFile && modpack.name.endsWith("zip")) {
+            packConfig.source = ModpackSource.ZIP
             try {
                 isZip(packConfig, configCheck)
             } catch (ex: IOException) {
@@ -155,6 +200,8 @@ actual class ConfigurationHandler(
             log.error("There's something wrong with your Minecraft version setting.")
         }
 
+        checkForProjectInformation(packConfig)
+
         apiPlugins.runConfigCheckExtensions(packConfig, configCheck)
 
         if (quietCheck) {
@@ -170,7 +217,53 @@ actual class ConfigurationHandler(
         return configCheck
     }
 
-    actual override fun checkModloader(modloader: String, configCheck: ConfigCheck): ConfigCheck {
+    /**
+     * Check for minecraftinstance.json and profile.json and if either is present, try to obtain the project- and
+     * fileIDs as well as the modpack distribution-platform (Modrinth or CurseForge).
+     *
+     * @author Griefed
+     */
+    fun checkForProjectInformation(packConfig: PackConfig) {
+        val modpackDirectory = File(packConfig.modpackDir)
+        if (!modpackDirectory.isDirectory) {
+            log.info("Modpack is not a directory. Skipping project information gathering.")
+            return
+        }
+        val instance = File(modpackDirectory, "minecraftinstance.json")
+        val profile = File(modpackDirectory, "profile.json")
+        var projectID: String? = null
+        var versionID: String? = null
+        var source: ModpackSource = packConfig.source
+
+        try {
+            if (instance.isFile) {
+                projectID = utilities.jsonUtilities.getJson(instance).get("projectID").asText()
+                versionID = utilities.jsonUtilities.getJson(instance).get("fileID").asText()
+                source = ModpackSource.CURSEFORGE
+            } else if (profile.isFile) {
+                projectID = utilities.jsonUtilities.getJson(profile).get("metadata").get("linked_data").get("project_id").asText()
+                versionID = utilities.jsonUtilities.getJson(profile).get("metadata").get("linked_data").get("version_id").asText()
+                source = ModpackSource.MODRINTH
+            }
+        } catch (ex: NullPointerException) {
+            log.error("Could not retrieve project and/or file IDs.", ex)
+        }
+
+        if (projectID != null && versionID != null && source != packConfig.source) {
+            packConfig.projectID = projectID
+            packConfig.versionID = versionID
+            packConfig.source = source
+        }
+    }
+
+    /**
+     * Checks whether either Forge or Fabric were specified as the modloader.
+     *
+     * @param modloader Check as case-insensitive for Forge or Fabric.
+     * @return `true` if the specified modloader is either Forge or Fabric. False if neither.
+     * @author Griefed
+     */
+    fun checkModloader(modloader: String, configCheck: ConfigCheck = ConfigCheck()): ConfigCheck {
         if (!modloader.lowercase().matches(forge)
             && !modloader.lowercase().matches(neoForge)
             && !modloader.lowercase().matches(fabric)
@@ -183,7 +276,15 @@ actual class ConfigurationHandler(
         return configCheck
     }
 
-    actual override fun sanitizeLinks(packConfig: PackConfig) {
+    /**
+     * Sanitize any and all links in a given instance of [PackConfig] modpack-directory,
+     * server-icon path, server-properties path, Java path and copy-directories entries.
+     *
+     * @param packConfig Instance of [PackConfig] in which to sanitize links to
+     * their respective destinations.
+     * @author Griefed
+     */
+    fun sanitizeLinks(packConfig: PackConfig) {
         log.info("Checking configuration for links...")
         if (packConfig.modpackDir.isNotEmpty() && utilities.fileUtilities.isLink(packConfig.modpackDir)) {
             try {
@@ -242,13 +343,36 @@ actual class ConfigurationHandler(
         }
     }
 
-    actual override fun checkIconAndProperties(iconOrPropertiesPath: String) = if (iconOrPropertiesPath.isEmpty()) {
+    /**
+     * Checks the passed String whether it is an existing file. If the passed String is empty, then
+     * ServerPackCreator will treat it as the user being fine with the default files and return the
+     * corresponding boolean.
+     *
+     * @param iconOrPropertiesPath The path to the custom server-icon.png or server.properties file to
+     * check.
+     * @return `true` if the file exists or an empty String was passed, false if a file was
+     * specified, but the file was not found.
+     * @author Griefed
+     */
+    fun checkIconAndProperties(iconOrPropertiesPath: String) = if (iconOrPropertiesPath.isEmpty()) {
         true
     } else {
         File(iconOrPropertiesPath).isFile
     }
 
-    actual override fun isDir(packConfig: PackConfig, configCheck: ConfigCheck): ConfigCheck {
+    /**
+     * If the in the configuration specified modpack dir is an existing directory, checks are made for
+     * valid configuration of: directories to copy to server pack, if includeServerInstallation is
+     * `true` path to Java executable/binary, Minecraft version, modloader and modloader
+     * version.
+     *
+     * @param packConfig An instance of [PackConfig] which contains the
+     * configuration of the modpack.
+     * @param configCheck Contains all encountered errors during the check of the passed configuration.
+     * @return `true` if an error is found during configuration check.
+     * @author Griefed
+     */
+    fun isDir(packConfig: PackConfig, configCheck: ConfigCheck): ConfigCheck {
         if (checkInclusions(packConfig.inclusions, packConfig.modpackDir, configCheck).inclusionsChecksPassed) {
             log.debug("copyDirs setting check passed.")
         } else {
@@ -258,8 +382,20 @@ actual class ConfigurationHandler(
         return configCheck
     }
 
+    /**
+     * Checks the specified ZIP-archive for validity. In order for a modpack ZIP-archive to be
+     * considered valid, it needs to contain the `mods` and `config` folders at minimum.
+     * If any of `manifest.json`, `minecraftinstance.json` or `config.json` are
+     * available, gather as much information from them as possible.
+     *
+     * @param packConfig Instance of [PackConfig] with a server pack
+     * configuration.
+     * @param configCheck Collection of encountered errors, if any, for convenient result-checks.
+     * @return `false` when no errors were encountered.
+     * @author Griefed
+     */
     @Throws(IOException::class)
-    actual override fun isZip(packConfig: PackConfig, configCheck: ConfigCheck): ConfigCheck {
+    fun isZip(packConfig: PackConfig, configCheck: ConfigCheck): ConfigCheck {
         // modpackDir points at a ZIP-file. Get the path to the would be modpack directory.
         val name = File(packConfig.modpackDir).name
         val cleaned = name.replace(zipRegex, "")
@@ -314,8 +450,20 @@ actual class ConfigurationHandler(
         return configCheck
     }
 
-    actual override fun checkModloaderVersion(
-        modloader: String, modloaderVersion: String, minecraftVersion: String, configCheck: ConfigCheck
+    /**
+     * Check the given Minecraft and modloader versions for the specified modloader.
+     *
+     * @param modloader        The passed modloader which determines whether the check for Forge or
+     * Fabric is called.
+     * @param modloaderVersion The version of the modloader which is checked against the corresponding
+     * modloader's manifest.
+     * @param minecraftVersion The version of Minecraft used for checking the Forge version.
+     * @return `true` if the specified modloader version was found in the corresponding
+     * manifest.
+     * @author Griefed
+     */
+    fun checkModloaderVersion(
+        modloader: String, modloaderVersion: String, minecraftVersion: String, configCheck: ConfigCheck = ConfigCheck()
     ): ConfigCheck {
         when (modloader) {
             "Forge" -> if (!versionMeta.forge.isForgeAndMinecraftCombinationValid(minecraftVersion, modloaderVersion)) {
@@ -369,7 +517,69 @@ actual class ConfigurationHandler(
         return configCheck
     }
 
-    actual override fun ensureScriptSettingsDefaults(packConfig: PackConfig) {
+    /**
+     * Convenience method which passes the important fields from an instance of
+     * [PackConfig] to
+     * [.printConfigurationModel]
+     *
+     * @param packConfig Instance of [PackConfig] to print to console and logs.
+     * @author Griefed
+     */
+    fun printConfigurationModel(packConfig: PackConfig) = printConfigurationModel(
+        packConfig.modpackDir,
+        packConfig.clientMods,
+        packConfig.inclusions,
+        packConfig.minecraftVersion,
+        packConfig.modloader,
+        packConfig.modloaderVersion,
+        packConfig.isServerIconInclusionDesired,
+        packConfig.isServerPropertiesInclusionDesired,
+        packConfig.isZipCreationDesired,
+        packConfig.javaArgs,
+        packConfig.serverPackSuffix,
+        packConfig.serverIconPath,
+        packConfig.serverPropertiesPath,
+        packConfig.scriptSettings
+    )
+
+    /**
+     * Print all encountered errors to logs.
+     *
+     * @param encounteredErrors A list of all errors which were encountered during a configuration
+     * check.
+     * @author Griefed
+     */
+    fun printEncounteredErrors(encounteredErrors: List<String>) {
+        log.error("Encountered ${encounteredErrors.size} errors during the configuration check.")
+        var encounteredErrorNumber: Int
+        for (i in encounteredErrors.indices) {
+            encounteredErrorNumber = i + 1
+            log.error("Error $encounteredErrorNumber: ${encounteredErrors[i]}")
+        }
+    }
+
+    /**
+     * Update the script settings and ensure the default keys, with values gathered from the passed
+     * [PackConfig], are present:
+     *
+     *
+     *  1. `SPC_SERVERPACKCREATOR_VERSION_SPC` : `ServerPackCreator version with which the scripts were created`
+     *  1. `SPC_MINECRAFT_VERSION_SPC` : `Minecraft version of the modpack`
+     *  1. `SPC_MINECRAFT_SERVER_URL_SPC` : `Download-URL to the Minecraft server
+    ` *
+     *  1. `SPC_MODLOADER_SPC` : `The modloader of the modpack`
+     *  1. `SPC_MODLOADER_VERSION_SPC` : `The modloader version of the modpack
+    ` *
+     *  1. `SPC_JAVA_ARGS_SPC` : `The JVM args to be used to run the server`
+     *  1. `SPC_JAVA_SPC` : `Path to the java installation to be used to run the server`
+     *  1. `SPC_FABRIC_INSTALLER_VERSION_SPC` : `Most recent version of the Fabric installer at the time of creating the scripts`
+     *  1. `SPC_QUILT_INSTALLER_VERSION_SPC` : `Most recent version of the Quilt installer at the time of creating the scripts`
+     *
+     *
+     * @param packConfig Model in which to ensure the default key-value pairs are present.
+     * @author Griefed
+     */
+    fun ensureScriptSettingsDefaults(packConfig: PackConfig) {
         val server = versionMeta.minecraft.getServer(packConfig.minecraftVersion)
         if (!server.isPresent || !server.get().url().isPresent) {
             packConfig.scriptSettings["SPC_MINECRAFT_SERVER_URL_SPC"] = ""
@@ -397,11 +607,27 @@ actual class ConfigurationHandler(
 
     }
 
-    actual override fun checkInclusions(
+    /**
+     * Checks whether the passed list of directories which are supposed to be in the modpack directory
+     * is empty, or whether all directories in the list exist in the modpack directory. If the user
+     * specified a `source/file;destination/file`-combination, it is checked whether the
+     * specified source-file exists on the host.
+     *
+     * @param inclusions Directories, or `source/file;destination/file`-combinations, to
+     * check for existence.
+     * `source/file;destination/file`-combinations must be absolute
+     * paths to the source-file.
+     * @param modpackDir        Path to the modpack directory in which to check for existence of the
+     * passed list of directories.
+     * @return `true` if every directory was found in the modpack directory. If any single one
+     * was not found, false is returned.
+     * @author Griefed
+     */
+    fun checkInclusions(
         inclusions: MutableList<InclusionSpecification>,
         modpackDir: String,
-        configCheck: ConfigCheck,
-        printLog: Boolean
+        configCheck: ConfigCheck = ConfigCheck(),
+        printLog: Boolean = true
     ): ConfigCheck {
         val hasLazy = inclusions.any { entry -> entry.source == "lazy_mode" }
         if (inclusions.isEmpty()) {
@@ -473,7 +699,14 @@ actual class ConfigurationHandler(
         return configCheck
     }
 
-    actual override fun checkZipArchive(pathToZip: String, configCheck: ConfigCheck): ConfigCheck {
+    /**
+     * Check a given ZIP-archives contents. If the ZIP-archive only contains one directory, or if it
+     * contains neither the mods nor the config directories, consider it invalid.
+     *
+     * @param pathToZip         Path to the ZIP-file to check.
+     * @author Griefed
+     */
+    fun checkZipArchive(pathToZip: String, configCheck: ConfigCheck = ConfigCheck()): ConfigCheck {
         try {
             ZipFile(Paths.get(pathToZip).toFile()).use {
                 if (it.isNotValidZipFile()) {
@@ -521,7 +754,15 @@ actual class ConfigurationHandler(
         return configCheck
     }
 
-    actual override fun unzipDestination(destination: String): String {
+    /**
+     * Update the destination to which the ZIP-archive will the extracted to, based on whether a
+     * directory of the same name already exists.
+     *
+     * @param destination The destination to where the ZIP-archive was about to be extracted to.
+     * @return The destination where the ZIP-archive will be extracted to.
+     * @author Griefed
+     */
+    fun unzipDestination(destination: String): String {
         var dest = destination
         if (File(dest).isDirectory || File("${dest}_0").isDirectory) {
             var incrementation = 0
@@ -535,7 +776,18 @@ actual class ConfigurationHandler(
         return File(dest).path
     }
 
-    actual override fun suggestInclusions(modpackDir: String): ArrayList<InclusionSpecification> {
+    /**
+     * Creates a list of suggested directories to include in server pack which is later on written to
+     * a new configuration file. The list of directories to include in the server pack which is
+     * generated by this method excludes well know directories which would not be needed by a server
+     * pack. If you have suggestions to this list, open a feature request issue on [GitHub](https://github.com/Griefed/ServerPackCreator/issues/new/choose)
+     *
+     * @param modpackDir The directory for which to gather a list of directories to copy to the server
+     * pack.
+     * @return Directories inside the modpack, excluding well known client-side only directories.
+     * @author Griefed
+     */
+    fun suggestInclusions(modpackDir: String): ArrayList<InclusionSpecification> {
         // This log is meant to be read by the user, therefore we allow translation.
         log.info("Preparing a list of directories to include in server pack...")
         var doNotInclude: String
@@ -565,7 +817,18 @@ actual class ConfigurationHandler(
         return dirsInModpack
     }
 
-    actual override fun checkManifests(destination: String, packConfig: PackConfig, configCheck: ConfigCheck): String? {
+    /**
+     * Check whether various manifests from various launchers exist and use them to update our
+     * ConfigurationModel and pack name.
+     *
+     * @param destination        The destination in which the manifests are.
+     * @param packConfig The ConfigurationModel to update.
+     * @param configCheck Collection of encountered errors, if any, for convenient result-checks.
+     * @return The name of the modpack currently being checked. `null` if the name could not be
+     * acquired.
+     * @author Griefed
+     */
+    fun checkManifests(destination: String, packConfig: PackConfig, configCheck: ConfigCheck = ConfigCheck()): String? {
         var packName: String? = null
         val manifestJson = File(destination, "manifest.json")
         val minecraftInstanceJson = File(destination, "minecraftinstance.json")
@@ -589,7 +852,7 @@ actual class ConfigurationHandler(
             instanceJson.exists() -> {
                 // Check instance.json usually created by ATLauncher
                 try {
-                    updateConfigModelFromInstance(packConfig, File(destination, "instance.json"))
+                    updateConfigModelFromATLauncherInstance(packConfig, File(destination, "instance.json"))
                     packName = updatePackName(packConfig, "launcher", "name")
                 } catch (ex: IOException) {
                     log.error("Error parsing config.json from ZIP-file.", ex)
@@ -649,7 +912,18 @@ actual class ConfigurationHandler(
         return packName
     }
 
-    actual override fun checkServerPacksForIncrement(source: String, destination: String): String {
+    /**
+     * Check whether a server pack for the given destination already exists and get an incrementor
+     * based on whether one exists, how many, or none exist. Think if this as the incrementation
+     * Windows does when a file of the same name is copied. `foo.bar` becomes
+     * `foo (1).bar` etc.
+     *
+     * @param source          The name of the modpack.
+     * @param destination The name of the server pack about to be generated.
+     * @return An incremented number, based on whether a server pack of the same name already exists.
+     * @author Griefed
+     */
+    fun checkServerPacksForIncrement(source: String, destination: String): String {
         // Check whether a server pack for the new destination already exists.
         // If it does, we need to change it to avoid overwriting any existing files.
         val modPack = if (File(source).path.matches(previous)) {
@@ -671,7 +945,39 @@ actual class ConfigurationHandler(
         return serverPack + incrementation
     }
 
-    actual override fun printConfigurationModel(
+    /**
+     * Prints all passed fields to the console and serverpackcreator.log. Used to show the user the
+     * configuration before ServerPackCreator starts the generation of the server pack or, if checks
+     * failed, to show the user their last configuration, so they can more easily identify problems
+     * with said configuration.
+     *
+     * Should a user report an issue on GitHub and include their logs (which I hope they do....), this would also help
+     * me help them. Logging is good. People should use more logging.
+     *
+     * @param modpackDirectory     The used modpackDir field either from a configuration file or from
+     * configuration setup.
+     * @param clientsideMods       List of clientside-only mods to exclude from the server pack...
+     * @param inclusions      List of directories in the modpack which are to be included in the
+     * server pack.
+     * @param minecraftVer         The Minecraft version the modpack uses.
+     * @param modloader            The modloader the modpack uses.
+     * @param modloaderVersion     The version of the modloader the modpack uses.
+     * @param includeIcon          Whether to include the server-icon.png in the server pack.
+     * @param includeProperties    Whether to include the server.properties in the server pack.
+     * @param includeZip           Whether to create a zip-archive of the server pack, excluding the
+     * Minecraft server JAR according to Mojang's TOS and EULA.
+     * @param javaArgs             Java arguments to write the start-scripts with.
+     * @param serverPackSuffix     Suffix to append to name of the server pack to be generated.
+     * @param serverIconPath       The path to the custom server-icon.png to be used in the server
+     * pack.
+     * @param serverPropertiesPath The path to the custom server.properties to be used in the server
+     * pack.
+     * @param scriptSettings       Custom settings for start script creation. `KEY`s are the
+     * placeholder, `VALUE`s are the values with which the
+     * placeholders are to be replaced.
+     * @author Griefed
+     */
+    fun printConfigurationModel(
         modpackDirectory: String,
         clientsideMods: List<String>,
         inclusions: List<InclusionSpecification>,
@@ -724,6 +1030,13 @@ actual class ConfigurationHandler(
         }
     }
 
+    /**
+     * Acquire a list of directories in the base-directory of a ZIP-file.
+     *
+     * @param zipFile The ZIP-archive to get the list of files from.
+     * @return All directories in the base-directory of the ZIP-file.
+     * @author Griefed
+     */
     @Throws(
         IllegalArgumentException::class,
         FileSystemAlreadyExistsException::class,
@@ -731,7 +1044,7 @@ actual class ConfigurationHandler(
         IOException::class,
         SecurityException::class
     )
-    actual override fun getDirectoriesInModpackZipBaseDirectory(zipFile: File): List<String> {
+    fun getDirectoriesInModpackZipBaseDirectory(zipFile: File): List<String> {
         val baseDirectories: TreeSet<String> = TreeSet()
         var headerBeginning: String
         ZipFile(zipFile).use {
@@ -751,8 +1064,20 @@ actual class ConfigurationHandler(
         return baseDirectories.toList()
     }
 
+    /**
+     * **`manifest.json`**
+     *
+     * Update the given ConfigurationModel with values gathered from the downloaded CurseForge
+     * modpack. A manifest.json-file is usually created when a modpack is exported through launchers
+     * like Overwolf's CurseForge or GDLauncher.
+     *
+     * @param packConfig An instance containing a configuration for a modpack from which to
+     * create a server pack.
+     * @param manifest           The CurseForge manifest.json-file of the modpack to read.
+     * @author Griefed
+     */
     @Throws(IOException::class)
-    actual override fun updateConfigModelFromCurseManifest(packConfig: PackConfig, manifest: File) {
+    fun updateConfigModelFromCurseManifest(packConfig: PackConfig, manifest: File) {
         packConfig.modpackJson = utilities.jsonUtilities.getJson(manifest)
         val minecraft = packConfig.modpackJson!!.get("minecraft")
         val modloaders = minecraft.get("modLoaders").get(0)
@@ -763,7 +1088,17 @@ actual class ConfigurationHandler(
         packConfig.modloaderVersion = modloaderAndVersion[1]
     }
 
-    actual override fun updatePackName(packConfig: PackConfig, vararg childNodes: String) = try {
+    /**
+     * Acquire the modpacks name from the JSON previously acquired and stored in the
+     * ConfigurationModel.
+     *
+     * @param packConfig The ConfigurationModel containing the JsonNode from which to acquire
+     * the modpacks name.
+     * @param childNodes         The child nodes, in order, which contain the requested packname.
+     * @return The new name of the modpack.
+     * @author Griefed
+     */
+    fun updatePackName(packConfig: PackConfig, vararg childNodes: String) = try {
         val modpackDir = apiProperties.modpacksDirectory.toString()
         val packName = packConfig.modpackJson?.let {
             utilities.jsonUtilities.getNestedText(
@@ -775,8 +1110,19 @@ actual class ConfigurationHandler(
         null
     }
 
+    /**
+     * **`minecraftinstance.json`**
+     *
+     * Update the given ConfigurationModel with values gathered from the minecraftinstance.json of
+     * the modpack. A minecraftinstance.json is usually created by Overwolf's CurseForge launcher.
+     *
+     * @param packConfig An instance containing a configuration for a modpack from which to
+     * create a server pack.
+     * @param minecraftInstance  The minecraftinstance.json-file of the modpack to read.
+     * @author Griefed
+     */
     @Throws(IOException::class)
-    actual override fun updateConfigModelFromMinecraftInstance(packConfig: PackConfig, minecraftInstance: File) {
+    fun updateConfigModelFromMinecraftInstance(packConfig: PackConfig, minecraftInstance: File) {
         packConfig.modpackJson = utilities.jsonUtilities.getJson(minecraftInstance)
         val json = packConfig.modpackJson!!
         val base = json.get("baseModLoader")
@@ -795,8 +1141,17 @@ actual class ConfigurationHandler(
         }
     }
 
+    /**
+     * **`modrinth.index.json`**
+     *
+     * Update the given ConfigurationModel with values gathered from a Modrinth `modrinth.index.json`-manifest.
+     *
+     * @param packConfig The model to update.
+     * @param manifest           The manifest file.
+     * @author Griefed
+     */
     @Throws(IOException::class)
-    actual override fun updateConfigModelFromModrinthManifest(packConfig: PackConfig, manifest: File) {
+    fun updateConfigModelFromModrinthManifest(packConfig: PackConfig, manifest: File) {
         packConfig.modpackJson = utilities.jsonUtilities.getJson(manifest)
         val dependencies = packConfig.modpackJson!!.get("dependencies")
         packConfig.minecraftVersion = dependencies.get("minecraft").asText()
@@ -822,44 +1177,26 @@ actual class ConfigurationHandler(
         }
     }
 
+    /**
+     * **`instance.json`**
+     *
+     * Update the given ConfigurationModel with values gathered from a ATLauncher manifest.
+     *
+     * @param packConfig The model to update.
+     * @param manifest           The manifest file.
+     * @author Griefed
+     */
     @Throws(IOException::class)
-    actual override fun updateConfigModelFromInstance(packConfig: PackConfig, manifest: File) {
+    fun updateConfigModelFromATLauncherInstance(packConfig: PackConfig, manifest: File) {
         packConfig.modpackJson = utilities.jsonUtilities.getJson(manifest)
         val json = packConfig.modpackJson!!
-        val urlPath: Array<String>
-        val namePath: Array<String>
-        if (json.get("id") != null) {
-            //ATLauncher
-            packConfig.minecraftVersion = json.get("id").asText()
-            packConfig.modloader = json.get("launcher").get("loaderVersion").get("type").asText()
-            packConfig.modloaderVersion = json.get("launcher").get("loaderVersion").get("version").asText()
-            urlPath = arrayOf("launcher", "curseForgeProject", "logo", "thumbnailUrl")
-            namePath = arrayOf("launcher", "name")
-        } else {
-            //xmcl
-            val runtime = json.get("runtime")
-            packConfig.minecraftVersion = runtime.get("minecraft").asText()
-            urlPath = arrayOf("icon")
-            namePath = arrayOf("name")
-            when {
-                runtime.get("forge").asText().isNotBlank() -> {
-                    packConfig.modloader = "Forge"
-                    packConfig.modloaderVersion = runtime.get("forge").asText()
-                }
-                runtime.get("fabricLoader").asText().isNotBlank() -> {
-                    packConfig.modloader = "Fabric"
-                    packConfig.modloaderVersion = runtime.get("fabricLoader").asText()
-                }
-                runtime.get("quiltLoader").asText().isNotBlank() -> {
-                    packConfig.modloader = "Quilt"
-                    packConfig.modloaderVersion = runtime.get("quiltLoader").asText()
-                }
-                runtime.get("neoForged").asText().isNotBlank() -> {
-                    packConfig.modloader = "NeoForge"
-                    packConfig.modloaderVersion = runtime.get("neoForged").asText()
-                }
-            }
-        }
+        packConfig.minecraftVersion = json.get("id").asText()
+        val launcher = json.get("launcher")
+        val loaderVersion = launcher.get("loaderVersion")
+        packConfig.modloader = loaderVersion.get("type").asText()
+        packConfig.modloaderVersion = loaderVersion.get("version").asText()
+        val urlPath = arrayOf("launcher", "curseForgeProject", "logo", "thumbnailUrl")
+        val namePath = arrayOf("launcher", "name")
         try {
             getAndSetIcon(json, packConfig, urlPath, namePath)
         } catch (_: NullPointerException) {
@@ -878,8 +1215,19 @@ actual class ConfigurationHandler(
         }
     }
 
+    /**
+     * **`config.json`**
+     *
+     * Update the given ConfigurationModel with values gathered from the modpacks config.json. A
+     * config.json is usually created by GDLauncher.
+     *
+     * @param packConfig An instance containing a configuration for a modpack from which to
+     * create a server pack.
+     * @param config             The config.json-file of the modpack to read.
+     * @author Griefed
+     */
     @Throws(IOException::class)
-    actual override fun updateConfigModelFromConfigJson(packConfig: PackConfig, config: File) {
+    fun updateConfigModelFromConfigJson(packConfig: PackConfig, config: File) {
         packConfig.modpackJson = utilities.jsonUtilities.getJson(config)
         val loader = packConfig.modpackJson!!.get("loader")
         packConfig.modloader = getModLoaderCase(loader.get("loaderType").asText())
@@ -888,8 +1236,20 @@ actual class ConfigurationHandler(
             loader.get("loaderVersion").asText().replace(packConfig.minecraftVersion + "-", "")
     }
 
+    /**
+     * **`mmc-pack.json`**
+     *
+     *
+     * Update the given ConfigurationModel with values gathered from the modpacks mmc-pack.json. A
+     * mmc-pack.json is usually created by the MultiMC launcher.
+     *
+     * @param packConfig An instance containing a configuration for a modpack from which to
+     * create a server pack.
+     * @param mmcPack            The config.json-file of the modpack to read.
+     * @author Griefed
+     */
     @Throws(IOException::class)
-    actual override fun updateConfigModelFromMMCPack(packConfig: PackConfig, mmcPack: File) {
+    fun updateConfigModelFromMMCPack(packConfig: PackConfig, mmcPack: File) {
         packConfig.modpackJson = utilities.jsonUtilities.getJson(mmcPack)
         val components = packConfig.modpackJson!!.get("components")
         for (jsonNode in components) {
@@ -914,8 +1274,18 @@ actual class ConfigurationHandler(
         }
     }
 
+    /**
+     * **`instance.cfg`**
+     *
+     * Acquire the name of the modpack/instance of a MultiMC modpack from the modpacks
+     * instance.cfg, which is usually created by the MultiMC launcher.
+     *
+     * @param instanceCfg The config.json-file of the modpack to read.
+     * @return The instance name.
+     * @author Griefed
+     */
     @Throws(IOException::class)
-    actual override fun updateDestinationFromInstanceCfg(instanceCfg: File): String {
+    fun updateDestinationFromInstanceCfg(instanceCfg: File): String {
         var name: String
         instanceCfg.inputStream().use {
             val properties = Properties()
@@ -925,25 +1295,79 @@ actual class ConfigurationHandler(
         return name
     }
 
-    actual override fun checkModpackDir(
+    /**
+     * Ensures the modloader is normalized to first letter upper case and rest lower case. Basically
+     * allows the user to input Forge or Fabric in any combination of upper- and lowercase and
+     * ServerPackCreator will still be able to work with the users input.
+     *
+     * @param modloader Modloader String-representation to normalize.
+     * @return A normalized String of the specified modloader.
+     * @author Griefed
+     */
+    fun getModLoaderCase(modloader: String) = when {
+        modloader.lowercase().matches(forge) || modloader.lowercase().contains("forge") &&
+                !(modloader.lowercase().matches(neoForge) || modloader.lowercase().contains("NeoForge"))-> {
+            "Forge"
+        }
+        modloader.lowercase().matches(fabric) || modloader.lowercase().contains("fabric") -> {
+            "Fabric"
+        }
+        modloader.lowercase().matches(quilt) || modloader.lowercase().contains("quilt") -> {
+            "Quilt"
+        }
+        modloader.lowercase().matches(legacyFabric) || modloader.lowercase().contains("legacyfabric") -> {
+            "LegacyFabric"
+        }
+        modloader.lowercase().matches(neoForge) || modloader.lowercase().contains("NeoForge") -> {
+            "NeoForge"
+        }
+        else -> {
+            log.warn { "No suitable modloader found. Defaulting to Forge." }
+            "Forge"
+        }
+    }
+
+    /**
+     * Check the passed directory for existence and whether it is a directory, rather than a file.
+     *
+     * @param modpackDir The modpack directory.
+     * @param configCheck Collection of encountered errors, if any, for convenient result-checks.
+     * @return `true` if the directory exists.
+     * @author Griefed
+     */
+    fun checkModpackDir(
         modpackDir: String,
-        configCheck: ConfigCheck,
-        printLog: Boolean
+        configCheck: ConfigCheck = ConfigCheck(),
+        printLog: Boolean = true
     ): ConfigCheck {
+        val modpack = File(modpackDir)
         if (modpackDir.isEmpty()) {
             if (printLog) {
                 log.error("Modpack directory not specified. Please specify an existing directory.")
             }
             configCheck.modpackErrors.add(Translations.configuration_log_error_checkmodpackdir.toString())
-        } else if (!File(modpackDir).exists()) {
+        } else if (!modpack.exists()) {
             if (printLog) {
                 log.warn("Couldn't find directory $modpackDir.")
             }
             configCheck.modpackErrors.add(Translations.configuration_log_error_modpackdirectory(modpackDir))
+        } else if (modpack.isDirectory){
+            val files = modpack.listFiles { entry -> entry.isDirectory }
+            if (files.any { entry -> entry.name == "overrides" }) {
+                log.error("Modpack contains directory \"overrides\". Modpacks must be installed through a client such as CurseForge, GDLauncher, MultiMC etc. Full modpacks shouldn't contain the overrides directory anymore.")
+                configCheck.modpackErrors.add(Translations.configuration_log_error_modpack_overrides.toString())
+            }
         }
         return configCheck
     }
 
+    /**
+     * Acquire a list of all files and directories in a ZIP-file.
+     *
+     * @param zipFile The ZIP-archive to get the list of files from.
+     * @return All files and directories in the ZIP-file.
+     * @author Griefed
+     */
     @Throws(
         IllegalArgumentException::class,
         FileSystemAlreadyExistsException::class,
@@ -951,7 +1375,7 @@ actual class ConfigurationHandler(
         IOException::class,
         SecurityException::class
     )
-    actual override fun getAllFilesAndDirectoriesInModpackZip(zipFile: File): List<String> {
+    fun getAllFilesAndDirectoriesInModpackZip(zipFile: File): List<String> {
         val filesAndDirectories: MutableList<String> = ArrayList(100)
         try {
             filesAndDirectories.addAll(getDirectoriesInModpackZip(zipFile))
@@ -966,6 +1390,13 @@ actual class ConfigurationHandler(
         return filesAndDirectories
     }
 
+    /**
+     * Acquire a list of all directories in a ZIP-file. The resulting list excludes files.
+     *
+     * @param zipFile The ZIP-archive to get the list of files from.
+     * @return All directories in the ZIP-file.
+     * @author Griefed
+     */
     @Throws(
         IllegalArgumentException::class,
         FileSystemAlreadyExistsException::class,
@@ -973,7 +1404,7 @@ actual class ConfigurationHandler(
         IOException::class,
         SecurityException::class
     )
-    actual override fun getDirectoriesInModpackZip(zipFile: java.io.File): List<String> {
+    fun getDirectoriesInModpackZip(zipFile: File): List<String> {
         val directories: MutableList<String> = ArrayList(100)
         ZipFile(zipFile).use {
             for (header in it.fileHeaders) {
@@ -985,6 +1416,13 @@ actual class ConfigurationHandler(
         return directories
     }
 
+    /**
+     * Acquire a list of all files in a ZIP-file. The resulting list excludes directories.
+     *
+     * @param zipFile The ZIP-archive to get the list of files from.
+     * @return All files in the ZIP-file.
+     * @author Griefed
+     */
     @Throws(
         IllegalArgumentException::class,
         FileSystemAlreadyExistsException::class,
@@ -992,7 +1430,7 @@ actual class ConfigurationHandler(
         IOException::class,
         SecurityException::class
     )
-    actual override fun getFilesInModpackZip(zipFile: java.io.File): List<String> {
+    fun getFilesInModpackZip(zipFile: File): List<String> {
         val files: MutableList<String> = ArrayList(100)
         ZipFile(zipFile).use {
             for (header in it.fileHeaders) {
diff --git a/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/ExclusionFilter.kt b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/ExclusionFilter.kt
similarity index 100%
rename from serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/ExclusionFilter.kt
rename to serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/ExclusionFilter.kt
diff --git a/serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/InclusionSpecification.kt b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/InclusionSpecification.kt
similarity index 84%
rename from serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/InclusionSpecification.kt
rename to serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/InclusionSpecification.kt
index 3e264bdc3..0fff0137e 100644
--- a/serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/InclusionSpecification.kt
+++ b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/InclusionSpecification.kt
@@ -38,30 +38,30 @@ package de.griefed.serverpackcreator.api
  *
  * @author Griefed
  */
-actual class InclusionSpecification actual constructor(
-    actual var source: String,
-    actual var destination: String?,
-    actual var inclusionFilter: String?,
-    actual var exclusionFilter: String?
+class InclusionSpecification(
+    var source: String,
+    var destination: String? = null,
+    var inclusionFilter: String? = null,
+    var exclusionFilter: String? = null
 ) {
 
-    actual fun hasInclusionFilter(): Boolean {
+    fun hasInclusionFilter(): Boolean {
         return inclusionFilter != null && inclusionFilter!!.isNotBlank()
     }
 
-    actual fun hasExclusionFilter(): Boolean {
+    fun hasExclusionFilter(): Boolean {
         return exclusionFilter != null && exclusionFilter!!.isNotBlank()
     }
 
-    actual fun hasDestination(): Boolean {
+    fun hasDestination(): Boolean {
         return !destination.isNullOrBlank()
     }
 
-    actual fun isGlobalFilter(): Boolean {
+    fun isGlobalFilter(): Boolean {
         return (source.isBlank() && hasInclusionFilter()) || (source.isBlank() && hasExclusionFilter())
     }
 
-    actual fun asHashMap(): HashMap<String,String> {
+    fun asHashMap(): HashMap<String,String> {
         val map = HashMap<String,String>()
         map["source"] = source
         map["destination"] = destination ?: ""
diff --git a/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/modpack/ModpackSource.kt b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/ModpackSource.kt
similarity index 91%
rename from serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/modpack/ModpackSource.kt
rename to serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/ModpackSource.kt
index b472a1495..51559cf1c 100644
--- a/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/modpack/ModpackSource.kt
+++ b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/ModpackSource.kt
@@ -17,8 +17,8 @@
  *
  * The full license can be found at https:github.com/Griefed/ServerPackCreator/blob/main/LICENSE
  */
-package de.griefed.serverpackcreator.web.modpack
+package de.griefed.serverpackcreator.api
 
 enum class ModpackSource {
-    ZIP, MODRINTH
+    ZIP, MODRINTH, CURSEFORGE, DIRECTORY
 }
\ No newline at end of file
diff --git a/serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/PackConfig.kt b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/PackConfig.kt
similarity index 82%
rename from serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/PackConfig.kt
rename to serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/PackConfig.kt
index 322784c0d..fc256ba2c 100644
--- a/serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/PackConfig.kt
+++ b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/PackConfig.kt
@@ -183,8 +183,54 @@ private val scriptSettingsDefaultKeys = arrayOf(
  *
  * @author Griefed
  */
-actual open class PackConfig actual constructor() : Pack<File, JsonNode, PackConfig>() {
-    private val log = cachedLoggerOf(this.javaClass)
+open class PackConfig() {
+    private val log by lazy { cachedLoggerOf(this.javaClass) }
+
+    val forge = "^forge$".toRegex()
+    val neoForge = "^neoforge$".toRegex()
+    val fabric = "^fabric$".toRegex()
+    val quilt = "^quilt$".toRegex()
+    val legacyFabric = "^legacyfabric$".toRegex()
+    val whitespace = "^\\s+$".toRegex()
+
+    val clientMods: ArrayList<String> = ArrayList(1000)
+    val modsWhitelist: ArrayList<String> = ArrayList(1000)
+    val inclusions: ArrayList<InclusionSpecification> = ArrayList(100)
+    val scriptSettings = HashMap<String, String>(100)
+    val pluginsConfigs = HashMap<String, ArrayList<CommentedConfig>>(20)
+    var modpackDir = ""
+    var minecraftVersion = ""
+    var modloaderVersion = ""
+    var javaArgs = ""
+    var serverPackSuffix = ""
+    var serverIconPath = ""
+    var serverPropertiesPath = ""
+    var modloader = ""
+        set(newModLoader) {
+            if (newModLoader.lowercase().matches(forge)) {
+                field = "Forge"
+            } else if (newModLoader.lowercase().matches(neoForge)) {
+                field = "NeoForge"
+            } else if (newModLoader.lowercase().matches(fabric)) {
+                field = "Fabric"
+            } else if (newModLoader.lowercase().matches(quilt)) {
+                field = "Quilt"
+            } else if (newModLoader.lowercase().matches(legacyFabric)) {
+                field = "LegacyFabric"
+            }
+        }
+    var isServerIconInclusionDesired = true
+    var isServerPropertiesInclusionDesired = true
+    var isZipCreationDesired = true
+    var modpackJson: JsonNode? = null
+    var configVersion: String? = null
+
+    open var projectID: String? = null
+    open var versionID: String? = null
+    open var source: ModpackSource = ModpackSource.DIRECTORY
+    open var fileName: String? = null
+    open var fileDiskName: String? = null
+
     /**
      * Construct a new configuration model with custom values.
      *
@@ -206,7 +252,7 @@ actual open class PackConfig actual constructor() : Pack<File, JsonNode, PackCon
      * @param pluginsConfigs             Configuration for any and all plugins used by this configuration.
      * @author Griefed
      */
-    actual constructor(
+    constructor(
         clientMods: List<String>,
         whitelist: List<String>,
         copyDirs: List<InclusionSpecification>,
@@ -366,7 +412,7 @@ actual open class PackConfig actual constructor() : Pack<File, JsonNode, PackCon
     }
 
     @Suppress("DuplicatedCode")
-    actual override fun save(destination: File, apiProperties: ApiProperties): PackConfig {
+    fun save(destination: File, apiProperties: ApiProperties): PackConfig {
         val conf = TomlFormat.instance().createConfig()
 
         conf.setComment(configVersionKey, configVersionComment)
@@ -441,4 +487,58 @@ actual open class PackConfig actual constructor() : Pack<File, JsonNode, PackCon
             .write(conf, destination, WritingMode.REPLACE, StandardCharsets.UTF_8)
         return this
     }
+
+    fun setPluginsConfigs(pluginConfigs: HashMap<String, ArrayList<CommentedConfig>>) {
+        this.pluginsConfigs.clear()
+        this.pluginsConfigs.putAll(pluginConfigs)
+    }
+
+    fun getPluginConfigs(pluginId: String): ArrayList<CommentedConfig> {
+        if (!pluginsConfigs.containsKey(pluginId)) {
+            pluginsConfigs[pluginId] = java.util.ArrayList(100)
+        }
+        return pluginsConfigs[pluginId]!!
+    }
+
+    fun setClientMods(newClientMods: MutableList<String>) {
+        clientMods.clear()
+        newClientMods.removeIf { entry: String -> entry.isBlank() || entry.matches(whitespace) }
+        clientMods.addAll(newClientMods)
+    }
+
+    fun setModsWhitelist(newModsWhitelist: MutableList<String>) {
+        modsWhitelist.clear()
+        newModsWhitelist.removeIf { entry: String -> entry.isBlank() || entry.matches(whitespace) }
+        modsWhitelist.addAll(newModsWhitelist)
+    }
+
+    fun setInclusions(newCopyDirs: ArrayList<InclusionSpecification>) {
+        inclusions.clear()
+        inclusions.addAll(newCopyDirs)
+    }
+
+    fun setScriptSettings(settings: HashMap<String, String>) {
+        scriptSettings.clear()
+        scriptSettings.putAll(settings)
+    }
+
+    override fun toString(): String {
+        return "Pack(" +
+                " clientMods=$clientMods," +
+                " whiteList=$modsWhitelist," +
+                " copyDirs=$inclusions," +
+                " scriptSettings=$scriptSettings," +
+                " pluginsConfigs=$pluginsConfigs," +
+                " modpackDir='$modpackDir'," +
+                " minecraftVersion='$minecraftVersion'," +
+                " modloaderVersion='$modloaderVersion'," +
+                " javaArgs='$javaArgs'," +
+                " serverPackSuffix='$serverPackSuffix'," +
+                " serverIconPath='$serverIconPath'," +
+                " serverPropertiesPath='$serverPropertiesPath'," +
+                " modloader='$modloader'," +
+                " isServerIconInclusionDesired=$isServerIconInclusionDesired," +
+                " isServerPropertiesInclusionDesired=$isServerPropertiesInclusionDesired," +
+                " isZipCreationDesired=$isZipCreationDesired)"
+    }
 }
\ No newline at end of file
diff --git a/serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/ServerPackFile.kt b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/ServerPackFile.kt
similarity index 97%
rename from serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/ServerPackFile.kt
rename to serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/ServerPackFile.kt
index f3f950f2c..51b3b03b1 100644
--- a/serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/ServerPackFile.kt
+++ b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/ServerPackFile.kt
@@ -34,8 +34,8 @@ import java.nio.file.Path
  * @author Griefed
  */
 @Suppress("MemberVisibilityCanBePrivate")
-actual class ServerPackFile {
-    private val log = cachedLoggerOf(this.javaClass)
+class ServerPackFile {
+    private val log by lazy { cachedLoggerOf(this.javaClass) }
     val sourceFile: File
     val sourcePath: Path
     val destinationFile: File
@@ -92,7 +92,7 @@ actual class ServerPackFile {
      */
     @Suppress("removal")
     @Throws(SecurityException::class, UnsupportedOperationException::class, IOException::class)
-    actual fun copy(overwrite: Boolean) {
+    fun copy(overwrite: Boolean = true) {
         try {
             sourceFile.copyTo(destinationFile, overwrite)
             log.debug("Successfully copied ServerPackFile")
diff --git a/serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/ServerPackHandler.kt b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/ServerPackHandler.kt
similarity index 61%
rename from serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/ServerPackHandler.kt
rename to serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/ServerPackHandler.kt
index f270b25a9..f16475def 100644
--- a/serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/ServerPackHandler.kt
+++ b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/ServerPackHandler.kt
@@ -26,6 +26,7 @@ import de.griefed.serverpackcreator.api.versionmeta.VersionMeta
 import net.lingala.zip4j.ZipFile
 import net.lingala.zip4j.model.ExcludeFileFilter
 import net.lingala.zip4j.model.ZipParameters
+import org.apache.logging.log4j.kotlin.cachedLoggerOf
 import java.awt.Image
 import java.awt.image.BufferedImage
 import java.io.File
@@ -75,21 +76,67 @@ import kotlin.io.path.absolute
  *
  * @author Griefed
  */
-actual class ServerPackHandler actual constructor(
+class ServerPackHandler(
     private val apiProperties: ApiProperties,
     private val versionMeta: VersionMeta,
     private val utilities: Utilities,
     private val apiPlugins: ApiPlugins,
     private val modScanner: ModScanner
-) : ServerPack<File, TreeSet<String>, TreeSet<File>>() {
+) {
 
-    override fun getServerPackDestination(packConfig: Pack<*, *, *>): String {
+    val log by lazy { cachedLoggerOf(this.javaClass) }
+    val modFileEndings = listOf("jar", "disabled")
+    val ending = "^\\.[0-9a-zA-Z]+$".toRegex()
+    val variables = """
+        ###
+        # Remember:
+        #   Escape \ and : in your Java path on Windows with another \
+        #   Example:
+        #     From: C:\Program Files\Eclipse Adoptium\jdk-17.0.9.9-hotspot\bin\java.exe
+        #     To:   C\:\\Program Files\\Eclipse Adoptium\\jdk-17.0.9.9-hotspot\\bin\\java.exe
+        # More on escape characters at https://en.wikipedia.org/wiki/Escape_character
+        ###
+        MINECRAFT_VERSION=SPC_MINECRAFT_VERSION_SPC
+        MODLOADER=SPC_MODLOADER_SPC
+        MODLOADER_VERSION=SPC_MODLOADER_VERSION_SPC
+        LEGACYFABRIC_INSTALLER_VERSION=SPC_LEGACYFABRIC_INSTALLER_VERSION_SPC
+        FABRIC_INSTALLER_VERSION=SPC_FABRIC_INSTALLER_VERSION_SPC
+        QUILT_INSTALLER_VERSION=SPC_QUILT_INSTALLER_VERSION_SPC
+        MINECRAFT_SERVER_URL=SPC_MINECRAFT_SERVER_URL_SPC
+        JAVA_ARGS="SPC_JAVA_ARGS_SPC"
+        JAVA="SPC_JAVA_SPC"
+        WAIT_FOR_USER_INPUT=SPC_WAIT_FOR_USER_INPUT_SPC
+    """.trimIndent()
+
+    /**
+     * Acquire the destination directory in which the server pack will be generated. The directory in
+     * which the server pack will be created has all its spaces replaces with underscores, so
+     * `Survive Create Prosper 4 - 5.0.1` would become `Survive_Create_Prosper_4_-_5.0.1 `
+     * Even though it is the year 2022, spaces in paths can and do still cause trouble. Such as for
+     * Powershell scripts. Powershell throws a complete fit if the path contains spaces....so, we
+     * remove them. Better safe than sorry.
+     *
+     * @param packConfig Model containing the modpack directory of the modpack from which the
+     * server pack will be generated.
+     * @return The complete path to the directory in which the server pack will be generated.
+     * @author Griefed
+     */
+    fun getServerPackDestination(packConfig: PackConfig): String {
         var serverPackToBe = File(packConfig.modpackDir).name + packConfig.serverPackSuffix
         serverPackToBe = utilities.stringUtilities.pathSecureText(serverPackToBe.replace(" ", "_"))
-        return File(apiProperties.serverPacksDirectory, serverPackToBe).path
+        return File(apiProperties.serverPacksDirectory, serverPackToBe).absolutePath
     }
 
-    override fun run(packConfig: PackConfig): Boolean {
+    /**
+     * Create a server pack from a given instance of [PackConfig].
+     *
+     * @param packConfig An instance of [PackConfig] which contains the
+     * configuration of the modpack from which the server pack is to be
+     * created.
+     * @return `true` if the server pack was successfully generated.
+     * @author Griefed
+     */
+    fun run(packConfig: PackConfig): Boolean { //TODO return server pack object with info about it as well as whether it was successful
         val destination = getServerPackDestination(packConfig)
         /*
         * Check whether the server pack for the specified modpack already exists and whether overwrite is disabled.
@@ -97,7 +144,7 @@ actual class ServerPackHandler actual constructor(
         */
         val generationStopWatch = SimpleStopWatch().start()
         try {
-            File(destination).createDirectories(create = true, directory = true)
+            File(destination).create(create = true, directory = true)
         } catch (ignored: IOException) {
         }
 
@@ -168,7 +215,29 @@ actual class ServerPackHandler actual constructor(
         return true
     }
 
-    override fun cleanupEnvironment(deleteZip: Boolean, destination: String) {
+    /**
+     * Deletes all files, directories and ZIP-archives of previously generated server packs to ensure
+     * newly generated server pack is as clean as possible. This will completely empty the server pack
+     * directory, so use with caution!
+     *
+     * @param deleteZip          Whether to delete the server pack ZIP-archive.
+     * @param packConfig ConfigurationModel containing the modpack directory from which the
+     * destination of the server pack is acquired.
+     * @author Griefed
+     */
+    fun cleanupEnvironment(deleteZip: Boolean, packConfig: PackConfig) =
+        cleanupEnvironment(deleteZip, getServerPackDestination(packConfig))
+
+    /**
+     * Deletes all files, directories and ZIP-archives of previously generated server packs to ensure
+     * newly generated server pack is as clean as possible. This will completely empty the server pack
+     * directory, so use with caution!
+     *
+     * @param deleteZip   Whether to delete the server pack ZIP-archive.
+     * @param destination The destination at which to clean up in.
+     * @author Griefed
+     */
+    fun cleanupEnvironment(deleteZip: Boolean, destination: String) {
         log.info("Found old server pack at $destination. Cleaning up...")
         deleteExistingServerPack(destination)
         File(destination).deleteQuietly()
@@ -185,7 +254,51 @@ actual class ServerPackHandler actual constructor(
         File(destination + "_server_pack.zip").deleteQuietly()
     }
 
-    override fun copyFiles(
+    /**
+     * Copies all specified directories and mods, excluding clientside-only mods, from the modpack
+     * directory into the server pack directory. If a `source/file;destination/file`
+     * -combination is provided, the specified source-file is copied to the specified
+     * destination-file. One of the reasons as to why it is recommended to run a given
+     * ConfigurationModel through the ConfigurationHandler first, is because the ConfigurationHandler
+     * will resolve links to their files first before then correcting the given
+     * ConfigurationModel.
+     *
+     * @param packConfig ConfigurationModel containing the modpack directory, list of
+     * directories and files to copy, list of clientside-only mods to
+     * exclude, the Minecraft version used by the modpack and server pack,
+     * and the modloader used by the modpack and server pack.
+     * @author Griefed
+     */
+    fun copyFiles(packConfig: PackConfig, overwrite: Boolean = true) = copyFiles(
+        packConfig.modpackDir,
+        packConfig.inclusions,
+        packConfig.clientMods,
+        packConfig.modsWhitelist,
+        packConfig.minecraftVersion,
+        getServerPackDestination(packConfig),
+        packConfig.modloader,
+        overwrite
+    )
+
+    /**
+     * Copies all specified directories and mods, excluding clientside-only mods, from the modpack
+     * directory into the server pack directory. If a `source/file;destination/file`
+     * -combination is provided, the specified source-file is copied to the specified
+     * destination-file. One of the reasons as to why it is recommended to run a given
+     * ConfigurationModel through the ConfigurationHandler first, is because the ConfigurationHandler
+     * will resolve links to their files first before then correcting the given
+     * ConfigurationModel.
+     *
+     * @param modpackDir        Files and directories are copied into the server_pack directory inside
+     * the modpack directory.
+     * @param inclusions All directories and files therein to copy to the server pack.
+     * @param clientMods        List of clientside-only mods to exclude from the server pack.
+     * @param minecraftVersion  The Minecraft version the modpack uses.
+     * @param destination       The destination where the files should be copied to.
+     * @param modloader         The modloader used for mod sideness detection.
+     * @author Griefed
+     */
+    fun copyFiles(
         modpackDir: String,
         inclusions: ArrayList<InclusionSpecification>,
         clientMods: List<String>,
@@ -199,7 +312,7 @@ actual class ServerPackHandler actual constructor(
         var acquired: List<ServerPackFile>
         val serverPackFiles: MutableList<ServerPackFile> = ArrayList(100000)
         try {
-            File(destination).createDirectories()
+            File(destination).create()
         } catch (ex: IOException) {
             log.error("Failed to create directory $destination")
         }
@@ -249,6 +362,72 @@ actual class ServerPackHandler actual constructor(
         }
     }
 
+    /**
+     * Download and provide the improved Fabric Server Launcher, if it is available for the given
+     * Minecraft and Fabric version.
+     *
+     * @param packConfig ConfigurationModel containing the Minecraft and Fabric version for
+     * which to acquire the improved Fabric Server Launcher.
+     * @author Griefed
+     */
+    fun provideImprovedFabricServerLauncher(packConfig: PackConfig) = getImprovedFabricLauncher(
+        packConfig.minecraftVersion, packConfig.modloaderVersion, getServerPackDestination(packConfig)
+    )
+
+    /**
+     * Copies the server-icon.png into server pack. The sever-icon is automatically scaled to a
+     * resolution of 64x64 pixels.
+     *
+     * @param packConfig Containing the modpack directory to acquire the destination of the
+     * server pack and the path to the server icon to copy.
+     * @author Griefed
+     */
+    fun copyIcon(packConfig: PackConfig) = copyIcon(getServerPackDestination(packConfig), packConfig.serverIconPath)
+
+    /**
+     * Copies the server.properties into server pack.
+     *
+     * @param packConfig Containing the modpack directory to acquire the destination of the
+     * server pack and the path to the server properties to copy.
+     * @author Griefed
+     */
+    fun copyProperties(packConfig: PackConfig) =
+        copyProperties(getServerPackDestination(packConfig), packConfig.serverPropertiesPath)
+
+    /**
+     * Create start-scripts for the generated server pack using the templates the user has defined for
+     * their instance of ServerPackCreator in the property `de.griefed.serverpackcreator.serverpack.script.template`.
+     *
+     * @param packConfig Configuration model containing modpack specific values. keys to be
+     * replaced with their respective values in the start scripts, as well
+     * as the modpack directory from which the destination of the server
+     * pack is acquired.
+     * @param isLocal            Whether the start scripts should be created for a locally usable
+     * server pack. Use `false` if the start scripts should be created
+     * for a server pack about to be zipped.
+     * @author Griefed
+     */
+    fun createStartScripts(packConfig: PackConfig, isLocal: Boolean) =
+        createStartScripts(packConfig.scriptSettings, getServerPackDestination(packConfig), isLocal)
+
+    /**
+     * Creates a ZIP-archive of the server pack previously generated. Depending on the property
+     * `de.griefed.serverpackcreator.serverpack.zip.exclude.enabled`, files will be excluded. To customize
+     * the files which will be excluded, see the property `de.griefed.serverpackcreator.serverpack.zip.exclude`
+     *
+     * @param packConfig Contains the Minecraft version used by the modpack and server pack,
+     * whether the modloader server was installed, the modpack directory to
+     * acquire the destination of the server pack, the modloader used by the
+     * modpack and server pack and the modloader version.
+     * @author Griefed
+     */
+    fun zipBuilder(packConfig: PackConfig) = zipBuilder(
+        packConfig.minecraftVersion,
+        getServerPackDestination(packConfig),
+        packConfig.modloader,
+        packConfig.modloaderVersion
+    )
+
     fun getServerFiles(
         inclusion: InclusionSpecification,
         modpackDir: String,
@@ -308,7 +487,7 @@ actual class ServerPackHandler actual constructor(
 
             inclusion.source == "mods" -> {
                 try {
-                    serverDir.createDirectories()
+                    serverDir.create()
                 } catch (ignored: IOException) {
                 }
                 acquired = mutableListOf()
@@ -380,7 +559,7 @@ actual class ServerPackHandler actual constructor(
             for (file in acquired) {
                 if (file.sourceFile.absolutePath.replace(modpackDir + File.separator, "").matches(inclusionFilter)) {
                     processed.add(file)
-                    log.debug("{} matched Inclusion-Filter {}.", file, inclusionFilter)
+                    log.debug("$file matched Inclusion-Filter $inclusionFilter.")
                 }
             }
         } else {
@@ -390,7 +569,7 @@ actual class ServerPackHandler actual constructor(
             processed.removeIf { file ->
                 val source = file.sourceFile.absolutePath.replace(modpackDir + File.separator, "")
                 return@removeIf if (source.matches(exclusionFilter)) {
-                    log.debug("{} matched Inclusion-Filter {}.", file.sourceFile, exclusionFilter)
+                    log.debug("${file.sourceFile} matched Inclusion-Filter $exclusionFilter.")
                     true
                 } else {
                     false
@@ -400,7 +579,18 @@ actual class ServerPackHandler actual constructor(
         return processed
     }
 
-    override fun getImprovedFabricLauncher(minecraftVersion: String, fabricVersion: String, destination: String) {
+    /**
+     * Download and provide the improved Fabric Server Launcher, if it is available for the given
+     * Minecraft and Fabric version.
+     *
+     * @param minecraftVersion The Minecraft version the modpack uses and the Fabric Server Launcher
+     * should be downloaded for.
+     * @param fabricVersion    The modloader version the modpack uses and the Fabric Server Launcher
+     * should be downloaded for.
+     * @param destination      The destination of the server pack.
+     * @author Griefed
+     */
+    fun getImprovedFabricLauncher(minecraftVersion: String, fabricVersion: String, destination: String) {
         val fileDestination = File(destination, "fabric-server-launcher.jar")
         if (versionMeta.fabric.launcherFor(minecraftVersion, fabricVersion).isPresent) {
             versionMeta.fabric.launcherFor(minecraftVersion, fabricVersion).get().copyTo(fileDestination)
@@ -419,7 +609,15 @@ actual class ServerPackHandler actual constructor(
         }
     }
 
-    override fun copyIcon(destination: String, pathToServerIcon: String) {
+    /**
+     * Copies the server-icon.png into server pack. The sever-icon is automatically scaled to a
+     * resolution of 64x64 pixels.
+     *
+     * @param destination      The destination where the icon should be copied to.
+     * @param pathToServerIcon The path to the custom server-icon.
+     * @author Griefed
+     */
+    fun copyIcon(destination: String, pathToServerIcon: String) {
         log.info("Copying server-icon.png...")
         val customIcon = File(destination, apiProperties.defaultServerIcon.name)
         if (File(pathToServerIcon).exists()) {
@@ -454,7 +652,14 @@ actual class ServerPackHandler actual constructor(
         }
     }
 
-    override fun copyProperties(destination: String, pathToServerProperties: String) {
+    /**
+     * Copies the server.properties into server pack.
+     *
+     * @param destination            The destination where the properties should be copied to.
+     * @param pathToServerProperties The path to the custom server.properties.
+     * @author Griefed
+     */
+    fun copyProperties(destination: String, pathToServerProperties: String) {
         log.info("Copying server.properties...")
         val customProperties = File(destination, apiProperties.defaultServerProperties.name)
         if (File(pathToServerProperties).exists()) {
@@ -467,7 +672,19 @@ actual class ServerPackHandler actual constructor(
         }
     }
 
-    override fun createStartScripts(scriptSettings: HashMap<String, String>, destination: String, isLocal: Boolean) {
+    /**
+     * Create start-scripts for the generated server pack using the templates the user has defined for
+     * their instance of ServerPackCreator in the property `de.griefed.serverpackcreator.serverpack.script.template`.
+     *
+     * @param scriptSettings Key-value pairs to replace in the script. A given key in the script is
+     * replaced with its value.
+     * @param destination    The destination where the scripts should be created in.
+     * @param isLocal        Whether the start scripts should be created for a locally usable server
+     * pack. Use `false` if the start scripts should be created for a
+     * server pack about to be zipped.
+     * @author Griefed
+     */
+    fun createStartScripts(scriptSettings: HashMap<String, String>, destination: String, isLocal: Boolean) {
         for (template in apiProperties.scriptTemplates) {
             try {
                 val fileEnding = template.toString().substring(template.toString().lastIndexOf(".") + 1)
@@ -489,7 +706,20 @@ actual class ServerPackHandler actual constructor(
         }
     }
 
-    override fun zipBuilder(
+    /**
+     * Creates a ZIP-archive of specified directory. Depending on the property `de.griefed.serverpackcreator.serverpack.zip.exclude.enabled`,
+     * files will be excluded. To customize the files which will be excluded, the property `de.griefed.serverpackcreator.serverpack.zip.exclude`
+     * must be configured accordingly. The created ZIP-archive will be stored alongside the specified
+     * destination, with `_server_pack.zip` appended to its name.
+     *
+     * @param minecraftVersion          Determines the name of the Minecraft server JAR to exclude
+     * from the ZIP-archive if the modloader is Forge.
+     * @param destination               The destination where the ZIP-archive should be created in.
+     * @param modloader                 The modloader the modpack and server pack use.
+     * @param modloaderVersion          The modloader version the modpack and server pack use.
+     * @author Griefed
+     */
+    fun zipBuilder(
         minecraftVersion: String,
         destination: String,
         modloader: String,
@@ -527,7 +757,14 @@ actual class ServerPackHandler actual constructor(
         log.info("Finished creation of zip archive.")
     }
 
-    override fun preInstallationCleanup(destination: String) {
+    /**
+     * Delete files and folders from previous installations to prevent errors during server installation due to already
+     * existing files.
+     * @param destination The folder in which to perform the cleanup operations.
+     *
+     * @author Griefed
+     */
+    fun preInstallationCleanup(destination: String) {
         log.info("Pre server installation cleanup.")
         var fileToDelete: File
         for (file in apiProperties.preInstallCleanupFiles) {
@@ -538,7 +775,19 @@ actual class ServerPackHandler actual constructor(
         }
     }
 
-    override fun getExplicitFiles(
+    /**
+     * Gather a list of all files from an explicit source;destination-combination. If the source is a
+     * file, a singular [ServerPackFile] is returned. If the source is a directory, then all
+     * files in said directory are returned.
+     *
+     * @param source source-file/directory
+     * @param destination destination-file/directory
+     * @param modpackDir  The modpack-directory.
+     * @param serverPackDestination The destination, normally the server pack-directory.
+     * @return List of [ServerPackFile].
+     * @author Griefed
+     */
+    fun getExplicitFiles(
         source: String,
         destination: String,
         modpackDir: String,
@@ -573,7 +822,17 @@ actual class ServerPackHandler actual constructor(
         return serverPackFiles
     }
 
-    override fun getSaveFiles(clientDir: String, directory: String, destination: String): List<ServerPackFile> {
+    /**
+     * Recursively acquire all files and directories inside the given save-directory as a list of
+     * [ServerPackFile].
+     *
+     * @param clientDir   Target directory in the server pack. Usually the name of the world.
+     * @param directory   The save-directory.
+     * @param destination The destination of the server pack.
+     * @return List of [ServerPackFile] which will be included in the server pack.
+     * @author Griefed
+     */
+    fun getSaveFiles(clientDir: String, directory: String, destination: String): List<ServerPackFile> {
         val serverPackFiles: MutableList<ServerPackFile> = ArrayList(2000)
         try {
             Files.walk(Paths.get(clientDir)).use {
@@ -597,7 +856,43 @@ actual class ServerPackHandler actual constructor(
         return serverPackFiles
     }
 
-    override fun getModsToInclude(
+    /**
+     * Generates a list of all mods to include in the server pack. If the user specified
+     * clientside-mods to exclude, and/or if the automatic exclusion of clientside-only mods is
+     * active, they will be excluded, too.
+     *
+     * @param packConfig The configurationModel containing the modpack directory, list of
+     * clientside-only mods to exclude, Minecraft version used by the
+     * modpack and server pack and the modloader used by the modpack and
+     * server pack.
+     * @return A list of all mods to include in the server pack.
+     * @author Griefed
+     */
+    fun getModsToInclude(packConfig: PackConfig) = getModsToInclude(
+        "${packConfig.modpackDir}${File.separator}mods",
+        packConfig.clientMods,
+        packConfig.modsWhitelist,
+        packConfig.minecraftVersion,
+        packConfig.modloader
+    )
+
+    /**
+     * Generates a list of all mods to include in the server pack. If the user specified
+     * clientside-mods to exclude, and/or if the automatic exclusion of clientside-only mods is
+     * active, they will be excluded, too.
+     *
+     * @param modsDir                 The mods-directory of the modpack of which to generate a list of
+     * all its contents.
+     * @param userSpecifiedClientMods A list of all clientside-only mods.
+     * @param userSpecifiedWhitelist  A list of mods to include regardless if a match was found in [userSpecifiedClientMods].
+     * @param minecraftVersion        The Minecraft version the modpack uses. When the modloader is
+     * Forge, this determines whether Annotations or Tomls are
+     * scanned.
+     * @param modloader               The modloader the modpack uses.
+     * @return A list of all mods to include in the server pack.
+     * @author Griefed
+     */
+    fun getModsToInclude(
         modsDir: String,
         userSpecifiedClientMods: List<String>,
         userSpecifiedModsWhitelist: List<String>,
@@ -612,7 +907,7 @@ actual class ServerPackHandler actual constructor(
         // Check whether scanning mods for sideness is activated.
         if (apiProperties.isAutoExcludingModsEnabled) {
             val scanningStopWatch = SimpleStopWatch().start()
-            when (modloader) {
+            when (modloader) { //TODO replace Modloader strings with ENUM
                 "LegacyFabric", "Fabric" -> autodiscoveredClientMods.addAll(modScanner.fabricScanner.scan(filesInModsDir))
 
                 "Forge" -> if (minecraftVersion.split(".").dropLastWhile { it.isEmpty() }
@@ -653,7 +948,16 @@ actual class ServerPackHandler actual constructor(
         return ArrayList(modsInModpack)
     }
 
-    override fun getDirectoryFiles(source: String, destination: String): List<ServerPackFile> {
+    /**
+     * Recursively acquire all files and directories inside the given directory as a list of
+     * [ServerPackFile].
+     *
+     * @param source      The source-directory.
+     * @param destination The server pack-directory.
+     * @return List of files and folders of the server pack.
+     * @author Griefed
+     */
+    fun getDirectoryFiles(source: String, destination: String): List<ServerPackFile> {
         val serverPackFiles: MutableList<ServerPackFile> = ArrayList(100)
         try {
             Files.walk(Paths.get(source).absolute()).use {
@@ -680,7 +984,20 @@ actual class ServerPackHandler actual constructor(
         return serverPackFiles
     }
 
-    override fun excludeFileOrDirectory(modpackDir: String, fileToCheckFor: File, exclusions: List<Regex>): Boolean {
+    /**
+     * Check whether the given file or directory should be excluded from the server pack.
+     *
+     * @param modpackDir     The directory where the modpack resides in. Used to filter out any
+     * unwanted directories using the property `de.griefed.serverpackcreator.configuration.directories.shouldexclude`.
+     * @param fileToCheckFor The file or directory to check whether it should be excluded from the
+     * server pack.
+     * @param exclusions     Files or directories determined by ServerPackCreator to be excluded from
+     * the server pack
+     * @return `true` if the file or directory was determined to be excluded from the server
+     * pack.
+     * @author Griefed
+     */
+    fun excludeFileOrDirectory(modpackDir: String, fileToCheckFor: File, exclusions: List<Regex>): Boolean {
         val cleaned = fileToCheckFor.absolutePath.replace(File(modpackDir).absolutePath + File.separator, "")
         return exclusions.any { regex ->
             if (cleaned.matches(regex)) {
@@ -692,7 +1009,17 @@ actual class ServerPackHandler actual constructor(
         }
     }
 
-    override fun serverDownloadable(mcVersion: String, modloader: String, modloaderVersion: String) = when (modloader) {
+    /**
+     * Check whether the installer for the given combination of Minecraft version, modloader and
+     * modloader version is available/reachable.
+     *
+     * @param mcVersion        The Minecraft version.
+     * @param modloader        The modloader.
+     * @param modloaderVersion The modloader version.
+     * @return `true` if the installer can be downloaded.
+     * @author Griefed
+     */
+    fun serverDownloadable(mcVersion: String, modloader: String, modloaderVersion: String) = when (modloader) {
         "Fabric" -> utilities.webUtilities.isReachable(versionMeta.fabric.releaseInstallerUrl())
 
         "Forge" -> {
@@ -718,7 +1045,14 @@ actual class ServerPackHandler actual constructor(
         else -> false
     }
 
-    override fun postInstallCleanup(destination: String) {
+    /**
+     * Cleans up the server_pack directory by deleting left-over files from modloader installations
+     * and version checking.
+     *
+     * @param destination      The destination where we should clean up in.
+     * @author Griefed
+     */
+    fun postInstallCleanup(destination: String) {
         log.info("Cleanup after modloader server installation.")
         var fileToDelete: File
         for (file in apiProperties.postInstallCleanupFiles) {
@@ -729,7 +1063,15 @@ actual class ServerPackHandler actual constructor(
         }
     }
 
-    override fun excludeMods(autodiscoveredClientMods: List<File>, modsInModpack: TreeSet<File>) {
+    /**
+     * Exclude every automatically discovered clientside-only mod from the list of mods in the
+     * modpack.
+     *
+     * @param autodiscoveredClientMods Automatically discovered clientside-only mods in the modpack.
+     * @param modsInModpack            All mods in the modpack.
+     * @author Griefed
+     */
+    fun excludeMods(autodiscoveredClientMods: List<File>, modsInModpack: TreeSet<File>) {
         if (autodiscoveredClientMods.isNotEmpty()) {
             log.info("Automatically detected mods: ${autodiscoveredClientMods.size}")
             for (discoveredMod in autodiscoveredClientMods) {
@@ -747,7 +1089,16 @@ actual class ServerPackHandler actual constructor(
         }
     }
 
-    override fun excludeUserSpecifiedMod(userSpecifiedExclusions: List<String>, userSpecifiedModsWhitelist: List<String>, modsInModpack: TreeSet<File>) {
+    /**
+     * Exclude user-specified mods from the server pack.
+     *
+     * @param userSpecifiedExclusions User-specified clientside-only mods to exclude from the server
+     * pack.
+     * @param modsInModpack           Every mod ending with `jar` or `disabled` in the
+     * modpack.
+     * @author Griefed
+     */
+    fun excludeUserSpecifiedMod(userSpecifiedExclusions: List<String>, userSpecifiedModsWhitelist: List<String>, modsInModpack: TreeSet<File>) {
         if (userSpecifiedExclusions.isNotEmpty()) {
             log.info("Performing ${apiProperties.exclusionFilter}-type checks for user-specified clientside-only mod exclusion.")
             for (userSpecifiedExclusion in userSpecifiedExclusions) {
@@ -758,7 +1109,20 @@ actual class ServerPackHandler actual constructor(
         }
     }
 
-    override fun regexWalk(
+    /**
+     * Walk through the specified directory and add a [ServerPackFile] for every file/folder
+     * which matches the given regex.
+     *
+     * @param source          The source-directory to walk through and perform regex-matches in.
+     * @param destination     The destination-directory where a matched file should be copied to,
+     * usually the server pack directory.
+     * @param regex           Regex with which to perform matches against files in the
+     * source-directory.
+     * @param serverPackFiles List of files to copy to the server pack to which any matched file will
+     * be added to.
+     * @author Griefed
+     */
+    fun regexWalk(
         source: File, destination: String, regex: Regex, serverPackFiles: MutableList<ServerPackFile>
     ) {
         var toMatch: String
@@ -778,8 +1142,8 @@ actual class ServerPackHandler actual constructor(
                             )
                         )
                         log.debug("Including through regex-match:")
-                        log.debug("    SOURCE: {}", path)
-                        log.debug("    DESTINATION: {}", add)
+                        log.debug("    SOURCE: $path")
+                        log.debug("    DESTINATION: $add")
                     }
                 }
             }
@@ -788,7 +1152,28 @@ actual class ServerPackHandler actual constructor(
         }
     }
 
-    override fun exclude(userSpecifiedExclusion: String, userSpecifiedModsWhitelist: List<String>, modsInModpack: TreeSet<File>) {
+    /**
+     * Cleans up the server_pack directory by deleting left-over files from modloader installations
+     * and version checking.
+     *
+     * @param packConfig Containing the Minecraft version used by the modpack and server pack,
+     * the modloader version used by the modpack and server pack and the
+     * modpack directory to acquire the destination of the server pack.
+     * @author Griefed
+     */
+    fun cleanUpServerPack(packConfig: PackConfig) = postInstallCleanup(getServerPackDestination(packConfig))
+
+    /**
+     * Go through the mods in the modpack and exclude any of the user-specified clientside-only mods
+     * according to the filter method set in the serverpackcreator.properties. For available filters,
+     * see [ExclusionFilter].
+     *
+     * @param userSpecifiedExclusion The client mod to check whether it needs to be excluded.
+     * @param modsInModpack          All mods in the modpack.
+     *
+     * @author Griefed
+     */
+    fun exclude(userSpecifiedExclusion: String, userSpecifiedModsWhitelist: List<String>, modsInModpack: TreeSet<File>) {
         modsInModpack.removeIf { modToCheck ->
             val excluded: Boolean
             val modName = modToCheck.name
@@ -809,4 +1194,27 @@ actual class ServerPackHandler actual constructor(
             excluded
         }
     }
+
+    /**
+     * Replace placeholders for script settings in the given [content] with their respective values, both provided via the
+     * HashMap [scriptSettings].
+     *
+     * @param isLocal Whether the start scripts should be created for a locally usable server pack. Use false if the
+     * start scripts should be created for a server pack about to be zipped
+     *
+     * @author Griefed
+     */
+    fun replacePlaceholders(isLocal: Boolean, content: String, scriptSettings: HashMap<String, String>): String {
+        var result = content
+        for ((key, value) in scriptSettings) {
+            result = if (isLocal && key == "SPC_JAVA_SPC") {
+                result.replace(key, value.escapePath())
+            } else if (!isLocal && key == "SPC_JAVA_SPC") {
+                result.replace(key, "java")
+            } else {
+                result.replace(key, value)
+            }
+        }
+        return result
+    }
 }
\ No newline at end of file
diff --git a/serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/modscanning/FabricScanner.kt b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/modscanning/FabricScanner.kt
similarity index 97%
rename from serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/modscanning/FabricScanner.kt
rename to serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/modscanning/FabricScanner.kt
index b93ced85f..32c6eaa65 100644
--- a/serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/modscanning/FabricScanner.kt
+++ b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/modscanning/FabricScanner.kt
@@ -34,11 +34,11 @@ import java.util.*
  *
  * @author Griefed
  */
-actual class FabricScanner(
+class FabricScanner(
     private val objectMapper: ObjectMapper,
     private val utilities: Utilities
 ) : JsonBasedScanner(), Scanner<TreeSet<File>, Collection<File>> {
-    private val log = cachedLoggerOf(this.javaClass)
+    private val log by lazy { cachedLoggerOf(this.javaClass) }
     private val jar = "jar"
     private val fabricModJson = "fabric.mod.json"
     private val id = "id"
@@ -46,6 +46,9 @@ actual class FabricScanner(
     private val environment = "environment"
     private val depends = "depends"
 
+    val dependencyExclusions: Regex
+        get() = "(fabric|fabricloader|java|minecraft)".toRegex()
+
     /**
      * Scan the `fabric.mod.json`-files in mod JAR-files of a given directory for their
      * sideness.
diff --git a/serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/modscanning/ForgeAnnotationScanner.kt b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/modscanning/ForgeAnnotationScanner.kt
similarity index 98%
rename from serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/modscanning/ForgeAnnotationScanner.kt
rename to serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/modscanning/ForgeAnnotationScanner.kt
index 7e165f52d..ff5cb4632 100644
--- a/serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/modscanning/ForgeAnnotationScanner.kt
+++ b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/modscanning/ForgeAnnotationScanner.kt
@@ -36,11 +36,11 @@ import java.util.*
  *
  * @author Griefed
  */
-actual class ForgeAnnotationScanner(
+class ForgeAnnotationScanner(
     private val objectMapper: ObjectMapper,
     private val utilities: Utilities
 ) : JsonBasedScanner(), Scanner<TreeSet<File>, Collection<File>> {
-    private val log = cachedLoggerOf(this.javaClass)
+    private val log by lazy { cachedLoggerOf(this.javaClass) }
     private val additionalDependencyRegex = "(@.*|\\[.*)".toRegex()
     private val caches = "META-INF/fml_cache_annotation.json"
     private val annotations = "annotations"
@@ -51,6 +51,11 @@ actual class ForgeAnnotationScanner(
     private val clientSideOnly = "clientSideOnly"
     private val dependencies = "dependencies"
 
+    val dependencyCheck: Regex
+        get() = "(before:.*|after:.*|required-after:.*|)".toRegex()
+    val dependencyReplace: Regex
+        get() = "(@.*|\\[.*)".toRegex()
+
     /**
      * Scan the `fml-cache-annotation.json`-files in mod JAR-files of a given directory for their sideness.
      *
diff --git a/serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/modscanning/ForgeTomlScanner.kt b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/modscanning/ForgeTomlScanner.kt
similarity index 97%
rename from serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/modscanning/ForgeTomlScanner.kt
rename to serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/modscanning/ForgeTomlScanner.kt
index f002be57f..d3021df7a 100644
--- a/serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/modscanning/ForgeTomlScanner.kt
+++ b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/modscanning/ForgeTomlScanner.kt
@@ -34,16 +34,22 @@ import java.util.jar.JarFile
  * @param tomlParser To parse .toml-files.
  * @Griefed
  */
-actual open class ForgeTomlScanner(private val tomlParser: TomlParser) :
+open class ForgeTomlScanner(private val tomlParser: TomlParser) :
     Scanner<TreeSet<File>, Collection<File>> {
-    private val log = cachedLoggerOf(this.javaClass)
+    private val log by lazy { cachedLoggerOf(this.javaClass) }
     private val mods = "mods"
     private val modId = "modId"
-    actual open val modsToml = "META-INF/mods.toml"
     private val dependencies = "dependencies"
     private val side = "side"
     private val both = "BOTH"
 
+    open val modsToml = "META-INF/mods.toml"
+
+    val forgeMinecraft: Regex
+        get() = "^(forge|minecraft)$".toRegex()
+    val bothServer: Regex
+        get() = "^(BOTH|SERVER)$".toRegex()
+
     /**
      * Scan the `mods.toml`-files in mod JAR-files of a given directory for their sideness.
      *
diff --git a/serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/modscanning/JsonBasedScanner.kt b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/modscanning/JsonBasedScanner.kt
similarity index 98%
rename from serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/modscanning/JsonBasedScanner.kt
rename to serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/modscanning/JsonBasedScanner.kt
index 663197555..503102921 100644
--- a/serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/modscanning/JsonBasedScanner.kt
+++ b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/modscanning/JsonBasedScanner.kt
@@ -34,7 +34,7 @@ import java.util.jar.JarFile
  * @author Griefed
  */
 abstract class JsonBasedScanner {
-    private val log = cachedLoggerOf(this.javaClass)
+    private val log by lazy { cachedLoggerOf(this.javaClass) }
 
     /**
      * Acquire a JsonNode from the specified file in the specified file.
diff --git a/serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/modscanning/ModScanner.kt b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/modscanning/ModScanner.kt
similarity index 82%
rename from serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/modscanning/ModScanner.kt
rename to serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/modscanning/ModScanner.kt
index 4186ddb6d..946852756 100644
--- a/serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/modscanning/ModScanner.kt
+++ b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/modscanning/ModScanner.kt
@@ -30,10 +30,10 @@ package de.griefed.serverpackcreator.api.modscanning
  *
  * @author Griefed
  */
-actual class ModScanner actual constructor(
-    actual val forgeAnnotationScanner: ForgeAnnotationScanner,
-    actual val fabricScanner: FabricScanner,
-    actual val quiltScanner: QuiltScanner,
-    actual val forgeTomlScanner: ForgeTomlScanner,
-    actual val neoForgeTomlScanner: NeoForgeTomlScanner
+class ModScanner(
+    val forgeAnnotationScanner: ForgeAnnotationScanner,
+    val fabricScanner: FabricScanner,
+    val quiltScanner: QuiltScanner,
+    val forgeTomlScanner: ForgeTomlScanner,
+    val neoForgeTomlScanner: NeoForgeTomlScanner
 )
\ No newline at end of file
diff --git a/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/modscanning/NeoForgeTomlScanner.kt b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/modscanning/NeoForgeTomlScanner.kt
new file mode 100644
index 000000000..75f4fbeb1
--- /dev/null
+++ b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/modscanning/NeoForgeTomlScanner.kt
@@ -0,0 +1,8 @@
+package de.griefed.serverpackcreator.api.modscanning
+
+import com.electronwill.nightconfig.toml.TomlParser
+
+class NeoForgeTomlScanner(tomlParser: TomlParser): ForgeTomlScanner(tomlParser) {
+    override val modsToml: String
+        get() = "META-INF/neoforge.mods.toml"
+}
\ No newline at end of file
diff --git a/serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/modscanning/QuiltScanner.kt b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/modscanning/QuiltScanner.kt
similarity index 88%
rename from serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/modscanning/QuiltScanner.kt
rename to serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/modscanning/QuiltScanner.kt
index f46a4e5ce..4e7683d5e 100644
--- a/serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/modscanning/QuiltScanner.kt
+++ b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/modscanning/QuiltScanner.kt
@@ -34,11 +34,11 @@ import java.util.*
  *
  * @author Griefed
  */
-actual class QuiltScanner(
+class QuiltScanner(
     private val objectMapper: ObjectMapper,
     private val utilities: Utilities
 ) : JsonBasedScanner(), Scanner<TreeSet<File>, Collection<File>> {
-    private val logger = cachedLoggerOf(this.javaClass)
+    private val log by lazy { cachedLoggerOf(this.javaClass) }
     private val quiltModJson = "quilt.mod.json"
     private val quiltLoader = "quilt_loader"
     private val id = "id"
@@ -48,6 +48,9 @@ actual class QuiltScanner(
     private val depends = "depends"
     private val jar = "jar"
 
+    val dependencyExclusions: Regex
+        get() = "(quilt_loader|quilt_base|quilted_fabric_api|java|minecraft)".toRegex()
+
     /**
      * Scan the `quilt.mod.json`-files in mod JAR-files of a given directory for their sideness.
      *
@@ -59,7 +62,7 @@ actual class QuiltScanner(
      * @author Griefed
      */
     override fun scan(jarFiles: Collection<File>): TreeSet<File> {
-        logger.info("Scanning Quilt mods for sideness...")
+        log.info("Scanning Quilt mods for sideness...")
         val modDependencies = ArrayList<Pair<String, Pair<String, String>>>()
         val clientMods = TreeSet<String>()
 
@@ -99,7 +102,7 @@ actual class QuiltScanner(
                 try {
                     if (utilities.jsonUtilities.nestedTextEqualsIgnoreCase(modJson, client, minecraft, environment)) {
                         clientMods.add(modId)
-                        logger.debug("Added clientMod: $modId")
+                        log.debug("Added clientMod: $modId")
                     }
                 } catch (ignored: NullPointerException) {
                 }
@@ -112,28 +115,28 @@ actual class QuiltScanner(
                             try {
                                 val dependencyId = utilities.jsonUtilities.getNestedText(dependency, id)
                                 if (!dependencyId.matches(dependencyExclusions) && modDependencies.add(Pair(dependencyId, Pair(mod.name, modId)))) {
-                                    logger.debug("Added dependency $dependencyId for $modId (${mod.name}).")
+                                    log.debug("Added dependency $dependencyId for $modId (${mod.name}).")
                                 }
                             } catch (ex: NullPointerException) {
-                                logger.debug("No dependencies for $modId (${mod.name}).")
+                                log.debug("No dependencies for $modId (${mod.name}).")
                             }
                         } else {
                             try {
                                 val dependencyText = dependency.asText()
                                 if (!dependencyText.matches(dependencyExclusions) && modDependencies.add(Pair(dependencyText, Pair(mod.name, modId)))) {
-                                    logger.debug("Added dependency ${dependency.asText()} for $modId (${mod.name}).")
+                                    log.debug("Added dependency ${dependency.asText()} for $modId (${mod.name}).")
                                 }
                             } catch (ex: NullPointerException) {
-                                logger.debug("No dependencies for $modId (${mod.name}).")
+                                log.debug("No dependencies for $modId (${mod.name}).")
                             }
                         }
                     }
                 } catch (ignored: NullPointerException) {
                 }
             } catch (ex: NullPointerException) {
-                logger.warn("Couldn't scan $mod as it contains no quilt.mod.json.")
+                log.warn("Couldn't scan $mod as it contains no quilt.mod.json.")
             } catch (ex: Exception) {
-                logger.error("Couldn't scan $mod", ex)
+                log.error("Couldn't scan $mod", ex)
             }
         }
     }
diff --git a/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/modscanning/Scanner.kt b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/modscanning/Scanner.kt
similarity index 100%
rename from serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/modscanning/Scanner.kt
rename to serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/modscanning/Scanner.kt
diff --git a/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/modscanning/ScanningException.kt b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/modscanning/ScanningException.kt
similarity index 100%
rename from serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/modscanning/ScanningException.kt
rename to serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/modscanning/ScanningException.kt
diff --git a/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/plugins/BaseInformation.kt b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/plugins/BaseInformation.kt
similarity index 100%
rename from serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/plugins/BaseInformation.kt
rename to serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/plugins/BaseInformation.kt
diff --git a/serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/plugins/CustomPluginFactory.kt b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/plugins/CustomPluginFactory.kt
similarity index 96%
rename from serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/plugins/CustomPluginFactory.kt
rename to serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/plugins/CustomPluginFactory.kt
index 3406fc7de..1f0d7ce6e 100644
--- a/serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/plugins/CustomPluginFactory.kt
+++ b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/plugins/CustomPluginFactory.kt
@@ -30,7 +30,7 @@ import org.pf4j.PluginWrapper
  * @author Griefed
  */
 class CustomPluginFactory: DefaultPluginFactory() {
-    private val log = cachedLoggerOf(this.javaClass)
+    private val log by lazy { cachedLoggerOf(this.javaClass) }
     override fun createInstance(pluginClass: Class<*>, pluginWrapper: PluginWrapper): Plugin? {
         val context = PluginContext(pluginWrapper.runtimeMode)
         try {
diff --git a/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/plugins/ExtensionException.kt b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/plugins/ExtensionException.kt
similarity index 100%
rename from serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/plugins/ExtensionException.kt
rename to serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/plugins/ExtensionException.kt
diff --git a/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/plugins/ExtensionInformation.kt b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/plugins/ExtensionInformation.kt
similarity index 97%
rename from serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/plugins/ExtensionInformation.kt
rename to serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/plugins/ExtensionInformation.kt
index 32833fa68..bfe4e953f 100644
--- a/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/plugins/ExtensionInformation.kt
+++ b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/plugins/ExtensionInformation.kt
@@ -19,6 +19,8 @@
  */
 package de.griefed.serverpackcreator.api.plugins
 
+import org.pf4j.ExtensionPoint
+
 /**
  * Force every extension to provide its ID.
  *
diff --git a/serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/plugins/PluginContext.kt b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/plugins/PluginContext.kt
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/plugins/PluginContext.kt
rename to serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/plugins/PluginContext.kt
diff --git a/serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/plugins/ServerPackCreatorPlugin.kt b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/plugins/ServerPackCreatorPlugin.kt
similarity index 91%
rename from serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/plugins/ServerPackCreatorPlugin.kt
rename to serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/plugins/ServerPackCreatorPlugin.kt
index 6aa1d5c0e..0153d96e0 100644
--- a/serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/plugins/ServerPackCreatorPlugin.kt
+++ b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/plugins/ServerPackCreatorPlugin.kt
@@ -49,7 +49,7 @@ import java.net.URI
  */
 @Suppress("unused")
 abstract class ServerPackCreatorPlugin(val context: PluginContext) : Plugin(), BaseInformation {
-    private val pluginLog = cachedLoggerOf(this.javaClass)
+    private val logger by lazy { cachedLoggerOf(this.javaClass) }
     final override val name: String
     final override val description: String
     final override val author: String
@@ -85,12 +85,12 @@ abstract class ServerPackCreatorPlugin(val context: PluginContext) : Plugin(), B
     @Throws(PluginRuntimeException::class)
     override fun start() {
         super.start()
-        log.info("Plugin-ID:          $id")
-        log.info("Plugin-Name:        $name")
-        log.info("Plugin-Description: $description")
-        log.info("Plugin-Author:      $author")
-        log.info("Plugin-Version:     $version")
-        log.info("Started: $name ($id)")
+        logger.info("Plugin-ID:          $id")
+        logger.info("Plugin-Name:        $name")
+        logger.info("Plugin-Description: $description")
+        logger.info("Plugin-Author:      $author")
+        logger.info("Plugin-Version:     $version")
+        logger.info("Started: $name ($id)")
         pluginsLog.info("Plugin-ID:          $id")
         pluginsLog.info("Plugin-Name:        $name")
         pluginsLog.info("Plugin-Description: $description")
@@ -110,7 +110,7 @@ abstract class ServerPackCreatorPlugin(val context: PluginContext) : Plugin(), B
     @Throws(PluginRuntimeException::class)
     override fun stop() {
         super.stop()
-        log.info("Stopped: $name ($id)")
+        logger.info("Stopped: $name ($id)")
         pluginsLog.info("Stopped: $name ($id)")
     }
 }
\ No newline at end of file
diff --git a/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/plugins/configurationhandler/ConfigCheckExtension.kt b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/plugins/configurationhandler/ConfigCheckExtension.kt
similarity index 96%
rename from serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/plugins/configurationhandler/ConfigCheckExtension.kt
rename to serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/plugins/configurationhandler/ConfigCheckExtension.kt
index 1b9650de1..d10a8771c 100644
--- a/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/plugins/configurationhandler/ConfigCheckExtension.kt
+++ b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/plugins/configurationhandler/ConfigCheckExtension.kt
@@ -19,15 +19,15 @@
  */
 package de.griefed.serverpackcreator.api.plugins.configurationhandler
 
+import com.electronwill.nightconfig.core.CommentedConfig
 import de.griefed.serverpackcreator.api.ApiProperties
 import de.griefed.serverpackcreator.api.ConfigCheck
 import de.griefed.serverpackcreator.api.PackConfig
 import de.griefed.serverpackcreator.api.plugins.ExtensionException
 import de.griefed.serverpackcreator.api.plugins.ExtensionInformation
-import de.griefed.serverpackcreator.api.utilities.CommentedConfig
-import de.griefed.serverpackcreator.api.utilities.Optional
 import de.griefed.serverpackcreator.api.utilities.common.Utilities
 import de.griefed.serverpackcreator.api.versionmeta.VersionMeta
+import java.util.*
 
 /**
  * Extension point for configuration checks, so you can run your own checks on a given
diff --git a/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/plugins/serverpackhandler/PostGenExtension.kt b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/plugins/serverpackhandler/PostGenExtension.kt
similarity index 100%
rename from serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/plugins/serverpackhandler/PostGenExtension.kt
rename to serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/plugins/serverpackhandler/PostGenExtension.kt
diff --git a/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/plugins/serverpackhandler/PreGenExtension.kt b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/plugins/serverpackhandler/PreGenExtension.kt
similarity index 100%
rename from serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/plugins/serverpackhandler/PreGenExtension.kt
rename to serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/plugins/serverpackhandler/PreGenExtension.kt
diff --git a/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/plugins/serverpackhandler/PreZipExtension.kt b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/plugins/serverpackhandler/PreZipExtension.kt
similarity index 100%
rename from serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/plugins/serverpackhandler/PreZipExtension.kt
rename to serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/plugins/serverpackhandler/PreZipExtension.kt
diff --git a/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/plugins/serverpackhandler/ServerPackHandlerBase.kt b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/plugins/serverpackhandler/ServerPackHandlerBase.kt
similarity index 95%
rename from serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/plugins/serverpackhandler/ServerPackHandlerBase.kt
rename to serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/plugins/serverpackhandler/ServerPackHandlerBase.kt
index b53418dad..73aee3868 100644
--- a/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/plugins/serverpackhandler/ServerPackHandlerBase.kt
+++ b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/plugins/serverpackhandler/ServerPackHandlerBase.kt
@@ -20,14 +20,14 @@
 package de.griefed.serverpackcreator.api.plugins.serverpackhandler
 
 
+import com.electronwill.nightconfig.core.CommentedConfig
 import de.griefed.serverpackcreator.api.ApiProperties
 import de.griefed.serverpackcreator.api.PackConfig
 import de.griefed.serverpackcreator.api.plugins.ExtensionException
 import de.griefed.serverpackcreator.api.plugins.ExtensionInformation
-import de.griefed.serverpackcreator.api.utilities.CommentedConfig
-import de.griefed.serverpackcreator.api.utilities.Optional
 import de.griefed.serverpackcreator.api.utilities.common.Utilities
 import de.griefed.serverpackcreator.api.versionmeta.VersionMeta
+import java.util.*
 
 /**
  * Base-interface from which every [de.griefed.serverpackcreator.api.ServerPackHandler]-extension interface starts from.
diff --git a/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/plugins/swinggui/ConfigPanelExtension.kt b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/plugins/swinggui/ConfigPanelExtension.kt
similarity index 96%
rename from serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/plugins/swinggui/ConfigPanelExtension.kt
rename to serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/plugins/swinggui/ConfigPanelExtension.kt
index 0d5bb71e8..ec0680192 100644
--- a/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/plugins/swinggui/ConfigPanelExtension.kt
+++ b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/plugins/swinggui/ConfigPanelExtension.kt
@@ -19,12 +19,12 @@
  */
 package de.griefed.serverpackcreator.api.plugins.swinggui
 
+import com.electronwill.nightconfig.core.CommentedConfig
 import de.griefed.serverpackcreator.api.ApiProperties
 import de.griefed.serverpackcreator.api.plugins.ExtensionInformation
-import de.griefed.serverpackcreator.api.utilities.CommentedConfig
-import de.griefed.serverpackcreator.api.utilities.Optional
 import de.griefed.serverpackcreator.api.utilities.common.Utilities
 import de.griefed.serverpackcreator.api.versionmeta.VersionMeta
+import java.util.*
 
 /**
  * Extension point for plugins which add additional [javax.swing.JPanel]s in a given server pack tab,
diff --git a/serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/plugins/swinggui/ExtensionConfigPanel.kt b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/plugins/swinggui/ExtensionConfigPanel.kt
similarity index 91%
rename from serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/plugins/swinggui/ExtensionConfigPanel.kt
rename to serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/plugins/swinggui/ExtensionConfigPanel.kt
index 23fadff1f..6f4874814 100644
--- a/serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/plugins/swinggui/ExtensionConfigPanel.kt
+++ b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/plugins/swinggui/ExtensionConfigPanel.kt
@@ -25,6 +25,7 @@ import de.griefed.serverpackcreator.api.utilities.common.Utilities
 import de.griefed.serverpackcreator.api.versionmeta.VersionMeta
 import org.apache.logging.log4j.LogManager
 import org.apache.logging.log4j.Logger
+import org.apache.logging.log4j.kotlin.cachedLoggerOf
 import java.util.*
 import javax.swing.JPanel
 
@@ -46,7 +47,7 @@ import javax.swing.JPanel
  * @author Griefed
  */
 @Suppress("unused")
-actual abstract class ExtensionConfigPanel protected actual constructor(
+abstract class ExtensionConfigPanel protected constructor(
     protected val versionMeta: VersionMeta,
     protected val apiProperties: ApiProperties,
     protected val utilities: Utilities,
@@ -59,13 +60,13 @@ actual abstract class ExtensionConfigPanel protected actual constructor(
     val pluginID: String
 ) : JPanel() {
     @Suppress("MemberVisibilityCanBePrivate")
-    protected val log: Logger = LogManager.getLogger(this.javaClass)
+    protected val log by lazy { cachedLoggerOf(this.javaClass) }
 
     @Suppress("MemberVisibilityCanBePrivate")
     protected val pluginsLog: Logger = LogManager.getLogger("AddonsLogger")
 
     @Suppress("MemberVisibilityCanBePrivate")
-    actual val serverPackExtensionConfig: ArrayList<CommentedConfig> = ArrayList<CommentedConfig>(100)
+    val serverPackExtensionConfig: ArrayList<CommentedConfig> = ArrayList<CommentedConfig>(100)
 
     /**
      * Retrieve this extensions server pack specific configuration. When no configuration with configs
@@ -75,7 +76,7 @@ actual abstract class ExtensionConfigPanel protected actual constructor(
      * extensions.
      * @author Griefed
      */
-    actual abstract fun serverPackExtensionConfig(): ArrayList<CommentedConfig>
+    abstract fun serverPackExtensionConfig(): ArrayList<CommentedConfig>
 
     /**
      * Pass the extension configuration to the configuration panel, so it can then, in turn, load the
@@ -85,7 +86,7 @@ actual abstract class ExtensionConfigPanel protected actual constructor(
      * configuration panel.
      * @author Griefed
      */
-    actual abstract fun setServerPackExtensionConfig(
+    abstract fun setServerPackExtensionConfig(
         serverPackExtensionConfig: ArrayList<CommentedConfig>
     )
 
@@ -96,5 +97,5 @@ actual abstract class ExtensionConfigPanel protected actual constructor(
      *
      * The `clear()`-method is called when the owning `TabCreateServerPack.clearInterface()`-method is called.
      */
-    actual abstract fun clear()
+    abstract fun clear()
 }
\ No newline at end of file
diff --git a/serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/plugins/swinggui/ExtensionTab.kt b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/plugins/swinggui/ExtensionTab.kt
similarity index 98%
rename from serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/plugins/swinggui/ExtensionTab.kt
rename to serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/plugins/swinggui/ExtensionTab.kt
index 9ecefbb53..d8880e12b 100644
--- a/serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/plugins/swinggui/ExtensionTab.kt
+++ b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/plugins/swinggui/ExtensionTab.kt
@@ -47,7 +47,7 @@ import javax.swing.SwingUtilities
  * @param configFile            The config-file corresponding to the ID of the plugin, wrapped in an Optional.
  */
 @Suppress("unused")
-actual abstract class ExtensionTab protected constructor(
+abstract class ExtensionTab protected constructor(
     protected val versionMeta: VersionMeta,
     protected val apiProperties: ApiProperties,
     protected val utilities: Utilities,
diff --git a/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/plugins/swinggui/ServerPackConfigTab.kt b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/plugins/swinggui/ServerPackConfigTab.kt
similarity index 98%
rename from serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/plugins/swinggui/ServerPackConfigTab.kt
rename to serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/plugins/swinggui/ServerPackConfigTab.kt
index d4b90652f..0b9e8b5bf 100644
--- a/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/plugins/swinggui/ServerPackConfigTab.kt
+++ b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/plugins/swinggui/ServerPackConfigTab.kt
@@ -21,7 +21,7 @@ package de.griefed.serverpackcreator.api.plugins.swinggui
 
 import de.griefed.serverpackcreator.api.InclusionSpecification
 import de.griefed.serverpackcreator.api.PackConfig
-import de.griefed.serverpackcreator.api.utilities.File
+import java.io.File
 
 /**
  * Force every server pack configuration tab to provide a certain set of methods. Said set of methods give plugins
diff --git a/serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/plugins/swinggui/TabExtension.kt b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/plugins/swinggui/TabExtension.kt
similarity index 88%
rename from serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/plugins/swinggui/TabExtension.kt
rename to serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/plugins/swinggui/TabExtension.kt
index bcc11a379..33be00941 100644
--- a/serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/plugins/swinggui/TabExtension.kt
+++ b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/plugins/swinggui/TabExtension.kt
@@ -19,14 +19,14 @@
  */
 package de.griefed.serverpackcreator.api.plugins.swinggui
 
+import com.electronwill.nightconfig.core.CommentedConfig
 import de.griefed.serverpackcreator.api.ApiProperties
 import de.griefed.serverpackcreator.api.plugins.ExtensionInformation
-import de.griefed.serverpackcreator.api.utilities.CommentedConfig
-import de.griefed.serverpackcreator.api.utilities.File
-import de.griefed.serverpackcreator.api.utilities.Icon
-import de.griefed.serverpackcreator.api.utilities.Optional
 import de.griefed.serverpackcreator.api.utilities.common.Utilities
 import de.griefed.serverpackcreator.api.versionmeta.VersionMeta
+import java.io.File
+import java.util.*
+import javax.swing.Icon
 
 /**
  * Extension point for plugins which add additional [javax.swing.JPanel]s as additional tabs to the
@@ -35,7 +35,7 @@ import de.griefed.serverpackcreator.api.versionmeta.VersionMeta
  * @author Griefed
  */
 @Suppress("unused")
-actual interface TabExtension : ExtensionInformation {
+interface TabExtension : ExtensionInformation {
     /**
      * @param versionMeta           Instance of [VersionMeta] so you can work with available Minecraft, Forge, Fabric,
      * LegacyFabric and Quilt versions.
@@ -48,7 +48,7 @@ actual interface TabExtension : ExtensionInformation {
      * @return Component to add to the ServerPackCreator GUI as a tab.
      * @author Griefed
      */
-    actual fun getTab(
+    fun getTab(
         versionMeta: VersionMeta,
         apiProperties: ApiProperties,
         utilities: Utilities,
@@ -62,7 +62,7 @@ actual interface TabExtension : ExtensionInformation {
      * @return Icon to be used by the added tab.
      * @author Griefed
      */
-    actual val icon: Icon?
+    val icon: Icon?
 
     /**
      * Get the title of this tab to display in the ServerPackCreator GUI.
@@ -70,7 +70,7 @@ actual interface TabExtension : ExtensionInformation {
      * @return The title of this plugin's tabbed pane.
      * @author Griefed
      */
-    actual val title: String
+    val title: String
 
     /**
      * Get the tooltip for this tab to display in the ServerPackCreator GUI.
@@ -78,5 +78,5 @@ actual interface TabExtension : ExtensionInformation {
      * @return The tooltip of this plugin's tabbed pane.
      * @author Griefed
      */
-    actual val tooltip: String
+    val tooltip: String
 }
\ No newline at end of file
diff --git a/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/utilities/ReticulatingSplines.kt b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/utilities/ReticulatingSplines.kt
similarity index 100%
rename from serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/utilities/ReticulatingSplines.kt
rename to serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/utilities/ReticulatingSplines.kt
diff --git a/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/utilities/SimpleStopWatch.kt b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/utilities/SimpleStopWatch.kt
similarity index 100%
rename from serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/utilities/SimpleStopWatch.kt
rename to serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/utilities/SimpleStopWatch.kt
diff --git a/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/utilities/common/Affirm.kt b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/utilities/common/Affirm.kt
similarity index 100%
rename from serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/utilities/common/Affirm.kt
rename to serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/utilities/common/Affirm.kt
diff --git a/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/utilities/common/BooleanUtilities.kt b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/utilities/common/BooleanUtilities.kt
similarity index 98%
rename from serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/utilities/common/BooleanUtilities.kt
rename to serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/utilities/common/BooleanUtilities.kt
index 63777fbb9..93931799b 100644
--- a/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/utilities/common/BooleanUtilities.kt
+++ b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/utilities/common/BooleanUtilities.kt
@@ -28,7 +28,7 @@ import mu.KotlinLogging
  */
 @Suppress("unused", "KDocUnresolvedReference")
 class BooleanUtilities {
-    private val log = KotlinLogging.logger {}
+    private val log by lazy { KotlinLogging.logger {} }
     private val yYeEsS = "[Yy][Ee][Ss]".toRegex()
     private val yY = "[Yy]".toRegex()
     private val one = "1".toRegex()
diff --git a/serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/utilities/common/ClassUtilities.kt b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/utilities/common/ClassUtilities.kt
similarity index 91%
rename from serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/utilities/common/ClassUtilities.kt
rename to serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/utilities/common/ClassUtilities.kt
index 63a840f37..2de6b0eb8 100644
--- a/serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/utilities/common/ClassUtilities.kt
+++ b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/utilities/common/ClassUtilities.kt
@@ -27,14 +27,8 @@ import java.net.URL
 import java.nio.file.Paths
 import java.util.*
 
-/*private val jar = "^jar:(file:.*[.]jar)!/.*".toRegex()
-private val jarJar = "^(file:.*[.]jar)!.*[.]jar".toRegex()
-private val jarNested = "^jar:nested:(.*[.]jar)!/.*".toRegex()
-private val jarJarNested = "^(file:.*[.]jar)!.*[.]jar".toRegex()*/
 private val nested = ".*[.]jar!.*[.]jar".toRegex()
 private val tmpDir = System.getProperty("java.io.tmpdir")
-/*private const val JAR_FILE = "jar:file:"
-private const val JAR_NESTED = "jar:nested"*/
 private const val JAR = "file:"
 
 /**
diff --git a/serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/utilities/common/Comparison.kt b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/utilities/common/Comparison.kt
similarity index 99%
rename from serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/utilities/common/Comparison.kt
rename to serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/utilities/common/Comparison.kt
index 72f2838a7..341c14f04 100644
--- a/serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/utilities/common/Comparison.kt
+++ b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/utilities/common/Comparison.kt
@@ -38,4 +38,4 @@ enum class Comparison {
      * Used to determine whether a given version is the same or newer.
      */
     EQUAL_OR_NEW
-}
+}
\ No newline at end of file
diff --git a/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/utilities/common/FileType.kt b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/utilities/common/FileType.kt
similarity index 100%
rename from serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/utilities/common/FileType.kt
rename to serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/utilities/common/FileType.kt
diff --git a/serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/utilities/common/FileUtilities.kt b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/utilities/common/FileUtilities.kt
similarity index 88%
rename from serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/utilities/common/FileUtilities.kt
rename to serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/utilities/common/FileUtilities.kt
index 17e88216b..7c842b632 100644
--- a/serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/utilities/common/FileUtilities.kt
+++ b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/utilities/common/FileUtilities.kt
@@ -43,8 +43,8 @@ import kotlin.streams.asStream
  *
  * @author Griefed
  */
-actual class FileUtilities {
-    private val log = cachedLoggerOf(this.javaClass)
+class FileUtilities {
+    private val log by lazy { cachedLoggerOf(this.javaClass) }
     private val windowsDrivers = "^[A-Za-z]:.*".toRegex()
     private val lnk = "lnk"
 
@@ -58,7 +58,7 @@ actual class FileUtilities {
      * @author Griefed
      */
     @Throws(IOException::class)
-    actual fun replaceFile(sourceFile: File, destinationFile: File): Boolean {
+    fun replaceFile(sourceFile: File, destinationFile: File): Boolean {
         if (sourceFile.exists()) {
             sourceFile.toPath().moveTo(destinationFile.toPath(), true)
             return true
@@ -74,7 +74,7 @@ actual class FileUtilities {
      * @param destinationDirectory The directory into which the ZIP-archive will be unzipped into.
      * @author Griefed
      */
-    actual fun unzipArchive(zipFile: String, destinationDirectory: String) {
+    fun unzipArchive(zipFile: String, destinationDirectory: String) {
         log.info("Extracting ZIP-file: $zipFile")
         try {
             ZipFile(zipFile).use { zip -> zip.extractAll(destinationDirectory) }
@@ -92,7 +92,7 @@ actual class FileUtilities {
      * [FileType.SYMLINK]
      * @author Griefed
      */
-    actual fun checkFileType(file: String): FileType {
+    fun checkFileType(file: String): FileType {
         return if (file.isEmpty()) {
             FileType.INVALID
         } else checkFileType(File(file))
@@ -107,7 +107,7 @@ actual class FileUtilities {
      * [FileType.SYMLINK]
      * @author Griefed
      */
-    actual fun checkFileType(file: File): FileType {
+    fun checkFileType(file: File): FileType {
         @Suppress("RegExpRedundantEscape")
         return when {
             file.name.endsWith(lnk) -> {
@@ -150,7 +150,7 @@ actual class FileUtilities {
      * @return `true` if the given file is a UNIX symlink or Windows lnk.
      * @author Griefed
      */
-    actual fun isLink(file: File) =
+    fun isLink(file: File) =
         if (file.name.endsWith(lnk)) {
             true
         } else {
@@ -186,7 +186,7 @@ actual class FileUtilities {
      * @author Griefed
      */
     @Throws(IOException::class, InvalidFileTypeException::class)
-    actual fun resolveLink(link: File): String =
+    fun resolveLink(link: File): String =
         when (val type = checkFileType(link)) {
             FileType.LINK, FileType.SYMLINK -> {
                 try {
@@ -301,7 +301,7 @@ actual class FileUtilities {
      * @return `true` if read-permissions are set.
      * @author Griefed
      */
-    actual fun isReadPermissionSet(fileOrDirectory: String) = isReadPermissionSet(Paths.get(fileOrDirectory))
+    fun isReadPermissionSet(fileOrDirectory: String) = isReadPermissionSet(Paths.get(fileOrDirectory))
 
     /**
      * Check the given file or directory for read-permission.
@@ -310,7 +310,7 @@ actual class FileUtilities {
      * @return `true` if read-permissions are set.
      * @author Griefed
      */
-    actual fun isReadPermissionSet(fileOrDirectory: File) = isReadPermissionSet(fileOrDirectory.toPath())
+    fun isReadPermissionSet(fileOrDirectory: File) = isReadPermissionSet(fileOrDirectory.toPath())
 
     /**
      * Check the given file or directory for write-permission.
@@ -319,7 +319,7 @@ actual class FileUtilities {
      * @return `true` if write-permissions are set.
      * @author Griefed
      */
-    actual fun isWritePermissionSet(fileOrDirectory: String) = isReadPermissionSet(Paths.get(fileOrDirectory))
+    fun isWritePermissionSet(fileOrDirectory: String) = isReadPermissionSet(Paths.get(fileOrDirectory))
 
     /**
      * Check the given file or directory for write-permission.
@@ -328,7 +328,27 @@ actual class FileUtilities {
      * @return `true` if write-permissions are set.
      * @author Griefed
      */
-    actual fun isWritePermissionSet(fileOrDirectory: File) = isReadPermissionSet(fileOrDirectory.toPath())
+    fun isWritePermissionSet(fileOrDirectory: File) = isReadPermissionSet(fileOrDirectory.toPath())
+
+    /**
+     * Check the given file or directory for read- and write-permission.
+     *
+     * @param fileOrDirectory File or directory.
+     * @return `true` if both read- and write-permissions are set.
+     * @author Griefed
+     */
+    fun isReadWritePermissionSet(fileOrDirectory: String) =
+    isReadPermissionSet(fileOrDirectory) && isWritePermissionSet(fileOrDirectory)
+
+    /**
+     * Check the given file or directory for read- and write-permission.
+     *
+     * @param fileOrDirectory File or directory.
+     * @return `true` if both read- and write-permissions are set.
+     * @author Griefed
+     */
+    fun isReadWritePermissionSet(fileOrDirectory: File) =
+        isReadPermissionSet(fileOrDirectory) && isWritePermissionSet(fileOrDirectory)
 
     /**
      * Open the specified folder in the file explorer.
@@ -336,7 +356,7 @@ actual class FileUtilities {
      * @param folder The folder to open.
      * @author Griefed
      */
-    actual fun openFolder(folder: String) = openFolder(File(folder))
+    fun openFolder(folder: String) = openFolder(File(folder))
 
     /**
      * Open the specified folder in the file explorer.
@@ -344,7 +364,7 @@ actual class FileUtilities {
      * @param folder The folder to open.
      * @author Griefed
      */
-    actual fun openFolder(folder: File) {
+    fun openFolder(folder: File) {
         if (GraphicsEnvironment.isHeadless()) {
             log.error("Graphics environment not supported.")
         } else {
@@ -364,7 +384,7 @@ actual class FileUtilities {
      * @param fileToOpen The file to open.
      * @author Griefed
      */
-    actual fun openFile(fileToOpen: String) = openFile(File(fileToOpen))
+    fun openFile(fileToOpen: String) = openFile(File(fileToOpen))
 
     /**
      * Open the specified file in an editor.
@@ -372,7 +392,7 @@ actual class FileUtilities {
      * @param fileToOpen The file to open.
      * @author Griefed
      */
-    actual fun openFile(fileToOpen: File) {
+    fun openFile(fileToOpen: File) {
         if (GraphicsEnvironment.isHeadless()) {
             log.error("Graphics environment not supported.")
         } else {
@@ -407,7 +427,7 @@ actual class FileUtilities {
  * @return `true` if, and only if, the file or directory was deleted.
  * @author Griefed
  */
-actual fun File.deleteQuietly(): Boolean =
+fun File.deleteQuietly(): Boolean =
     if (this.isFile) {
         try {
             this.delete()
@@ -429,12 +449,12 @@ actual fun File.deleteQuietly(): Boolean =
  * @return The filesize of this file, or sum of sizes of all files in this directory.
  * @author Griefed
  */
-actual fun File.size(): Double {
+fun File.size(): Double {
     if (this.isDirectory) {
-        val size = 0.0
+        var size = 0.0
         val entries = this.listFiles() ?: return size
         for (entry in entries) {
-            size.plus(entry.size())
+            size = size.plus(entry.size())
         }
         return size
     } else {
@@ -450,7 +470,7 @@ actual fun File.size(): Double {
  * @return All files inside this directory which matched the given filters.
  * @author Griefed
  */
-actual fun File.regexWalk(filters: List<Regex>, direction: FileWalkDirection): MutableList<File> =
+fun File.regexWalk(filters: List<Regex>, direction: FileWalkDirection): MutableList<File> =
     this.walk(direction).asStream().filter { filters.matchAll(it.name) }.toList()
 
 /**
@@ -462,11 +482,11 @@ actual fun File.regexWalk(filters: List<Regex>, direction: FileWalkDirection): M
  * @return All files inside this directory which matched the given filters.
  * @author Griefed
  */
-actual fun File.filteredWalk(
+fun File.filteredWalk(
     filters: List<String>,
-    filterType: FilterType,
-    direction: FileWalkDirection,
-    recursive: Boolean
+    filterType: FilterType = FilterType.CONTAINS,
+    direction: FileWalkDirection = FileWalkDirection.TOP_DOWN,
+    recursive: Boolean = true
 ): MutableList<File> =
     when (filterType) {
         FilterType.CONTAINS -> {
@@ -503,10 +523,10 @@ actual fun File.filteredWalk(
  * [create] without [directory] will result in this file being created as a file.
  *
  * @param create Whether the file or directory should be created. If left to `false`, then [directory] won't have any effect.
- * @param directory Whether a directory or file should be created. Requires [create] to be set to `true`.
+ * @param directory true to create a directory, false to create a file. Requires [create] to be true
  * @author Griefed
  */
-actual fun File.createDirectories(create: Boolean, directory: Boolean) {
+fun File.create(create: Boolean = false, directory: Boolean = false) {
     absoluteFile.toPath().createParentDirectories()
     if (create) {
         if (directory) {
diff --git a/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/utilities/common/FilterType.kt b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/utilities/common/FilterType.kt
similarity index 100%
rename from serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/utilities/common/FilterType.kt
rename to serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/utilities/common/FilterType.kt
diff --git a/serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/utilities/common/InputStreamUtilities.kt b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/utilities/common/InputStreamUtilities.kt
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/utilities/common/InputStreamUtilities.kt
rename to serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/utilities/common/InputStreamUtilities.kt
diff --git a/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/utilities/common/InvalidFileTypeException.kt b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/utilities/common/InvalidFileTypeException.kt
similarity index 100%
rename from serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/utilities/common/InvalidFileTypeException.kt
rename to serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/utilities/common/InvalidFileTypeException.kt
diff --git a/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/utilities/common/InvalidLinkException.kt b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/utilities/common/InvalidLinkException.kt
similarity index 100%
rename from serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/utilities/common/InvalidLinkException.kt
rename to serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/utilities/common/InvalidLinkException.kt
diff --git a/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/utilities/common/JarAccessException.kt b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/utilities/common/JarAccessException.kt
similarity index 100%
rename from serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/utilities/common/JarAccessException.kt
rename to serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/utilities/common/JarAccessException.kt
diff --git a/serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/utilities/common/JarInformation.kt b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/utilities/common/JarInformation.kt
similarity index 89%
rename from serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/utilities/common/JarInformation.kt
rename to serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/utilities/common/JarInformation.kt
index 78f432605..294a30294 100644
--- a/serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/utilities/common/JarInformation.kt
+++ b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/utilities/common/JarInformation.kt
@@ -46,7 +46,8 @@ class JarInformation(clazz: Class<*>, jarUtilities: JarUtilities = JarUtilities(
      *
      * @author Griefed
      */
-    val jarFolder: File
+    var jarFolder: File
+        private set
 
     /**
      * The .exe or JAR-file of ServerPackCreator.
@@ -107,10 +108,19 @@ class JarInformation(clazz: Class<*>, jarUtilities: JarUtilities = JarUtilities(
         sysInfo.putAll(jarUtilities.jarInformation(clazz))
         jarPath = Paths.get(sysInfo["jarPath"]!!)
         jarFile = jarPath.toFile()
-        jarFolder = if (jarFile.isFile) {
-            jarFile.parentFile
+        jarFolder = if (jarPath.toString().contains("!")) {
+            val temp = File(jarPath.toString().substringBefore('!'))
+            if (temp.isDirectory) {
+                temp
+            } else {
+                temp.parentFile
+            }
         } else {
-            jarFile
+            if (jarFile.isDirectory) {
+                jarFile
+            } else {
+                jarFile.parentFile
+            }
         }
         jarFileName = sysInfo["jarName"].toString()
         javaVersion = sysInfo["javaVersion"].toString()
diff --git a/serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/utilities/common/JarUtilities.kt b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/utilities/common/JarUtilities.kt
similarity index 97%
rename from serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/utilities/common/JarUtilities.kt
rename to serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/utilities/common/JarUtilities.kt
index ded0deba7..1e78ff4c5 100644
--- a/serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/utilities/common/JarUtilities.kt
+++ b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/utilities/common/JarUtilities.kt
@@ -19,6 +19,7 @@
  */
 package de.griefed.serverpackcreator.api.utilities.common
 
+import de.griefed.serverpackcreator.api.ApiWrapper
 import org.apache.logging.log4j.kotlin.cachedLoggerOf
 import java.io.*
 import java.net.URISyntaxException
@@ -34,8 +35,8 @@ import kotlin.io.path.toPath
  * @author Griefed
  */
 @Suppress("unused")
-actual class JarUtilities {
-    private val log = cachedLoggerOf(this.javaClass)
+class JarUtilities {
+    private val log by lazy { cachedLoggerOf(this.javaClass) }
 
     /**
      * Copy a file from inside our JAR-file to the host filesystem. The file will create exactly as specified in the
@@ -141,7 +142,7 @@ actual class JarUtilities {
      */
     fun copyFileFromJar(fileToCopy: String, destinationFile: File, identifierClass: Class<*>) =
         if (!destinationFile.absoluteFile.exists()) {
-            destinationFile.createDirectories()
+            destinationFile.create()
             try {
                 identifierClass.getResourceAsStream("/$fileToCopy").use {
                     destinationFile.absoluteFile.outputStream().use { out -> it?.transferTo(out) }
@@ -196,7 +197,7 @@ actual class JarUtilities {
         destinationDirectory: String,
         jarDirectoryPrefix: String,
         fileEnding: Regex,
-        tempDir: File = File(System.getProperty("java.io.tmpdir"))
+        tempDir: File = ApiWrapper.api().apiProperties.tempDirectory
     ) {
         val systemInformation: HashMap<String, String> = jarInformation(classToRetrieveHomeFor)
         val source = systemInformation["jarPath"]?.let { File(it) }
@@ -267,7 +268,7 @@ actual class JarUtilities {
             log.error("Error walking source-directory.", ex)
         }
         try {
-            File(destination).createDirectories()
+            File(destination).create()
         } catch (ignored: FileAlreadyExistsException) {
         } catch (ex: IOException) {
             log.error("Error creating language directory.", ex)
@@ -275,7 +276,7 @@ actual class JarUtilities {
         for (entry in filesFromJar) {
             if (!File(destination, entry).absoluteFile.exists()) {
                 val extract = File(destination, entry).absoluteFile
-                extract.createDirectories()
+                extract.create()
                 try {
                     classToCopyFrom.getResourceAsStream("$source/$entry").use {
                         extract.outputStream().use { out -> it?.transferTo(out) }
@@ -330,7 +331,7 @@ actual class JarUtilities {
                 ).absoluteFile
                 log.debug("Destination: $destination")
                 if (!destination.exists()) {
-                    destination.createDirectories()
+                    destination.create()
                     try {
                         jarToCopyFrom.getInputStream(entry).use {
                             destination.outputStream().use { out -> it.transferTo(out) }
diff --git a/serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/utilities/common/JsonException.kt b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/utilities/common/JsonException.kt
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/utilities/common/JsonException.kt
rename to serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/utilities/common/JsonException.kt
diff --git a/serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/utilities/common/JsonUtilities.kt b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/utilities/common/JsonUtilities.kt
similarity index 99%
rename from serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/utilities/common/JsonUtilities.kt
rename to serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/utilities/common/JsonUtilities.kt
index b7112a497..3c301000d 100644
--- a/serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/utilities/common/JsonUtilities.kt
+++ b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/utilities/common/JsonUtilities.kt
@@ -36,7 +36,7 @@ import java.net.URL
  * @author Griefed
  */
 @Suppress("unused")
-actual class JsonUtilities(
+class JsonUtilities(
     private val objectMapper: ObjectMapper = ObjectMapper()
         .disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES)
         .enable(DeserializationFeature.ACCEPT_SINGLE_VALUE_AS_ARRAY)
diff --git a/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/utilities/common/ListUtilities.kt b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/utilities/common/ListUtilities.kt
similarity index 99%
rename from serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/utilities/common/ListUtilities.kt
rename to serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/utilities/common/ListUtilities.kt
index 973fe457d..a6a5aedb2 100644
--- a/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/utilities/common/ListUtilities.kt
+++ b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/utilities/common/ListUtilities.kt
@@ -32,7 +32,7 @@ import kotlin.coroutines.CoroutineContext
  */
 @Suppress("unused")
 class ListUtilities {
-    private val log = KotlinLogging.logger {}
+    private val log by lazy { KotlinLogging.logger {} }
     private val whitespace = "\\s+".toRegex()
 
     /**
diff --git a/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/utilities/common/RegexUtilities.kt b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/utilities/common/RegexUtilities.kt
similarity index 100%
rename from serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/utilities/common/RegexUtilities.kt
rename to serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/utilities/common/RegexUtilities.kt
diff --git a/serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/utilities/common/SemanticVersionComparator.kt b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/utilities/common/SemanticVersionComparator.kt
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/utilities/common/SemanticVersionComparator.kt
rename to serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/utilities/common/SemanticVersionComparator.kt
diff --git a/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/utilities/common/StringUtilities.kt b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/utilities/common/StringUtilities.kt
similarity index 100%
rename from serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/utilities/common/StringUtilities.kt
rename to serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/utilities/common/StringUtilities.kt
diff --git a/serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/utilities/common/SystemUtilities.kt b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/utilities/common/SystemUtilities.kt
similarity index 68%
rename from serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/utilities/common/SystemUtilities.kt
rename to serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/utilities/common/SystemUtilities.kt
index 0e244cafe..b651d82fe 100644
--- a/serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/utilities/common/SystemUtilities.kt
+++ b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/utilities/common/SystemUtilities.kt
@@ -28,15 +28,12 @@ import java.io.File
  * @author Griefed
  */
 @Suppress("unused")
-actual class SystemUtilities {
-    private val log = cachedLoggerOf(this.javaClass)
-    private val windowsDrives: List<String> = listOf(
-        "A:", "B:", "C:", "D:", "E:", "F:", "G:", "H:", "I:", "J:", "K:", "L:", "M:", "N:",
-        "O:", "P:", "Q:", "R:", "S:", "T:", "U:", "V:", "W:", "X:", "Y:", "Z:"
-    )
-    private val javaPathSuffix = "%s/bin/java"
+class SystemUtilities {
+    private val log by lazy { cachedLoggerOf(this.javaClass) }
+    private val windowsDriveRegex = "^[A-Z]:\\\\.*".toRegex()
+    private val javaPathSuffix = "%s${File.separator}bin${File.separator}java"
     private val javaHome = System.getProperty("java.home")
-    private val pathPrefix = "/"
+    private val unixRoot = "/"
     private val exeSuffix = "%s.exe"
 
     /**
@@ -45,18 +42,14 @@ actual class SystemUtilities {
      * @return String. The path to the systems default Java installation.
      * @author Griefed
      */
-    actual fun acquireJavaPathFromSystem(): String {
+    fun acquireJavaPathFromSystem(): String {
         log.debug("Acquiring path to Java installation from system properties...")
         var javaPath = "Couldn't acquire JavaPath"
         if (File(javaHome).exists()) {
             javaPath = javaPathSuffix.format(javaHome)
-            if (!javaPath.startsWith(pathPrefix)) {
-                for (letter in windowsDrives) {
-                    if (javaPath.startsWith(letter)) {
-                        log.debug("We're running on Windows. Ensuring javaPath ends with .exe")
-                        javaPath = exeSuffix.format(javaPath)
-                    }
-                }
+            if (javaPath.matches(windowsDriveRegex)) {
+                log.debug("We're running on Windows. Ensuring javaPath ends with .exe")
+                javaPath = exeSuffix.format(javaPath)
             }
         }
         return javaPath
diff --git a/serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/utilities/common/Utilities.kt b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/utilities/common/Utilities.kt
similarity index 88%
rename from serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/utilities/common/Utilities.kt
rename to serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/utilities/common/Utilities.kt
index 870a5fc04..27b95eb35 100644
--- a/serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/utilities/common/Utilities.kt
+++ b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/utilities/common/Utilities.kt
@@ -29,16 +29,16 @@ import javax.xml.parsers.DocumentBuilderFactory
  * @author Griefed
  */
 @Suppress("unused")
-actual class Utilities {
-    actual val booleanUtilities: BooleanUtilities
-    actual val fileUtilities: FileUtilities
-    actual val jarUtilities: JarUtilities
-    actual val listUtilities: ListUtilities
-    actual val stringUtilities: StringUtilities
-    actual val systemUtilities: SystemUtilities
-    actual val webUtilities: WebUtilities
-    actual val jsonUtilities: JsonUtilities
-    actual val xmlUtilities: XmlUtilities
+class Utilities {
+    val booleanUtilities: BooleanUtilities
+    val fileUtilities: FileUtilities
+    val jarUtilities: JarUtilities
+    val listUtilities: ListUtilities
+    val stringUtilities: StringUtilities
+    val systemUtilities: SystemUtilities
+    val webUtilities: WebUtilities
+    val jsonUtilities: JsonUtilities
+    val xmlUtilities: XmlUtilities
 
     /**
      * @param apiProperties   API configuration of this instance.
diff --git a/serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/utilities/common/WebUtilities.kt b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/utilities/common/WebUtilities.kt
similarity index 94%
rename from serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/utilities/common/WebUtilities.kt
rename to serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/utilities/common/WebUtilities.kt
index b65156e7c..4a04c6f5b 100644
--- a/serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/utilities/common/WebUtilities.kt
+++ b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/utilities/common/WebUtilities.kt
@@ -36,8 +36,8 @@ import javax.net.ssl.HttpsURLConnection
  * @author Griefed
  */
 @Suppress("unused")
-actual class WebUtilities(private val apiProperties: ApiProperties) {
-    private val log = cachedLoggerOf(this.javaClass)
+class WebUtilities(private val apiProperties: ApiProperties) {
+    private val log by lazy { cachedLoggerOf(this.javaClass) }
 
     /**
      * Download the file from the specified URL to the specified destination, replacing the file if it
@@ -51,7 +51,7 @@ actual class WebUtilities(private val apiProperties: ApiProperties) {
      * @return Boolean. Returns true if the file could be found on the hosts' filesystem.
      * @author Griefed
      */
-    actual fun downloadAndReplaceFile(
+    fun downloadAndReplaceFile(
         fileDestination: File,
         downloadURL: URL
     ): Boolean {
@@ -70,11 +70,11 @@ actual class WebUtilities(private val apiProperties: ApiProperties) {
      * @return true if the file was created.
      * @author Griefed
      */
-    actual fun downloadFile(
+    fun downloadFile(
         file: File,
         downloadURL: URL
     ): Boolean {
-        file.createDirectories()
+        file.create()
         try {
             downloadURL.openStream().use { url ->
                 Channels.newChannel(url).use { channel ->
@@ -96,7 +96,7 @@ actual class WebUtilities(private val apiProperties: ApiProperties) {
      * @param url The URI to the website you want to open.
      * @author Griefed
      */
-    actual fun openLinkInBrowser(url: URL) {
+    fun openLinkInBrowser(url: URL) {
         try {
             openLinkInBrowser(url.toURI())
         } catch (ex: URISyntaxException) {
@@ -128,7 +128,7 @@ actual class WebUtilities(private val apiProperties: ApiProperties) {
      * @return Boolean. True if the file is smaller, false if the file is bigger than 10 MB.
      * @author Griefed
      */
-    actual fun hasteBinPreChecks(fileToCheck: File): Boolean {
+    fun hasteBinPreChecks(fileToCheck: File): Boolean {
         val fileSize = fileToCheck.size()
         try {
             return if (fileSize < 10000000.0
@@ -160,7 +160,7 @@ actual class WebUtilities(private val apiProperties: ApiProperties) {
      * @author [kaimu-kun/hastebin.java](https://github.com/kaimu-kun)
      * @author Griefed
      */
-    actual fun createHasteBinFromString(text: String): String {
+    fun createHasteBinFromString(text: String): String {
         val requestURL: String = apiProperties.hasteBinServerUrl
         var response: String? = null
         val url = URI(requestURL).toURL()
@@ -228,7 +228,7 @@ actual class WebUtilities(private val apiProperties: ApiProperties) {
      * @author [kaimu-kun/hastebin.java](https://github.com/kaimu-kun)
      * @author Griefed
      */
-    actual fun createHasteBinFromFile(textFile: File): String {
+    fun createHasteBinFromFile(textFile: File): String {
         return createHasteBinFromString(textFile.readText())
     }
 
@@ -240,7 +240,7 @@ actual class WebUtilities(private val apiProperties: ApiProperties) {
      * @throws IOException if the URL could not be called or a communication error occurred.
      */
     @Throws(IOException::class)
-    actual fun getResponseAsString(url: URL): String {
+    fun getResponseAsString(url: URL): String {
         val `in` = BufferedReader(InputStreamReader(url.openConnection().getInputStream()))
         val response = StringBuilder()
         var currentLine: String?
@@ -259,7 +259,7 @@ actual class WebUtilities(private val apiProperties: ApiProperties) {
      * @throws IOException if the URL could not be called or a communication error occurred.
      */
     @Throws(IOException::class)
-    actual fun getResponseCode(url: URL): Int {
+    fun getResponseCode(url: URL): Int {
         val connection = url.openConnection() as HttpURLConnection
         return connection.responseCode
     }
@@ -272,7 +272,7 @@ actual class WebUtilities(private val apiProperties: ApiProperties) {
      * @param url The URL of which to check for host-availability.
      * @return `true` if, and only if, the host is available and the URL returns the status code 200.
      */
-    actual fun isReachable(url: URL): Boolean {
+    fun isReachable(url: URL): Boolean {
         var available: Boolean
         var connection: HttpURLConnection? = null
         try {
diff --git a/serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/utilities/common/XmlUtilities.kt b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/utilities/common/XmlUtilities.kt
similarity index 96%
rename from serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/utilities/common/XmlUtilities.kt
rename to serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/utilities/common/XmlUtilities.kt
index b0d5b02be..36dc3d6a5 100644
--- a/serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/utilities/common/XmlUtilities.kt
+++ b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/utilities/common/XmlUtilities.kt
@@ -37,7 +37,7 @@ import javax.xml.parsers.ParserConfigurationException
  * @author Griefed
  */
 @Suppress("unused")
-actual class XmlUtilities(private val documentBuilderFactory: DocumentBuilderFactory = DocumentBuilderFactory.newInstance()) {
+class XmlUtilities(private val documentBuilderFactory: DocumentBuilderFactory = DocumentBuilderFactory.newInstance()) {
 
     /**
      * Reads the file into a [Document] and [Document.normalize] it.
diff --git a/serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/utilities/common/ZipUtilities.kt b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/utilities/common/ZipUtilities.kt
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/utilities/common/ZipUtilities.kt
rename to serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/utilities/common/ZipUtilities.kt
diff --git a/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/versionmeta/InvalidTypeException.kt b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/versionmeta/InvalidTypeException.kt
similarity index 100%
rename from serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/versionmeta/InvalidTypeException.kt
rename to serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/versionmeta/InvalidTypeException.kt
diff --git a/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/versionmeta/Meta.kt b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/versionmeta/Meta.kt
similarity index 93%
rename from serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/versionmeta/Meta.kt
rename to serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/versionmeta/Meta.kt
index d67c25815..85bc8fd40 100644
--- a/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/versionmeta/Meta.kt
+++ b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/versionmeta/Meta.kt
@@ -19,7 +19,9 @@
  */
 package de.griefed.serverpackcreator.api.versionmeta
 
-import de.griefed.serverpackcreator.api.utilities.Optional
+import java.io.File
+import java.net.URL
+import java.util.*
 
 /**
  * Provide default methods to access a given Metas versions.
@@ -136,7 +138,7 @@ interface Meta {
      * @return URL to the latest installer.
      * @author Griefed
      */
-    fun latestInstallerUrl(): de.griefed.serverpackcreator.api.utilities.URL
+    fun latestInstallerUrl(): URL
 
     /**
      * Get the URL to the release installer.
@@ -144,7 +146,7 @@ interface Meta {
      * @return URL to the release installer.
      * @author Griefed
      */
-    fun releaseInstallerUrl(): de.griefed.serverpackcreator.api.utilities.URL
+    fun releaseInstallerUrl(): URL
 
     /**
      * Installer file for the specified modloader version, wrapped in an [Optional], so you can check whether
@@ -156,7 +158,7 @@ interface Meta {
      *
      * @author Griefed
      */
-    fun installerFor(version: String): Optional<de.griefed.serverpackcreator.api.utilities.File>
+    fun installerFor(version: String): Optional<File>
 
     /**
      * Check whether a URL to an installer is available for the specified version.
@@ -174,7 +176,7 @@ interface Meta {
      * @return The URL to the installer, wrapped in an Optional.
      * @author Griefed
      */
-    fun getInstallerUrl(version: String): Optional<de.griefed.serverpackcreator.api.utilities.URL>
+    fun getInstallerUrl(version: String): Optional<URL>
 
     /**
      * Check whether the specified version is available/correct/valid.
diff --git a/serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/versionmeta/Type.kt b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/versionmeta/Type.kt
similarity index 100%
rename from serverpackcreator-api/src/commonMain/kotlin/de/griefed/serverpackcreator/api/versionmeta/Type.kt
rename to serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/versionmeta/Type.kt
diff --git a/serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/versionmeta/VersionMeta.kt b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/versionmeta/VersionMeta.kt
similarity index 95%
rename from serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/versionmeta/VersionMeta.kt
rename to serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/versionmeta/VersionMeta.kt
index 11231fecc..36fe65205 100644
--- a/serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/versionmeta/VersionMeta.kt
+++ b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/versionmeta/VersionMeta.kt
@@ -22,7 +22,7 @@ package de.griefed.serverpackcreator.api.versionmeta
 import com.fasterxml.jackson.databind.ObjectMapper
 import de.griefed.serverpackcreator.api.ApiProperties
 import de.griefed.serverpackcreator.api.utilities.common.Utilities
-import de.griefed.serverpackcreator.api.utilities.common.createDirectories
+import de.griefed.serverpackcreator.api.utilities.common.create
 import de.griefed.serverpackcreator.api.utilities.common.readText
 import de.griefed.serverpackcreator.api.versionmeta.fabric.FabricIntermediaries
 import de.griefed.serverpackcreator.api.versionmeta.fabric.FabricMeta
@@ -63,7 +63,7 @@ import javax.xml.parsers.ParserConfigurationException
  *
  * @author Griefed
  */
-actual class VersionMeta(
+class VersionMeta(
     private val minecraftManifest: File,
     private val forgeManifest: File,
     private val oldNeoForgeManifest: File,
@@ -80,92 +80,92 @@ actual class VersionMeta(
     private val utilities: Utilities,
     apiProperties: ApiProperties
 ) {
-    private val log = cachedLoggerOf(this.javaClass)
+    private val log by lazy { cachedLoggerOf(this.javaClass) }
     private val legacyFabricUrlBase = "https://meta.legacyfabric.net"
 
     @Suppress("MemberVisibilityCanBePrivate")
-    actual val legacyFabricUrlGame =
+    val legacyFabricUrlGame =
         URI("$legacyFabricUrlBase/v2/versions/game").toURL()
 
     @Suppress("MemberVisibilityCanBePrivate")
-    actual val legacyFabricUrlLoader =
+    val legacyFabricUrlLoader =
         URI("$legacyFabricUrlBase/v2/versions/loader").toURL()
 
     @Suppress("MemberVisibilityCanBePrivate")
-    actual val legacyfabricUrlManifest =
+    val legacyfabricUrlManifest =
         URI("https://maven.legacyfabric.net/net/legacyfabric/fabric-installer/maven-metadata.xml").toURL()
 
     @Suppress("MemberVisibilityCanBePrivate")
-    actual val minecraftUrlManifest =
+    val minecraftUrlManifest =
         URI("https://launchermeta.mojang.com/mc/game/version_manifest.json").toURL()
 
     @Suppress("MemberVisibilityCanBePrivate")
-    actual val forgeUrlManifest =
+    val forgeUrlManifest =
         URI("https://files.minecraftforge.net/net/minecraftforge/forge/maven-metadata.json").toURL()
 
     @Suppress("MemberVisibilityCanBePrivate")
-    actual val oldNeoForgeUrlManifest =
+    val oldNeoForgeUrlManifest =
         URI("https://maven.neoforged.net/releases/net/neoforged/forge/maven-metadata.xml").toURL()
 
     @Suppress("MemberVisibilityCanBePrivate")
-    actual val newNeoForgeUrlManifest =
+    val newNeoForgeUrlManifest =
         URI("https://maven.neoforged.net/releases/net/neoforged/neoforge/maven-metadata.xml").toURL()
 
     @Suppress("MemberVisibilityCanBePrivate")
-    actual val fabricUrlManifest =
+    val fabricUrlManifest =
         URI("https://maven.fabricmc.net/net/fabricmc/fabric-loader/maven-metadata.xml").toURL()
 
     @Suppress("MemberVisibilityCanBePrivate")
-    actual val fabricUrlIntermediariesManifest =
+    val fabricUrlIntermediariesManifest =
         URI("https://meta.fabricmc.net/v2/versions/intermediary").toURL()
 
     @Suppress("MemberVisibilityCanBePrivate")
-    actual val fabricUrlInstallerManifest =
+    val fabricUrlInstallerManifest =
         URI("https://maven.fabricmc.net/net/fabricmc/fabric-installer/maven-metadata.xml").toURL()
 
     @Suppress("MemberVisibilityCanBePrivate")
-    actual val quiltUrlManifest =
+    val quiltUrlManifest =
         URI("https://maven.quiltmc.org/repository/release/org/quiltmc/quilt-loader/maven-metadata.xml").toURL()
 
     @Suppress("MemberVisibilityCanBePrivate")
-    actual val quiltUrlInstallerManifest =
+    val quiltUrlInstallerManifest =
         URI("https://maven.quiltmc.org/repository/release/org/quiltmc/quilt-installer/maven-metadata.xml").toURL()
 
     /**
      * The MinecraftMeta instance for working with Minecraft versions and information about them.
      */
     @Suppress("MemberVisibilityCanBePrivate")
-    actual val minecraft: MinecraftMeta
+    val minecraft: MinecraftMeta
 
     /**
      * The QuiltMeta-instance for working with Fabric versions and information about them.
      */
     @Suppress("MemberVisibilityCanBePrivate")
-    actual val fabric: FabricMeta
+    val fabric: FabricMeta
 
     /**
      * The ForgeMeta-instance for working with Forge versions and information about them.
      */
     @Suppress("MemberVisibilityCanBePrivate")
-    actual val forge: ForgeMeta
+    val forge: ForgeMeta
 
     /**
      * The NeoForgeMeta-instance for working with NeoForge versions and information about them.
      */
     @Suppress("MemberVisibilityCanBePrivate")
-    actual val neoForge: NeoForgeMeta
+    val neoForge: NeoForgeMeta
 
     /**
      * The QuiltMeta-instance for working with Quilt versions and information about them.
      */
     @Suppress("MemberVisibilityCanBePrivate")
-    actual val quilt: QuiltMeta
+    val quilt: QuiltMeta
 
     /**
      * The LegacyFabric-instance for working with Legacy Fabric versions and information about them.
      */
     @Suppress("MemberVisibilityCanBePrivate")
-    actual val legacyFabric: LegacyFabricMeta
+    val legacyFabric: LegacyFabricMeta
 
     @Suppress("MemberVisibilityCanBePrivate")
     val fabricIntermediaries: FabricIntermediaries
@@ -414,7 +414,7 @@ actual class VersionMeta(
         manifestToRefresh: File,
         content: String
     ) {
-        manifestToRefresh.createDirectories()
+        manifestToRefresh.create()
         manifestToRefresh.writeText(content)
     }
 
diff --git a/serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/versionmeta/fabric/FabricArguments.kt b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/versionmeta/fabric/FabricArguments.kt
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/versionmeta/fabric/FabricArguments.kt
rename to serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/versionmeta/fabric/FabricArguments.kt
diff --git a/serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/versionmeta/fabric/FabricDetails.kt b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/versionmeta/fabric/FabricDetails.kt
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/versionmeta/fabric/FabricDetails.kt
rename to serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/versionmeta/fabric/FabricDetails.kt
diff --git a/serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/versionmeta/fabric/FabricInstaller.kt b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/versionmeta/fabric/FabricInstaller.kt
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/versionmeta/fabric/FabricInstaller.kt
rename to serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/versionmeta/fabric/FabricInstaller.kt
diff --git a/serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/versionmeta/fabric/FabricIntermediaries.kt b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/versionmeta/fabric/FabricIntermediaries.kt
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/versionmeta/fabric/FabricIntermediaries.kt
rename to serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/versionmeta/fabric/FabricIntermediaries.kt
diff --git a/serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/versionmeta/fabric/FabricIntermediary.kt b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/versionmeta/fabric/FabricIntermediary.kt
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/versionmeta/fabric/FabricIntermediary.kt
rename to serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/versionmeta/fabric/FabricIntermediary.kt
diff --git a/serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/versionmeta/fabric/FabricLibrary.kt b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/versionmeta/fabric/FabricLibrary.kt
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/versionmeta/fabric/FabricLibrary.kt
rename to serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/versionmeta/fabric/FabricLibrary.kt
diff --git a/serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/versionmeta/fabric/FabricLoader.kt b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/versionmeta/fabric/FabricLoader.kt
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/versionmeta/fabric/FabricLoader.kt
rename to serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/versionmeta/fabric/FabricLoader.kt
diff --git a/serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/versionmeta/fabric/FabricLoaderDetails.kt b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/versionmeta/fabric/FabricLoaderDetails.kt
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/versionmeta/fabric/FabricLoaderDetails.kt
rename to serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/versionmeta/fabric/FabricLoaderDetails.kt
diff --git a/serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/versionmeta/fabric/FabricMeta.kt b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/versionmeta/fabric/FabricMeta.kt
similarity index 75%
rename from serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/versionmeta/fabric/FabricMeta.kt
rename to serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/versionmeta/fabric/FabricMeta.kt
index de7f3b62d..5c5aa7a5a 100644
--- a/serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/versionmeta/fabric/FabricMeta.kt
+++ b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/versionmeta/fabric/FabricMeta.kt
@@ -21,7 +21,7 @@ package de.griefed.serverpackcreator.api.versionmeta.fabric
 
 import com.fasterxml.jackson.databind.ObjectMapper
 import de.griefed.serverpackcreator.api.utilities.common.Utilities
-import de.griefed.serverpackcreator.api.utilities.common.createDirectories
+import de.griefed.serverpackcreator.api.utilities.common.create
 import de.griefed.serverpackcreator.api.versionmeta.Meta
 import org.xml.sax.SAXException
 import java.io.File
@@ -43,7 +43,7 @@ import javax.xml.parsers.ParserConfigurationException
  * @author Griefed
  */
 @Suppress("unused")
-actual class FabricMeta(
+class FabricMeta(
     fabricManifest: File,
     fabricInstallerManifest: File,
     private val fabricIntermediaries: FabricIntermediaries,
@@ -58,8 +58,8 @@ actual class FabricMeta(
     private val launchersDirectory: File = File(installerDirectory, "launchers")
 
     init {
-        installerDirectory.createDirectories(create = true, directory = true)
-        launchersDirectory.createDirectories(create = true, directory = true)
+        installerDirectory.create(create = true, directory = true)
+        launchersDirectory.create(create = true, directory = true)
     }
 
     @Suppress("MemberVisibilityCanBePrivate")
@@ -77,77 +77,77 @@ actual class FabricMeta(
     /**
      * @author Griefed
      */
-    actual override fun latestLoader() = fabricLoader.latestLoaderVersion()
+    override fun latestLoader() = fabricLoader.latestLoaderVersion()
 
     /**
      * @author Griefed
      */
-    actual override fun releaseLoader() = fabricLoader.releaseLoaderVersion()
+    override fun releaseLoader() = fabricLoader.releaseLoaderVersion()
 
     /**
      * @author Griefed
      */
-    actual override fun latestInstaller() = fabricInstaller.latestInstallerVersion()
+    override fun latestInstaller() = fabricInstaller.latestInstallerVersion()
 
     /**
      * @author Griefed
      */
-    actual override fun releaseInstaller() = fabricInstaller.releaseInstallerVersion()
+    override fun releaseInstaller() = fabricInstaller.releaseInstallerVersion()
 
     /**
      * @author Griefed
      */
-    actual override fun loaderVersionsListAscending() = fabricLoader.loaders
+    override fun loaderVersionsListAscending() = fabricLoader.loaders
 
     /**
      * @author Griefed
      */
-    actual override fun loaderVersionsListDescending() = fabricLoader.loaders.reversed()
+    override fun loaderVersionsListDescending() = fabricLoader.loaders.reversed()
 
     /**
      * @author Griefed
      */
-    actual override fun loaderVersionsArrayAscending() = fabricLoader.loaders.toTypedArray()
+    override fun loaderVersionsArrayAscending() = fabricLoader.loaders.toTypedArray()
 
     /**
      * @author Griefed
      */
-    actual override fun loaderVersionsArrayDescending() = fabricLoader.loaders.reversed().toTypedArray()
+    override fun loaderVersionsArrayDescending() = fabricLoader.loaders.reversed().toTypedArray()
 
     /**
      * @author Griefed
      */
-    actual override fun installerVersionsListAscending() = fabricInstaller.installers
+    override fun installerVersionsListAscending() = fabricInstaller.installers
 
     /**
      * @author Griefed
      */
-    actual override fun installerVersionsListDescending() = fabricInstaller.installers.reversed()
+    override fun installerVersionsListDescending() = fabricInstaller.installers.reversed()
 
     /**
      * @author Griefed
      */
-    actual override fun installerVersionsArrayAscending() = fabricInstaller.installers.toTypedArray()
+    override fun installerVersionsArrayAscending() = fabricInstaller.installers.toTypedArray()
 
     /**
      * @author Griefed
      */
-    actual override fun installerVersionsArrayDescending() = fabricInstaller.installers.reversed().toTypedArray()
+    override fun installerVersionsArrayDescending() = fabricInstaller.installers.reversed().toTypedArray()
 
     /**
      * @author Griefed
      */
-    actual override fun latestInstallerUrl() = fabricInstaller.latestInstallerUrl()
+    override fun latestInstallerUrl() = fabricInstaller.latestInstallerUrl()
 
     /**
      * @author Griefed
      */
-    actual override fun releaseInstallerUrl() = fabricInstaller.releaseInstallerUrl()
+    override fun releaseInstallerUrl() = fabricInstaller.releaseInstallerUrl()
 
     /**
      * @author Griefed
      */
-    actual override fun installerFor(version: String) =
+    override fun installerFor(version: String) =
         if (isInstallerUrlAvailable(version)) {
             val destination = File(installerDirectory, "$version.jar")
             if (!destination.isFile) {
@@ -169,7 +169,7 @@ actual class FabricMeta(
      * Download the improved Fabric launcher and store it in the launcher-cache directory.
      * @author Griefed
      */
-    actual fun launcherFor(minecraftVersion: String, fabricVersion: String): Optional<File> {
+    fun launcherFor(minecraftVersion: String, fabricVersion: String): Optional<File> {
         val destination = File(launchersDirectory, "$minecraftVersion-$fabricVersion.jar")
         return if (!destination.isFile) {
             val url = fabricInstaller.improvedLauncherUrl(minecraftVersion, fabricVersion)
@@ -187,24 +187,24 @@ actual class FabricMeta(
     /**
      * @author Griefed
      */
-    actual override fun isInstallerUrlAvailable(version: String) =
+    override fun isInstallerUrlAvailable(version: String) =
         Optional.ofNullable(fabricInstaller.installerUrlMeta[version]).isPresent
 
     /**
      * @author Griefed
      */
-    actual override fun getInstallerUrl(version: String) =
+    override fun getInstallerUrl(version: String) =
         Optional.ofNullable(fabricInstaller.installerUrlMeta[version])
 
     /**
      * @author Griefed
      */
-    actual override fun isVersionValid(version: String) = fabricLoader.loaders.contains(version)
+    override fun isVersionValid(version: String) = fabricLoader.loaders.contains(version)
 
     /**
      * @author Griefed
      */
-    actual override fun isMinecraftSupported(minecraftVersion: String) =
+    override fun isMinecraftSupported(minecraftVersion: String) =
         fabricIntermediaries.getIntermediary(minecraftVersion).isPresent
 
     /**
@@ -215,7 +215,7 @@ actual class FabricMeta(
      * @return URL to the Fabric launcher for the specified Minecraft and Fabric version.
      * @author Griefed
      */
-    actual fun improvedLauncherUrl(minecraftVersion: String, fabricVersion: String) =
+    fun improvedLauncherUrl(minecraftVersion: String, fabricVersion: String) =
         fabricInstaller.improvedLauncherUrl(minecraftVersion, fabricVersion)
 
     /**
diff --git a/serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/versionmeta/forge/ForgeInstance.kt b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/versionmeta/forge/ForgeInstance.kt
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/versionmeta/forge/ForgeInstance.kt
rename to serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/versionmeta/forge/ForgeInstance.kt
diff --git a/serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/versionmeta/forge/ForgeLoader.kt b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/versionmeta/forge/ForgeLoader.kt
similarity index 98%
rename from serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/versionmeta/forge/ForgeLoader.kt
rename to serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/versionmeta/forge/ForgeLoader.kt
index 00c0a4258..8a4732835 100644
--- a/serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/versionmeta/forge/ForgeLoader.kt
+++ b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/versionmeta/forge/ForgeLoader.kt
@@ -41,7 +41,7 @@ internal class ForgeLoader(
     private val utilities: Utilities,
     private val minecraftMeta: MinecraftMeta
 ) {
-    private val log = cachedLoggerOf(this.javaClass)
+    private val log by lazy { cachedLoggerOf(this.javaClass) }
     val minecraftVersions: MutableList<String> = ArrayList(100)
     val forgeVersions: MutableList<String> = ArrayList(100)
 
diff --git a/serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/versionmeta/forge/ForgeMeta.kt b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/versionmeta/forge/ForgeMeta.kt
similarity index 87%
rename from serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/versionmeta/forge/ForgeMeta.kt
rename to serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/versionmeta/forge/ForgeMeta.kt
index 45df28025..b6cc17b2f 100644
--- a/serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/versionmeta/forge/ForgeMeta.kt
+++ b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/versionmeta/forge/ForgeMeta.kt
@@ -20,7 +20,7 @@
 package de.griefed.serverpackcreator.api.versionmeta.forge
 
 import de.griefed.serverpackcreator.api.utilities.common.Utilities
-import de.griefed.serverpackcreator.api.utilities.common.createDirectories
+import de.griefed.serverpackcreator.api.utilities.common.create
 import de.griefed.serverpackcreator.api.versionmeta.minecraft.MinecraftMeta
 import java.io.File
 import java.io.IOException
@@ -35,7 +35,7 @@ import java.util.*
  * @author Griefed
  */
 @Suppress("unused")
-actual class ForgeMeta actual constructor(
+class ForgeMeta constructor(
     private val forgeManifest: File,
     private val utilities: Utilities,
     installerCacheDirectory: File
@@ -44,7 +44,7 @@ actual class ForgeMeta actual constructor(
     private val installerDirectory: File = File(installerCacheDirectory, "forge")
 
     init {
-        installerDirectory.createDirectories(create = true, directory = true)
+        installerDirectory.create(create = true, directory = true)
     }
 
     /**
@@ -82,7 +82,7 @@ actual class ForgeMeta actual constructor(
      * @return `true` if the given Minecraft and Forge versions are valid/supported/available.
      * @author Griefed
      */
-    actual fun isForgeAndMinecraftCombinationValid(minecraftVersion: String, forgeVersion: String) =
+    fun isForgeAndMinecraftCombinationValid(minecraftVersion: String, forgeVersion: String) =
         isMinecraftVersionSupported(minecraftVersion) && isForgeVersionValid(forgeVersion)
 
     /**
@@ -92,7 +92,7 @@ actual class ForgeMeta actual constructor(
      * @return `true` if the given Minecraft version is valid/supported/available.
      * @author Griefed
      */
-    actual fun isMinecraftVersionSupported(minecraftVersion: String) =
+    fun isMinecraftVersionSupported(minecraftVersion: String) =
         Optional.ofNullable(forgeLoader!!.versionMeta[minecraftVersion]).isPresent
 
     /**
@@ -102,7 +102,7 @@ actual class ForgeMeta actual constructor(
      * @return `true` if the given Forge version is valid/supported/available.
      * @author Griefed
      */
-    actual fun isForgeVersionValid(forgeVersion: String) =
+    fun isForgeVersionValid(forgeVersion: String) =
         Optional.ofNullable(forgeLoader!!.forgeToMinecraftMeta[forgeVersion]).isPresent
 
     /**
@@ -113,7 +113,7 @@ actual class ForgeMeta actual constructor(
      * @return `true` if Forge is available for the given Forge- and Minecraft version.
      * @author Griefed
      */
-    actual fun isForgeInstanceAvailable(minecraftVersion: String, forgeVersion: String) =
+    fun isForgeInstanceAvailable(minecraftVersion: String, forgeVersion: String) =
         getForgeInstance(minecraftVersion, forgeVersion).isPresent
 
     /**
@@ -136,7 +136,7 @@ actual class ForgeMeta actual constructor(
      * @return `true` if Forge is available for the given Forge version.
      * @author Griefed
      */
-    actual fun isForgeInstanceAvailable(forgeVersion: String) = getForgeInstance(forgeVersion).isPresent
+    fun isForgeInstanceAvailable(forgeVersion: String) = getForgeInstance(forgeVersion).isPresent
 
     /**
      * Get a [ForgeInstance] for a given Forge version, wrapped in an [Optional].
@@ -186,7 +186,7 @@ actual class ForgeMeta actual constructor(
      * @return Latest Forge version for the given Minecraft version, wrapped in an [Optional]
      * @author Griefed
      */
-    actual fun newestForgeVersion(minecraftVersion: String) =
+    fun newestForgeVersion(minecraftVersion: String) =
         if (!isMinecraftVersionSupported(minecraftVersion)) {
             Optional.empty()
         } else if (supportedForgeVersionsAscending(minecraftVersion).isPresent) {
@@ -204,7 +204,7 @@ actual class ForgeMeta actual constructor(
      * @return Oldest Forge version for the given Minecraft version, wrapped in [Optional]
      * @author Griefed
      */
-    actual fun oldestForgeVersion(minecraftVersion: String) =
+    fun oldestForgeVersion(minecraftVersion: String) =
         if (!isMinecraftVersionSupported(minecraftVersion)) {
             Optional.empty()
         } else if (supportedForgeVersionsAscending(minecraftVersion).isPresent) {
@@ -220,7 +220,7 @@ actual class ForgeMeta actual constructor(
      * @return List of available Forge versions.
      * @author Griefed
      */
-    actual fun forgeVersionsAscending() = forgeLoader!!.forgeVersions
+    fun forgeVersionsAscending() = forgeLoader!!.forgeVersions
 
     /**
      * Get the list of available Forge versions, in descending order.
@@ -228,7 +228,7 @@ actual class ForgeMeta actual constructor(
      * @return List of available Forge versions.
      * @author Griefed
      */
-    actual fun forgeVersionsDescending() = forgeVersionsAscending().reversed()
+    fun forgeVersionsDescending() = forgeVersionsAscending().reversed()
 
     /**
      * Get the array of available Forge versions, in ascending order.
@@ -236,7 +236,7 @@ actual class ForgeMeta actual constructor(
      * @return Array of available Forge versions.
      * @author Griefed
      */
-    actual fun forgeVersionsAscendingArray() = forgeVersionsAscending().toTypedArray()
+    fun forgeVersionsAscendingArray() = forgeVersionsAscending().toTypedArray()
 
     /**
      * Get the array of available Forge versions, in descending order.
@@ -244,7 +244,7 @@ actual class ForgeMeta actual constructor(
      * @return Array of available Forge versions.
      * @author Griefed
      */
-    actual fun forgeVersionsDescendingArray() = forgeVersionsDescending().toTypedArray()
+    fun forgeVersionsDescendingArray() = forgeVersionsDescending().toTypedArray()
 
     /**
      * Get a list of available Forge version for a given Minecraft version in ascending order.
@@ -253,7 +253,7 @@ actual class ForgeMeta actual constructor(
      * @return List of available Forge versions for the given Minecraft version in ascending order.
      * @author Griefed
      */
-    actual fun supportedForgeVersionsAscending(minecraftVersion: String) =
+    fun supportedForgeVersionsAscending(minecraftVersion: String) =
         Optional.ofNullable(forgeLoader?.versionMeta?.get(minecraftVersion))
 
     /**
@@ -263,7 +263,7 @@ actual class ForgeMeta actual constructor(
      * @return List of available Forge versions for the given Minecraft version in descending order.
      * @author Griefed
      */
-    actual fun supportedForgeVersionsDescending(minecraftVersion: String) =
+    fun supportedForgeVersionsDescending(minecraftVersion: String) =
         if (!isMinecraftVersionSupported(minecraftVersion)) {
             Optional.empty()
         } else {
@@ -281,7 +281,7 @@ actual class ForgeMeta actual constructor(
      * wrapped in an [Optional]
      * @author Griefed
      */
-    actual fun supportedForgeVersionsAscendingArray(minecraftVersion: String) =
+    fun supportedForgeVersionsAscendingArray(minecraftVersion: String) =
         if (!isMinecraftVersionSupported(minecraftVersion)) {
             Optional.empty()
         } else {
@@ -300,7 +300,7 @@ actual class ForgeMeta actual constructor(
      * wrapped in an [Optional]
      * @author Griefed
      */
-    actual fun supportedForgeVersionsDescendingArray(minecraftVersion: String) =
+    fun supportedForgeVersionsDescendingArray(minecraftVersion: String) =
         if (!isMinecraftVersionSupported(minecraftVersion)) {
             Optional.empty()
         } else {
@@ -315,7 +315,7 @@ actual class ForgeMeta actual constructor(
      * @return Minecraft version for the given Forge version, wrapped in an [Optional].
      * @author Griefed
      */
-    actual fun minecraftVersion(forgeVersion: String) =
+    fun minecraftVersion(forgeVersion: String) =
         Optional.ofNullable(forgeLoader!!.forgeToMinecraftMeta[forgeVersion])
 
     /**
@@ -324,7 +324,7 @@ actual class ForgeMeta actual constructor(
      * @return List of Forge supported Minecraft versions, in ascending order.
      * @author Griefed
      */
-    actual fun supportedMinecraftVersionsAscending() = forgeLoader!!.minecraftVersions
+    fun supportedMinecraftVersionsAscending() = forgeLoader!!.minecraftVersions
 
     /**
      * Get the list of Forge supported Minecraft versions, in descending order.
@@ -332,7 +332,7 @@ actual class ForgeMeta actual constructor(
      * @return List of Forge supported Minecraft versions, in descending order.
      * @author Griefed
      */
-    actual fun supportedMinecraftVersionsDescending() = supportedMinecraftVersionsAscending().reversed()
+    fun supportedMinecraftVersionsDescending() = supportedMinecraftVersionsAscending().reversed()
 
     /**
      * Get the array of Forge supported Minecraft versions, in ascending order.
@@ -340,7 +340,7 @@ actual class ForgeMeta actual constructor(
      * @return Array of Forge supported Minecraft versions, in ascending order.
      * @author Griefed
      */
-    actual fun supportedMinecraftVersionsAscendingArray() = supportedMinecraftVersionsAscending().toTypedArray()
+    fun supportedMinecraftVersionsAscendingArray() = supportedMinecraftVersionsAscending().toTypedArray()
 
     /**
      * Get the array of Forge supported Minecraft versions, in descending order.
@@ -348,7 +348,7 @@ actual class ForgeMeta actual constructor(
      * @return Array of Forge supported Minecraft versions, in descending order.
      * @author Griefed
      */
-    actual fun supportedMinecraftVersionsDescendingArray() = supportedMinecraftVersionsDescending().toTypedArray()
+    fun supportedMinecraftVersionsDescendingArray() = supportedMinecraftVersionsDescending().toTypedArray()
 
     /**
      * Get the Forge server installer URL for a given Forge version, wrapped in an [Optional].
@@ -357,7 +357,7 @@ actual class ForgeMeta actual constructor(
      * @return Forge server installer URL for the given Forge version, wrapped in an [Optional].
      * @author Griefed
      */
-    actual fun installerUrl(forgeVersion: String) =
+    fun installerUrl(forgeVersion: String) =
         if (isForgeVersionValid(forgeVersion) && getForgeInstance(forgeVersion).isPresent) {
             val instance = getForgeInstance(forgeVersion).get()
             Optional.of(instance.installerUrl)
@@ -374,7 +374,7 @@ actual class ForgeMeta actual constructor(
      * can check whether it is available first.
      * @author Griefed
      */
-    actual fun installerFor(forgeVersion: String, minecraftVersion: String) =
+    fun installerFor(forgeVersion: String, minecraftVersion: String) =
         if (isForgeInstanceAvailable(minecraftVersion, forgeVersion)) {
             val destination = File(installerDirectory, "$forgeVersion-$minecraftVersion.jar")
             if (!destination.isFile) {
diff --git a/serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/versionmeta/legacyfabric/LegacyFabricGame.kt b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/versionmeta/legacyfabric/LegacyFabricGame.kt
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/versionmeta/legacyfabric/LegacyFabricGame.kt
rename to serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/versionmeta/legacyfabric/LegacyFabricGame.kt
diff --git a/serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/versionmeta/legacyfabric/LegacyFabricInstaller.kt b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/versionmeta/legacyfabric/LegacyFabricInstaller.kt
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/versionmeta/legacyfabric/LegacyFabricInstaller.kt
rename to serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/versionmeta/legacyfabric/LegacyFabricInstaller.kt
diff --git a/serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/versionmeta/legacyfabric/LegacyFabricLoader.kt b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/versionmeta/legacyfabric/LegacyFabricLoader.kt
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/versionmeta/legacyfabric/LegacyFabricLoader.kt
rename to serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/versionmeta/legacyfabric/LegacyFabricLoader.kt
diff --git a/serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/versionmeta/legacyfabric/LegacyFabricMeta.kt b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/versionmeta/legacyfabric/LegacyFabricMeta.kt
similarity index 70%
rename from serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/versionmeta/legacyfabric/LegacyFabricMeta.kt
rename to serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/versionmeta/legacyfabric/LegacyFabricMeta.kt
index 4e39d8112..fe4ca8e21 100644
--- a/serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/versionmeta/legacyfabric/LegacyFabricMeta.kt
+++ b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/versionmeta/legacyfabric/LegacyFabricMeta.kt
@@ -20,7 +20,7 @@
 package de.griefed.serverpackcreator.api.versionmeta.legacyfabric
 
 import de.griefed.serverpackcreator.api.utilities.common.Utilities
-import de.griefed.serverpackcreator.api.utilities.common.createDirectories
+import de.griefed.serverpackcreator.api.utilities.common.create
 import de.griefed.serverpackcreator.api.versionmeta.Meta
 import org.xml.sax.SAXException
 import java.io.File
@@ -41,7 +41,7 @@ import javax.xml.parsers.ParserConfigurationException
  * @author Griefed
  */
 @Suppress("unused")
-actual class LegacyFabricMeta actual constructor(
+class LegacyFabricMeta constructor(
     gameVersionsManifest: File,
     loaderVersionsManifest: File,
     installerVersionsManifest: File,
@@ -54,7 +54,7 @@ actual class LegacyFabricMeta actual constructor(
     private val installerDirectory: File = File(installerCacheDirectory, "legacyfabric")
 
     init {
-        installerDirectory.createDirectories(create = true, directory = true)
+        installerDirectory.create(create = true, directory = true)
     }
 
     @Throws(IOException::class, ParserConfigurationException::class, SAXException::class)
@@ -64,18 +64,18 @@ actual class LegacyFabricMeta actual constructor(
         installerVersions.update()
     }
 
-    actual override fun latestLoader() = loaderVersions.allVersions[0]
-    actual override fun releaseLoader() = loaderVersions.releases[0]
-    actual override fun latestInstaller() = installerVersions.latest!!
-    actual override fun releaseInstaller() = installerVersions.release!!
-    actual override fun loaderVersionsListAscending() = loaderVersionsListDescending().reversed().toMutableList()
-    actual override fun loaderVersionsListDescending() = loaderVersions.allVersions
-    actual override fun loaderVersionsArrayAscending() = loaderVersionsListAscending().toTypedArray()
-    actual override fun loaderVersionsArrayDescending() = loaderVersionsListDescending().toTypedArray()
-    actual override fun installerVersionsListAscending() = installerVersions.allVersions
-    actual override fun installerVersionsListDescending() = installerVersionsListAscending().reversed().toMutableList()
-    actual override fun installerVersionsArrayAscending() = installerVersionsListAscending().toTypedArray()
-    actual override fun installerVersionsArrayDescending() = installerVersionsListDescending().toTypedArray()
+    override fun latestLoader() = loaderVersions.allVersions[0]
+    override fun releaseLoader() = loaderVersions.releases[0]
+    override fun latestInstaller() = installerVersions.latest!!
+    override fun releaseInstaller() = installerVersions.release!!
+    override fun loaderVersionsListAscending() = loaderVersionsListDescending().reversed().toMutableList()
+    override fun loaderVersionsListDescending() = loaderVersions.allVersions
+    override fun loaderVersionsArrayAscending() = loaderVersionsListAscending().toTypedArray()
+    override fun loaderVersionsArrayDescending() = loaderVersionsListDescending().toTypedArray()
+    override fun installerVersionsListAscending() = installerVersions.allVersions
+    override fun installerVersionsListDescending() = installerVersionsListAscending().reversed().toMutableList()
+    override fun installerVersionsArrayAscending() = installerVersionsListAscending().toTypedArray()
+    override fun installerVersionsArrayDescending() = installerVersionsListDescending().toTypedArray()
 
     @Throws(MalformedURLException::class)
     override fun latestInstallerUrl() = installerVersions.latestURL()
@@ -83,7 +83,7 @@ actual class LegacyFabricMeta actual constructor(
     @Throws(MalformedURLException::class)
     override fun releaseInstallerUrl() = installerVersions.releaseURL()
 
-    actual override fun installerFor(version: String) =
+    override fun installerFor(version: String) =
         if (isInstallerUrlAvailable(version)) {
             val destination = File(installerDirectory, "$version.jar")
             if (!destination.isFile) {
@@ -104,7 +104,7 @@ actual class LegacyFabricMeta actual constructor(
     /**
      * @author Griefed
      */
-    actual override fun isInstallerUrlAvailable(version: String) =
+    override fun isInstallerUrlAvailable(version: String) =
         try {
             installerVersions.specificURL(version).isPresent
         } catch (e: MalformedURLException) {
@@ -120,12 +120,12 @@ actual class LegacyFabricMeta actual constructor(
     /**
      * @author Griefed
      */
-    actual override fun isVersionValid(version: String) = loaderVersions.allVersions.contains(version)
+    override fun isVersionValid(version: String) = loaderVersions.allVersions.contains(version)
 
     /**
      * @author Griefed
      */
-    actual override fun isMinecraftSupported(minecraftVersion: String) =
+    override fun isMinecraftSupported(minecraftVersion: String) =
         gameVersions.allVersions.contains(minecraftVersion)
 
     /**
@@ -134,5 +134,5 @@ actual class LegacyFabricMeta actual constructor(
      * @return All Legacy Fabric supported Minecraft versions.
      * @author Griefed
      */
-    actual fun supportedMinecraftVersions() = gameVersions.allVersions
+    fun supportedMinecraftVersions() = gameVersions.allVersions
 }
\ No newline at end of file
diff --git a/serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/versionmeta/legacyfabric/LegacyFabricVersioning.kt b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/versionmeta/legacyfabric/LegacyFabricVersioning.kt
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/versionmeta/legacyfabric/LegacyFabricVersioning.kt
rename to serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/versionmeta/legacyfabric/LegacyFabricVersioning.kt
diff --git a/serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/versionmeta/minecraft/MinecraftClient.kt b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/versionmeta/minecraft/MinecraftClient.kt
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/versionmeta/minecraft/MinecraftClient.kt
rename to serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/versionmeta/minecraft/MinecraftClient.kt
diff --git a/serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/versionmeta/minecraft/MinecraftClientMeta.kt b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/versionmeta/minecraft/MinecraftClientMeta.kt
similarity index 98%
rename from serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/versionmeta/minecraft/MinecraftClientMeta.kt
rename to serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/versionmeta/minecraft/MinecraftClientMeta.kt
index 641b9fe39..fe86ac4c7 100644
--- a/serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/versionmeta/minecraft/MinecraftClientMeta.kt
+++ b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/versionmeta/minecraft/MinecraftClientMeta.kt
@@ -45,7 +45,7 @@ internal class MinecraftClientMeta(
     private val utilities: Utilities,
     private val apiProperties: ApiProperties
 ) {
-    private val log = cachedLoggerOf(this.javaClass)
+    private val log by lazy { cachedLoggerOf(this.javaClass) }
     val releases: MutableList<MinecraftClient> = ArrayList(100)
     val snapshots: MutableList<MinecraftClient> = ArrayList(200)
     val allVersions: MutableList<MinecraftClient> = ArrayList(300)
diff --git a/serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/versionmeta/minecraft/MinecraftMeta.kt b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/versionmeta/minecraft/MinecraftMeta.kt
similarity index 95%
rename from serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/versionmeta/minecraft/MinecraftMeta.kt
rename to serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/versionmeta/minecraft/MinecraftMeta.kt
index 969a6c218..e3dd6c608 100644
--- a/serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/versionmeta/minecraft/MinecraftMeta.kt
+++ b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/versionmeta/minecraft/MinecraftMeta.kt
@@ -38,7 +38,7 @@ import java.util.*
  *
  * @author Griefed
  */
-actual class MinecraftMeta(
+class MinecraftMeta(
     minecraftManifest: File,
     injectedForgeMeta: ForgeMeta,
     utilities: Utilities,
@@ -78,7 +78,7 @@ actual class MinecraftMeta(
      * @return `true` if a [MinecraftClient] is available.
      * @author Griefed
      */
-    actual fun isMinecraftVersionAvailable(minecraftVersion: String): Boolean {
+    fun isMinecraftVersionAvailable(minecraftVersion: String): Boolean {
         return getClient(minecraftVersion).isPresent
     }
 
@@ -101,7 +101,7 @@ actual class MinecraftMeta(
      * descending order.
      * @author Griefed
      */
-    actual fun releaseVersionsArrayDescending(): Array<String> {
+    fun releaseVersionsArrayDescending(): Array<String> {
         return releaseVersionsDescending().toTypedArray()
     }
 
@@ -113,7 +113,7 @@ actual class MinecraftMeta(
      * descending order.
      * @author Griefed
      */
-    actual fun releaseVersionsDescending(): List<String> {
+    fun releaseVersionsDescending(): List<String> {
         val list: MutableList<String> = ArrayList(100)
         for (client in releasesDescending()) {
             list.add(client.version)
@@ -140,7 +140,7 @@ actual class MinecraftMeta(
      * ascending order.
      * @author Griefed
      */
-    actual fun releaseVersionsArrayAscending(): Array<String> {
+    fun releaseVersionsArrayAscending(): Array<String> {
         return releaseVersionsAscending().toTypedArray()
     }
 
@@ -152,7 +152,7 @@ actual class MinecraftMeta(
      * order.
      * @author Griefed
      */
-    actual fun releaseVersionsAscending(): List<String> {
+    fun releaseVersionsAscending(): List<String> {
         val list: MutableList<String> = ArrayList(100)
         for (client in releasesDescending()) {
             list.add(client.version)
@@ -168,7 +168,7 @@ actual class MinecraftMeta(
      * descending order.
      * @author Griefed
      */
-    actual fun snapshotVersionsArrayDescending(): Array<String> {
+    fun snapshotVersionsArrayDescending(): Array<String> {
         return snapshotVersionsDescending().toTypedArray()
     }
 
@@ -180,7 +180,7 @@ actual class MinecraftMeta(
      * descending order.
      * @author Griefed
      */
-    actual fun snapshotVersionsDescending(): List<String> {
+    fun snapshotVersionsDescending(): List<String> {
         val list: MutableList<String> = ArrayList(100)
         for (client in snapshotsDescending()) {
             list.add(client.version)
@@ -207,7 +207,7 @@ actual class MinecraftMeta(
      * ascending order.
      * @author Griefed
      */
-    actual fun snapshotVersionsArrayAscending(): Array<String> {
+    fun snapshotVersionsArrayAscending(): Array<String> {
         return snapshotVersionsAscending().toTypedArray()
     }
 
@@ -219,7 +219,7 @@ actual class MinecraftMeta(
      * ascending order.
      * @author Griefed
      */
-    actual fun snapshotVersionsAscending(): List<String> {
+    fun snapshotVersionsAscending(): List<String> {
         val list: MutableList<String> = ArrayList(100)
         for (client in snapshotsDescending()) {
             list.add(client.version)
@@ -234,7 +234,7 @@ actual class MinecraftMeta(
      * @return All available Minecraft versions in descending order.
      * @author Griefed
      */
-    actual fun allVersionsArrayDescending(): Array<String> {
+    fun allVersionsArrayDescending(): Array<String> {
         return allVersionsDescending().toTypedArray()
     }
     /*
@@ -252,7 +252,7 @@ actual class MinecraftMeta(
      * @author Griefed
      */
     @Suppress("MemberVisibilityCanBePrivate")
-    actual fun allVersionsDescending(): List<String> {
+    fun allVersionsDescending(): List<String> {
         val versions: MutableList<String> = ArrayList(100)
         for (client in allDescending()) {
             versions.add(client.version)
@@ -280,7 +280,7 @@ actual class MinecraftMeta(
      * @author Griefed
      */
     @Suppress("unused")
-    actual fun allVersionsArrayAscending(): Array<String> {
+    fun allVersionsArrayAscending(): Array<String> {
         return allVersionsAscending().toTypedArray()
     }
 
@@ -292,7 +292,7 @@ actual class MinecraftMeta(
      * @author Griefed
      */
     @Suppress("MemberVisibilityCanBePrivate")
-    actual fun allVersionsAscending(): List<String> {
+    fun allVersionsAscending(): List<String> {
         val versions: MutableList<String> = ArrayList(releaseVersionsAscending())
         for (client in allAscending()) {
             versions.add(client.version)
@@ -435,7 +435,7 @@ actual class MinecraftMeta(
      * @return `true` if a [MinecraftServer] is available.
      * @author Griefed
      */
-    actual fun isServerAvailable(minecraftVersion: String): Boolean {
+    fun isServerAvailable(minecraftVersion: String): Boolean {
         return getServer(minecraftVersion).isPresent
     }
 
diff --git a/serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/versionmeta/minecraft/MinecraftServer.kt b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/versionmeta/minecraft/MinecraftServer.kt
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/versionmeta/minecraft/MinecraftServer.kt
rename to serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/versionmeta/minecraft/MinecraftServer.kt
diff --git a/serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/versionmeta/minecraft/MinecraftServerMeta.kt b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/versionmeta/minecraft/MinecraftServerMeta.kt
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/versionmeta/minecraft/MinecraftServerMeta.kt
rename to serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/versionmeta/minecraft/MinecraftServerMeta.kt
diff --git a/serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/versionmeta/neoforge/NeoForgeInstance.kt b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/versionmeta/neoforge/NeoForgeInstance.kt
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/versionmeta/neoforge/NeoForgeInstance.kt
rename to serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/versionmeta/neoforge/NeoForgeInstance.kt
diff --git a/serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/versionmeta/neoforge/NeoForgeLoader.kt b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/versionmeta/neoforge/NeoForgeLoader.kt
similarity index 99%
rename from serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/versionmeta/neoforge/NeoForgeLoader.kt
rename to serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/versionmeta/neoforge/NeoForgeLoader.kt
index 4da6a2969..c012a896b 100644
--- a/serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/versionmeta/neoforge/NeoForgeLoader.kt
+++ b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/versionmeta/neoforge/NeoForgeLoader.kt
@@ -42,7 +42,7 @@ internal class NeoForgeLoader(
     private val utilities: Utilities,
     private val minecraftMeta: MinecraftMeta
 ) {
-    private val log = cachedLoggerOf(this.javaClass)
+    private val log by lazy { cachedLoggerOf(this.javaClass) }
     val minecraftVersions: MutableList<String> = ArrayList(100)
     val neoForgeVersions: MutableList<String> = ArrayList(100)
     private val version = "version"
diff --git a/serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/versionmeta/neoforge/NeoForgeMeta.kt b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/versionmeta/neoforge/NeoForgeMeta.kt
similarity index 86%
rename from serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/versionmeta/neoforge/NeoForgeMeta.kt
rename to serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/versionmeta/neoforge/NeoForgeMeta.kt
index def1df7b7..0dc6b6a01 100644
--- a/serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/versionmeta/neoforge/NeoForgeMeta.kt
+++ b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/versionmeta/neoforge/NeoForgeMeta.kt
@@ -20,7 +20,7 @@
 package de.griefed.serverpackcreator.api.versionmeta.neoforge
 
 import de.griefed.serverpackcreator.api.utilities.common.Utilities
-import de.griefed.serverpackcreator.api.utilities.common.createDirectories
+import de.griefed.serverpackcreator.api.utilities.common.create
 import de.griefed.serverpackcreator.api.versionmeta.minecraft.MinecraftMeta
 import java.io.File
 import java.io.IOException
@@ -35,7 +35,7 @@ import java.util.*
  * @author Griefed
  */
 @Suppress("unused")
-actual class NeoForgeMeta actual constructor(
+class NeoForgeMeta(
     private val oldNeoForgeManifest: File,
     private val newNeoForgeManifest: File,
     private val utilities: Utilities,
@@ -45,7 +45,7 @@ actual class NeoForgeMeta actual constructor(
     private val installerDirectory: File = File(installerCacheDirectory, "neoforge")
 
     init {
-        installerDirectory.createDirectories(create = true, directory = true)
+        installerDirectory.create(create = true, directory = true)
     }
 
     /**
@@ -87,7 +87,7 @@ actual class NeoForgeMeta actual constructor(
      * @return `true` if the given Minecraft and NeoForge versions are valid/supported/available.
      * @author Griefed
      */
-    actual fun isNeoForgeAndMinecraftCombinationValid(minecraftVersion: String, neoForgeVersion: String) =
+    fun isNeoForgeAndMinecraftCombinationValid(minecraftVersion: String, neoForgeVersion: String) =
         isMinecraftVersionSupported(minecraftVersion) && isNeoForgeVersionValid(neoForgeVersion)
 
     /**
@@ -97,7 +97,7 @@ actual class NeoForgeMeta actual constructor(
      * @return `true` if the given Minecraft version is valid/supported/available.
      * @author Griefed
      */
-    actual fun isMinecraftVersionSupported(minecraftVersion: String) =
+    fun isMinecraftVersionSupported(minecraftVersion: String) =
         Optional.ofNullable(neoForgeLoader!!.versionMeta[minecraftVersion]).isPresent
 
     /**
@@ -107,7 +107,7 @@ actual class NeoForgeMeta actual constructor(
      * @return `true` if the given NeoForge version is valid/supported/available.
      * @author Griefed
      */
-    actual fun isNeoForgeVersionValid(neoForgeVersion: String) =
+    fun isNeoForgeVersionValid(neoForgeVersion: String) =
         Optional.ofNullable(neoForgeLoader!!.neoForgeToMinecraftMeta[neoForgeVersion]).isPresent
 
     /**
@@ -118,7 +118,7 @@ actual class NeoForgeMeta actual constructor(
      * @return `true` if NeoForge is available for the given NeoForge- and Minecraft version.
      * @author Griefed
      */
-    actual fun isNeoForgeInstanceAvailable(minecraftVersion: String, neoForgeVersion: String) =
+    fun isNeoForgeInstanceAvailable(minecraftVersion: String, neoForgeVersion: String) =
         getNeoForgeInstance(minecraftVersion, neoForgeVersion).isPresent
 
     /**
@@ -141,7 +141,7 @@ actual class NeoForgeMeta actual constructor(
      * @return `true` if NeoForge is available for the given NeoForge version.
      * @author Griefed
      */
-    actual fun isNeoForgeInstanceAvailable(neoForgeVersion: String) = getNeoForgeInstance(neoForgeVersion).isPresent
+    fun isNeoForgeInstanceAvailable(neoForgeVersion: String) = getNeoForgeInstance(neoForgeVersion).isPresent
 
     /**
      * Get a [NeoForgeInstance] for a given NeoForge version, wrapped in an [Optional].
@@ -191,7 +191,7 @@ actual class NeoForgeMeta actual constructor(
      * @return Latest NeoForge version for the given Minecraft version, wrapped in an [Optional]
      * @author Griefed
      */
-    actual fun newestNeoForgeVersion(minecraftVersion: String) =
+    fun newestNeoForgeVersion(minecraftVersion: String) =
         if (!isMinecraftVersionSupported(minecraftVersion)) {
             Optional.empty()
         } else if (supportedNeoForgeVersionsAscending(minecraftVersion).isPresent) {
@@ -207,7 +207,7 @@ actual class NeoForgeMeta actual constructor(
      * @return Oldest NeoForge version for the given Minecraft version, wrapped in [Optional]
      * @author Griefed
      */
-    actual fun oldestNeoForgeVersion(minecraftVersion: String) =
+    fun oldestNeoForgeVersion(minecraftVersion: String) =
         if (!isMinecraftVersionSupported(minecraftVersion)) {
             Optional.empty()
         } else if (supportedNeoForgeVersionsAscending(minecraftVersion).isPresent) {
@@ -223,7 +223,7 @@ actual class NeoForgeMeta actual constructor(
      * @return List of available NeoForge versions.
      * @author Griefed
      */
-    actual fun neoForgeVersionsAscending() = neoForgeLoader!!.neoForgeVersions.reversed().toMutableList()
+    fun neoForgeVersionsAscending() = neoForgeLoader!!.neoForgeVersions.reversed().toMutableList()
 
     /**
      * Get the list of available NeoForge versions, in descending order.
@@ -231,7 +231,7 @@ actual class NeoForgeMeta actual constructor(
      * @return List of available NeoForge versions.
      * @author Griefed
      */
-    actual fun neoForgeVersionsDescending() = neoForgeVersionsAscending().toList()
+    fun neoForgeVersionsDescending() = neoForgeVersionsAscending().toList()
 
     /**
      * Get the array of available NeoForge versions, in ascending order.
@@ -239,7 +239,7 @@ actual class NeoForgeMeta actual constructor(
      * @return Array of available NeoForge versions.
      * @author Griefed
      */
-    actual fun neoForgeVersionsAscendingArray() = neoForgeVersionsAscending().toTypedArray()
+    fun neoForgeVersionsAscendingArray() = neoForgeVersionsAscending().toTypedArray()
 
     /**
      * Get the array of available NeoForge versions, in descending order.
@@ -247,7 +247,7 @@ actual class NeoForgeMeta actual constructor(
      * @return Array of available NeoForge versions.
      * @author Griefed
      */
-    actual fun neoForgeVersionsDescendingArray() = neoForgeVersionsDescending().toTypedArray()
+    fun neoForgeVersionsDescendingArray() = neoForgeVersionsDescending().toTypedArray()
 
     /**
      * Get a list of available NeoForge version for a given Minecraft version in ascending order.
@@ -256,7 +256,7 @@ actual class NeoForgeMeta actual constructor(
      * @return List of available NeoForge versions for the given Minecraft version in ascending order.
      * @author Griefed
      */
-    actual fun supportedNeoForgeVersionsAscending(minecraftVersion: String) =
+    fun supportedNeoForgeVersionsAscending(minecraftVersion: String) =
         Optional.ofNullable(neoForgeLoader?.versionMeta?.get(minecraftVersion)?.reversed())
 
     /**
@@ -266,7 +266,7 @@ actual class NeoForgeMeta actual constructor(
      * @return List of available NeoForge versions for the given Minecraft version in descending order.
      * @author Griefed
      */
-    actual fun supportedNeoForgeVersionsDescending(minecraftVersion: String) =
+    fun supportedNeoForgeVersionsDescending(minecraftVersion: String) =
         if (!isMinecraftVersionSupported(minecraftVersion)) {
             Optional.empty()
         } else {
@@ -283,7 +283,7 @@ actual class NeoForgeMeta actual constructor(
      * wrapped in an [Optional]
      * @author Griefed
      */
-    actual fun supportedNeoForgeVersionsAscendingArray(minecraftVersion: String) =
+    fun supportedNeoForgeVersionsAscendingArray(minecraftVersion: String) =
         if (!isMinecraftVersionSupported(minecraftVersion)) {
             Optional.empty()
         } else {
@@ -302,7 +302,7 @@ actual class NeoForgeMeta actual constructor(
      * wrapped in an [Optional]
      * @author Griefed
      */
-    actual fun supportedNeoForgeVersionsDescendingArray(minecraftVersion: String) =
+    fun supportedNeoForgeVersionsDescendingArray(minecraftVersion: String) =
         if (!isMinecraftVersionSupported(minecraftVersion)) {
             Optional.empty()
         } else {
@@ -317,7 +317,7 @@ actual class NeoForgeMeta actual constructor(
      * @return Minecraft version for the given Neo version, wrapped in an [Optional].
      * @author Griefed
      */
-    actual fun minecraftVersion(neoForgeVersion: String) =
+    fun minecraftVersion(neoForgeVersion: String) =
         Optional.ofNullable(neoForgeLoader!!.neoForgeToMinecraftMeta[neoForgeVersion])
 
     /**
@@ -326,7 +326,7 @@ actual class NeoForgeMeta actual constructor(
      * @return List of NeoForge supported Minecraft versions, in ascending order.
      * @author Griefed
      */
-    actual fun supportedMinecraftVersionsAscending() = neoForgeLoader!!.minecraftVersions
+    fun supportedMinecraftVersionsAscending() = neoForgeLoader!!.minecraftVersions
 
     /**
      * Get the list of NeoForge supported Minecraft versions, in descending order.
@@ -334,7 +334,7 @@ actual class NeoForgeMeta actual constructor(
      * @return List of NeoForge supported Minecraft versions, in descending order.
      * @author Griefed
      */
-    actual fun supportedMinecraftVersionsDescending() = supportedMinecraftVersionsAscending().reversed()
+    fun supportedMinecraftVersionsDescending() = supportedMinecraftVersionsAscending().reversed()
 
     /**
      * Get the array of NeoForge supported Minecraft versions, in ascending order.
@@ -342,7 +342,7 @@ actual class NeoForgeMeta actual constructor(
      * @return Array of NeoForge supported Minecraft versions, in ascending order.
      * @author Griefed
      */
-    actual fun supportedMinecraftVersionsAscendingArray() = supportedMinecraftVersionsAscending().toTypedArray()
+    fun supportedMinecraftVersionsAscendingArray() = supportedMinecraftVersionsAscending().toTypedArray()
 
     /**
      * Get the array of NeoForge supported Minecraft versions, in descending order.
@@ -350,7 +350,7 @@ actual class NeoForgeMeta actual constructor(
      * @return Array of NeoForge supported Minecraft versions, in descending order.
      * @author Griefed
      */
-    actual fun supportedMinecraftVersionsDescendingArray() = supportedMinecraftVersionsDescending().toTypedArray()
+    fun supportedMinecraftVersionsDescendingArray() = supportedMinecraftVersionsDescending().toTypedArray()
 
     /**
      * Get the NeoForge server installer URL for a given NeoForge version, wrapped in an [Optional].
@@ -359,7 +359,7 @@ actual class NeoForgeMeta actual constructor(
      * @return NeoForge server installer URL for the given NeoForge version, wrapped in an [Optional].
      * @author Griefed
      */
-    actual fun installerUrl(neoForgeVersion: String) =
+    fun installerUrl(neoForgeVersion: String) =
         if (isNeoForgeVersionValid(neoForgeVersion) && getNeoForgeInstance(neoForgeVersion).isPresent) {
             val instance = getNeoForgeInstance(neoForgeVersion).get()
             Optional.of(instance.installerUrl)
@@ -373,7 +373,7 @@ actual class NeoForgeMeta actual constructor(
      * can check whether it is available first.
      * @author Griefed
      */
-    actual fun installerFor(neoForgeVersion: String, minecraftVersion: String) =
+    fun installerFor(neoForgeVersion: String, minecraftVersion: String) =
         if (isNeoForgeInstanceAvailable(minecraftVersion, neoForgeVersion)) {
             val destination = File(installerDirectory, "$neoForgeVersion-$minecraftVersion.jar")
             if (!destination.isFile) {
diff --git a/serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/versionmeta/neoforge/NewNeoForgeInstance.kt b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/versionmeta/neoforge/NewNeoForgeInstance.kt
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/versionmeta/neoforge/NewNeoForgeInstance.kt
rename to serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/versionmeta/neoforge/NewNeoForgeInstance.kt
diff --git a/serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/versionmeta/neoforge/OldNeoForgeInstance.kt b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/versionmeta/neoforge/OldNeoForgeInstance.kt
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/versionmeta/neoforge/OldNeoForgeInstance.kt
rename to serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/versionmeta/neoforge/OldNeoForgeInstance.kt
diff --git a/serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/versionmeta/quilt/QuiltInstaller.kt b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/versionmeta/quilt/QuiltInstaller.kt
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/versionmeta/quilt/QuiltInstaller.kt
rename to serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/versionmeta/quilt/QuiltInstaller.kt
diff --git a/serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/versionmeta/quilt/QuiltLoader.kt b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/versionmeta/quilt/QuiltLoader.kt
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/versionmeta/quilt/QuiltLoader.kt
rename to serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/versionmeta/quilt/QuiltLoader.kt
diff --git a/serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/versionmeta/quilt/QuiltMeta.kt b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/versionmeta/quilt/QuiltMeta.kt
similarity index 60%
rename from serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/versionmeta/quilt/QuiltMeta.kt
rename to serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/versionmeta/quilt/QuiltMeta.kt
index c13baf8d3..dd3097ffe 100644
--- a/serverpackcreator-api/src/jvmMain/kotlin/de/griefed/serverpackcreator/api/versionmeta/quilt/QuiltMeta.kt
+++ b/serverpackcreator-api/src/main/kotlin/de/griefed/serverpackcreator/api/versionmeta/quilt/QuiltMeta.kt
@@ -20,7 +20,7 @@
 package de.griefed.serverpackcreator.api.versionmeta.quilt
 
 import de.griefed.serverpackcreator.api.utilities.common.Utilities
-import de.griefed.serverpackcreator.api.utilities.common.createDirectories
+import de.griefed.serverpackcreator.api.utilities.common.create
 import de.griefed.serverpackcreator.api.versionmeta.Meta
 import de.griefed.serverpackcreator.api.versionmeta.fabric.FabricIntermediaries
 import org.xml.sax.SAXException
@@ -39,7 +39,7 @@ import javax.xml.parsers.ParserConfigurationException
  *
  * @author Griefed
  */
-actual class QuiltMeta(
+class QuiltMeta(
     quiltManifest: File,
     quiltInstallerManifest: File,
     private val fabricIntermediaries: FabricIntermediaries,
@@ -51,7 +51,7 @@ actual class QuiltMeta(
     private val installerDirectory: File = File(installerCacheDirectory, "quilt")
 
     init {
-        installerDirectory.createDirectories(create = true, directory = true)
+        installerDirectory.create(create = true, directory = true)
     }
 
     @Throws(IOException::class, ParserConfigurationException::class, SAXException::class)
@@ -60,22 +60,22 @@ actual class QuiltMeta(
         quiltInstaller.update()
     }
 
-    actual override fun latestLoader() = quiltLoader.latest!!
-    actual override fun releaseLoader() = quiltLoader.release!!
-    actual override fun latestInstaller() = quiltInstaller.latestInstaller!!
-    actual override fun releaseInstaller() = quiltInstaller.releaseInstaller!!
-    actual override fun loaderVersionsListAscending() = quiltLoader.loaders
-    actual override fun loaderVersionsListDescending() = quiltLoader.loaders.reversed()
-    actual override fun loaderVersionsArrayAscending() = quiltLoader.loaders.toTypedArray()
-    actual override fun loaderVersionsArrayDescending() = quiltLoader.loaders.reversed().toTypedArray()
-    actual override fun installerVersionsListAscending() = quiltInstaller.installers
-    actual override fun installerVersionsListDescending() = quiltInstaller.installers.reversed()
-    actual override fun installerVersionsArrayAscending() = quiltInstaller.installers.toTypedArray()
-    actual override fun installerVersionsArrayDescending() = quiltInstaller.installers.reversed().toTypedArray()
-    actual override fun latestInstallerUrl() = quiltInstaller.latestInstallerUrl!!
-    actual override fun releaseInstallerUrl() = quiltInstaller.releaseInstallerUrl!!
+    override fun latestLoader() = quiltLoader.latest!!
+    override fun releaseLoader() = quiltLoader.release!!
+    override fun latestInstaller() = quiltInstaller.latestInstaller!!
+    override fun releaseInstaller() = quiltInstaller.releaseInstaller!!
+    override fun loaderVersionsListAscending() = quiltLoader.loaders
+    override fun loaderVersionsListDescending() = quiltLoader.loaders.reversed()
+    override fun loaderVersionsArrayAscending() = quiltLoader.loaders.toTypedArray()
+    override fun loaderVersionsArrayDescending() = quiltLoader.loaders.reversed().toTypedArray()
+    override fun installerVersionsListAscending() = quiltInstaller.installers
+    override fun installerVersionsListDescending() = quiltInstaller.installers.reversed()
+    override fun installerVersionsArrayAscending() = quiltInstaller.installers.toTypedArray()
+    override fun installerVersionsArrayDescending() = quiltInstaller.installers.reversed().toTypedArray()
+    override fun latestInstallerUrl() = quiltInstaller.latestInstallerUrl!!
+    override fun releaseInstallerUrl() = quiltInstaller.releaseInstallerUrl!!
 
-    actual override fun installerFor(version: String) =
+    override fun installerFor(version: String) =
         if (isInstallerUrlAvailable(version)) {
             val destination = File(installerDirectory, "$version.jar")
             if (!destination.isFile) {
@@ -93,8 +93,8 @@ actual class QuiltMeta(
             Optional.empty()
         }
 
-    actual override fun isInstallerUrlAvailable(version: String) = Optional.ofNullable(quiltInstaller.installerUrlMeta[version]).isPresent
-    actual override fun getInstallerUrl(version: String) = Optional.ofNullable(quiltInstaller.installerUrlMeta[version])
-    actual override fun isVersionValid(version: String) = quiltLoader.loaders.contains(version)
-    actual override fun isMinecraftSupported(minecraftVersion: String) = fabricIntermediaries.isIntermediariesPresent(minecraftVersion)
+    override fun isInstallerUrlAvailable(version: String) = Optional.ofNullable(quiltInstaller.installerUrlMeta[version]).isPresent
+    override fun getInstallerUrl(version: String) = Optional.ofNullable(quiltInstaller.installerUrlMeta[version])
+    override fun isVersionValid(version: String) = quiltLoader.loaders.contains(version)
+    override fun isMinecraftSupported(minecraftVersion: String) = fabricIntermediaries.isIntermediariesPresent(minecraftVersion)
 }
\ No newline at end of file
diff --git a/serverpackcreator-api/src/jvmMain/kotlin/io/ByteReader.kt b/serverpackcreator-api/src/main/kotlin/io/ByteReader.kt
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/kotlin/io/ByteReader.kt
rename to serverpackcreator-api/src/main/kotlin/io/ByteReader.kt
diff --git a/serverpackcreator-api/src/jvmMain/kotlin/io/ByteWriter.kt b/serverpackcreator-api/src/main/kotlin/io/ByteWriter.kt
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/kotlin/io/ByteWriter.kt
rename to serverpackcreator-api/src/main/kotlin/io/ByteWriter.kt
diff --git a/serverpackcreator-api/src/jvmMain/kotlin/io/Bytes.kt b/serverpackcreator-api/src/main/kotlin/io/Bytes.kt
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/kotlin/io/Bytes.kt
rename to serverpackcreator-api/src/main/kotlin/io/Bytes.kt
diff --git a/serverpackcreator-api/src/jvmMain/kotlin/mslinks/LinkInfo.kt b/serverpackcreator-api/src/main/kotlin/mslinks/LinkInfo.kt
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/kotlin/mslinks/LinkInfo.kt
rename to serverpackcreator-api/src/main/kotlin/mslinks/LinkInfo.kt
diff --git a/serverpackcreator-api/src/jvmMain/kotlin/mslinks/LinkTargetIDList.kt b/serverpackcreator-api/src/main/kotlin/mslinks/LinkTargetIDList.kt
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/kotlin/mslinks/LinkTargetIDList.kt
rename to serverpackcreator-api/src/main/kotlin/mslinks/LinkTargetIDList.kt
diff --git a/serverpackcreator-api/src/jvmMain/kotlin/mslinks/Serializable.kt b/serverpackcreator-api/src/main/kotlin/mslinks/Serializable.kt
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/kotlin/mslinks/Serializable.kt
rename to serverpackcreator-api/src/main/kotlin/mslinks/Serializable.kt
diff --git a/serverpackcreator-api/src/jvmMain/kotlin/mslinks/ShellLink.kt b/serverpackcreator-api/src/main/kotlin/mslinks/ShellLink.kt
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/kotlin/mslinks/ShellLink.kt
rename to serverpackcreator-api/src/main/kotlin/mslinks/ShellLink.kt
diff --git a/serverpackcreator-api/src/jvmMain/kotlin/mslinks/ShellLinkException.kt b/serverpackcreator-api/src/main/kotlin/mslinks/ShellLinkException.kt
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/kotlin/mslinks/ShellLinkException.kt
rename to serverpackcreator-api/src/main/kotlin/mslinks/ShellLinkException.kt
diff --git a/serverpackcreator-api/src/jvmMain/kotlin/mslinks/ShellLinkHeader.kt b/serverpackcreator-api/src/main/kotlin/mslinks/ShellLinkHeader.kt
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/kotlin/mslinks/ShellLinkHeader.kt
rename to serverpackcreator-api/src/main/kotlin/mslinks/ShellLinkHeader.kt
diff --git a/serverpackcreator-api/src/jvmMain/kotlin/mslinks/ShellLinkHelper.kt b/serverpackcreator-api/src/main/kotlin/mslinks/ShellLinkHelper.kt
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/kotlin/mslinks/ShellLinkHelper.kt
rename to serverpackcreator-api/src/main/kotlin/mslinks/ShellLinkHelper.kt
diff --git a/serverpackcreator-api/src/jvmMain/kotlin/mslinks/UnsupportedCLSIDException.kt b/serverpackcreator-api/src/main/kotlin/mslinks/UnsupportedCLSIDException.kt
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/kotlin/mslinks/UnsupportedCLSIDException.kt
rename to serverpackcreator-api/src/main/kotlin/mslinks/UnsupportedCLSIDException.kt
diff --git a/serverpackcreator-api/src/jvmMain/kotlin/mslinks/UnsupportedItemIDException.kt b/serverpackcreator-api/src/main/kotlin/mslinks/UnsupportedItemIDException.kt
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/kotlin/mslinks/UnsupportedItemIDException.kt
rename to serverpackcreator-api/src/main/kotlin/mslinks/UnsupportedItemIDException.kt
diff --git a/serverpackcreator-api/src/jvmMain/kotlin/mslinks/data/BitSet32.kt b/serverpackcreator-api/src/main/kotlin/mslinks/data/BitSet32.kt
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/kotlin/mslinks/data/BitSet32.kt
rename to serverpackcreator-api/src/main/kotlin/mslinks/data/BitSet32.kt
diff --git a/serverpackcreator-api/src/jvmMain/kotlin/mslinks/data/CNRLink.kt b/serverpackcreator-api/src/main/kotlin/mslinks/data/CNRLink.kt
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/kotlin/mslinks/data/CNRLink.kt
rename to serverpackcreator-api/src/main/kotlin/mslinks/data/CNRLink.kt
diff --git a/serverpackcreator-api/src/jvmMain/kotlin/mslinks/data/CNRLinkFlags.kt b/serverpackcreator-api/src/main/kotlin/mslinks/data/CNRLinkFlags.kt
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/kotlin/mslinks/data/CNRLinkFlags.kt
rename to serverpackcreator-api/src/main/kotlin/mslinks/data/CNRLinkFlags.kt
diff --git a/serverpackcreator-api/src/jvmMain/kotlin/mslinks/data/ConsoleFlags.kt b/serverpackcreator-api/src/main/kotlin/mslinks/data/ConsoleFlags.kt
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/kotlin/mslinks/data/ConsoleFlags.kt
rename to serverpackcreator-api/src/main/kotlin/mslinks/data/ConsoleFlags.kt
diff --git a/serverpackcreator-api/src/jvmMain/kotlin/mslinks/data/FileAttributesFlags.kt b/serverpackcreator-api/src/main/kotlin/mslinks/data/FileAttributesFlags.kt
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/kotlin/mslinks/data/FileAttributesFlags.kt
rename to serverpackcreator-api/src/main/kotlin/mslinks/data/FileAttributesFlags.kt
diff --git a/serverpackcreator-api/src/jvmMain/kotlin/mslinks/data/Filetime.kt b/serverpackcreator-api/src/main/kotlin/mslinks/data/Filetime.kt
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/kotlin/mslinks/data/Filetime.kt
rename to serverpackcreator-api/src/main/kotlin/mslinks/data/Filetime.kt
diff --git a/serverpackcreator-api/src/jvmMain/kotlin/mslinks/data/GUID.kt b/serverpackcreator-api/src/main/kotlin/mslinks/data/GUID.kt
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/kotlin/mslinks/data/GUID.kt
rename to serverpackcreator-api/src/main/kotlin/mslinks/data/GUID.kt
diff --git a/serverpackcreator-api/src/jvmMain/kotlin/mslinks/data/HotKeyFlags.kt b/serverpackcreator-api/src/main/kotlin/mslinks/data/HotKeyFlags.kt
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/kotlin/mslinks/data/HotKeyFlags.kt
rename to serverpackcreator-api/src/main/kotlin/mslinks/data/HotKeyFlags.kt
diff --git a/serverpackcreator-api/src/jvmMain/kotlin/mslinks/data/ItemID.kt b/serverpackcreator-api/src/main/kotlin/mslinks/data/ItemID.kt
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/kotlin/mslinks/data/ItemID.kt
rename to serverpackcreator-api/src/main/kotlin/mslinks/data/ItemID.kt
diff --git a/serverpackcreator-api/src/jvmMain/kotlin/mslinks/data/ItemIDDrive.kt b/serverpackcreator-api/src/main/kotlin/mslinks/data/ItemIDDrive.kt
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/kotlin/mslinks/data/ItemIDDrive.kt
rename to serverpackcreator-api/src/main/kotlin/mslinks/data/ItemIDDrive.kt
diff --git a/serverpackcreator-api/src/jvmMain/kotlin/mslinks/data/ItemIDFS.kt b/serverpackcreator-api/src/main/kotlin/mslinks/data/ItemIDFS.kt
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/kotlin/mslinks/data/ItemIDFS.kt
rename to serverpackcreator-api/src/main/kotlin/mslinks/data/ItemIDFS.kt
diff --git a/serverpackcreator-api/src/jvmMain/kotlin/mslinks/data/ItemIDRegFolder.kt b/serverpackcreator-api/src/main/kotlin/mslinks/data/ItemIDRegFolder.kt
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/kotlin/mslinks/data/ItemIDRegFolder.kt
rename to serverpackcreator-api/src/main/kotlin/mslinks/data/ItemIDRegFolder.kt
diff --git a/serverpackcreator-api/src/jvmMain/kotlin/mslinks/data/ItemIDRegItem.kt b/serverpackcreator-api/src/main/kotlin/mslinks/data/ItemIDRegItem.kt
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/kotlin/mslinks/data/ItemIDRegItem.kt
rename to serverpackcreator-api/src/main/kotlin/mslinks/data/ItemIDRegItem.kt
diff --git a/serverpackcreator-api/src/jvmMain/kotlin/mslinks/data/ItemIDRoot.kt b/serverpackcreator-api/src/main/kotlin/mslinks/data/ItemIDRoot.kt
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/kotlin/mslinks/data/ItemIDRoot.kt
rename to serverpackcreator-api/src/main/kotlin/mslinks/data/ItemIDRoot.kt
diff --git a/serverpackcreator-api/src/jvmMain/kotlin/mslinks/data/ItemIDUnknown.kt b/serverpackcreator-api/src/main/kotlin/mslinks/data/ItemIDUnknown.kt
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/kotlin/mslinks/data/ItemIDUnknown.kt
rename to serverpackcreator-api/src/main/kotlin/mslinks/data/ItemIDUnknown.kt
diff --git a/serverpackcreator-api/src/jvmMain/kotlin/mslinks/data/LinkFlags.kt b/serverpackcreator-api/src/main/kotlin/mslinks/data/LinkFlags.kt
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/kotlin/mslinks/data/LinkFlags.kt
rename to serverpackcreator-api/src/main/kotlin/mslinks/data/LinkFlags.kt
diff --git a/serverpackcreator-api/src/jvmMain/kotlin/mslinks/data/LinkInfoFlags.kt b/serverpackcreator-api/src/main/kotlin/mslinks/data/LinkInfoFlags.kt
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/kotlin/mslinks/data/LinkInfoFlags.kt
rename to serverpackcreator-api/src/main/kotlin/mslinks/data/LinkInfoFlags.kt
diff --git a/serverpackcreator-api/src/jvmMain/kotlin/mslinks/data/Registry.kt b/serverpackcreator-api/src/main/kotlin/mslinks/data/Registry.kt
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/kotlin/mslinks/data/Registry.kt
rename to serverpackcreator-api/src/main/kotlin/mslinks/data/Registry.kt
diff --git a/serverpackcreator-api/src/jvmMain/kotlin/mslinks/data/Size.kt b/serverpackcreator-api/src/main/kotlin/mslinks/data/Size.kt
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/kotlin/mslinks/data/Size.kt
rename to serverpackcreator-api/src/main/kotlin/mslinks/data/Size.kt
diff --git a/serverpackcreator-api/src/jvmMain/kotlin/mslinks/data/VolumeID.kt b/serverpackcreator-api/src/main/kotlin/mslinks/data/VolumeID.kt
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/kotlin/mslinks/data/VolumeID.kt
rename to serverpackcreator-api/src/main/kotlin/mslinks/data/VolumeID.kt
diff --git a/serverpackcreator-api/src/jvmMain/kotlin/mslinks/extra/ConsoleData.kt b/serverpackcreator-api/src/main/kotlin/mslinks/extra/ConsoleData.kt
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/kotlin/mslinks/extra/ConsoleData.kt
rename to serverpackcreator-api/src/main/kotlin/mslinks/extra/ConsoleData.kt
diff --git a/serverpackcreator-api/src/jvmMain/kotlin/mslinks/extra/ConsoleFEData.kt b/serverpackcreator-api/src/main/kotlin/mslinks/extra/ConsoleFEData.kt
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/kotlin/mslinks/extra/ConsoleFEData.kt
rename to serverpackcreator-api/src/main/kotlin/mslinks/extra/ConsoleFEData.kt
diff --git a/serverpackcreator-api/src/jvmMain/kotlin/mslinks/extra/EnvironmentVariable.kt b/serverpackcreator-api/src/main/kotlin/mslinks/extra/EnvironmentVariable.kt
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/kotlin/mslinks/extra/EnvironmentVariable.kt
rename to serverpackcreator-api/src/main/kotlin/mslinks/extra/EnvironmentVariable.kt
diff --git a/serverpackcreator-api/src/jvmMain/kotlin/mslinks/extra/Stub.kt b/serverpackcreator-api/src/main/kotlin/mslinks/extra/Stub.kt
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/kotlin/mslinks/extra/Stub.kt
rename to serverpackcreator-api/src/main/kotlin/mslinks/extra/Stub.kt
diff --git a/serverpackcreator-api/src/jvmMain/kotlin/mslinks/extra/Tracker.kt b/serverpackcreator-api/src/main/kotlin/mslinks/extra/Tracker.kt
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/kotlin/mslinks/extra/Tracker.kt
rename to serverpackcreator-api/src/main/kotlin/mslinks/extra/Tracker.kt
diff --git a/serverpackcreator-api/src/jvmMain/kotlin/mslinks/extra/VistaIDList.kt b/serverpackcreator-api/src/main/kotlin/mslinks/extra/VistaIDList.kt
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/kotlin/mslinks/extra/VistaIDList.kt
rename to serverpackcreator-api/src/main/kotlin/mslinks/extra/VistaIDList.kt
diff --git a/serverpackcreator-api/src/jvmMain/resources/CHANGELOG.md b/serverpackcreator-api/src/main/resources/CHANGELOG.md
similarity index 99%
rename from serverpackcreator-api/src/jvmMain/resources/CHANGELOG.md
rename to serverpackcreator-api/src/main/resources/CHANGELOG.md
index 66efd9c98..018714ea7 100644
--- a/serverpackcreator-api/src/jvmMain/resources/CHANGELOG.md
+++ b/serverpackcreator-api/src/main/resources/CHANGELOG.md
@@ -1,3 +1,15 @@
+## [5.2.3](https://git.griefed.de/Griefed/ServerPackCreator/compare/5.2.2...5.2.3) (2024-05-25)
+
+
+### 💎 Improvements
+
+* When disabling Server Pack Overwrites nothing is deleted, but certain data is updated ([ae40f16](https://git.griefed.de/Griefed/ServerPackCreator/commit/ae40f16478ed07f7481ea8bcd8a40a458be01a28))
+
+
+### 🧪 Tests
+
+* Run jar test only on ubuntu ([1983daf](https://git.griefed.de/Griefed/ServerPackCreator/commit/1983daf5095f04ca9ce81ef6b1e913915f53000b))
+
 ## [5.2.2](https://git.griefed.de/Griefed/ServerPackCreator/compare/5.2.1...5.2.2) (2024-05-24)
 
 
diff --git a/serverpackcreator-api/src/jvmMain/resources/CODE_OF_CONDUCT.md b/serverpackcreator-api/src/main/resources/CODE_OF_CONDUCT.md
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/CODE_OF_CONDUCT.md
rename to serverpackcreator-api/src/main/resources/CODE_OF_CONDUCT.md
diff --git a/serverpackcreator-api/src/jvmMain/resources/CONTRIBUTING.md b/serverpackcreator-api/src/main/resources/CONTRIBUTING.md
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/CONTRIBUTING.md
rename to serverpackcreator-api/src/main/resources/CONTRIBUTING.md
diff --git a/serverpackcreator-api/src/jvmMain/resources/HELP.md b/serverpackcreator-api/src/main/resources/HELP.md
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/HELP.md
rename to serverpackcreator-api/src/main/resources/HELP.md
diff --git a/serverpackcreator-api/src/jvmMain/resources/LICENSE b/serverpackcreator-api/src/main/resources/LICENSE
similarity index 92%
rename from serverpackcreator-api/src/jvmMain/resources/LICENSE
rename to serverpackcreator-api/src/main/resources/LICENSE
index 8000a6faa..20fb9c7da 100644
--- a/serverpackcreator-api/src/jvmMain/resources/LICENSE
+++ b/serverpackcreator-api/src/main/resources/LICENSE
@@ -456,49 +456,3 @@ SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
 DAMAGES.
 
                      END OF TERMS AND CONDITIONS
-
-           How to Apply These Terms to Your New Libraries
-
-  If you develop a new library, and you want it to be of the greatest
-possible use to the public, we recommend making it free software that
-everyone can redistribute and change.  You can do so by permitting
-redistribution under these terms (or, alternatively, under the terms of the
-ordinary General Public License).
-
-  To apply these terms, attach the following notices to the library.  It is
-safest to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least the
-"copyright" line and a pointer to where the full notice is found.
-
-    <one line to give the library's name and a brief idea of what it does.>
-    Copyright (C) <year>  <name of author>
-
-    This library is free software; you can redistribute it and/or
-    modify it under the terms of the GNU Lesser General Public
-    License as published by the Free Software Foundation; either
-    version 2.1 of the License, or (at your option) any later version.
-
-    This library is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-    Lesser General Public License for more details.
-
-    You should have received a copy of the GNU Lesser General Public
-    License along with this library; if not, write to the Free Software
-    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301
-    USA
-
-Also add information on how to contact you by electronic and paper mail.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the library, if
-necessary.  Here is a sample; alter the names:
-
-  Yoyodyne, Inc., hereby disclaims all copyright interest in the
-  library `Frob' (a library for tweaking knobs) written by James Random
-  Hacker.
-
-  <signature of Ty Coon>, 1 April 1990
-  Ty Coon, President of Vice
-
-That's all there is to it!
diff --git a/serverpackcreator-api/src/jvmMain/resources/README.md b/serverpackcreator-api/src/main/resources/README.md
similarity index 99%
rename from serverpackcreator-api/src/jvmMain/resources/README.md
rename to serverpackcreator-api/src/main/resources/README.md
index c76fbf1b3..b354e948b 100644
--- a/serverpackcreator-api/src/jvmMain/resources/README.md
+++ b/serverpackcreator-api/src/main/resources/README.md
@@ -314,8 +314,15 @@ Huge shoutout and thank you!**
 
 ## ✨ Thanks to all of my Supporters and Sponsors ✨
 
+### Sponsors
+
 <!-- sponsors --><a href="https://github.com/kreezxil"><img src="https://github.com/kreezxil.png" width="60px" alt="" /></a><!-- sponsors -->
 
+### Contributors
+
+<!-- contributors -->
+<!-- contributors end-->
+
 ---
 
 ## 7. Libraries and Licenses
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/cli_help.txt b/serverpackcreator-api/src/main/resources/de/griefed/resources/cli_help.txt
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/cli_help.txt
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/cli_help.txt
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/examples/serverpackcreator.example b/serverpackcreator-api/src/main/resources/de/griefed/resources/examples/serverpackcreator.example
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/examples/serverpackcreator.example
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/examples/serverpackcreator.example
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/lang/lang_de_de.properties b/serverpackcreator-api/src/main/resources/de/griefed/resources/lang/lang_de_de.properties
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/lang/lang_de_de.properties
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/lang/lang_de_de.properties
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/lang/lang_uk_ua.properties b/serverpackcreator-api/src/main/resources/de/griefed/resources/lang/lang_uk_ua.properties
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/lang/lang_uk_ua.properties
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/lang/lang_uk_ua.properties
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/fabric-installer-manifest.xml b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/fabric-installer-manifest.xml
similarity index 94%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/fabric-installer-manifest.xml
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/fabric-installer-manifest.xml
index 815f1e4f2..49b88fc6e 100644
--- a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/fabric-installer-manifest.xml
+++ b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/fabric-installer-manifest.xml
@@ -3,8 +3,8 @@
   <groupId>net.fabricmc</groupId>
   <artifactId>fabric-installer</artifactId>
   <versioning>
-    <latest>1.0.0</latest>
-    <release>1.0.0</release>
+    <latest>1.0.1</latest>
+    <release>1.0.1</release>
     <versions>
       <version>0.2.0.7</version>
       <version>0.2.1.8</version>
@@ -67,7 +67,8 @@
       <version>0.11.1</version>
       <version>0.11.2</version>
       <version>1.0.0</version>
+      <version>1.0.1</version>
     </versions>
-    <lastUpdated>20231230154833</lastUpdated>
+    <lastUpdated>20240409185404</lastUpdated>
   </versioning>
 </metadata>
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/fabric-intermediaries-manifest.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/fabric-intermediaries-manifest.json
similarity index 93%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/fabric-intermediaries-manifest.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/fabric-intermediaries-manifest.json
index b2c624eb5..f4ed48427 100644
--- a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/fabric-intermediaries-manifest.json
+++ b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/fabric-intermediaries-manifest.json
@@ -1,4 +1,124 @@
 [
+  {
+    "maven": "net.fabricmc:intermediary:24w21b",
+    "version": "24w21b",
+    "stable": true
+  },
+  {
+    "maven": "net.fabricmc:intermediary:24w21a",
+    "version": "24w21a",
+    "stable": true
+  },
+  {
+    "maven": "net.fabricmc:intermediary:24w20a",
+    "version": "24w20a",
+    "stable": true
+  },
+  {
+    "maven": "net.fabricmc:intermediary:24w19b",
+    "version": "24w19b",
+    "stable": true
+  },
+  {
+    "maven": "net.fabricmc:intermediary:24w19a",
+    "version": "24w19a",
+    "stable": true
+  },
+  {
+    "maven": "net.fabricmc:intermediary:24w18a",
+    "version": "24w18a",
+    "stable": true
+  },
+  {
+    "maven": "net.fabricmc:intermediary:1.20.6",
+    "version": "1.20.6",
+    "stable": true
+  },
+  {
+    "maven": "net.fabricmc:intermediary:1.20.6-rc1",
+    "version": "1.20.6-rc1",
+    "stable": true
+  },
+  {
+    "maven": "net.fabricmc:intermediary:1.20.5",
+    "version": "1.20.5",
+    "stable": true
+  },
+  {
+    "maven": "net.fabricmc:intermediary:1.20.5-rc3",
+    "version": "1.20.5-rc3",
+    "stable": true
+  },
+  {
+    "maven": "net.fabricmc:intermediary:1.20.5-rc2",
+    "version": "1.20.5-rc2",
+    "stable": true
+  },
+  {
+    "maven": "net.fabricmc:intermediary:1.20.5-rc1",
+    "version": "1.20.5-rc1",
+    "stable": true
+  },
+  {
+    "maven": "net.fabricmc:intermediary:1.20.5-pre4",
+    "version": "1.20.5-pre4",
+    "stable": true
+  },
+  {
+    "maven": "net.fabricmc:intermediary:1.20.5-pre3",
+    "version": "1.20.5-pre3",
+    "stable": true
+  },
+  {
+    "maven": "net.fabricmc:intermediary:1.20.5-pre2",
+    "version": "1.20.5-pre2",
+    "stable": true
+  },
+  {
+    "maven": "net.fabricmc:intermediary:1.20.5-pre1",
+    "version": "1.20.5-pre1",
+    "stable": true
+  },
+  {
+    "maven": "net.fabricmc:intermediary:24w14a",
+    "version": "24w14a",
+    "stable": true
+  },
+  {
+    "maven": "net.fabricmc:intermediary:24w14potato",
+    "version": "24w14potato",
+    "stable": true
+  },
+  {
+    "maven": "net.fabricmc:intermediary:24w14potato_original",
+    "version": "24w14potato_original",
+    "stable": true
+  },
+  {
+    "maven": "net.fabricmc:intermediary:24w13a",
+    "version": "24w13a",
+    "stable": true
+  },
+  {
+    "maven": "net.fabricmc:intermediary:24w12a",
+    "version": "24w12a",
+    "stable": true
+  },
+  {
+    "maven": "net.fabricmc:intermediary:24w11a",
+    "version": "24w11a",
+    "stable": true
+  },
+  {
+    "maven": "net.fabricmc:intermediary:24w10a",
+    "version": "24w10a",
+    "stable": true
+  },
+  {
+    "maven": "net.fabricmc:intermediary:24w09a",
+    "version": "24w09a",
+    "stable": true
+  },
   {
     "maven": "net.fabricmc:intermediary:24w07a",
     "version": "24w07a",
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/fabric-manifest.xml b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/fabric-manifest.xml
similarity index 97%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/fabric-manifest.xml
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/fabric-manifest.xml
index 5448b885e..98f35cca5 100644
--- a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/fabric-manifest.xml
+++ b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/fabric-manifest.xml
@@ -3,8 +3,8 @@
   <groupId>net.fabricmc</groupId>
   <artifactId>fabric-loader</artifactId>
   <versioning>
-    <latest>0.15.7</latest>
-    <release>0.15.7</release>
+    <latest>0.15.11</latest>
+    <release>0.15.11</release>
     <versions>
       <version>0.1.0.48</version>
       <version>0.1.0.49</version>
@@ -223,7 +223,11 @@
       <version>0.15.5</version>
       <version>0.15.6</version>
       <version>0.15.7</version>
+      <version>0.15.8</version>
+      <version>0.15.9</version>
+      <version>0.15.10</version>
+      <version>0.15.11</version>
     </versions>
-    <lastUpdated>20240213140618</lastUpdated>
+    <lastUpdated>20240503132637</lastUpdated>
   </versioning>
 </metadata>
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/forge-manifest.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/forge-manifest.json
similarity index 98%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/forge-manifest.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/forge-manifest.json
index 3d4d6a8c0..f25f2ff8a 100644
--- a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/forge-manifest.json
+++ b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/forge-manifest.json
@@ -3673,7 +3673,8 @@
     "1.16.5-36.2.35",
     "1.16.5-36.2.39",
     "1.16.5-36.2.40",
-    "1.16.5-36.2.41"
+    "1.16.5-36.2.41",
+    "1.16.5-36.2.42"
   ],
   "1.17.1": [
     "1.17.1-37.0.0",
@@ -4026,7 +4027,10 @@
     "1.18.2-40.2.13",
     "1.18.2-40.2.14",
     "1.18.2-40.2.15",
-    "1.18.2-40.2.17"
+    "1.18.2-40.2.17",
+    "1.18.2-40.2.18",
+    "1.18.2-40.2.19",
+    "1.18.2-40.2.21"
   ],
   "1.19": [
     "1.19-41.0.1",
@@ -4222,7 +4226,11 @@
     "1.19.2-43.3.5",
     "1.19.2-43.3.6",
     "1.19.2-43.3.7",
-    "1.19.2-43.3.8"
+    "1.19.2-43.3.8",
+    "1.19.2-43.3.9",
+    "1.19.2-43.3.10",
+    "1.19.2-43.3.12",
+    "1.19.2-43.3.13"
   ],
   "1.19.3": [
     "1.19.3-44.0.0",
@@ -4338,7 +4346,12 @@
     "1.19.4-45.2.4",
     "1.19.4-45.2.6",
     "1.19.4-45.2.7",
-    "1.19.4-45.2.8"
+    "1.19.4-45.2.8",
+    "1.19.4-45.2.9",
+    "1.19.4-45.2.10",
+    "1.19.4-45.2.12",
+    "1.19.4-45.2.14",
+    "1.19.4-45.2.15"
   ],
   "1.20": [
     "1.20-46.0.1",
@@ -4423,7 +4436,13 @@
     "1.20.1-47.2.17",
     "1.20.1-47.2.18",
     "1.20.1-47.2.19",
-    "1.20.1-47.2.20"
+    "1.20.1-47.2.20",
+    "1.20.1-47.2.21",
+    "1.20.1-47.2.23",
+    "1.20.1-47.2.29",
+    "1.20.1-47.2.30",
+    "1.20.1-47.2.31",
+    "1.20.1-47.2.32"
   ],
   "1.20.2": [
     "1.20.2-48.0.0",
@@ -4489,6 +4508,52 @@
     "1.20.4-49.0.26",
     "1.20.4-49.0.27",
     "1.20.4-49.0.28",
-    "1.20.4-49.0.30"
+    "1.20.4-49.0.30",
+    "1.20.4-49.0.31",
+    "1.20.4-49.0.32",
+    "1.20.4-49.0.33",
+    "1.20.4-49.0.34",
+    "1.20.4-49.0.38",
+    "1.20.4-49.0.39",
+    "1.20.4-49.0.40",
+    "1.20.4-49.0.41",
+    "1.20.4-49.0.42",
+    "1.20.4-49.0.43",
+    "1.20.4-49.0.45",
+    "1.20.4-49.0.46",
+    "1.20.4-49.0.48",
+    "1.20.4-49.0.49",
+    "1.20.4-49.0.50"
+  ],
+  "1.20.6": [
+    "1.20.6-50.0.0",
+    "1.20.6-50.0.1",
+    "1.20.6-50.0.2",
+    "1.20.6-50.0.4",
+    "1.20.6-50.0.5",
+    "1.20.6-50.0.6",
+    "1.20.6-50.0.7",
+    "1.20.6-50.0.8",
+    "1.20.6-50.0.9",
+    "1.20.6-50.0.10",
+    "1.20.6-50.0.11",
+    "1.20.6-50.0.12",
+    "1.20.6-50.0.13",
+    "1.20.6-50.0.14",
+    "1.20.6-50.0.15",
+    "1.20.6-50.0.16",
+    "1.20.6-50.0.17",
+    "1.20.6-50.0.18",
+    "1.20.6-50.0.19",
+    "1.20.6-50.0.20",
+    "1.20.6-50.0.21",
+    "1.20.6-50.0.22",
+    "1.20.6-50.0.24",
+    "1.20.6-50.0.25",
+    "1.20.6-50.0.26",
+    "1.20.6-50.0.28",
+    "1.20.6-50.0.29",
+    "1.20.6-50.0.30",
+    "1.20.6-50.0.31"
   ]
 }
\ No newline at end of file
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/legacy-fabric-game-manifest.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/legacy-fabric-game-manifest.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/legacy-fabric-game-manifest.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/legacy-fabric-game-manifest.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/legacy-fabric-installer-manifest.xml b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/legacy-fabric-installer-manifest.xml
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/legacy-fabric-installer-manifest.xml
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/legacy-fabric-installer-manifest.xml
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/legacy-fabric-loader-manifest.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/legacy-fabric-loader-manifest.json
similarity index 90%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/legacy-fabric-loader-manifest.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/legacy-fabric-loader-manifest.json
index 5e7fcfca2..b2eb1108d 100644
--- a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/legacy-fabric-loader-manifest.json
+++ b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/legacy-fabric-loader-manifest.json
@@ -1,10 +1,38 @@
 [
+  {
+    "separator": ".",
+    "build": 11,
+    "maven": "net.fabricmc:fabric-loader:0.15.11",
+    "version": "0.15.11",
+    "stable": true
+  },
+  {
+    "separator": ".",
+    "build": 10,
+    "maven": "net.fabricmc:fabric-loader:0.15.10",
+    "version": "0.15.10",
+    "stable": false
+  },
+  {
+    "separator": ".",
+    "build": 9,
+    "maven": "net.fabricmc:fabric-loader:0.15.9",
+    "version": "0.15.9",
+    "stable": false
+  },
+  {
+    "separator": ".",
+    "build": 8,
+    "maven": "net.fabricmc:fabric-loader:0.15.8",
+    "version": "0.15.8",
+    "stable": false
+  },
   {
     "separator": ".",
     "build": 7,
     "maven": "net.fabricmc:fabric-loader:0.15.7",
     "version": "0.15.7",
-    "stable": true
+    "stable": false
   },
   {
     "separator": ".",
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.0.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.0.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.0.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.0.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.1.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.1.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.1.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.1.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.10-pre1.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.10-pre1.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.10-pre1.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.10-pre1.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.10-pre2.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.10-pre2.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.10-pre2.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.10-pre2.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.10.1.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.10.1.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.10.1.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.10.1.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.10.2.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.10.2.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.10.2.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.10.2.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.10.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.10.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.10.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.10.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.11-pre1.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.11-pre1.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.11-pre1.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.11-pre1.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.11.1.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.11.1.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.11.1.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.11.1.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.11.2.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.11.2.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.11.2.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.11.2.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.11.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.11.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.11.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.11.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.12-pre1.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.12-pre1.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.12-pre1.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.12-pre1.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.12-pre2.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.12-pre2.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.12-pre2.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.12-pre2.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.12-pre3.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.12-pre3.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.12-pre3.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.12-pre3.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.12-pre4.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.12-pre4.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.12-pre4.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.12-pre4.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.12-pre5.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.12-pre5.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.12-pre5.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.12-pre5.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.12-pre6.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.12-pre6.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.12-pre6.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.12-pre6.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.12-pre7.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.12-pre7.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.12-pre7.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.12-pre7.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.12.1-pre1.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.12.1-pre1.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.12.1-pre1.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.12.1-pre1.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.12.1.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.12.1.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.12.1.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.12.1.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.12.2-pre1.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.12.2-pre1.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.12.2-pre1.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.12.2-pre1.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.12.2-pre2.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.12.2-pre2.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.12.2-pre2.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.12.2-pre2.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.12.2.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.12.2.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.12.2.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.12.2.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.12.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.12.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.12.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.12.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.13-pre1.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.13-pre1.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.13-pre1.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.13-pre1.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.13-pre10.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.13-pre10.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.13-pre10.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.13-pre10.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.13-pre2.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.13-pre2.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.13-pre2.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.13-pre2.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.13-pre3.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.13-pre3.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.13-pre3.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.13-pre3.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.13-pre4.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.13-pre4.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.13-pre4.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.13-pre4.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.13-pre5.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.13-pre5.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.13-pre5.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.13-pre5.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.13-pre6.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.13-pre6.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.13-pre6.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.13-pre6.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.13-pre7.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.13-pre7.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.13-pre7.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.13-pre7.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.13-pre8.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.13-pre8.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.13-pre8.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.13-pre8.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.13-pre9.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.13-pre9.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.13-pre9.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.13-pre9.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.13.1-pre1.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.13.1-pre1.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.13.1-pre1.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.13.1-pre1.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.13.1-pre2.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.13.1-pre2.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.13.1-pre2.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.13.1-pre2.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.13.1.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.13.1.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.13.1.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.13.1.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.13.2-pre1.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.13.2-pre1.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.13.2-pre1.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.13.2-pre1.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.13.2-pre2.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.13.2-pre2.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.13.2-pre2.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.13.2-pre2.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.13.2.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.13.2.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.13.2.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.13.2.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.13.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.13.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.13.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.13.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.14 Pre-Release 1.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.14 Pre-Release 1.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.14 Pre-Release 1.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.14 Pre-Release 1.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.14 Pre-Release 2.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.14 Pre-Release 2.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.14 Pre-Release 2.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.14 Pre-Release 2.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.14 Pre-Release 3.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.14 Pre-Release 3.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.14 Pre-Release 3.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.14 Pre-Release 3.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.14 Pre-Release 4.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.14 Pre-Release 4.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.14 Pre-Release 4.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.14 Pre-Release 4.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.14 Pre-Release 5.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.14 Pre-Release 5.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.14 Pre-Release 5.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.14 Pre-Release 5.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.14.1 Pre-Release 1.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.14.1 Pre-Release 1.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.14.1 Pre-Release 1.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.14.1 Pre-Release 1.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.14.1 Pre-Release 2.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.14.1 Pre-Release 2.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.14.1 Pre-Release 2.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.14.1 Pre-Release 2.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.14.1.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.14.1.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.14.1.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.14.1.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.14.2 Pre-Release 1.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.14.2 Pre-Release 1.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.14.2 Pre-Release 1.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.14.2 Pre-Release 1.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.14.2 Pre-Release 2.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.14.2 Pre-Release 2.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.14.2 Pre-Release 2.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.14.2 Pre-Release 2.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.14.2 Pre-Release 3.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.14.2 Pre-Release 3.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.14.2 Pre-Release 3.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.14.2 Pre-Release 3.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.14.2 Pre-Release 4.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.14.2 Pre-Release 4.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.14.2 Pre-Release 4.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.14.2 Pre-Release 4.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.14.2.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.14.2.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.14.2.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.14.2.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.14.3-pre1.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.14.3-pre1.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.14.3-pre1.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.14.3-pre1.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.14.3-pre2.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.14.3-pre2.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.14.3-pre2.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.14.3-pre2.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.14.3-pre3.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.14.3-pre3.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.14.3-pre3.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.14.3-pre3.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.14.3-pre4.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.14.3-pre4.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.14.3-pre4.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.14.3-pre4.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.14.3.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.14.3.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.14.3.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.14.3.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.14.4-pre1.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.14.4-pre1.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.14.4-pre1.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.14.4-pre1.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.14.4-pre2.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.14.4-pre2.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.14.4-pre2.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.14.4-pre2.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.14.4-pre3.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.14.4-pre3.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.14.4-pre3.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.14.4-pre3.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.14.4-pre4.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.14.4-pre4.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.14.4-pre4.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.14.4-pre4.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.14.4-pre5.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.14.4-pre5.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.14.4-pre5.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.14.4-pre5.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.14.4-pre6.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.14.4-pre6.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.14.4-pre6.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.14.4-pre6.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.14.4-pre7.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.14.4-pre7.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.14.4-pre7.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.14.4-pre7.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.14.4.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.14.4.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.14.4.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.14.4.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.14.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.14.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.14.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.14.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.15-pre1.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.15-pre1.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.15-pre1.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.15-pre1.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.15-pre2.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.15-pre2.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.15-pre2.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.15-pre2.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.15-pre3.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.15-pre3.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.15-pre3.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.15-pre3.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.15-pre4.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.15-pre4.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.15-pre4.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.15-pre4.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.15-pre5.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.15-pre5.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.15-pre5.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.15-pre5.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.15-pre6.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.15-pre6.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.15-pre6.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.15-pre6.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.15-pre7.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.15-pre7.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.15-pre7.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.15-pre7.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.15.1-pre1.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.15.1-pre1.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.15.1-pre1.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.15.1-pre1.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.15.1.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.15.1.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.15.1.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.15.1.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.15.2-pre1.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.15.2-pre1.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.15.2-pre1.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.15.2-pre1.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.15.2-pre2.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.15.2-pre2.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.15.2-pre2.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.15.2-pre2.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.15.2.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.15.2.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.15.2.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.15.2.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.15.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.15.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.15.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.15.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.16-pre1.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.16-pre1.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.16-pre1.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.16-pre1.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.16-pre2.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.16-pre2.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.16-pre2.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.16-pre2.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.16-pre3.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.16-pre3.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.16-pre3.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.16-pre3.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.16-pre4.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.16-pre4.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.16-pre4.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.16-pre4.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.16-pre5.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.16-pre5.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.16-pre5.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.16-pre5.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.16-pre6.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.16-pre6.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.16-pre6.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.16-pre6.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.16-pre7.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.16-pre7.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.16-pre7.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.16-pre7.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.16-pre8.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.16-pre8.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.16-pre8.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.16-pre8.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.16-rc1.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.16-rc1.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.16-rc1.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.16-rc1.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.16.1.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.16.1.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.16.1.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.16.1.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.16.2-pre1.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.16.2-pre1.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.16.2-pre1.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.16.2-pre1.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.16.2-pre2.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.16.2-pre2.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.16.2-pre2.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.16.2-pre2.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.16.2-pre3.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.16.2-pre3.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.16.2-pre3.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.16.2-pre3.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.16.2-rc1.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.16.2-rc1.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.16.2-rc1.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.16.2-rc1.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.16.2-rc2.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.16.2-rc2.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.16.2-rc2.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.16.2-rc2.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.16.2.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.16.2.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.16.2.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.16.2.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.16.3-rc1.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.16.3-rc1.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.16.3-rc1.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.16.3-rc1.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.16.3.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.16.3.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.16.3.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.16.3.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.16.4-pre1.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.16.4-pre1.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.16.4-pre1.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.16.4-pre1.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.16.4-pre2.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.16.4-pre2.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.16.4-pre2.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.16.4-pre2.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.16.4-rc1.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.16.4-rc1.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.16.4-rc1.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.16.4-rc1.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.16.4.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.16.4.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.16.4.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.16.4.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.16.5-rc1.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.16.5-rc1.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.16.5-rc1.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.16.5-rc1.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.16.5.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.16.5.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.16.5.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.16.5.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.16.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.16.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.16.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.16.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.17-pre1.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.17-pre1.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.17-pre1.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.17-pre1.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.17-pre2.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.17-pre2.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.17-pre2.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.17-pre2.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.17-pre3.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.17-pre3.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.17-pre3.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.17-pre3.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.17-pre4.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.17-pre4.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.17-pre4.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.17-pre4.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.17-pre5.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.17-pre5.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.17-pre5.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.17-pre5.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.17-rc1.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.17-rc1.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.17-rc1.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.17-rc1.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.17-rc2.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.17-rc2.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.17-rc2.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.17-rc2.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.17.1-pre1.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.17.1-pre1.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.17.1-pre1.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.17.1-pre1.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.17.1-pre2.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.17.1-pre2.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.17.1-pre2.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.17.1-pre2.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.17.1-pre3.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.17.1-pre3.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.17.1-pre3.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.17.1-pre3.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.17.1-rc1.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.17.1-rc1.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.17.1-rc1.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.17.1-rc1.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.17.1-rc2.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.17.1-rc2.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.17.1-rc2.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.17.1-rc2.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.17.1.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.17.1.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.17.1.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.17.1.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.17.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.17.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.17.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.17.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.18-pre1.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.18-pre1.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.18-pre1.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.18-pre1.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.18-pre2.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.18-pre2.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.18-pre2.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.18-pre2.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.18-pre3.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.18-pre3.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.18-pre3.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.18-pre3.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.18-pre4.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.18-pre4.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.18-pre4.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.18-pre4.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.18-pre5.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.18-pre5.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.18-pre5.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.18-pre5.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.18-pre6.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.18-pre6.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.18-pre6.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.18-pre6.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.18-pre7.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.18-pre7.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.18-pre7.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.18-pre7.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.18-pre8.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.18-pre8.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.18-pre8.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.18-pre8.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.18-rc1.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.18-rc1.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.18-rc1.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.18-rc1.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.18-rc2.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.18-rc2.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.18-rc2.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.18-rc2.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.18-rc3.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.18-rc3.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.18-rc3.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.18-rc3.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.18-rc4.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.18-rc4.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.18-rc4.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.18-rc4.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.18.1-pre1.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.18.1-pre1.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.18.1-pre1.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.18.1-pre1.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.18.1-rc1.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.18.1-rc1.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.18.1-rc1.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.18.1-rc1.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.18.1-rc2.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.18.1-rc2.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.18.1-rc2.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.18.1-rc2.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.18.1-rc3.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.18.1-rc3.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.18.1-rc3.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.18.1-rc3.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.18.1.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.18.1.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.18.1.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.18.1.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.18.2-pre1.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.18.2-pre1.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.18.2-pre1.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.18.2-pre1.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.18.2-pre2.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.18.2-pre2.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.18.2-pre2.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.18.2-pre2.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.18.2-pre3.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.18.2-pre3.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.18.2-pre3.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.18.2-pre3.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.18.2-rc1.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.18.2-rc1.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.18.2-rc1.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.18.2-rc1.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.18.2.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.18.2.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.18.2.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.18.2.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.18.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.18.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.18.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.18.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.19-pre1.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.19-pre1.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.19-pre1.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.19-pre1.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.19-pre2.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.19-pre2.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.19-pre2.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.19-pre2.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.19-pre3.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.19-pre3.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.19-pre3.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.19-pre3.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.19-pre4.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.19-pre4.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.19-pre4.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.19-pre4.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.19-pre5.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.19-pre5.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.19-pre5.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.19-pre5.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.19-rc1.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.19-rc1.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.19-rc1.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.19-rc1.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.19-rc2.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.19-rc2.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.19-rc2.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.19-rc2.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.19.1-pre1.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.19.1-pre1.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.19.1-pre1.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.19.1-pre1.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.19.1-pre2.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.19.1-pre2.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.19.1-pre2.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.19.1-pre2.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.19.1-pre3.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.19.1-pre3.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.19.1-pre3.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.19.1-pre3.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.19.1-pre4.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.19.1-pre4.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.19.1-pre4.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.19.1-pre4.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.19.1-pre5.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.19.1-pre5.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.19.1-pre5.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.19.1-pre5.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.19.1-pre6.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.19.1-pre6.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.19.1-pre6.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.19.1-pre6.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.19.1-rc1.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.19.1-rc1.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.19.1-rc1.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.19.1-rc1.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.19.1-rc2.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.19.1-rc2.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.19.1-rc2.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.19.1-rc2.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.19.1-rc3.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.19.1-rc3.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.19.1-rc3.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.19.1-rc3.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.19.1.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.19.1.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.19.1.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.19.1.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.19.2-rc1.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.19.2-rc1.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.19.2-rc1.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.19.2-rc1.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.19.2-rc2.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.19.2-rc2.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.19.2-rc2.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.19.2-rc2.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.19.2.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.19.2.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.19.2.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.19.2.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.19.3-pre1.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.19.3-pre1.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.19.3-pre1.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.19.3-pre1.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.19.3-pre2.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.19.3-pre2.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.19.3-pre2.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.19.3-pre2.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.19.3-pre3.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.19.3-pre3.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.19.3-pre3.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.19.3-pre3.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.19.3-rc1.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.19.3-rc1.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.19.3-rc1.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.19.3-rc1.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.19.3-rc2.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.19.3-rc2.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.19.3-rc2.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.19.3-rc2.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.19.3-rc3.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.19.3-rc3.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.19.3-rc3.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.19.3-rc3.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.19.3.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.19.3.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.19.3.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.19.3.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.19.4-pre1.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.19.4-pre1.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.19.4-pre1.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.19.4-pre1.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.19.4-pre2.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.19.4-pre2.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.19.4-pre2.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.19.4-pre2.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.19.4-pre3.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.19.4-pre3.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.19.4-pre3.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.19.4-pre3.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.19.4-pre4.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.19.4-pre4.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.19.4-pre4.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.19.4-pre4.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.19.4-rc1.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.19.4-rc1.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.19.4-rc1.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.19.4-rc1.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.19.4-rc2.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.19.4-rc2.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.19.4-rc2.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.19.4-rc2.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.19.4-rc3.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.19.4-rc3.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.19.4-rc3.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.19.4-rc3.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.19.4.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.19.4.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.19.4.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.19.4.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.19.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.19.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.19.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.19.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.2.1.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.2.1.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.2.1.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.2.1.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.2.2.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.2.2.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.2.2.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.2.2.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.2.3.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.2.3.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.2.3.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.2.3.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.2.4.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.2.4.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.2.4.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.2.4.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.2.5.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.2.5.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.2.5.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.2.5.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.20-pre1.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.20-pre1.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.20-pre1.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.20-pre1.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.20-pre2.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.20-pre2.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.20-pre2.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.20-pre2.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.20-pre3.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.20-pre3.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.20-pre3.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.20-pre3.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.20-pre4.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.20-pre4.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.20-pre4.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.20-pre4.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.20-pre5.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.20-pre5.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.20-pre5.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.20-pre5.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.20-pre6.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.20-pre6.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.20-pre6.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.20-pre6.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.20-pre7.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.20-pre7.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.20-pre7.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.20-pre7.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.20-rc1.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.20-rc1.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.20-rc1.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.20-rc1.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.20.1-rc1.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.20.1-rc1.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.20.1-rc1.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.20.1-rc1.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.20.1.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.20.1.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.20.1.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.20.1.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.20.2.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.20.2.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.20.2.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.20.2.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.20.3.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.20.3.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.20.3.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.20.3.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.20.4.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.20.4.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.20.4.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.20.4.json
diff --git a/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.20.6.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.20.6.json
new file mode 100644
index 000000000..c3cc55797
--- /dev/null
+++ b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.20.6.json
@@ -0,0 +1 @@
+{"arguments": {"game": ["--username", "${auth_player_name}", "--version", "${version_name}", "--gameDir", "${game_directory}", "--assetsDir", "${assets_root}", "--assetIndex", "${assets_index_name}", "--uuid", "${auth_uuid}", "--accessToken", "${auth_access_token}", "--clientId", "${clientid}", "--xuid", "${auth_xuid}", "--userType", "${user_type}", "--versionType", "${version_type}", {"rules": [{"action": "allow", "features": {"is_demo_user": true}}], "value": "--demo"}, {"rules": [{"action": "allow", "features": {"has_custom_resolution": true}}], "value": ["--width", "${resolution_width}", "--height", "${resolution_height}"]}, {"rules": [{"action": "allow", "features": {"has_quick_plays_support": true}}], "value": ["--quickPlayPath", "${quickPlayPath}"]}, {"rules": [{"action": "allow", "features": {"is_quick_play_singleplayer": true}}], "value": ["--quickPlaySingleplayer", "${quickPlaySingleplayer}"]}, {"rules": [{"action": "allow", "features": {"is_quick_play_multiplayer": true}}], "value": ["--quickPlayMultiplayer", "${quickPlayMultiplayer}"]}, {"rules": [{"action": "allow", "features": {"is_quick_play_realms": true}}], "value": ["--quickPlayRealms", "${quickPlayRealms}"]}], "jvm": [{"rules": [{"action": "allow", "os": {"name": "osx"}}], "value": ["-XstartOnFirstThread"]}, {"rules": [{"action": "allow", "os": {"name": "windows"}}], "value": "-XX:HeapDumpPath=MojangTricksIntelDriversForPerformance_javaw.exe_minecraft.exe.heapdump"}, {"rules": [{"action": "allow", "os": {"arch": "x86"}}], "value": "-Xss1M"}, "-Djava.library.path=${natives_directory}", "-Djna.tmpdir=${natives_directory}", "-Dorg.lwjgl.system.SharedLibraryExtractPath=${natives_directory}", "-Dio.netty.native.workdir=${natives_directory}", "-Dminecraft.launcher.brand=${launcher_name}", "-Dminecraft.launcher.version=${launcher_version}", "-cp", "${classpath}"]}, "assetIndex": {"id": "16", "sha1": "70b356f90765d4b8da2ae93737d0f384e2343c4a", "size": 445177, "totalSize": 631434693, "url": "https://piston-meta.mojang.com/v1/packages/70b356f90765d4b8da2ae93737d0f384e2343c4a/16.json"}, "assets": "16", "complianceLevel": 1, "downloads": {"client": {"sha1": "05b6f1c6b46a29d6ea82b4e0d42190e42402030f", "size": 26565641, "url": "https://piston-data.mojang.com/v1/objects/05b6f1c6b46a29d6ea82b4e0d42190e42402030f/client.jar"}, "client_mappings": {"sha1": "de46c8f33d7826eb83e8ef0e9f80dc1f08cb9498", "size": 9422442, "url": "https://piston-data.mojang.com/v1/objects/de46c8f33d7826eb83e8ef0e9f80dc1f08cb9498/client.txt"}, "server": {"sha1": "145ff0858209bcfc164859ba735d4199aafa1eea", "size": 51420480, "url": "https://piston-data.mojang.com/v1/objects/145ff0858209bcfc164859ba735d4199aafa1eea/server.jar"}, "server_mappings": {"sha1": "9e96100f573a46ef44caab3e716d5eb974594bb7", "size": 7283803, "url": "https://piston-data.mojang.com/v1/objects/9e96100f573a46ef44caab3e716d5eb974594bb7/server.txt"}}, "id": "1.20.6", "javaVersion": {"component": "java-runtime-delta", "majorVersion": 21}, "libraries": [{"downloads": {"artifact": {"path": "ca/weblite/java-objc-bridge/1.1/java-objc-bridge-1.1.jar", "sha1": "1227f9e0666314f9de41477e3ec277e542ed7f7b", "size": 1330045, "url": "https://libraries.minecraft.net/ca/weblite/java-objc-bridge/1.1/java-objc-bridge-1.1.jar"}}, "name": "ca.weblite:java-objc-bridge:1.1", "rules": [{"action": "allow", "os": {"name": "osx"}}]}, {"downloads": {"artifact": {"path": "com/github/oshi/oshi-core/6.4.10/oshi-core-6.4.10.jar", "sha1": "b1d8ab82d11d92fd639b56d639f8f46f739dd5fa", "size": 979212, "url": "https://libraries.minecraft.net/com/github/oshi/oshi-core/6.4.10/oshi-core-6.4.10.jar"}}, "name": "com.github.oshi:oshi-core:6.4.10"}, {"downloads": {"artifact": {"path": "com/google/code/gson/gson/2.10.1/gson-2.10.1.jar", "sha1": "b3add478d4382b78ea20b1671390a858002feb6c", "size": 283367, "url": "https://libraries.minecraft.net/com/google/code/gson/gson/2.10.1/gson-2.10.1.jar"}}, "name": "com.google.code.gson:gson:2.10.1"}, {"downloads": {"artifact": {"path": "com/google/guava/failureaccess/1.0.1/failureaccess-1.0.1.jar", "sha1": "1dcf1de382a0bf95a3d8b0849546c88bac1292c9", "size": 4617, "url": "https://libraries.minecraft.net/com/google/guava/failureaccess/1.0.1/failureaccess-1.0.1.jar"}}, "name": "com.google.guava:failureaccess:1.0.1"}, {"downloads": {"artifact": {"path": "com/google/guava/guava/32.1.2-jre/guava-32.1.2-jre.jar", "sha1": "5e64ec7e056456bef3a4bc4c6fdaef71e8ab6318", "size": 3041591, "url": "https://libraries.minecraft.net/com/google/guava/guava/32.1.2-jre/guava-32.1.2-jre.jar"}}, "name": "com.google.guava:guava:32.1.2-jre"}, {"downloads": {"artifact": {"path": "com/ibm/icu/icu4j/73.2/icu4j-73.2.jar", "sha1": "61ad4ef7f9131fcf6d25c34b817f90d6da06c9e9", "size": 14567819, "url": "https://libraries.minecraft.net/com/ibm/icu/icu4j/73.2/icu4j-73.2.jar"}}, "name": "com.ibm.icu:icu4j:73.2"}, {"downloads": {"artifact": {"path": "com/mojang/authlib/6.0.54/authlib-6.0.54.jar", "sha1": "de8bc95660e1b2fe8793fd427a7a10dcec5b3ea7", "size": 115242, "url": "https://libraries.minecraft.net/com/mojang/authlib/6.0.54/authlib-6.0.54.jar"}}, "name": "com.mojang:authlib:6.0.54"}, {"downloads": {"artifact": {"path": "com/mojang/blocklist/1.0.10/blocklist-1.0.10.jar", "sha1": "5c685c5ffa94c4cd39496c7184c1d122e515ecef", "size": 964, "url": "https://libraries.minecraft.net/com/mojang/blocklist/1.0.10/blocklist-1.0.10.jar"}}, "name": "com.mojang:blocklist:1.0.10"}, {"downloads": {"artifact": {"path": "com/mojang/brigadier/1.2.9/brigadier-1.2.9.jar", "sha1": "73e324f2ee541493a5179abf367237faa782ed21", "size": 79955, "url": "https://libraries.minecraft.net/com/mojang/brigadier/1.2.9/brigadier-1.2.9.jar"}}, "name": "com.mojang:brigadier:1.2.9"}, {"downloads": {"artifact": {"path": "com/mojang/datafixerupper/7.0.14/datafixerupper-7.0.14.jar", "sha1": "db3485dc1e6b712bd81170d5ce6dca2fb2f8bd86", "size": 722976, "url": "https://libraries.minecraft.net/com/mojang/datafixerupper/7.0.14/datafixerupper-7.0.14.jar"}}, "name": "com.mojang:datafixerupper:7.0.14"}, {"downloads": {"artifact": {"path": "com/mojang/logging/1.2.7/logging-1.2.7.jar", "sha1": "24cb95ffb0e3433fd6e844c04e68009e504ca1c0", "size": 15343, "url": "https://libraries.minecraft.net/com/mojang/logging/1.2.7/logging-1.2.7.jar"}}, "name": "com.mojang:logging:1.2.7"}, {"downloads": {"artifact": {"path": "com/mojang/patchy/2.2.10/patchy-2.2.10.jar", "sha1": "da05971b07cbb379d002cf7eaec6a2048211fefc", "size": 4439, "url": "https://libraries.minecraft.net/com/mojang/patchy/2.2.10/patchy-2.2.10.jar"}}, "name": "com.mojang:patchy:2.2.10"}, {"downloads": {"artifact": {"path": "com/mojang/text2speech/1.17.9/text2speech-1.17.9.jar", "sha1": "3cad216e3a7f0c19b4b394388bc9ffc446f13b14", "size": 12243, "url": "https://libraries.minecraft.net/com/mojang/text2speech/1.17.9/text2speech-1.17.9.jar"}}, "name": "com.mojang:text2speech:1.17.9"}, {"downloads": {"artifact": {"path": "commons-codec/commons-codec/1.16.0/commons-codec-1.16.0.jar", "sha1": "4e3eb3d79888d76b54e28b350915b5dc3919c9de", "size": 360738, "url": "https://libraries.minecraft.net/commons-codec/commons-codec/1.16.0/commons-codec-1.16.0.jar"}}, "name": "commons-codec:commons-codec:1.16.0"}, {"downloads": {"artifact": {"path": "commons-io/commons-io/2.15.1/commons-io-2.15.1.jar", "sha1": "f11560da189ab563a5c8e351941415430e9304ea", "size": 501218, "url": "https://libraries.minecraft.net/commons-io/commons-io/2.15.1/commons-io-2.15.1.jar"}}, "name": "commons-io:commons-io:2.15.1"}, {"downloads": {"artifact": {"path": "commons-logging/commons-logging/1.2/commons-logging-1.2.jar", "sha1": "4bfc12adfe4842bf07b657f0369c4cb522955686", "size": 61829, "url": "https://libraries.minecraft.net/commons-logging/commons-logging/1.2/commons-logging-1.2.jar"}}, "name": "commons-logging:commons-logging:1.2"}, {"downloads": {"artifact": {"path": "io/netty/netty-buffer/4.1.97.Final/netty-buffer-4.1.97.Final.jar", "sha1": "f8f3d8644afa5e6e1a40a3a6aeb9d9aa970ecb4f", "size": 306590, "url": "https://libraries.minecraft.net/io/netty/netty-buffer/4.1.97.Final/netty-buffer-4.1.97.Final.jar"}}, "name": "io.netty:netty-buffer:4.1.97.Final"}, {"downloads": {"artifact": {"path": "io/netty/netty-codec/4.1.97.Final/netty-codec-4.1.97.Final.jar", "sha1": "384ba4d75670befbedb45c4d3b497a93639c206d", "size": 345274, "url": "https://libraries.minecraft.net/io/netty/netty-codec/4.1.97.Final/netty-codec-4.1.97.Final.jar"}}, "name": "io.netty:netty-codec:4.1.97.Final"}, {"downloads": {"artifact": {"path": "io/netty/netty-common/4.1.97.Final/netty-common-4.1.97.Final.jar", "sha1": "7cceacaf11df8dc63f23d0fb58e9d4640fc88404", "size": 659930, "url": "https://libraries.minecraft.net/io/netty/netty-common/4.1.97.Final/netty-common-4.1.97.Final.jar"}}, "name": "io.netty:netty-common:4.1.97.Final"}, {"downloads": {"artifact": {"path": "io/netty/netty-handler/4.1.97.Final/netty-handler-4.1.97.Final.jar", "sha1": "abb86c6906bf512bf2b797a41cd7d2e8d3cd7c36", "size": 560040, "url": "https://libraries.minecraft.net/io/netty/netty-handler/4.1.97.Final/netty-handler-4.1.97.Final.jar"}}, "name": "io.netty:netty-handler:4.1.97.Final"}, {"downloads": {"artifact": {"path": "io/netty/netty-resolver/4.1.97.Final/netty-resolver-4.1.97.Final.jar", "sha1": "cec8348108dc76c47cf87c669d514be52c922144", "size": 37792, "url": "https://libraries.minecraft.net/io/netty/netty-resolver/4.1.97.Final/netty-resolver-4.1.97.Final.jar"}}, "name": "io.netty:netty-resolver:4.1.97.Final"}, {"downloads": {"artifact": {"path": "io/netty/netty-transport-classes-epoll/4.1.97.Final/netty-transport-classes-epoll-4.1.97.Final.jar", "sha1": "795da37ded759e862457a82d9d92c4d39ce8ecee", "size": 147139, "url": "https://libraries.minecraft.net/io/netty/netty-transport-classes-epoll/4.1.97.Final/netty-transport-classes-epoll-4.1.97.Final.jar"}}, "name": "io.netty:netty-transport-classes-epoll:4.1.97.Final"}, {"downloads": {"artifact": {"path": "io/netty/netty-transport-native-epoll/4.1.97.Final/netty-transport-native-epoll-4.1.97.Final-linux-aarch_64.jar", "sha1": "5514744c588190ffda076b35a9b8c9f24946a960", "size": 40427, "url": "https://libraries.minecraft.net/io/netty/netty-transport-native-epoll/4.1.97.Final/netty-transport-native-epoll-4.1.97.Final-linux-aarch_64.jar"}}, "name": "io.netty:netty-transport-native-epoll:4.1.97.Final:linux-aarch_64", "rules": [{"action": "allow", "os": {"name": "linux"}}]}, {"downloads": {"artifact": {"path": "io/netty/netty-transport-native-epoll/4.1.97.Final/netty-transport-native-epoll-4.1.97.Final-linux-x86_64.jar", "sha1": "54188f271e388e7f313aea995e82f58ce2cdb809", "size": 38954, "url": "https://libraries.minecraft.net/io/netty/netty-transport-native-epoll/4.1.97.Final/netty-transport-native-epoll-4.1.97.Final-linux-x86_64.jar"}}, "name": "io.netty:netty-transport-native-epoll:4.1.97.Final:linux-x86_64", "rules": [{"action": "allow", "os": {"name": "linux"}}]}, {"downloads": {"artifact": {"path": "io/netty/netty-transport-native-unix-common/4.1.97.Final/netty-transport-native-unix-common-4.1.97.Final.jar", "sha1": "d469d84265ab70095b01b40886cabdd433b6e664", "size": 43897, "url": "https://libraries.minecraft.net/io/netty/netty-transport-native-unix-common/4.1.97.Final/netty-transport-native-unix-common-4.1.97.Final.jar"}}, "name": "io.netty:netty-transport-native-unix-common:4.1.97.Final"}, {"downloads": {"artifact": {"path": "io/netty/netty-transport/4.1.97.Final/netty-transport-4.1.97.Final.jar", "sha1": "f37380d23c9bb079bc702910833b2fd532c9abd0", "size": 489624, "url": "https://libraries.minecraft.net/io/netty/netty-transport/4.1.97.Final/netty-transport-4.1.97.Final.jar"}}, "name": "io.netty:netty-transport:4.1.97.Final"}, {"downloads": {"artifact": {"path": "it/unimi/dsi/fastutil/8.5.12/fastutil-8.5.12.jar", "sha1": "c24946d46824bd528054bface3231d2ecb7e95e8", "size": 23326598, "url": "https://libraries.minecraft.net/it/unimi/dsi/fastutil/8.5.12/fastutil-8.5.12.jar"}}, "name": "it.unimi.dsi:fastutil:8.5.12"}, {"downloads": {"artifact": {"path": "net/java/dev/jna/jna-platform/5.14.0/jna-platform-5.14.0.jar", "sha1": "28934d48aed814f11e4c584da55c49fa7032b31b", "size": 1369287, "url": "https://libraries.minecraft.net/net/java/dev/jna/jna-platform/5.14.0/jna-platform-5.14.0.jar"}}, "name": "net.java.dev.jna:jna-platform:5.14.0"}, {"downloads": {"artifact": {"path": "net/java/dev/jna/jna/5.14.0/jna-5.14.0.jar", "sha1": "67bf3eaea4f0718cb376a181a629e5f88fa1c9dd", "size": 1878533, "url": "https://libraries.minecraft.net/net/java/dev/jna/jna/5.14.0/jna-5.14.0.jar"}}, "name": "net.java.dev.jna:jna:5.14.0"}, {"downloads": {"artifact": {"path": "net/sf/jopt-simple/jopt-simple/5.0.4/jopt-simple-5.0.4.jar", "sha1": "4fdac2fbe92dfad86aa6e9301736f6b4342a3f5c", "size": 78146, "url": "https://libraries.minecraft.net/net/sf/jopt-simple/jopt-simple/5.0.4/jopt-simple-5.0.4.jar"}}, "name": "net.sf.jopt-simple:jopt-simple:5.0.4"}, {"downloads": {"artifact": {"path": "org/apache/commons/commons-compress/1.26.0/commons-compress-1.26.0.jar", "sha1": "659feffdd12280201c8aacb8f7be94f9a883c824", "size": 1078328, "url": "https://libraries.minecraft.net/org/apache/commons/commons-compress/1.26.0/commons-compress-1.26.0.jar"}}, "name": "org.apache.commons:commons-compress:1.26.0"}, {"downloads": {"artifact": {"path": "org/apache/commons/commons-lang3/3.14.0/commons-lang3-3.14.0.jar", "sha1": "1ed471194b02f2c6cb734a0cd6f6f107c673afae", "size": 657952, "url": "https://libraries.minecraft.net/org/apache/commons/commons-lang3/3.14.0/commons-lang3-3.14.0.jar"}}, "name": "org.apache.commons:commons-lang3:3.14.0"}, {"downloads": {"artifact": {"path": "org/apache/httpcomponents/httpclient/4.5.13/httpclient-4.5.13.jar", "sha1": "e5f6cae5ca7ecaac1ec2827a9e2d65ae2869cada", "size": 780321, "url": "https://libraries.minecraft.net/org/apache/httpcomponents/httpclient/4.5.13/httpclient-4.5.13.jar"}}, "name": "org.apache.httpcomponents:httpclient:4.5.13"}, {"downloads": {"artifact": {"path": "org/apache/httpcomponents/httpcore/4.4.16/httpcore-4.4.16.jar", "sha1": "51cf043c87253c9f58b539c9f7e44c8894223850", "size": 327891, "url": "https://libraries.minecraft.net/org/apache/httpcomponents/httpcore/4.4.16/httpcore-4.4.16.jar"}}, "name": "org.apache.httpcomponents:httpcore:4.4.16"}, {"downloads": {"artifact": {"path": "org/apache/logging/log4j/log4j-api/2.22.1/log4j-api-2.22.1.jar", "sha1": "bea6fede6328fabafd7e68363161a7ea6605abd1", "size": 335001, "url": "https://libraries.minecraft.net/org/apache/logging/log4j/log4j-api/2.22.1/log4j-api-2.22.1.jar"}}, "name": "org.apache.logging.log4j:log4j-api:2.22.1"}, {"downloads": {"artifact": {"path": "org/apache/logging/log4j/log4j-core/2.22.1/log4j-core-2.22.1.jar", "sha1": "7183a25510a02ad00cc6a95d3b3d2a7d3c5a8dc4", "size": 1900022, "url": "https://libraries.minecraft.net/org/apache/logging/log4j/log4j-core/2.22.1/log4j-core-2.22.1.jar"}}, "name": "org.apache.logging.log4j:log4j-core:2.22.1"}, {"downloads": {"artifact": {"path": "org/apache/logging/log4j/log4j-slf4j2-impl/2.22.1/log4j-slf4j2-impl-2.22.1.jar", "sha1": "d7e6693c2606cb7e7335047d7bb96dec52db5665", "size": 27364, "url": "https://libraries.minecraft.net/org/apache/logging/log4j/log4j-slf4j2-impl/2.22.1/log4j-slf4j2-impl-2.22.1.jar"}}, "name": "org.apache.logging.log4j:log4j-slf4j2-impl:2.22.1"}, {"downloads": {"artifact": {"path": "org/jcraft/jorbis/0.0.17/jorbis-0.0.17.jar", "sha1": "8872d22b293e8f5d7d56ff92be966e6dc28ebdc6", "size": 99701, "url": "https://libraries.minecraft.net/org/jcraft/jorbis/0.0.17/jorbis-0.0.17.jar"}}, "name": "org.jcraft:jorbis:0.0.17"}, {"downloads": {"artifact": {"path": "org/joml/joml/1.10.5/joml-1.10.5.jar", "sha1": "22566d58af70ad3d72308bab63b8339906deb649", "size": 712082, "url": "https://libraries.minecraft.net/org/joml/joml/1.10.5/joml-1.10.5.jar"}}, "name": "org.joml:joml:1.10.5"}, {"downloads": {"artifact": {"path": "org/lwjgl/lwjgl-freetype/3.3.3/lwjgl-freetype-3.3.3.jar", "sha1": "a0db6c84a8becc8ca05f9dbfa985edc348a824c7", "size": 450896, "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-freetype/3.3.3/lwjgl-freetype-3.3.3.jar"}}, "name": "org.lwjgl:lwjgl-freetype:3.3.3"}, {"downloads": {"artifact": {"path": "org/lwjgl/lwjgl-freetype/3.3.3/lwjgl-freetype-3.3.3-natives-linux.jar", "sha1": "149070a5480900347071b7074779531f25a6e3dc", "size": 1245129, "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-freetype/3.3.3/lwjgl-freetype-3.3.3-natives-linux.jar"}}, "name": "org.lwjgl:lwjgl-freetype:3.3.3:natives-linux", "rules": [{"action": "allow", "os": {"name": "linux"}}]}, {"downloads": {"artifact": {"path": "org/lwjgl/lwjgl-freetype/3.3.3/lwjgl-freetype-3.3.3-natives-macos.jar", "sha1": "1e9b635b5c16b515527b905749be59223e338c4d", "size": 1142682, "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-freetype/3.3.3/lwjgl-freetype-3.3.3-natives-macos.jar"}}, "name": "org.lwjgl:lwjgl-freetype:3.3.3:natives-macos", "rules": [{"action": "allow", "os": {"name": "osx"}}]}, {"downloads": {"artifact": {"path": "org/lwjgl/lwjgl-freetype/3.3.3/lwjgl-freetype-3.3.3-natives-macos-arm64.jar", "sha1": "b0a8c9baa9d1f54ac61e1ab9640c7659e7fa700c", "size": 1040981, "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-freetype/3.3.3/lwjgl-freetype-3.3.3-natives-macos-arm64.jar"}}, "name": "org.lwjgl:lwjgl-freetype:3.3.3:natives-macos-arm64", "rules": [{"action": "allow", "os": {"name": "osx"}}]}, {"downloads": {"artifact": {"path": "org/lwjgl/lwjgl-freetype/3.3.3/lwjgl-freetype-3.3.3-natives-windows.jar", "sha1": "81091b006dbb43fab04c8c638e9ac87c51b4096d", "size": 1035586, "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-freetype/3.3.3/lwjgl-freetype-3.3.3-natives-windows.jar"}}, "name": "org.lwjgl:lwjgl-freetype:3.3.3:natives-windows", "rules": [{"action": "allow", "os": {"name": "windows"}}]}, {"downloads": {"artifact": {"path": "org/lwjgl/lwjgl-freetype/3.3.3/lwjgl-freetype-3.3.3-natives-windows-arm64.jar", "sha1": "82028265a0a2ff33523ca75137ada7dc176e5210", "size": 886068, "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-freetype/3.3.3/lwjgl-freetype-3.3.3-natives-windows-arm64.jar"}}, "name": "org.lwjgl:lwjgl-freetype:3.3.3:natives-windows-arm64", "rules": [{"action": "allow", "os": {"name": "windows"}}]}, {"downloads": {"artifact": {"path": "org/lwjgl/lwjgl-freetype/3.3.3/lwjgl-freetype-3.3.3-natives-windows-x86.jar", "sha1": "15a8c1de7f51d07a92eae7ce1222557073a0c0c3", "size": 877480, "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-freetype/3.3.3/lwjgl-freetype-3.3.3-natives-windows-x86.jar"}}, "name": "org.lwjgl:lwjgl-freetype:3.3.3:natives-windows-x86", "rules": [{"action": "allow", "os": {"name": "windows"}}]}, {"downloads": {"artifact": {"path": "org/lwjgl/lwjgl-glfw/3.3.3/lwjgl-glfw-3.3.3.jar", "sha1": "efa1eb78c5ccd840e9f329717109b5e892d72f8e", "size": 135546, "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-glfw/3.3.3/lwjgl-glfw-3.3.3.jar"}}, "name": "org.lwjgl:lwjgl-glfw:3.3.3"}, {"downloads": {"artifact": {"path": "org/lwjgl/lwjgl-glfw/3.3.3/lwjgl-glfw-3.3.3-natives-linux.jar", "sha1": "a03684c5e4b1b1dbbe0d29dbbdc27b985b6840f2", "size": 118478, "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-glfw/3.3.3/lwjgl-glfw-3.3.3-natives-linux.jar"}}, "name": "org.lwjgl:lwjgl-glfw:3.3.3:natives-linux", "rules": [{"action": "allow", "os": {"name": "linux"}}]}, {"downloads": {"artifact": {"path": "org/lwjgl/lwjgl-glfw/3.3.3/lwjgl-glfw-3.3.3-natives-macos.jar", "sha1": "a1bf400f6bc64e6195596cb1430dafda46090751", "size": 140884, "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-glfw/3.3.3/lwjgl-glfw-3.3.3-natives-macos.jar"}}, "name": "org.lwjgl:lwjgl-glfw:3.3.3:natives-macos", "rules": [{"action": "allow", "os": {"name": "osx"}}]}, {"downloads": {"artifact": {"path": "org/lwjgl/lwjgl-glfw/3.3.3/lwjgl-glfw-3.3.3-natives-macos-arm64.jar", "sha1": "ee8cc78d0a4a5b3b4600fade6d927c9fc320c858", "size": 138288, "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-glfw/3.3.3/lwjgl-glfw-3.3.3-natives-macos-arm64.jar"}}, "name": "org.lwjgl:lwjgl-glfw:3.3.3:natives-macos-arm64", "rules": [{"action": "allow", "os": {"name": "osx"}}]}, {"downloads": {"artifact": {"path": "org/lwjgl/lwjgl-glfw/3.3.3/lwjgl-glfw-3.3.3-natives-windows.jar", "sha1": "e449e28b4891fc423c54c85fbc5bb0b9efece67a", "size": 166368, "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-glfw/3.3.3/lwjgl-glfw-3.3.3-natives-windows.jar"}}, "name": "org.lwjgl:lwjgl-glfw:3.3.3:natives-windows", "rules": [{"action": "allow", "os": {"name": "windows"}}]}, {"downloads": {"artifact": {"path": "org/lwjgl/lwjgl-glfw/3.3.3/lwjgl-glfw-3.3.3-natives-windows-arm64.jar", "sha1": "f27018dc74f6289574502b46cce55d52817554e2", "size": 141970, "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-glfw/3.3.3/lwjgl-glfw-3.3.3-natives-windows-arm64.jar"}}, "name": "org.lwjgl:lwjgl-glfw:3.3.3:natives-windows-arm64", "rules": [{"action": "allow", "os": {"name": "windows"}}]}, {"downloads": {"artifact": {"path": "org/lwjgl/lwjgl-glfw/3.3.3/lwjgl-glfw-3.3.3-natives-windows-x86.jar", "sha1": "32334f3fd5270a59bad9939a93115acb6de36dcf", "size": 157123, "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-glfw/3.3.3/lwjgl-glfw-3.3.3-natives-windows-x86.jar"}}, "name": "org.lwjgl:lwjgl-glfw:3.3.3:natives-windows-x86", "rules": [{"action": "allow", "os": {"name": "windows"}}]}, {"downloads": {"artifact": {"path": "org/lwjgl/lwjgl-jemalloc/3.3.3/lwjgl-jemalloc-3.3.3.jar", "sha1": "b543467b7ff3c6920539a88ee602d34098628be5", "size": 43896, "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-jemalloc/3.3.3/lwjgl-jemalloc-3.3.3.jar"}}, "name": "org.lwjgl:lwjgl-jemalloc:3.3.3"}, {"downloads": {"artifact": {"path": "org/lwjgl/lwjgl-jemalloc/3.3.3/lwjgl-jemalloc-3.3.3-natives-linux.jar", "sha1": "4f86728bf449b1dd61251c4e0ac01df1389cb51e", "size": 206779, "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-jemalloc/3.3.3/lwjgl-jemalloc-3.3.3-natives-linux.jar"}}, "name": "org.lwjgl:lwjgl-jemalloc:3.3.3:natives-linux", "rules": [{"action": "allow", "os": {"name": "linux"}}]}, {"downloads": {"artifact": {"path": "org/lwjgl/lwjgl-jemalloc/3.3.3/lwjgl-jemalloc-3.3.3-natives-macos.jar", "sha1": "2906637657a57579847238c9c72d2c4bde7083f8", "size": 153131, "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-jemalloc/3.3.3/lwjgl-jemalloc-3.3.3-natives-macos.jar"}}, "name": "org.lwjgl:lwjgl-jemalloc:3.3.3:natives-macos", "rules": [{"action": "allow", "os": {"name": "osx"}}]}, {"downloads": {"artifact": {"path": "org/lwjgl/lwjgl-jemalloc/3.3.3/lwjgl-jemalloc-3.3.3-natives-macos-arm64.jar", "sha1": "e9412c3ff8cb3a3bad1d3f52909ad74d8a5bdad1", "size": 141418, "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-jemalloc/3.3.3/lwjgl-jemalloc-3.3.3-natives-macos-arm64.jar"}}, "name": "org.lwjgl:lwjgl-jemalloc:3.3.3:natives-macos-arm64", "rules": [{"action": "allow", "os": {"name": "osx"}}]}, {"downloads": {"artifact": {"path": "org/lwjgl/lwjgl-jemalloc/3.3.3/lwjgl-jemalloc-3.3.3-natives-windows.jar", "sha1": "426222fc027602a5f21b9c0fe79cde6a4c7a011f", "size": 180344, "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-jemalloc/3.3.3/lwjgl-jemalloc-3.3.3-natives-windows.jar"}}, "name": "org.lwjgl:lwjgl-jemalloc:3.3.3:natives-windows", "rules": [{"action": "allow", "os": {"name": "windows"}}]}, {"downloads": {"artifact": {"path": "org/lwjgl/lwjgl-jemalloc/3.3.3/lwjgl-jemalloc-3.3.3-natives-windows-arm64.jar", "sha1": "ba1f3fed0ee4be0217eaa41c5bbfb4b9b1383c33", "size": 154415, "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-jemalloc/3.3.3/lwjgl-jemalloc-3.3.3-natives-windows-arm64.jar"}}, "name": "org.lwjgl:lwjgl-jemalloc:3.3.3:natives-windows-arm64", "rules": [{"action": "allow", "os": {"name": "windows"}}]}, {"downloads": {"artifact": {"path": "org/lwjgl/lwjgl-jemalloc/3.3.3/lwjgl-jemalloc-3.3.3-natives-windows-x86.jar", "sha1": "f6063b6e0f23be483c5c88d84ce51b39dc69126c", "size": 148612, "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-jemalloc/3.3.3/lwjgl-jemalloc-3.3.3-natives-windows-x86.jar"}}, "name": "org.lwjgl:lwjgl-jemalloc:3.3.3:natives-windows-x86", "rules": [{"action": "allow", "os": {"name": "windows"}}]}, {"downloads": {"artifact": {"path": "org/lwjgl/lwjgl-openal/3.3.3/lwjgl-openal-3.3.3.jar", "sha1": "daada81ceb5fc0c291fbfdd4433cb8d9423577f2", "size": 110586, "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-openal/3.3.3/lwjgl-openal-3.3.3.jar"}}, "name": "org.lwjgl:lwjgl-openal:3.3.3"}, {"downloads": {"artifact": {"path": "org/lwjgl/lwjgl-openal/3.3.3/lwjgl-openal-3.3.3-natives-linux.jar", "sha1": "3037360cc4595079bea240af250b6d1a527e0905", "size": 573224, "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-openal/3.3.3/lwjgl-openal-3.3.3-natives-linux.jar"}}, "name": "org.lwjgl:lwjgl-openal:3.3.3:natives-linux", "rules": [{"action": "allow", "os": {"name": "linux"}}]}, {"downloads": {"artifact": {"path": "org/lwjgl/lwjgl-openal/3.3.3/lwjgl-openal-3.3.3-natives-macos.jar", "sha1": "8df8338bfa77f2ebabef4e58964bd04d24805cbf", "size": 519824, "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-openal/3.3.3/lwjgl-openal-3.3.3-natives-macos.jar"}}, "name": "org.lwjgl:lwjgl-openal:3.3.3:natives-macos", "rules": [{"action": "allow", "os": {"name": "osx"}}]}, {"downloads": {"artifact": {"path": "org/lwjgl/lwjgl-openal/3.3.3/lwjgl-openal-3.3.3-natives-macos-arm64.jar", "sha1": "0c78b078de2fb52f45aa55d04db889a560f3544f", "size": 471012, "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-openal/3.3.3/lwjgl-openal-3.3.3-natives-macos-arm64.jar"}}, "name": "org.lwjgl:lwjgl-openal:3.3.3:natives-macos-arm64", "rules": [{"action": "allow", "os": {"name": "osx"}}]}, {"downloads": {"artifact": {"path": "org/lwjgl/lwjgl-openal/3.3.3/lwjgl-openal-3.3.3-natives-windows.jar", "sha1": "cf83862ae95d98496b26915024c7e666d8ab1c8f", "size": 698720, "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-openal/3.3.3/lwjgl-openal-3.3.3-natives-windows.jar"}}, "name": "org.lwjgl:lwjgl-openal:3.3.3:natives-windows", "rules": [{"action": "allow", "os": {"name": "windows"}}]}, {"downloads": {"artifact": {"path": "org/lwjgl/lwjgl-openal/3.3.3/lwjgl-openal-3.3.3-natives-windows-arm64.jar", "sha1": "8e0615235116b9e4160dfe87bec90f5f6378bf72", "size": 630410, "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-openal/3.3.3/lwjgl-openal-3.3.3-natives-windows-arm64.jar"}}, "name": "org.lwjgl:lwjgl-openal:3.3.3:natives-windows-arm64", "rules": [{"action": "allow", "os": {"name": "windows"}}]}, {"downloads": {"artifact": {"path": "org/lwjgl/lwjgl-openal/3.3.3/lwjgl-openal-3.3.3-natives-windows-x86.jar", "sha1": "87b8d5050e3adb46bb58fe1cb2669a4a48fce10d", "size": 638424, "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-openal/3.3.3/lwjgl-openal-3.3.3-natives-windows-x86.jar"}}, "name": "org.lwjgl:lwjgl-openal:3.3.3:natives-windows-x86", "rules": [{"action": "allow", "os": {"name": "windows"}}]}, {"downloads": {"artifact": {"path": "org/lwjgl/lwjgl-opengl/3.3.3/lwjgl-opengl-3.3.3.jar", "sha1": "02f6b0147078396a58979125a4c947664e98293a", "size": 929192, "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-opengl/3.3.3/lwjgl-opengl-3.3.3.jar"}}, "name": "org.lwjgl:lwjgl-opengl:3.3.3"}, {"downloads": {"artifact": {"path": "org/lwjgl/lwjgl-opengl/3.3.3/lwjgl-opengl-3.3.3-natives-linux.jar", "sha1": "62c70a4b00ca5391882b0f4b787c1588d24f1c86", "size": 80463, "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-opengl/3.3.3/lwjgl-opengl-3.3.3-natives-linux.jar"}}, "name": "org.lwjgl:lwjgl-opengl:3.3.3:natives-linux", "rules": [{"action": "allow", "os": {"name": "linux"}}]}, {"downloads": {"artifact": {"path": "org/lwjgl/lwjgl-opengl/3.3.3/lwjgl-opengl-3.3.3-natives-macos.jar", "sha1": "1bd45997551ae8a28469f3a2b678f4b7289e12c0", "size": 41484, "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-opengl/3.3.3/lwjgl-opengl-3.3.3-natives-macos.jar"}}, "name": "org.lwjgl:lwjgl-opengl:3.3.3:natives-macos", "rules": [{"action": "allow", "os": {"name": "osx"}}]}, {"downloads": {"artifact": {"path": "org/lwjgl/lwjgl-opengl/3.3.3/lwjgl-opengl-3.3.3-natives-macos-arm64.jar", "sha1": "d213ddef27637b1af87961ffa94d6b27036becc8", "size": 42487, "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-opengl/3.3.3/lwjgl-opengl-3.3.3-natives-macos-arm64.jar"}}, "name": "org.lwjgl:lwjgl-opengl:3.3.3:natives-macos-arm64", "rules": [{"action": "allow", "os": {"name": "osx"}}]}, {"downloads": {"artifact": {"path": "org/lwjgl/lwjgl-opengl/3.3.3/lwjgl-opengl-3.3.3-natives-windows.jar", "sha1": "e6c1eec8be8a71951b830a4d69efc01c6531900c", "size": 101535, "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-opengl/3.3.3/lwjgl-opengl-3.3.3-natives-windows.jar"}}, "name": "org.lwjgl:lwjgl-opengl:3.3.3:natives-windows", "rules": [{"action": "allow", "os": {"name": "windows"}}]}, {"downloads": {"artifact": {"path": "org/lwjgl/lwjgl-opengl/3.3.3/lwjgl-opengl-3.3.3-natives-windows-arm64.jar", "sha1": "65e956d3735a1abdc82eff4baec1b61174697d4b", "size": 83095, "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-opengl/3.3.3/lwjgl-opengl-3.3.3-natives-windows-arm64.jar"}}, "name": "org.lwjgl:lwjgl-opengl:3.3.3:natives-windows-arm64", "rules": [{"action": "allow", "os": {"name": "windows"}}]}, {"downloads": {"artifact": {"path": "org/lwjgl/lwjgl-opengl/3.3.3/lwjgl-opengl-3.3.3-natives-windows-x86.jar", "sha1": "0d32d833dcaa2f355a886eaf21f0408b5f03241d", "size": 88612, "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-opengl/3.3.3/lwjgl-opengl-3.3.3-natives-windows-x86.jar"}}, "name": "org.lwjgl:lwjgl-opengl:3.3.3:natives-windows-x86", "rules": [{"action": "allow", "os": {"name": "windows"}}]}, {"downloads": {"artifact": {"path": "org/lwjgl/lwjgl-stb/3.3.3/lwjgl-stb-3.3.3.jar", "sha1": "25dd6161988d7e65f71d5065c99902402ee32746", "size": 120283, "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-stb/3.3.3/lwjgl-stb-3.3.3.jar"}}, "name": "org.lwjgl:lwjgl-stb:3.3.3"}, {"downloads": {"artifact": {"path": "org/lwjgl/lwjgl-stb/3.3.3/lwjgl-stb-3.3.3-natives-linux.jar", "sha1": "fd1271ccd9d85eff2fa31f3fd543e02ccfaf5041", "size": 231820, "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-stb/3.3.3/lwjgl-stb-3.3.3-natives-linux.jar"}}, "name": "org.lwjgl:lwjgl-stb:3.3.3:natives-linux", "rules": [{"action": "allow", "os": {"name": "linux"}}]}, {"downloads": {"artifact": {"path": "org/lwjgl/lwjgl-stb/3.3.3/lwjgl-stb-3.3.3-natives-macos.jar", "sha1": "472792c98fb2c1557c060cb9da5fca6a9773621f", "size": 216456, "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-stb/3.3.3/lwjgl-stb-3.3.3-natives-macos.jar"}}, "name": "org.lwjgl:lwjgl-stb:3.3.3:natives-macos", "rules": [{"action": "allow", "os": {"name": "osx"}}]}, {"downloads": {"artifact": {"path": "org/lwjgl/lwjgl-stb/3.3.3/lwjgl-stb-3.3.3-natives-macos-arm64.jar", "sha1": "51c6955571fbcdb7bb538c6aa589b953b584c6af", "size": 183628, "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-stb/3.3.3/lwjgl-stb-3.3.3-natives-macos-arm64.jar"}}, "name": "org.lwjgl:lwjgl-stb:3.3.3:natives-macos-arm64", "rules": [{"action": "allow", "os": {"name": "osx"}}]}, {"downloads": {"artifact": {"path": "org/lwjgl/lwjgl-stb/3.3.3/lwjgl-stb-3.3.3-natives-windows.jar", "sha1": "1d9facdf6541de114b0f963be33505b7679c78cb", "size": 261297, "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-stb/3.3.3/lwjgl-stb-3.3.3-natives-windows.jar"}}, "name": "org.lwjgl:lwjgl-stb:3.3.3:natives-windows", "rules": [{"action": "allow", "os": {"name": "windows"}}]}, {"downloads": {"artifact": {"path": "org/lwjgl/lwjgl-stb/3.3.3/lwjgl-stb-3.3.3-natives-windows-arm64.jar", "sha1": "a584ab44de569708871f0a79561f4d8c37487f2c", "size": 219511, "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-stb/3.3.3/lwjgl-stb-3.3.3-natives-windows-arm64.jar"}}, "name": "org.lwjgl:lwjgl-stb:3.3.3:natives-windows-arm64", "rules": [{"action": "allow", "os": {"name": "windows"}}]}, {"downloads": {"artifact": {"path": "org/lwjgl/lwjgl-stb/3.3.3/lwjgl-stb-3.3.3-natives-windows-x86.jar", "sha1": "b5c874687b9aac1a936501d4ed2c49567fd1b575", "size": 227800, "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-stb/3.3.3/lwjgl-stb-3.3.3-natives-windows-x86.jar"}}, "name": "org.lwjgl:lwjgl-stb:3.3.3:natives-windows-x86", "rules": [{"action": "allow", "os": {"name": "windows"}}]}, {"downloads": {"artifact": {"path": "org/lwjgl/lwjgl-tinyfd/3.3.3/lwjgl-tinyfd-3.3.3.jar", "sha1": "82d755ca94b102e9ca77283b9e2dc46d1b15fbe5", "size": 13400, "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-tinyfd/3.3.3/lwjgl-tinyfd-3.3.3.jar"}}, "name": "org.lwjgl:lwjgl-tinyfd:3.3.3"}, {"downloads": {"artifact": {"path": "org/lwjgl/lwjgl-tinyfd/3.3.3/lwjgl-tinyfd-3.3.3-natives-linux.jar", "sha1": "d8d58daa0c3e5fd906fee96f5fddbcbc07cc308b", "size": 44192, "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-tinyfd/3.3.3/lwjgl-tinyfd-3.3.3-natives-linux.jar"}}, "name": "org.lwjgl:lwjgl-tinyfd:3.3.3:natives-linux", "rules": [{"action": "allow", "os": {"name": "linux"}}]}, {"downloads": {"artifact": {"path": "org/lwjgl/lwjgl-tinyfd/3.3.3/lwjgl-tinyfd-3.3.3-natives-macos.jar", "sha1": "6598081e346a03038a8be68eb2de614a1c2eac68", "size": 45865, "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-tinyfd/3.3.3/lwjgl-tinyfd-3.3.3-natives-macos.jar"}}, "name": "org.lwjgl:lwjgl-tinyfd:3.3.3:natives-macos", "rules": [{"action": "allow", "os": {"name": "osx"}}]}, {"downloads": {"artifact": {"path": "org/lwjgl/lwjgl-tinyfd/3.3.3/lwjgl-tinyfd-3.3.3-natives-macos-arm64.jar", "sha1": "406feedb977372085a61eb0fee358183f4f4c67a", "size": 42498, "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-tinyfd/3.3.3/lwjgl-tinyfd-3.3.3-natives-macos-arm64.jar"}}, "name": "org.lwjgl:lwjgl-tinyfd:3.3.3:natives-macos-arm64", "rules": [{"action": "allow", "os": {"name": "osx"}}]}, {"downloads": {"artifact": {"path": "org/lwjgl/lwjgl-tinyfd/3.3.3/lwjgl-tinyfd-3.3.3-natives-windows.jar", "sha1": "a6697981b0449a5087c1d546fc08b4f73e8f98c9", "size": 130253, "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-tinyfd/3.3.3/lwjgl-tinyfd-3.3.3-natives-windows.jar"}}, "name": "org.lwjgl:lwjgl-tinyfd:3.3.3:natives-windows", "rules": [{"action": "allow", "os": {"name": "windows"}}]}, {"downloads": {"artifact": {"path": "org/lwjgl/lwjgl-tinyfd/3.3.3/lwjgl-tinyfd-3.3.3-natives-windows-arm64.jar", "sha1": "a88c494f3006eb91a7433b12a3a55a9a6c20788b", "size": 110867, "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-tinyfd/3.3.3/lwjgl-tinyfd-3.3.3-natives-windows-arm64.jar"}}, "name": "org.lwjgl:lwjgl-tinyfd:3.3.3:natives-windows-arm64", "rules": [{"action": "allow", "os": {"name": "windows"}}]}, {"downloads": {"artifact": {"path": "org/lwjgl/lwjgl-tinyfd/3.3.3/lwjgl-tinyfd-3.3.3-natives-windows-x86.jar", "sha1": "c336c84ee88cccb495c6ffa112395509e7378e8a", "size": 111797, "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-tinyfd/3.3.3/lwjgl-tinyfd-3.3.3-natives-windows-x86.jar"}}, "name": "org.lwjgl:lwjgl-tinyfd:3.3.3:natives-windows-x86", "rules": [{"action": "allow", "os": {"name": "windows"}}]}, {"downloads": {"artifact": {"path": "org/lwjgl/lwjgl/3.3.3/lwjgl-3.3.3.jar", "sha1": "29589b5f87ed335a6c7e7ee6a5775f81f97ecb84", "size": 785029, "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl/3.3.3/lwjgl-3.3.3.jar"}}, "name": "org.lwjgl:lwjgl:3.3.3"}, {"downloads": {"artifact": {"path": "org/lwjgl/lwjgl/3.3.3/lwjgl-3.3.3-natives-linux.jar", "sha1": "1713758e3660ba66e1e954396fd18126038b33c0", "size": 114627, "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl/3.3.3/lwjgl-3.3.3-natives-linux.jar"}}, "name": "org.lwjgl:lwjgl:3.3.3:natives-linux", "rules": [{"action": "allow", "os": {"name": "linux"}}]}, {"downloads": {"artifact": {"path": "org/lwjgl/lwjgl/3.3.3/lwjgl-3.3.3-natives-macos.jar", "sha1": "33a6efa288390490ce6eb6c3df47ac21ecf648cf", "size": 60543, "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl/3.3.3/lwjgl-3.3.3-natives-macos.jar"}}, "name": "org.lwjgl:lwjgl:3.3.3:natives-macos", "rules": [{"action": "allow", "os": {"name": "osx"}}]}, {"downloads": {"artifact": {"path": "org/lwjgl/lwjgl/3.3.3/lwjgl-3.3.3-natives-macos-arm64.jar", "sha1": "226246e75f6bd8d4e1895bdce8638ef87808d114", "size": 48620, "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl/3.3.3/lwjgl-3.3.3-natives-macos-arm64.jar"}}, "name": "org.lwjgl:lwjgl:3.3.3:natives-macos-arm64", "rules": [{"action": "allow", "os": {"name": "osx"}}]}, {"downloads": {"artifact": {"path": "org/lwjgl/lwjgl/3.3.3/lwjgl-3.3.3-natives-windows.jar", "sha1": "a5ed18a2b82fc91b81f40d717cb1f64c9dcb0540", "size": 165442, "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl/3.3.3/lwjgl-3.3.3-natives-windows.jar"}}, "name": "org.lwjgl:lwjgl:3.3.3:natives-windows", "rules": [{"action": "allow", "os": {"name": "windows"}}]}, {"downloads": {"artifact": {"path": "org/lwjgl/lwjgl/3.3.3/lwjgl-3.3.3-natives-windows-arm64.jar", "sha1": "e9aca8c5479b520a2a7f0d542a118140e812c5e8", "size": 133378, "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl/3.3.3/lwjgl-3.3.3-natives-windows-arm64.jar"}}, "name": "org.lwjgl:lwjgl:3.3.3:natives-windows-arm64", "rules": [{"action": "allow", "os": {"name": "windows"}}]}, {"downloads": {"artifact": {"path": "org/lwjgl/lwjgl/3.3.3/lwjgl-3.3.3-natives-windows-x86.jar", "sha1": "9e670718e050aeaeea0c2d5b907cffb142f2e58f", "size": 139653, "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl/3.3.3/lwjgl-3.3.3-natives-windows-x86.jar"}}, "name": "org.lwjgl:lwjgl:3.3.3:natives-windows-x86", "rules": [{"action": "allow", "os": {"name": "windows"}}]}, {"downloads": {"artifact": {"path": "org/lz4/lz4-java/1.8.0/lz4-java-1.8.0.jar", "sha1": "4b986a99445e49ea5fbf5d149c4b63f6ed6c6780", "size": 682804, "url": "https://libraries.minecraft.net/org/lz4/lz4-java/1.8.0/lz4-java-1.8.0.jar"}}, "name": "org.lz4:lz4-java:1.8.0"}, {"downloads": {"artifact": {"path": "org/slf4j/slf4j-api/2.0.9/slf4j-api-2.0.9.jar", "sha1": "7cf2726fdcfbc8610f9a71fb3ed639871f315340", "size": 64579, "url": "https://libraries.minecraft.net/org/slf4j/slf4j-api/2.0.9/slf4j-api-2.0.9.jar"}}, "name": "org.slf4j:slf4j-api:2.0.9"}], "logging": {"client": {"argument": "-Dlog4j.configurationFile=${path}", "file": {"id": "client-1.12.xml", "sha1": "bd65e7d2e3c237be76cfbef4c2405033d7f91521", "size": 888, "url": "https://piston-data.mojang.com/v1/objects/bd65e7d2e3c237be76cfbef4c2405033d7f91521/client-1.12.xml"}, "type": "log4j2-xml"}}, "mainClass": "net.minecraft.client.main.Main", "minimumLauncherVersion": 21, "releaseTime": "2024-04-29T12:40:45+00:00", "time": "2024-04-29T12:40:45+00:00", "type": "release"}
\ No newline at end of file
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.20.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.20.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.20.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.20.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.3.1.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.3.1.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.3.1.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.3.1.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.3.2.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.3.2.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.3.2.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.3.2.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.3.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.3.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.3.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.3.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.4.1.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.4.1.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.4.1.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.4.1.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.4.2.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.4.2.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.4.2.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.4.2.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.4.3.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.4.3.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.4.3.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.4.3.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.4.4.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.4.4.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.4.4.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.4.4.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.4.5.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.4.5.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.4.5.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.4.5.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.4.6.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.4.6.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.4.6.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.4.6.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.4.7.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.4.7.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.4.7.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.4.7.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.4.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.4.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.4.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.4.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.5.1.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.5.1.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.5.1.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.5.1.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.5.2.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.5.2.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.5.2.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.5.2.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.5.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.5.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.5.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.5.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.6.1.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.6.1.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.6.1.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.6.1.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.6.2.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.6.2.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.6.2.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.6.2.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.6.3.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.6.3.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.6.3.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.6.3.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.6.4.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.6.4.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.6.4.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.6.4.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.6.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.6.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.6.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.6.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.7.1.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.7.1.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.7.1.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.7.1.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.7.10-pre1.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.7.10-pre1.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.7.10-pre1.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.7.10-pre1.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.7.10-pre2.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.7.10-pre2.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.7.10-pre2.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.7.10-pre2.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.7.10-pre3.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.7.10-pre3.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.7.10-pre3.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.7.10-pre3.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.7.10-pre4.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.7.10-pre4.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.7.10-pre4.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.7.10-pre4.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.7.10.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.7.10.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.7.10.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.7.10.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.7.2.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.7.2.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.7.2.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.7.2.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.7.3.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.7.3.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.7.3.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.7.3.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.7.4.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.7.4.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.7.4.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.7.4.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.7.5.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.7.5.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.7.5.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.7.5.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.7.6-pre1.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.7.6-pre1.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.7.6-pre1.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.7.6-pre1.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.7.6-pre2.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.7.6-pre2.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.7.6-pre2.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.7.6-pre2.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.7.6.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.7.6.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.7.6.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.7.6.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.7.7.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.7.7.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.7.7.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.7.7.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.7.8.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.7.8.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.7.8.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.7.8.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.7.9.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.7.9.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.7.9.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.7.9.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.7.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.7.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.7.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.7.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.8-pre1.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.8-pre1.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.8-pre1.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.8-pre1.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.8-pre2.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.8-pre2.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.8-pre2.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.8-pre2.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.8-pre3.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.8-pre3.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.8-pre3.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.8-pre3.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.8.1-pre1.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.8.1-pre1.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.8.1-pre1.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.8.1-pre1.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.8.1-pre2.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.8.1-pre2.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.8.1-pre2.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.8.1-pre2.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.8.1-pre3.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.8.1-pre3.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.8.1-pre3.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.8.1-pre3.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.8.1-pre4.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.8.1-pre4.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.8.1-pre4.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.8.1-pre4.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.8.1-pre5.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.8.1-pre5.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.8.1-pre5.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.8.1-pre5.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.8.1.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.8.1.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.8.1.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.8.1.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.8.2-pre1.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.8.2-pre1.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.8.2-pre1.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.8.2-pre1.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.8.2-pre2.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.8.2-pre2.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.8.2-pre2.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.8.2-pre2.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.8.2-pre3.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.8.2-pre3.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.8.2-pre3.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.8.2-pre3.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.8.2-pre4.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.8.2-pre4.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.8.2-pre4.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.8.2-pre4.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.8.2-pre5.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.8.2-pre5.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.8.2-pre5.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.8.2-pre5.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.8.2-pre6.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.8.2-pre6.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.8.2-pre6.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.8.2-pre6.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.8.2-pre7.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.8.2-pre7.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.8.2-pre7.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.8.2-pre7.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.8.2.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.8.2.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.8.2.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.8.2.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.8.3.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.8.3.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.8.3.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.8.3.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.8.4.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.8.4.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.8.4.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.8.4.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.8.5.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.8.5.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.8.5.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.8.5.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.8.6.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.8.6.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.8.6.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.8.6.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.8.7.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.8.7.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.8.7.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.8.7.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.8.8.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.8.8.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.8.8.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.8.8.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.8.9.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.8.9.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.8.9.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.8.9.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.8.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.8.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.8.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.8.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.9-pre1.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.9-pre1.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.9-pre1.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.9-pre1.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.9-pre2.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.9-pre2.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.9-pre2.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.9-pre2.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.9-pre3.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.9-pre3.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.9-pre3.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.9-pre3.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.9-pre4.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.9-pre4.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.9-pre4.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.9-pre4.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.9.1-pre1.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.9.1-pre1.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.9.1-pre1.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.9.1-pre1.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.9.1-pre2.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.9.1-pre2.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.9.1-pre2.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.9.1-pre2.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.9.1-pre3.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.9.1-pre3.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.9.1-pre3.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.9.1-pre3.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.9.1.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.9.1.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.9.1.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.9.1.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.9.2.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.9.2.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.9.2.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.9.2.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.9.3-pre1.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.9.3-pre1.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.9.3-pre1.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.9.3-pre1.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.9.3-pre2.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.9.3-pre2.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.9.3-pre2.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.9.3-pre2.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.9.3-pre3.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.9.3-pre3.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.9.3-pre3.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.9.3-pre3.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.9.3.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.9.3.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.9.3.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.9.3.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.9.4.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.9.4.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.9.4.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.9.4.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.9.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.9.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.9.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.9.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.RV-Pre1.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.RV-Pre1.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/1.RV-Pre1.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/1.RV-Pre1.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/13w16a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/13w16a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/13w16a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/13w16a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/13w16b.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/13w16b.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/13w16b.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/13w16b.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/13w17a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/13w17a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/13w17a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/13w17a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/13w18a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/13w18a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/13w18a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/13w18a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/13w18b.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/13w18b.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/13w18b.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/13w18b.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/13w18c.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/13w18c.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/13w18c.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/13w18c.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/13w19a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/13w19a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/13w19a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/13w19a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/13w21a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/13w21a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/13w21a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/13w21a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/13w21b.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/13w21b.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/13w21b.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/13w21b.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/13w22a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/13w22a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/13w22a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/13w22a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/13w23a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/13w23a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/13w23a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/13w23a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/13w23b.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/13w23b.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/13w23b.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/13w23b.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/13w24a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/13w24a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/13w24a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/13w24a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/13w24b.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/13w24b.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/13w24b.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/13w24b.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/13w25a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/13w25a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/13w25a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/13w25a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/13w25b.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/13w25b.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/13w25b.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/13w25b.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/13w25c.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/13w25c.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/13w25c.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/13w25c.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/13w26a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/13w26a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/13w26a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/13w26a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/13w36a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/13w36a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/13w36a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/13w36a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/13w36b.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/13w36b.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/13w36b.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/13w36b.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/13w37a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/13w37a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/13w37a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/13w37a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/13w37b.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/13w37b.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/13w37b.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/13w37b.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/13w38a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/13w38a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/13w38a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/13w38a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/13w38b.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/13w38b.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/13w38b.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/13w38b.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/13w38c.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/13w38c.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/13w38c.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/13w38c.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/13w39a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/13w39a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/13w39a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/13w39a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/13w39b.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/13w39b.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/13w39b.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/13w39b.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/13w41a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/13w41a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/13w41a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/13w41a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/13w41b.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/13w41b.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/13w41b.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/13w41b.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/13w42a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/13w42a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/13w42a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/13w42a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/13w42b.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/13w42b.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/13w42b.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/13w42b.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/13w43a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/13w43a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/13w43a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/13w43a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/13w47a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/13w47a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/13w47a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/13w47a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/13w47b.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/13w47b.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/13w47b.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/13w47b.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/13w47c.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/13w47c.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/13w47c.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/13w47c.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/13w47d.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/13w47d.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/13w47d.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/13w47d.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/13w47e.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/13w47e.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/13w47e.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/13w47e.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/13w48a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/13w48a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/13w48a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/13w48a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/13w48b.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/13w48b.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/13w48b.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/13w48b.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/13w49a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/13w49a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/13w49a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/13w49a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/14w02a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/14w02a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/14w02a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/14w02a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/14w02b.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/14w02b.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/14w02b.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/14w02b.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/14w02c.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/14w02c.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/14w02c.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/14w02c.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/14w03a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/14w03a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/14w03a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/14w03a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/14w03b.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/14w03b.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/14w03b.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/14w03b.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/14w04a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/14w04a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/14w04a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/14w04a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/14w04b.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/14w04b.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/14w04b.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/14w04b.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/14w05a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/14w05a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/14w05a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/14w05a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/14w05b.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/14w05b.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/14w05b.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/14w05b.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/14w06a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/14w06a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/14w06a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/14w06a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/14w06b.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/14w06b.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/14w06b.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/14w06b.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/14w07a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/14w07a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/14w07a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/14w07a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/14w08a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/14w08a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/14w08a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/14w08a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/14w10a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/14w10a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/14w10a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/14w10a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/14w10b.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/14w10b.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/14w10b.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/14w10b.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/14w10c.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/14w10c.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/14w10c.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/14w10c.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/14w11a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/14w11a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/14w11a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/14w11a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/14w11b.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/14w11b.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/14w11b.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/14w11b.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/14w17a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/14w17a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/14w17a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/14w17a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/14w18a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/14w18a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/14w18a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/14w18a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/14w18b.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/14w18b.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/14w18b.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/14w18b.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/14w19a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/14w19a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/14w19a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/14w19a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/14w20a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/14w20a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/14w20a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/14w20a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/14w20b.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/14w20b.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/14w20b.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/14w20b.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/14w21a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/14w21a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/14w21a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/14w21a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/14w21b.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/14w21b.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/14w21b.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/14w21b.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/14w25a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/14w25a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/14w25a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/14w25a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/14w25b.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/14w25b.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/14w25b.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/14w25b.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/14w26a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/14w26a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/14w26a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/14w26a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/14w26b.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/14w26b.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/14w26b.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/14w26b.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/14w26c.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/14w26c.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/14w26c.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/14w26c.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/14w27a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/14w27a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/14w27a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/14w27a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/14w27b.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/14w27b.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/14w27b.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/14w27b.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/14w28a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/14w28a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/14w28a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/14w28a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/14w28b.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/14w28b.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/14w28b.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/14w28b.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/14w29a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/14w29a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/14w29a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/14w29a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/14w29b.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/14w29b.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/14w29b.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/14w29b.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/14w30a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/14w30a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/14w30a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/14w30a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/14w30b.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/14w30b.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/14w30b.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/14w30b.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/14w30c.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/14w30c.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/14w30c.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/14w30c.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/14w31a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/14w31a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/14w31a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/14w31a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/14w32a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/14w32a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/14w32a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/14w32a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/14w32b.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/14w32b.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/14w32b.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/14w32b.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/14w32c.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/14w32c.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/14w32c.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/14w32c.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/14w32d.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/14w32d.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/14w32d.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/14w32d.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/14w33a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/14w33a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/14w33a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/14w33a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/14w33b.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/14w33b.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/14w33b.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/14w33b.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/14w33c.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/14w33c.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/14w33c.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/14w33c.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/14w34a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/14w34a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/14w34a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/14w34a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/14w34b.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/14w34b.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/14w34b.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/14w34b.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/14w34c.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/14w34c.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/14w34c.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/14w34c.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/14w34d.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/14w34d.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/14w34d.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/14w34d.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/15w14a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/15w14a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/15w14a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/15w14a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/15w31a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/15w31a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/15w31a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/15w31a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/15w31b.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/15w31b.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/15w31b.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/15w31b.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/15w31c.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/15w31c.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/15w31c.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/15w31c.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/15w32a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/15w32a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/15w32a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/15w32a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/15w32b.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/15w32b.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/15w32b.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/15w32b.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/15w32c.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/15w32c.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/15w32c.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/15w32c.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/15w33a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/15w33a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/15w33a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/15w33a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/15w33b.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/15w33b.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/15w33b.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/15w33b.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/15w33c.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/15w33c.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/15w33c.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/15w33c.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/15w34a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/15w34a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/15w34a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/15w34a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/15w34b.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/15w34b.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/15w34b.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/15w34b.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/15w34c.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/15w34c.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/15w34c.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/15w34c.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/15w34d.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/15w34d.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/15w34d.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/15w34d.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/15w35a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/15w35a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/15w35a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/15w35a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/15w35b.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/15w35b.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/15w35b.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/15w35b.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/15w35c.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/15w35c.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/15w35c.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/15w35c.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/15w35d.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/15w35d.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/15w35d.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/15w35d.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/15w35e.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/15w35e.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/15w35e.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/15w35e.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/15w36a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/15w36a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/15w36a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/15w36a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/15w36b.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/15w36b.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/15w36b.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/15w36b.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/15w36c.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/15w36c.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/15w36c.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/15w36c.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/15w36d.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/15w36d.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/15w36d.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/15w36d.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/15w37a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/15w37a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/15w37a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/15w37a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/15w38a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/15w38a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/15w38a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/15w38a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/15w38b.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/15w38b.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/15w38b.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/15w38b.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/15w39a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/15w39a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/15w39a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/15w39a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/15w39b.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/15w39b.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/15w39b.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/15w39b.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/15w39c.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/15w39c.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/15w39c.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/15w39c.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/15w40a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/15w40a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/15w40a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/15w40a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/15w40b.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/15w40b.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/15w40b.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/15w40b.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/15w41a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/15w41a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/15w41a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/15w41a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/15w41b.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/15w41b.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/15w41b.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/15w41b.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/15w42a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/15w42a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/15w42a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/15w42a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/15w43a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/15w43a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/15w43a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/15w43a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/15w43b.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/15w43b.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/15w43b.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/15w43b.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/15w43c.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/15w43c.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/15w43c.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/15w43c.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/15w44a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/15w44a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/15w44a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/15w44a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/15w44b.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/15w44b.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/15w44b.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/15w44b.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/15w45a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/15w45a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/15w45a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/15w45a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/15w46a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/15w46a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/15w46a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/15w46a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/15w47a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/15w47a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/15w47a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/15w47a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/15w47b.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/15w47b.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/15w47b.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/15w47b.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/15w47c.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/15w47c.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/15w47c.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/15w47c.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/15w49a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/15w49a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/15w49a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/15w49a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/15w49b.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/15w49b.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/15w49b.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/15w49b.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/15w50a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/15w50a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/15w50a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/15w50a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/15w51a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/15w51a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/15w51a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/15w51a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/15w51b.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/15w51b.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/15w51b.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/15w51b.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/16w02a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/16w02a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/16w02a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/16w02a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/16w03a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/16w03a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/16w03a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/16w03a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/16w04a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/16w04a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/16w04a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/16w04a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/16w05a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/16w05a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/16w05a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/16w05a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/16w05b.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/16w05b.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/16w05b.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/16w05b.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/16w06a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/16w06a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/16w06a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/16w06a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/16w07a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/16w07a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/16w07a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/16w07a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/16w07b.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/16w07b.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/16w07b.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/16w07b.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/16w14a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/16w14a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/16w14a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/16w14a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/16w15a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/16w15a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/16w15a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/16w15a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/16w15b.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/16w15b.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/16w15b.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/16w15b.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/16w20a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/16w20a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/16w20a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/16w20a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/16w21a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/16w21a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/16w21a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/16w21a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/16w21b.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/16w21b.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/16w21b.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/16w21b.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/16w32a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/16w32a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/16w32a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/16w32a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/16w32b.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/16w32b.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/16w32b.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/16w32b.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/16w33a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/16w33a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/16w33a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/16w33a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/16w35a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/16w35a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/16w35a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/16w35a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/16w36a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/16w36a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/16w36a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/16w36a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/16w38a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/16w38a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/16w38a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/16w38a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/16w39a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/16w39a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/16w39a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/16w39a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/16w39b.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/16w39b.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/16w39b.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/16w39b.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/16w39c.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/16w39c.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/16w39c.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/16w39c.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/16w40a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/16w40a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/16w40a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/16w40a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/16w41a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/16w41a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/16w41a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/16w41a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/16w42a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/16w42a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/16w42a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/16w42a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/16w43a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/16w43a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/16w43a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/16w43a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/16w44a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/16w44a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/16w44a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/16w44a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/16w50a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/16w50a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/16w50a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/16w50a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/17w06a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/17w06a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/17w06a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/17w06a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/17w13a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/17w13a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/17w13a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/17w13a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/17w13b.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/17w13b.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/17w13b.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/17w13b.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/17w14a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/17w14a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/17w14a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/17w14a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/17w15a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/17w15a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/17w15a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/17w15a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/17w16a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/17w16a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/17w16a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/17w16a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/17w16b.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/17w16b.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/17w16b.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/17w16b.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/17w17a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/17w17a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/17w17a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/17w17a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/17w17b.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/17w17b.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/17w17b.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/17w17b.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/17w18a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/17w18a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/17w18a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/17w18a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/17w18b.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/17w18b.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/17w18b.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/17w18b.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/17w31a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/17w31a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/17w31a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/17w31a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/17w43a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/17w43a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/17w43a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/17w43a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/17w43b.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/17w43b.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/17w43b.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/17w43b.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/17w45a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/17w45a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/17w45a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/17w45a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/17w45b.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/17w45b.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/17w45b.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/17w45b.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/17w46a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/17w46a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/17w46a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/17w46a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/17w47a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/17w47a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/17w47a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/17w47a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/17w47b.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/17w47b.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/17w47b.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/17w47b.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/17w48a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/17w48a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/17w48a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/17w48a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/17w49a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/17w49a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/17w49a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/17w49a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/17w49b.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/17w49b.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/17w49b.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/17w49b.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/17w50a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/17w50a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/17w50a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/17w50a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/18w01a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/18w01a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/18w01a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/18w01a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/18w02a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/18w02a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/18w02a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/18w02a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/18w03a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/18w03a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/18w03a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/18w03a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/18w03b.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/18w03b.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/18w03b.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/18w03b.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/18w05a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/18w05a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/18w05a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/18w05a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/18w06a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/18w06a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/18w06a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/18w06a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/18w07a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/18w07a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/18w07a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/18w07a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/18w07b.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/18w07b.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/18w07b.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/18w07b.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/18w07c.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/18w07c.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/18w07c.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/18w07c.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/18w08a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/18w08a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/18w08a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/18w08a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/18w08b.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/18w08b.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/18w08b.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/18w08b.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/18w09a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/18w09a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/18w09a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/18w09a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/18w10a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/18w10a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/18w10a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/18w10a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/18w10b.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/18w10b.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/18w10b.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/18w10b.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/18w10c.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/18w10c.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/18w10c.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/18w10c.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/18w10d.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/18w10d.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/18w10d.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/18w10d.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/18w11a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/18w11a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/18w11a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/18w11a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/18w14a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/18w14a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/18w14a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/18w14a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/18w14b.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/18w14b.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/18w14b.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/18w14b.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/18w15a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/18w15a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/18w15a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/18w15a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/18w16a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/18w16a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/18w16a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/18w16a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/18w19a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/18w19a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/18w19a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/18w19a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/18w19b.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/18w19b.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/18w19b.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/18w19b.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/18w20a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/18w20a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/18w20a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/18w20a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/18w20b.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/18w20b.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/18w20b.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/18w20b.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/18w20c.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/18w20c.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/18w20c.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/18w20c.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/18w21a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/18w21a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/18w21a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/18w21a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/18w21b.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/18w21b.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/18w21b.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/18w21b.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/18w22a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/18w22a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/18w22a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/18w22a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/18w22b.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/18w22b.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/18w22b.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/18w22b.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/18w22c.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/18w22c.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/18w22c.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/18w22c.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/18w30a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/18w30a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/18w30a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/18w30a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/18w30b.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/18w30b.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/18w30b.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/18w30b.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/18w31a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/18w31a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/18w31a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/18w31a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/18w32a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/18w32a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/18w32a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/18w32a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/18w33a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/18w33a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/18w33a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/18w33a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/18w43a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/18w43a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/18w43a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/18w43a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/18w43b.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/18w43b.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/18w43b.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/18w43b.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/18w43c.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/18w43c.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/18w43c.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/18w43c.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/18w44a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/18w44a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/18w44a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/18w44a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/18w45a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/18w45a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/18w45a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/18w45a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/18w46a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/18w46a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/18w46a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/18w46a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/18w47a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/18w47a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/18w47a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/18w47a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/18w47b.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/18w47b.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/18w47b.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/18w47b.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/18w48a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/18w48a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/18w48a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/18w48a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/18w48b.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/18w48b.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/18w48b.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/18w48b.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/18w49a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/18w49a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/18w49a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/18w49a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/18w50a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/18w50a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/18w50a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/18w50a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/19w02a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/19w02a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/19w02a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/19w02a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/19w03a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/19w03a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/19w03a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/19w03a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/19w03b.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/19w03b.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/19w03b.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/19w03b.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/19w03c.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/19w03c.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/19w03c.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/19w03c.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/19w04a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/19w04a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/19w04a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/19w04a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/19w04b.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/19w04b.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/19w04b.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/19w04b.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/19w05a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/19w05a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/19w05a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/19w05a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/19w06a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/19w06a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/19w06a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/19w06a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/19w07a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/19w07a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/19w07a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/19w07a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/19w08a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/19w08a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/19w08a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/19w08a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/19w08b.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/19w08b.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/19w08b.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/19w08b.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/19w09a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/19w09a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/19w09a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/19w09a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/19w11a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/19w11a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/19w11a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/19w11a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/19w11b.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/19w11b.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/19w11b.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/19w11b.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/19w12a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/19w12a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/19w12a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/19w12a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/19w12b.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/19w12b.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/19w12b.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/19w12b.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/19w13a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/19w13a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/19w13a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/19w13a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/19w13b.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/19w13b.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/19w13b.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/19w13b.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/19w14a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/19w14a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/19w14a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/19w14a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/19w14b.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/19w14b.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/19w14b.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/19w14b.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/19w34a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/19w34a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/19w34a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/19w34a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/19w35a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/19w35a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/19w35a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/19w35a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/19w36a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/19w36a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/19w36a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/19w36a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/19w37a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/19w37a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/19w37a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/19w37a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/19w38a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/19w38a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/19w38a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/19w38a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/19w38b.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/19w38b.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/19w38b.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/19w38b.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/19w39a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/19w39a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/19w39a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/19w39a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/19w40a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/19w40a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/19w40a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/19w40a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/19w41a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/19w41a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/19w41a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/19w41a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/19w42a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/19w42a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/19w42a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/19w42a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/19w44a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/19w44a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/19w44a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/19w44a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/19w45a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/19w45a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/19w45a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/19w45a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/19w45b.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/19w45b.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/19w45b.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/19w45b.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/19w46a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/19w46a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/19w46a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/19w46a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/19w46b.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/19w46b.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/19w46b.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/19w46b.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/20w06a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/20w06a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/20w06a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/20w06a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/20w07a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/20w07a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/20w07a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/20w07a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/20w08a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/20w08a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/20w08a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/20w08a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/20w09a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/20w09a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/20w09a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/20w09a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/20w10a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/20w10a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/20w10a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/20w10a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/20w11a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/20w11a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/20w11a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/20w11a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/20w12a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/20w12a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/20w12a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/20w12a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/20w13a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/20w13a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/20w13a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/20w13a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/20w13b.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/20w13b.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/20w13b.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/20w13b.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/20w14a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/20w14a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/20w14a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/20w14a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/20w14infinite.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/20w14infinite.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/20w14infinite.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/20w14infinite.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/20w15a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/20w15a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/20w15a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/20w15a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/20w16a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/20w16a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/20w16a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/20w16a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/20w17a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/20w17a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/20w17a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/20w17a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/20w18a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/20w18a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/20w18a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/20w18a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/20w19a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/20w19a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/20w19a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/20w19a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/20w20a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/20w20a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/20w20a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/20w20a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/20w20b.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/20w20b.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/20w20b.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/20w20b.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/20w21a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/20w21a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/20w21a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/20w21a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/20w22a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/20w22a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/20w22a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/20w22a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/20w27a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/20w27a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/20w27a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/20w27a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/20w28a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/20w28a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/20w28a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/20w28a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/20w29a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/20w29a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/20w29a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/20w29a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/20w30a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/20w30a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/20w30a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/20w30a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/20w45a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/20w45a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/20w45a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/20w45a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/20w46a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/20w46a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/20w46a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/20w46a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/20w48a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/20w48a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/20w48a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/20w48a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/20w49a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/20w49a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/20w49a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/20w49a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/20w51a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/20w51a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/20w51a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/20w51a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/21w03a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/21w03a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/21w03a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/21w03a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/21w05a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/21w05a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/21w05a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/21w05a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/21w05b.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/21w05b.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/21w05b.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/21w05b.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/21w06a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/21w06a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/21w06a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/21w06a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/21w07a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/21w07a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/21w07a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/21w07a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/21w08a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/21w08a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/21w08a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/21w08a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/21w08b.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/21w08b.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/21w08b.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/21w08b.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/21w10a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/21w10a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/21w10a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/21w10a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/21w11a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/21w11a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/21w11a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/21w11a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/21w13a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/21w13a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/21w13a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/21w13a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/21w14a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/21w14a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/21w14a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/21w14a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/21w15a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/21w15a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/21w15a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/21w15a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/21w16a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/21w16a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/21w16a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/21w16a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/21w17a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/21w17a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/21w17a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/21w17a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/21w18a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/21w18a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/21w18a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/21w18a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/21w19a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/21w19a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/21w19a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/21w19a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/21w20a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/21w20a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/21w20a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/21w20a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/21w37a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/21w37a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/21w37a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/21w37a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/21w38a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/21w38a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/21w38a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/21w38a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/21w39a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/21w39a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/21w39a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/21w39a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/21w40a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/21w40a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/21w40a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/21w40a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/21w41a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/21w41a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/21w41a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/21w41a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/21w42a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/21w42a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/21w42a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/21w42a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/21w43a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/21w43a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/21w43a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/21w43a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/21w44a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/21w44a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/21w44a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/21w44a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/22w03a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/22w03a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/22w03a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/22w03a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/22w05a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/22w05a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/22w05a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/22w05a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/22w06a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/22w06a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/22w06a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/22w06a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/22w07a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/22w07a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/22w07a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/22w07a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/22w11a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/22w11a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/22w11a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/22w11a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/22w12a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/22w12a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/22w12a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/22w12a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/22w13a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/22w13a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/22w13a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/22w13a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/22w13oneblockatatime.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/22w13oneblockatatime.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/22w13oneblockatatime.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/22w13oneblockatatime.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/22w14a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/22w14a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/22w14a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/22w14a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/22w15a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/22w15a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/22w15a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/22w15a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/22w16a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/22w16a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/22w16a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/22w16a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/22w16b.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/22w16b.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/22w16b.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/22w16b.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/22w17a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/22w17a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/22w17a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/22w17a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/22w18a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/22w18a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/22w18a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/22w18a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/22w19a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/22w19a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/22w19a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/22w19a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/22w24a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/22w24a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/22w24a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/22w24a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/22w42a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/22w42a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/22w42a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/22w42a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/22w43a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/22w43a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/22w43a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/22w43a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/22w44a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/22w44a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/22w44a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/22w44a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/22w45a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/22w45a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/22w45a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/22w45a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/22w46a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/22w46a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/22w46a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/22w46a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/23w03a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/23w03a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/23w03a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/23w03a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/23w04a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/23w04a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/23w04a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/23w04a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/23w05a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/23w05a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/23w05a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/23w05a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/23w06a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/23w06a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/23w06a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/23w06a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/23w07a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/23w07a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/23w07a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/23w07a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/23w12a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/23w12a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/23w12a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/23w12a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/23w13a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/23w13a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/23w13a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/23w13a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/23w13a_or_b.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/23w13a_or_b.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/23w13a_or_b.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/23w13a_or_b.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/23w14a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/23w14a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/23w14a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/23w14a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/23w16a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/23w16a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/23w16a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/23w16a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/23w17a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/23w17a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/23w17a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/23w17a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/23w18a.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/23w18a.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/23w18a.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/23w18a.json
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/3D Shareware v1.34.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/3D Shareware v1.34.json
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/mcserver/3D Shareware v1.34.json
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/mcserver/3D Shareware v1.34.json
diff --git a/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/minecraft-manifest.json b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/minecraft-manifest.json
new file mode 100644
index 000000000..a7288bc94
--- /dev/null
+++ b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/minecraft-manifest.json
@@ -0,0 +1 @@
+{"latest": {"release": "1.20.6", "snapshot": "24w21b"}, "versions": [{"id": "24w21b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/d585c8e981e58326237746ca1253dea15c9e4aaa/24w21b.json", "time": "2024-05-22T16:34:05+00:00", "releaseTime": "2024-05-22T16:25:41+00:00"}, {"id": "24w21a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/a7346493faf4a8fd8bb4b9ea179ab60345d70b20/24w21a.json", "time": "2024-05-22T14:26:26+00:00", "releaseTime": "2024-05-22T14:18:26+00:00"}, {"id": "24w20a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/f84fe1745344d33978cbf16857a0576402abc9ea/24w20a.json", "time": "2024-05-22T11:55:49+00:00", "releaseTime": "2024-05-15T12:00:35+00:00"}, {"id": "24w19b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/e31c245048e6d135e2ebea1755cffebfba0b70c2/24w19b.json", "time": "2024-05-22T11:55:49+00:00", "releaseTime": "2024-05-10T14:32:42+00:00"}, {"id": "24w19a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/0328405027d9526ea41ed764117bec49ddd1ed50/24w19a.json", "time": "2024-05-22T11:55:49+00:00", "releaseTime": "2024-05-10T12:15:31+00:00"}, {"id": "24w18a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/7fe0c83d30004cdd837aa66cd5ff327ecf237e7a/24w18a.json", "time": "2024-05-22T11:55:49+00:00", "releaseTime": "2024-05-03T12:08:27+00:00"}, {"id": "1.20.6", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/111890b5a8c2fee9b77036f9f377b33df42c718a/1.20.6.json", "time": "2024-05-22T06:22:10+00:00", "releaseTime": "2024-04-29T12:40:45+00:00"}, {"id": "1.20.6-rc1", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/0b322fb5dded24d22e401d095dbfe9cd97f80339/1.20.6-rc1.json", "time": "2024-05-22T06:22:10+00:00", "releaseTime": "2024-04-26T10:12:17+00:00"}, {"id": "1.20.5", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/8184ab98c044f3e0e959023334b8e68564f898fa/1.20.5.json", "time": "2024-05-22T06:22:10+00:00", "releaseTime": "2024-04-23T11:54:12+00:00"}, {"id": "1.20.5-rc3", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/384892ff9873fd36cc724df7592ba4868fb8d8c3/1.20.5-rc3.json", "time": "2024-05-22T06:22:10+00:00", "releaseTime": "2024-04-22T13:42:34+00:00"}, {"id": "1.20.5-rc2", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/f9451fcbabc8665b031dce7cfeba9a7204821959/1.20.5-rc2.json", "time": "2024-05-22T06:22:10+00:00", "releaseTime": "2024-04-19T13:13:15+00:00"}, {"id": "1.20.5-rc1", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/6e959ae81fd657733e85b0942c868db0af2e41bd/1.20.5-rc1.json", "time": "2024-05-22T06:22:10+00:00", "releaseTime": "2024-04-18T11:45:40+00:00"}, {"id": "1.20.5-pre4", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/e507f80f06058d550a8641f97e67b2dc8a2a8d4c/1.20.5-pre4.json", "time": "2024-05-22T06:22:10+00:00", "releaseTime": "2024-04-17T11:56:02+00:00"}, {"id": "1.20.5-pre3", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/329217473d516f395a595f3dccf2485b8b99ee32/1.20.5-pre3.json", "time": "2024-05-22T06:22:10+00:00", "releaseTime": "2024-04-16T11:57:30+00:00"}, {"id": "1.20.5-pre2", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/a945c4c2a4b13b1cc3b9fc4b16d3e142b6da69fe/1.20.5-pre2.json", "time": "2024-05-22T06:22:10+00:00", "releaseTime": "2024-04-15T12:36:05+00:00"}, {"id": "1.20.5-pre1", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/0a5ca75889e81bec4f301de6e8e2ef4e6109595d/1.20.5-pre1.json", "time": "2024-05-22T06:22:10+00:00", "releaseTime": "2024-04-10T12:44:25+00:00"}, {"id": "24w14a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/fcd2be7658c5698a3afb48df0e1a17a096df1114/24w14a.json", "time": "2024-05-22T06:22:10+00:00", "releaseTime": "2024-04-03T11:49:39+00:00"}, {"id": "24w14potato", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/84117a6a8dc38e6eb09ce054ad22a1400535ecce/24w14potato.json", "time": "2024-05-22T06:21:38+00:00", "releaseTime": "2024-04-01T11:07:19+00:00"}, {"id": "24w13a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/3c7d7465de719e00176bb116d7fec0cde9b7e0cf/24w13a.json", "time": "2024-05-22T06:22:10+00:00", "releaseTime": "2024-03-27T14:30:20+00:00"}, {"id": "24w12a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/423d5eda90cf53dd578da10f75a359480acea62e/24w12a.json", "time": "2024-05-22T06:21:38+00:00", "releaseTime": "2024-03-20T14:38:37+00:00"}, {"id": "24w11a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/41e8e0e812736244d6087d17866e740b2e52c4ae/24w11a.json", "time": "2024-05-22T06:21:38+00:00", "releaseTime": "2024-03-14T14:21:33+00:00"}, {"id": "24w10a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/8e2febb2f86141e468e12e449824719858b471a7/24w10a.json", "time": "2024-05-22T06:21:06+00:00", "releaseTime": "2024-03-06T10:37:35+00:00"}, {"id": "24w09a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/05730d945caea92e50ad6a530d6bd8cbfc1ce712/24w09a.json", "time": "2024-05-22T06:21:06+00:00", "releaseTime": "2024-02-28T12:38:12+00:00"}, {"id": "24w07a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/db385f670faed64b2ec4ed58406c2dfbeaf70365/24w07a.json", "time": "2024-05-22T06:20:35+00:00", "releaseTime": "2024-02-14T12:51:01+00:00"}, {"id": "24w06a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/265c2d3604f4249e19d14fe691316c7e3e63aa5b/24w06a.json", "time": "2024-05-22T06:20:35+00:00", "releaseTime": "2024-02-07T14:47:18+00:00"}, {"id": "24w05b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/c4e7f843b1a7ec2040af0bc84d5ef17442dde48b/24w05b.json", "time": "2024-05-22T06:20:02+00:00", "releaseTime": "2024-02-01T12:55:14+00:00"}, {"id": "24w05a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/72916085f400de6bcf3d43c314664b861bfc85c7/24w05a.json", "time": "2024-05-22T06:20:02+00:00", "releaseTime": "2024-01-31T13:05:26+00:00"}, {"id": "24w04a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/147d46af5a98e79279e2398b69c016208fc40df3/24w04a.json", "time": "2024-05-22T06:20:02+00:00", "releaseTime": "2024-01-24T13:42:45+00:00"}, {"id": "24w03b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/40048a354be33c59cf37f214a5183c1beac62d95/24w03b.json", "time": "2024-05-22T06:20:02+00:00", "releaseTime": "2024-01-18T12:42:37+00:00"}, {"id": "24w03a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/471410ff00eb717ccba16d5e3af1263f2a341f7f/24w03a.json", "time": "2024-05-22T06:20:02+00:00", "releaseTime": "2024-01-17T13:19:20+00:00"}, {"id": "23w51b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/dfd28c425685a1201169c4ee442bbeee1f658737/23w51b.json", "time": "2024-05-22T06:20:02+00:00", "releaseTime": "2023-12-18T15:39:14+00:00"}, {"id": "23w51a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/8b5df969ee5d2e2a34a662110a872533a98e4b87/23w51a.json", "time": "2024-05-22T06:20:02+00:00", "releaseTime": "2023-12-18T13:36:46+00:00"}, {"id": "1.20.4", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/d6ebb22e7eeefd88f1cef6b32bcffcccf4326404/1.20.4.json", "time": "2024-05-22T06:20:02+00:00", "releaseTime": "2023-12-07T12:56:20+00:00"}, {"id": "1.20.4-rc1", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/3f502577d18f0da725d27e61e90ddb94787b8c0b/1.20.4-rc1.json", "time": "2024-05-22T06:20:02+00:00", "releaseTime": "2023-12-06T14:38:01+00:00"}, {"id": "1.20.3", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/c3474992464799e68d0832b98b6f4f04c55b6af7/1.20.3.json", "time": "2024-05-22T06:20:02+00:00", "releaseTime": "2023-12-04T12:10:32+00:00"}, {"id": "1.20.3-rc1", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/dcdf7615f83cbb7aaf71e0ea02c6a959b3d62d69/1.20.3-rc1.json", "time": "2024-05-22T06:20:02+00:00", "releaseTime": "2023-11-30T13:41:45+00:00"}, {"id": "1.20.3-pre4", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/a68a315e410122b8e4fa6c8c898818f8f7163874/1.20.3-pre4.json", "time": "2024-05-22T06:20:02+00:00", "releaseTime": "2023-11-28T13:47:32+00:00"}, {"id": "1.20.3-pre3", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/1c8c6ed67dd352769b2e70917c564961084b7ca1/1.20.3-pre3.json", "time": "2024-05-22T06:20:02+00:00", "releaseTime": "2023-11-27T14:24:36+00:00"}, {"id": "1.20.3-pre2", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/2a7487425bcbff4c3c981f3d38d1bd9934c1ec2e/1.20.3-pre2.json", "time": "2024-05-22T06:20:02+00:00", "releaseTime": "2023-11-22T12:21:26+00:00"}, {"id": "1.20.3-pre1", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/95391efdbf56a0e8f347c5d7341e28e7e39159b7/1.20.3-pre1.json", "time": "2024-05-22T06:20:02+00:00", "releaseTime": "2023-11-20T15:40:14+00:00"}, {"id": "23w46a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/b1a67fe9b2f8775bdd793842475aed5c85bc4262/23w46a.json", "time": "2024-05-22T06:19:31+00:00", "releaseTime": "2023-11-16T14:11:33+00:00"}, {"id": "23w45a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/5fbb884214e7c1b8cf13fec55bd6e58e56874e1f/23w45a.json", "time": "2024-05-22T06:19:31+00:00", "releaseTime": "2023-11-08T13:59:58+00:00"}, {"id": "23w44a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/dd09987266c6cc82637261513bc91b751c5e197e/23w44a.json", "time": "2024-05-22T06:18:59+00:00", "releaseTime": "2023-11-01T12:30:52+00:00"}, {"id": "23w43b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/1377e0eafb22ee4bd9b017170c10a5051f11e649/23w43b.json", "time": "2024-05-22T06:18:59+00:00", "releaseTime": "2023-10-26T13:46:16+00:00"}, {"id": "23w43a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/7eca659647cfd293ac34304a8783ed0696eb2b7f/23w43a.json", "time": "2024-05-22T06:18:59+00:00", "releaseTime": "2023-10-25T13:34:37+00:00"}, {"id": "23w42a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/2299e4aed3d0ec6b6157bee36a3d728a3b1575a1/23w42a.json", "time": "2024-05-22T06:26:05+00:00", "releaseTime": "2023-10-18T11:37:28+00:00"}, {"id": "23w41a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/7fcd0d52f085e461c079e9bd4fe9c9358d71a727/23w41a.json", "time": "2024-05-22T06:25:35+00:00", "releaseTime": "2023-10-11T12:32:46+00:00"}, {"id": "23w40a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/2224a0e303dfdf5e7d56994cdfc9bc0b73369e73/23w40a.json", "time": "2024-05-22T06:25:35+00:00", "releaseTime": "2023-10-04T12:48:53+00:00"}, {"id": "1.20.2", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/eb98f587c0b141b3cd680ccc22e4f2368e04c291/1.20.2.json", "time": "2024-05-22T06:25:35+00:00", "releaseTime": "2023-09-20T09:02:57+00:00"}, {"id": "1.20.2-rc2", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/7ee4e0ea7e5f5a3c1602fd7e70f59dc793c86fa0/1.20.2-rc2.json", "time": "2024-05-22T06:25:35+00:00", "releaseTime": "2023-09-18T12:34:57+00:00"}, {"id": "1.20.2-rc1", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/bfc5aa5b29c301dd969f200e5821db09bd50ca4e/1.20.2-rc1.json", "time": "2024-05-22T06:25:35+00:00", "releaseTime": "2023-09-15T13:10:30+00:00"}, {"id": "1.20.2-pre4", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/10a8dd7738c84bda2a781eb364c1c0bd6b8cc822/1.20.2-pre4.json", "time": "2024-05-22T06:25:35+00:00", "releaseTime": "2023-09-13T15:06:51+00:00"}, {"id": "1.20.2-pre3", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/47d98f392371ba45ddc9d2b9d64bb4d3c1a7deff/1.20.2-pre3.json", "time": "2024-05-22T06:25:35+00:00", "releaseTime": "2023-09-12T12:15:08+00:00"}, {"id": "1.20.2-pre2", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/a7a717e27282014e3eb2cea9a5b73b645a1578b9/1.20.2-pre2.json", "time": "2024-05-22T06:25:35+00:00", "releaseTime": "2023-09-07T12:42:32+00:00"}, {"id": "1.20.2-pre1", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/f001a15451d599d9e04c869423841c4d46dc3004/1.20.2-pre1.json", "time": "2024-05-22T06:25:06+00:00", "releaseTime": "2023-09-05T12:06:20+00:00"}, {"id": "23w35a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/c90ed5670e73f337627be21f18d63de7f14aeb5d/23w35a.json", "time": "2024-05-22T06:25:06+00:00", "releaseTime": "2023-08-30T11:24:35+00:00"}, {"id": "23w33a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/11773f03a0e8b2eff4fde84a3bdaa06307449932/23w33a.json", "time": "2024-05-22T06:25:06+00:00", "releaseTime": "2023-08-17T11:39:08+00:00"}, {"id": "23w32a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/b0c651408aa71ec02466fdf33208cf5198c1284c/23w32a.json", "time": "2024-05-22T06:25:06+00:00", "releaseTime": "2023-08-09T12:14:25+00:00"}, {"id": "23w31a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/bba2d108127ffb5beeb139fbb4a1594843e6e78d/23w31a.json", "time": "2024-05-22T06:24:36+00:00", "releaseTime": "2023-08-01T10:03:13+00:00"}, {"id": "1.20.1", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/bae8fc85c125a571ed033694040ee96d9d8f1335/1.20.1.json", "time": "2024-05-22T06:24:06+00:00", "releaseTime": "2023-06-12T13:25:51+00:00"}, {"id": "1.20.1-rc1", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/0d63956af75cc3ffd250f82fb918c45e080df083/1.20.1-rc1.json", "time": "2024-05-22T06:24:06+00:00", "releaseTime": "2023-06-09T14:15:49+00:00"}, {"id": "1.20", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/aad51fce89d7ad4513cff224ed6a3d0913e0f593/1.20.json", "time": "2024-05-22T06:24:06+00:00", "releaseTime": "2023-06-02T08:36:17+00:00"}, {"id": "1.20-rc1", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/9cf113236f6fbf2b3c3505ff126c8b6dace20988/1.20-rc1.json", "time": "2024-05-22T06:24:06+00:00", "releaseTime": "2023-05-31T12:33:33+00:00"}, {"id": "1.20-pre7", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/d74d95669f47bb4dcd6f39167fbe1bab0b68818e/1.20-pre7.json", "time": "2024-05-22T06:24:06+00:00", "releaseTime": "2023-05-29T13:44:34+00:00"}, {"id": "1.20-pre6", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/e5d992feea4ad5b0dfbb11c4c6aaf54b7e254ae5/1.20-pre6.json", "time": "2024-05-22T06:24:06+00:00", "releaseTime": "2023-05-25T12:22:00+00:00"}, {"id": "1.20-pre5", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/daa773408543d0059bfbdaf05193b06c7f1ec79d/1.20-pre5.json", "time": "2024-05-22T06:24:06+00:00", "releaseTime": "2023-05-23T12:22:52+00:00"}, {"id": "1.20-pre4", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/678fbf6a9dab7dee531c2c64332a73bd4322100b/1.20-pre4.json", "time": "2024-05-22T06:24:06+00:00", "releaseTime": "2023-05-19T13:13:45+00:00"}, {"id": "1.20-pre3", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/fa6000f79b6ab6525546d2aa8d453884792fcc28/1.20-pre3.json", "time": "2024-05-22T06:24:06+00:00", "releaseTime": "2023-05-19T11:39:46+00:00"}, {"id": "1.20-pre2", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/cbd39a7f0ebc6ce620832cb169056a235d8d6fef/1.20-pre2.json", "time": "2024-05-22T06:24:06+00:00", "releaseTime": "2023-05-16T11:34:54+00:00"}, {"id": "1.20-pre1", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/f9e1c46a943b2ff0db2bcb9b56e34ab6eb74d22b/1.20-pre1.json", "time": "2024-05-22T06:24:06+00:00", "releaseTime": "2023-05-10T12:19:34+00:00"}, {"id": "23w18a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/290038589cc31df523137548d76416b20a1b614d/23w18a.json", "time": "2024-05-22T06:24:06+00:00", "releaseTime": "2023-05-03T11:29:26+00:00"}, {"id": "23w17a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/1c707884cb94dd541fd85179996d55a6bca6f4dd/23w17a.json", "time": "2024-05-22T06:24:06+00:00", "releaseTime": "2023-04-26T12:09:48+00:00"}, {"id": "23w16a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/b4d7e7915faebc181314cee988db1e77ad15ad82/23w16a.json", "time": "2024-05-22T06:23:37+00:00", "releaseTime": "2023-04-20T11:55:19+00:00"}, {"id": "23w14a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/559b191f2be0e49ee449b4fb2277019270aa40b2/23w14a.json", "time": "2024-05-22T06:23:37+00:00", "releaseTime": "2023-04-05T12:05:17+00:00"}, {"id": "23w13a_or_b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/048c12e78ca738aad7d2f3b99f8322d7522deee7/23w13a_or_b.json", "time": "2024-05-22T06:23:07+00:00", "releaseTime": "2023-04-01T12:52:18+00:00"}, {"id": "23w13a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/cb0635b8064cc97ca700c4a63aefb4e8c8ed3a4d/23w13a.json", "time": "2024-05-22T06:23:07+00:00", "releaseTime": "2023-03-29T13:54:16+00:00"}, {"id": "23w12a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/f1d6e29cded4fe46b9ab3318acd49e493db9949d/23w12a.json", "time": "2024-05-22T06:23:07+00:00", "releaseTime": "2023-03-22T13:28:42+00:00"}, {"id": "1.19.4", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/08ab5e375a016dea85ca4f59260683c4e6270fa3/1.19.4.json", "time": "2024-05-22T06:23:07+00:00", "releaseTime": "2023-03-14T12:56:18+00:00"}, {"id": "1.19.4-rc3", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/9f74f3488c41911180e5f2c5bb6dc3c19a3ddd47/1.19.4-rc3.json", "time": "2024-05-22T06:23:07+00:00", "releaseTime": "2023-03-13T10:03:11+00:00"}, {"id": "1.19.4-rc2", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/33572d03ff57222f4ee4b9f7b12c596e364afe34/1.19.4-rc2.json", "time": "2024-05-22T06:23:07+00:00", "releaseTime": "2023-03-10T12:42:54+00:00"}, {"id": "1.19.4-rc1", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/ba504031065a2f4f4cdaa7886f1b48f59faacd81/1.19.4-rc1.json", "time": "2024-05-22T06:23:07+00:00", "releaseTime": "2023-03-09T14:35:50+00:00"}, {"id": "1.19.4-pre4", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/810b55059e5bbad99f28d78b488e0d94eb5a0c28/1.19.4-pre4.json", "time": "2024-05-22T06:23:07+00:00", "releaseTime": "2023-03-08T13:08:22+00:00"}, {"id": "1.19.4-pre3", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/e55818b5b61e211c9908a7e5ebb61571e9ed13d8/1.19.4-pre3.json", "time": "2024-05-22T06:23:07+00:00", "releaseTime": "2023-03-01T14:11:05+00:00"}, {"id": "1.19.4-pre2", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/2e82a6f5453fb36dbd547045cd738d8af326772a/1.19.4-pre2.json", "time": "2024-05-22T06:23:07+00:00", "releaseTime": "2023-02-27T13:38:53+00:00"}, {"id": "1.19.4-pre1", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/df49074ed80a5be3888f24d6483faa4f03098f2d/1.19.4-pre1.json", "time": "2024-05-22T06:23:07+00:00", "releaseTime": "2023-02-22T16:00:34+00:00"}, {"id": "23w07a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/508242eba550cdf25fe28c92e89fab3bc11301c9/23w07a.json", "time": "2024-05-22T06:22:38+00:00", "releaseTime": "2023-02-15T14:32:29+00:00"}, {"id": "23w06a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/4bbf5dea894b57c8d03feabdabfc2e6a4bd93ffd/23w06a.json", "time": "2024-05-22T06:22:38+00:00", "releaseTime": "2023-02-08T15:00:04+00:00"}, {"id": "23w05a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/94425f05655de0a75a726b8dbd2ec7f3def5ab67/23w05a.json", "time": "2024-05-22T06:22:38+00:00", "releaseTime": "2023-02-01T14:20:33+00:00"}, {"id": "23w04a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/d815f72a76eafe6b37935c743e98a098d74cf7b9/23w04a.json", "time": "2024-05-22T06:22:38+00:00", "releaseTime": "2023-01-24T15:19:06+00:00"}, {"id": "23w03a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/1db4bcbdb502701cd0385cec5ab7d19638443c49/23w03a.json", "time": "2024-05-22T06:22:38+00:00", "releaseTime": "2023-01-18T13:10:31+00:00"}, {"id": "1.19.3", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/394d0cedf799c59cde655f2321a1eb4008cd73b9/1.19.3.json", "time": "2024-05-22T06:22:38+00:00", "releaseTime": "2022-12-07T08:17:18+00:00"}, {"id": "1.19.3-rc3", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/7eceddc54f79aedab13bd0a11f9e359380d83f88/1.19.3-rc3.json", "time": "2024-05-22T06:22:38+00:00", "releaseTime": "2022-12-06T10:24:01+00:00"}, {"id": "1.19.3-rc2", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/95f9ca6012f2c4f7959b93b69c6e6ddbadb01460/1.19.3-rc2.json", "time": "2024-05-22T06:22:38+00:00", "releaseTime": "2022-12-05T13:21:34+00:00"}, {"id": "1.19.3-rc1", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/fe2392b3dfced180c3a91cd0c56fcbfae1b51855/1.19.3-rc1.json", "time": "2024-05-22T06:22:38+00:00", "releaseTime": "2022-12-01T13:45:18+00:00"}, {"id": "1.19.3-pre3", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/0578432056ba24fac4b515db08470bfa8047c422/1.19.3-pre3.json", "time": "2024-05-22T06:22:38+00:00", "releaseTime": "2022-11-29T14:28:08+00:00"}, {"id": "1.19.3-pre2", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/577587f5cd20c62941f8a23b9184ac00c8b4ce63/1.19.3-pre2.json", "time": "2024-05-22T06:22:38+00:00", "releaseTime": "2022-11-23T16:12:25+00:00"}, {"id": "1.19.3-pre1", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/a8cd9bc467033d0a7bc9e016a1af9d30e11aa393/1.19.3-pre1.json", "time": "2024-05-22T06:22:38+00:00", "releaseTime": "2022-11-22T13:59:37+00:00"}, {"id": "22w46a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/634c29fcf94e9b814a8208154a3b0e492b911d41/22w46a.json", "time": "2024-05-22T06:22:38+00:00", "releaseTime": "2022-11-16T13:32:50+00:00"}, {"id": "22w45a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/6331d2643d3a4b3cedbc7dcc450d56ff9eb036de/22w45a.json", "time": "2024-05-22T06:22:38+00:00", "releaseTime": "2022-11-09T14:30:16+00:00"}, {"id": "22w44a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/ed9485390e2a258c621a63e3c46725b47696a9cb/22w44a.json", "time": "2024-05-22T06:18:29+00:00", "releaseTime": "2022-11-02T13:15:43+00:00"}, {"id": "22w43a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/00f8ff8619be9242375e61eb0e2b815cfea1ef8a/22w43a.json", "time": "2024-05-22T06:18:29+00:00", "releaseTime": "2022-10-26T11:55:59+00:00"}, {"id": "22w42a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/42587d1f357bc5a596ad5ee5dfeed558624f52a6/22w42a.json", "time": "2024-05-22T06:18:29+00:00", "releaseTime": "2022-10-19T09:34:22+00:00"}, {"id": "1.19.2", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/ed548106acf3ac7e8205a6ee8fd2710facfa164f/1.19.2.json", "time": "2023-06-07T10:31:30+00:00", "releaseTime": "2022-08-05T11:57:05+00:00"}, {"id": "1.19.2-rc2", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/ebecfcfa284240daa29737c84eb98a2d2e1a33c2/1.19.2-rc2.json", "time": "2023-06-07T10:31:30+00:00", "releaseTime": "2022-08-04T15:19:44+00:00"}, {"id": "1.19.2-rc1", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/f8549c05d26a79c0fb5701ba66d200465daa5f18/1.19.2-rc1.json", "time": "2023-06-07T10:31:30+00:00", "releaseTime": "2022-08-04T10:07:26+00:00"}, {"id": "1.19.1", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/39d5e8925d37490c6f2abb2e02b8c6f1b35719df/1.19.1.json", "time": "2023-06-07T10:31:30+00:00", "releaseTime": "2022-07-27T09:25:33+00:00"}, {"id": "1.19.1-rc3", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/8762a93dc173c7a8e68d70ac5517b37e2c5f969f/1.19.1-rc3.json", "time": "2023-06-07T10:31:30+00:00", "releaseTime": "2022-07-26T15:34:35+00:00"}, {"id": "1.19.1-rc2", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/be8528e20ead28832f20e4278f45519d1e28022a/1.19.1-rc2.json", "time": "2023-06-07T10:31:30+00:00", "releaseTime": "2022-07-21T16:25:50+00:00"}, {"id": "1.19.1-pre6", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/a0d36b2776f02dc9d864f0f931b6c052435f7918/1.19.1-pre6.json", "time": "2023-06-07T10:31:30+00:00", "releaseTime": "2022-07-20T15:49:31+00:00"}, {"id": "1.19.1-pre5", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/1e832137d90ae9915e1b1a22537f30feb0178ce0/1.19.1-pre5.json", "time": "2023-06-07T10:31:30+00:00", "releaseTime": "2022-07-15T11:51:44+00:00"}, {"id": "1.19.1-pre4", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/b2cebb78f1c95d5d886e2c30e8cf913f574ecd3f/1.19.1-pre4.json", "time": "2023-06-07T10:31:30+00:00", "releaseTime": "2022-07-08T11:41:59+00:00"}, {"id": "1.19.1-pre3", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/05935ad004751df834add5d8111bea341f388849/1.19.1-pre3.json", "time": "2023-06-07T10:31:30+00:00", "releaseTime": "2022-07-06T14:50:46+00:00"}, {"id": "1.19.1-pre2", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/4c2e4db17880bd4dad87cb2cd87d4b5f5d159a6e/1.19.1-pre2.json", "time": "2023-06-07T10:31:30+00:00", "releaseTime": "2022-06-30T15:57:20+00:00"}, {"id": "1.19.1-rc1", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/dc09b172bbef8c24a69c4c6711e96051464204ad/1.19.1-rc1.json", "time": "2023-06-07T10:31:30+00:00", "releaseTime": "2022-06-23T16:32:41+00:00"}, {"id": "1.19.1-pre1", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/b684045dca48e65dbf5ec5f09070d9382731d0ab/1.19.1-pre1.json", "time": "2023-06-07T10:31:30+00:00", "releaseTime": "2022-06-21T17:13:59+00:00"}, {"id": "22w24a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/1a490c090ec1affab43deba00929558c73dd1e23/22w24a.json", "time": "2023-06-07T10:31:30+00:00", "releaseTime": "2022-06-15T16:21:49+00:00"}, {"id": "1.19", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/14bbfb25fb1c1c798e3c9b9482b081a78d1f3a9d/1.19.json", "time": "2023-06-07T10:31:30+00:00", "releaseTime": "2022-06-07T09:42:18+00:00"}, {"id": "1.19-rc2", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/ae2b88a016be92e5838afa6232005b41e2935622/1.19-rc2.json", "time": "2023-06-07T10:31:30+00:00", "releaseTime": "2022-06-03T11:47:25+00:00"}, {"id": "1.19-rc1", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/f216ace4c19321071a80e7c6dd51efe402032e94/1.19-rc1.json", "time": "2023-06-07T10:31:30+00:00", "releaseTime": "2022-06-02T12:12:52+00:00"}, {"id": "1.19-pre5", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/800c849fe1e8694e8023920e01174e3d2f73065b/1.19-pre5.json", "time": "2023-06-07T10:31:30+00:00", "releaseTime": "2022-06-01T10:56:23+00:00"}, {"id": "1.19-pre4", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/11edfa21e200734858abdd466aeead7754cc68e2/1.19-pre4.json", "time": "2023-06-07T10:31:30+00:00", "releaseTime": "2022-05-30T14:43:01+00:00"}, {"id": "1.19-pre3", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/bf1ebc7ae0dbef7b92307a11eb0cbbfeaa3359e2/1.19-pre3.json", "time": "2023-06-07T10:31:30+00:00", "releaseTime": "2022-05-25T09:56:47+00:00"}, {"id": "1.19-pre2", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/5dbf076b98594a81069a3d574d985f8e3a701990/1.19-pre2.json", "time": "2023-06-07T10:31:30+00:00", "releaseTime": "2022-05-23T14:54:00+00:00"}, {"id": "1.19-pre1", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/277c1456e8de294125887c0937ad39f9d286f7e6/1.19-pre1.json", "time": "2023-06-07T10:31:30+00:00", "releaseTime": "2022-05-18T13:51:54+00:00"}, {"id": "22w19a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/b823251598bcefadad774283db6979e40044e229/22w19a.json", "time": "2023-06-07T10:31:30+00:00", "releaseTime": "2022-05-12T15:36:11+00:00"}, {"id": "22w18a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/1de25e62031021df204de79c264822898c937447/22w18a.json", "time": "2023-06-07T10:31:30+00:00", "releaseTime": "2022-05-04T14:41:35+00:00"}, {"id": "22w17a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/4df4e4831fafbaa4d41895f448a0596d779425f3/22w17a.json", "time": "2023-06-07T10:31:30+00:00", "releaseTime": "2022-04-27T15:54:15+00:00"}, {"id": "22w16b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/f6f22cde08f4603aa90aec80a9c5b60b93a09b15/22w16b.json", "time": "2023-06-07T10:31:30+00:00", "releaseTime": "2022-04-20T17:25:32+00:00"}, {"id": "22w16a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/a39b0f1591257664a1296b8e95a0689c1cbdad73/22w16a.json", "time": "2023-06-07T10:31:30+00:00", "releaseTime": "2022-04-20T14:37:07+00:00"}, {"id": "22w15a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/2ed4589fdbc1d58a6d60e2b6809ac956d0a7cf34/22w15a.json", "time": "2023-06-07T10:31:30+00:00", "releaseTime": "2022-04-13T15:41:17+00:00"}, {"id": "22w14a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/36abf1492f25e5bb7187307fefc91470cd40817d/22w14a.json", "time": "2023-06-07T10:31:30+00:00", "releaseTime": "2022-04-06T13:37:12+00:00"}, {"id": "22w13oneblockatatime", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/d70cef49b7606e8c37e49abad4ff542e2ce21d09/22w13oneblockatatime.json", "time": "2023-06-07T10:31:30+00:00", "releaseTime": "2022-04-01T11:56:58+00:00"}, {"id": "22w13a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/bd1e0454545c498d20d25e4d1bc8fd4ddeeb06fe/22w13a.json", "time": "2023-06-07T10:31:30+00:00", "releaseTime": "2022-03-31T14:53:25+00:00"}, {"id": "22w12a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/24998bd342996995e1a2007111056906f465a867/22w12a.json", "time": "2023-06-07T10:31:30+00:00", "releaseTime": "2022-03-24T16:15:02+00:00"}, {"id": "22w11a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/4f1500bb4141a58c8692224e1157c986c6a00075/22w11a.json", "time": "2023-06-07T10:31:30+00:00", "releaseTime": "2022-03-16T15:55:38+00:00"}, {"id": "1.18.2", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/334b33fcba3c9be4b7514624c965256535bd7eba/1.18.2.json", "time": "2023-06-07T10:50:17+00:00", "releaseTime": "2022-02-28T10:42:45+00:00"}, {"id": "1.18.2-rc1", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/a88f2199e697f43c06d7051186762cd514f5f629/1.18.2-rc1.json", "time": "2023-06-07T10:50:17+00:00", "releaseTime": "2022-02-25T13:25:40+00:00"}, {"id": "1.18.2-pre3", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/c93d7580baf1b292763fa14a379516ffe5822967/1.18.2-pre3.json", "time": "2023-06-07T10:50:17+00:00", "releaseTime": "2022-02-23T15:23:12+00:00"}, {"id": "1.18.2-pre2", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/46e96658399bf2e1487d88181bd75689978491f8/1.18.2-pre2.json", "time": "2023-06-07T10:50:17+00:00", "releaseTime": "2022-02-21T15:26:19+00:00"}, {"id": "1.18.2-pre1", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/59bd690c22c69ace39595d3b14bf85a01bb54f35/1.18.2-pre1.json", "time": "2023-06-07T10:50:17+00:00", "releaseTime": "2022-02-18T16:00:32+00:00"}, {"id": "22w07a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/83d4e38c96c37a840fed51747e98d45d82115405/22w07a.json", "time": "2023-06-07T10:50:17+00:00", "releaseTime": "2022-02-16T16:13:58+00:00"}, {"id": "22w06a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/f46697f288f553f7a21a42291b85d708924128e8/22w06a.json", "time": "2023-06-07T10:50:17+00:00", "releaseTime": "2022-02-09T16:47:48+00:00"}, {"id": "22w05a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/bebb4be7c06e5b311e08a46212328c0d1dee1e60/22w05a.json", "time": "2023-06-07T10:50:17+00:00", "releaseTime": "2022-02-02T16:08:39+00:00"}, {"id": "22w03a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/b19476adc780897c3ea2805bc90ff91f694093bd/22w03a.json", "time": "2023-06-07T10:50:17+00:00", "releaseTime": "2022-01-19T16:04:59+00:00"}, {"id": "1.18.1", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/7ff864e988a2c29907154d5f9701e87e5d5e554a/1.18.1.json", "time": "2023-06-07T10:50:17+00:00", "releaseTime": "2021-12-10T08:23:00+00:00"}, {"id": "1.18.1-rc3", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/027ff0f43a3589b3ea16771ec11d052fc0fdf45e/1.18.1-rc3.json", "time": "2023-06-07T10:50:17+00:00", "releaseTime": "2021-12-10T03:36:38+00:00"}, {"id": "1.18.1-rc2", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/0e114a6a9e1f246dea4c8835e8046b3d8ce575e3/1.18.1-rc2.json", "time": "2023-06-07T10:50:17+00:00", "releaseTime": "2021-12-08T12:29:36+00:00"}, {"id": "1.18.1-rc1", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/2f24188f9c0759be5c844acae8b47fb582c75e7e/1.18.1-rc1.json", "time": "2023-06-07T10:50:17+00:00", "releaseTime": "2021-12-07T15:52:47+00:00"}, {"id": "1.18.1-pre1", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/01cb59a31c5af10b73ce11d04df73b469e5e8664/1.18.1-pre1.json", "time": "2023-06-07T10:50:17+00:00", "releaseTime": "2021-12-03T13:45:38+00:00"}, {"id": "1.18", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/7367ea8b7cad7c7830192441bb2846be0d2ceeac/1.18.json", "time": "2023-06-07T10:50:17+00:00", "releaseTime": "2021-11-30T09:16:29+00:00"}, {"id": "1.18-rc4", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/489269e1139f4c9ce6af64e9e80ac094accd3515/1.18-rc4.json", "time": "2023-06-07T10:50:17+00:00", "releaseTime": "2021-11-29T13:43:42+00:00"}, {"id": "1.18-rc3", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/0cea86833bdfb8de6d85f2b87b4dda2081f3fc3c/1.18-rc3.json", "time": "2023-06-07T10:50:17+00:00", "releaseTime": "2021-11-26T15:51:56+00:00"}, {"id": "1.18-rc2", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/1cd29ca38d308f1375529c2c52c7819a21bb6410/1.18-rc2.json", "time": "2023-06-07T10:50:17+00:00", "releaseTime": "2021-11-26T10:02:04+00:00"}, {"id": "1.18-rc1", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/92779f7a433c8b65d2fe52dca236a0b99a877964/1.18-rc1.json", "time": "2023-06-07T10:50:17+00:00", "releaseTime": "2021-11-25T14:28:49+00:00"}, {"id": "1.18-pre8", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/befe1636010c86b29a0b3b74d9614eaca4679185/1.18-pre8.json", "time": "2023-06-07T10:50:17+00:00", "releaseTime": "2021-11-24T14:57:32+00:00"}, {"id": "1.18-pre7", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/14c6eee2ef0b2ec4dd66d21a45288df9ea445853/1.18-pre7.json", "time": "2023-06-07T10:50:17+00:00", "releaseTime": "2021-11-23T16:37:41+00:00"}, {"id": "1.18-pre6", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/881f1e388c66a0a27f1e39759d594aba7fc827cc/1.18-pre6.json", "time": "2023-06-07T10:50:17+00:00", "releaseTime": "2021-11-22T17:09:05+00:00"}, {"id": "1.18-pre5", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/1c7297b2645db73c3548d9c7bcec9d1f1daf9a3d/1.18-pre5.json", "time": "2023-06-07T10:50:17+00:00", "releaseTime": "2021-11-19T15:47:09+00:00"}, {"id": "1.18-pre4", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/2604a38227d2943e072fb6d1e1885cf71659a620/1.18-pre4.json", "time": "2023-06-07T10:50:17+00:00", "releaseTime": "2021-11-17T18:07:56+00:00"}, {"id": "1.18-pre3", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/6bd8b415c9df47ba64474f10ce777e34d31462de/1.18-pre3.json", "time": "2023-06-07T10:50:17+00:00", "releaseTime": "2021-11-17T16:04:25+00:00"}, {"id": "1.18-pre2", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/f7bc077f4bae337c5d783a77246cdfc019f5a85e/1.18-pre2.json", "time": "2023-06-07T10:50:17+00:00", "releaseTime": "2021-11-16T17:04:48+00:00"}, {"id": "1.18-pre1", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/bad40b99d4019c10ef43641ff11dfecd5fd0a2e0/1.18-pre1.json", "time": "2023-06-07T10:50:17+00:00", "releaseTime": "2021-11-11T16:14:06+00:00"}, {"id": "21w44a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/a0a663bcbd3c43ced8e0e4889e82b79e48d2c42c/21w44a.json", "time": "2023-06-07T10:50:17+00:00", "releaseTime": "2021-11-03T16:14:34+00:00"}, {"id": "21w43a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/87fce70da2c59051a18e3d792f35839f7a799f82/21w43a.json", "time": "2023-06-07T10:50:17+00:00", "releaseTime": "2021-10-27T14:38:55+00:00"}, {"id": "21w42a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/3ce8fdf60e69bfb0944e479ada4cf6b60dcc3995/21w42a.json", "time": "2023-06-07T10:50:17+00:00", "releaseTime": "2021-10-20T12:41:25+00:00"}, {"id": "21w41a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/f05122bd9496b5277cfb24312c1a7a70510cc84a/21w41a.json", "time": "2023-06-07T10:50:17+00:00", "releaseTime": "2021-10-13T15:23:23+00:00"}, {"id": "21w40a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/a6a012bab1380ce87f9fc4a20212fd7031ac93a4/21w40a.json", "time": "2023-06-07T10:50:17+00:00", "releaseTime": "2021-10-07T11:17:50+00:00"}, {"id": "21w39a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/008cea9c2128244b9f1ffa3b9512db1e60558390/21w39a.json", "time": "2023-06-07T10:50:17+00:00", "releaseTime": "2021-09-29T16:27:05+00:00"}, {"id": "21w38a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/893da3cf2aaf60457e4805994f8d526305685e77/21w38a.json", "time": "2023-06-07T10:50:17+00:00", "releaseTime": "2021-09-23T14:36:06+00:00"}, {"id": "21w37a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/fd90ab042d60935a123a579ec03efc422f06e4bb/21w37a.json", "time": "2023-06-07T10:50:17+00:00", "releaseTime": "2021-09-15T16:04:30+00:00"}, {"id": "1.17.1", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/e0e7ab5ed6f55bbd874ef95be3c9356d67e64b57/1.17.1.json", "time": "2023-06-07T11:00:54+00:00", "releaseTime": "2021-07-06T12:01:34+00:00"}, {"id": "1.17.1-rc2", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/4224a23efdcd362508457bda732b502d3d8bfbaf/1.17.1-rc2.json", "time": "2023-06-07T11:00:54+00:00", "releaseTime": "2021-07-05T12:58:01+00:00"}, {"id": "1.17.1-rc1", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/27d7a88469c5a59420d7b060f2a253802164185f/1.17.1-rc1.json", "time": "2023-06-07T11:00:54+00:00", "releaseTime": "2021-07-01T15:23:37+00:00"}, {"id": "1.17.1-pre3", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/30637bf484bc2e530db468c42e6d2695bb806420/1.17.1-pre3.json", "time": "2023-06-07T11:00:54+00:00", "releaseTime": "2021-06-30T15:43:16+00:00"}, {"id": "1.17.1-pre2", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/95f076c3f748ab83f44bc4c80b0039626b67806e/1.17.1-pre2.json", "time": "2023-06-07T11:00:54+00:00", "releaseTime": "2021-06-29T15:14:12+00:00"}, {"id": "1.17.1-pre1", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/609fa7a9bb0d1c3855111e1d511d4ba2a398a524/1.17.1-pre1.json", "time": "2023-06-07T11:00:54+00:00", "releaseTime": "2021-06-18T12:24:40+00:00"}, {"id": "1.17", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/0d9ace8a2ecfd1f4c782786f4b985a499240ff12/1.17.json", "time": "2023-06-07T11:00:54+00:00", "releaseTime": "2021-06-08T11:00:40+00:00"}, {"id": "1.17-rc2", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/45b8f00ecc9ca265c80da0d8ad9a6710f088bc21/1.17-rc2.json", "time": "2023-06-07T11:00:54+00:00", "releaseTime": "2021-06-07T11:46:28+00:00"}, {"id": "1.17-rc1", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/ed41604ce5637dfc62e062e1ce809817d54aa46d/1.17-rc1.json", "time": "2023-06-07T11:00:54+00:00", "releaseTime": "2021-06-04T13:24:48+00:00"}, {"id": "1.17-pre5", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/29bd60294ee8387f7ca7d9c1abd835484f71bbfc/1.17-pre5.json", "time": "2023-06-07T11:00:54+00:00", "releaseTime": "2021-06-03T17:01:28+00:00"}, {"id": "1.17-pre4", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/9c91afc7b8e9bab61facd2423bd75b375df0fc2e/1.17-pre4.json", "time": "2023-06-07T11:00:54+00:00", "releaseTime": "2021-06-02T16:15:43+00:00"}, {"id": "1.17-pre3", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/de4dd57535bea923731008c1f29562211740aba6/1.17-pre3.json", "time": "2023-06-07T11:00:54+00:00", "releaseTime": "2021-06-01T15:43:46+00:00"}, {"id": "1.17-pre2", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/76f54994dc32298f0743e2a9031ad1bba04cf753/1.17-pre2.json", "time": "2023-06-07T11:00:54+00:00", "releaseTime": "2021-05-31T15:54:05+00:00"}, {"id": "1.17-pre1", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/ba419fd73cb07512bd2ca090f179e84333f9804c/1.17-pre1.json", "time": "2023-06-07T11:00:54+00:00", "releaseTime": "2021-05-27T09:39:21+00:00"}, {"id": "21w20a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/6757e49a93f18fe7b8d522f83b62d47629da37ab/21w20a.json", "time": "2023-06-07T11:00:54+00:00", "releaseTime": "2021-05-19T15:22:02+00:00"}, {"id": "21w19a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/4a43adfb683de80b158a5c6899f34f3a041dc578/21w19a.json", "time": "2023-06-07T11:00:54+00:00", "releaseTime": "2021-05-12T11:19:15+00:00"}, {"id": "21w18a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/b3266f58ade03b19896163c7cfb40cf815aa8e28/21w18a.json", "time": "2023-06-07T11:00:54+00:00", "releaseTime": "2021-05-05T15:24:35+00:00"}, {"id": "21w17a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/2af27c4d5412f4476b43882052b5cb510cbc0984/21w17a.json", "time": "2023-06-07T11:00:54+00:00", "releaseTime": "2021-04-28T13:54:05+00:00"}, {"id": "21w16a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/f083b566dd515b5706ead9522c42b187b3f2f2f6/21w16a.json", "time": "2023-06-07T11:00:54+00:00", "releaseTime": "2021-04-21T16:41:14+00:00"}, {"id": "21w15a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/ce5b993772ae22cc5f518e72b93744954945f755/21w15a.json", "time": "2023-06-07T11:00:54+00:00", "releaseTime": "2021-04-14T13:41:34+00:00"}, {"id": "21w14a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/7a67f727cc7847efc3753de26a32d051348b5fba/21w14a.json", "time": "2023-06-07T11:00:54+00:00", "releaseTime": "2021-04-07T14:04:09+00:00"}, {"id": "21w13a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/c20df75b956c2eb982a9028ceff965e1aae40345/21w13a.json", "time": "2023-06-07T11:00:54+00:00", "releaseTime": "2021-03-31T16:17:46+00:00"}, {"id": "21w11a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/c0d562d6db031a67b9569c0765c8ef68434e0ee2/21w11a.json", "time": "2023-06-07T11:00:54+00:00", "releaseTime": "2021-03-17T15:05:50+00:00"}, {"id": "21w10a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/d4982f2015d40e966beeae097307e33e2f26fa57/21w10a.json", "time": "2023-06-07T11:00:54+00:00", "releaseTime": "2021-03-10T15:24:38+00:00"}, {"id": "21w08b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/d7dbd5a6f2eaa20726235a2b40f955004339b7af/21w08b.json", "time": "2023-06-07T11:00:54+00:00", "releaseTime": "2021-02-25T11:46:34+00:00"}, {"id": "21w08a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/bc80c3181bbeebd6e0cab46fc445b76b6c9dadb1/21w08a.json", "time": "2023-06-07T11:00:54+00:00", "releaseTime": "2021-02-24T14:38:51+00:00"}, {"id": "21w07a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/96476dbdb5d6689b3f1a47c025f1b7ad3630bd95/21w07a.json", "time": "2023-06-07T11:00:54+00:00", "releaseTime": "2021-02-17T16:35:40+00:00"}, {"id": "21w06a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/446e380daf0fa4a9d42d5fcfa8984f8a9500e063/21w06a.json", "time": "2023-06-07T11:00:54+00:00", "releaseTime": "2021-02-10T17:13:54+00:00"}, {"id": "21w05b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/7e957c6d798c266d5978835fcf8f74f7af96153e/21w05b.json", "time": "2023-06-07T11:00:54+00:00", "releaseTime": "2021-02-04T15:09:29+00:00"}, {"id": "21w05a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/f28b435faf0610838bb6ddf6ace922ea27b89de9/21w05a.json", "time": "2023-06-07T11:00:54+00:00", "releaseTime": "2021-02-03T15:56:54+00:00"}, {"id": "21w03a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/4b7bb5c32164c0497717ab7ec5dc3016de6dfdc0/21w03a.json", "time": "2023-06-07T11:00:54+00:00", "releaseTime": "2021-01-20T14:56:29+00:00"}, {"id": "1.16.5", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/fba9f7833e858a1257d810d21a3a9e3c967f9077/1.16.5.json", "time": "2023-06-07T11:09:02+00:00", "releaseTime": "2021-01-14T16:05:32+00:00"}, {"id": "1.16.5-rc1", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/79b63085fb7b4805877ee719f6518ab3c87b3833/1.16.5-rc1.json", "time": "2023-06-07T11:09:02+00:00", "releaseTime": "2021-01-13T15:58:55+00:00"}, {"id": "20w51a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/08f2e16bc1ab7f7bdeaa95f2762ff05c7407100d/20w51a.json", "time": "2023-06-07T11:00:54+00:00", "releaseTime": "2020-12-16T16:27:57+00:00"}, {"id": "20w49a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/ba1eaa1e4396bd42eb1ef2a0897fcf0043551f6f/20w49a.json", "time": "2023-06-07T11:00:54+00:00", "releaseTime": "2020-12-02T16:47:20+00:00"}, {"id": "20w48a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/cbbe53da94d1368c5e2fd8309f0e7b1645957516/20w48a.json", "time": "2023-06-07T11:00:54+00:00", "releaseTime": "2020-11-25T15:42:24+00:00"}, {"id": "20w46a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/d1d7a38b0d650c51473ba04019176b575fd6f34b/20w46a.json", "time": "2023-06-07T11:00:54+00:00", "releaseTime": "2020-11-11T15:30:32+00:00"}, {"id": "20w45a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/913ae8af6dcc8b308fb58da1ee3b58e3a83f5f28/20w45a.json", "time": "2023-06-07T11:00:54+00:00", "releaseTime": "2020-11-04T16:42:00+00:00"}, {"id": "1.16.4", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/596ad61fda7612d9edf8881cf81869276bdb7f82/1.16.4.json", "time": "2023-06-07T11:09:02+00:00", "releaseTime": "2020-10-29T15:49:37+00:00"}, {"id": "1.16.4-rc1", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/ef95b0f319cb282802a4cc38e57e79d4fafc9567/1.16.4-rc1.json", "time": "2023-06-07T11:09:02+00:00", "releaseTime": "2020-10-27T16:31:08+00:00"}, {"id": "1.16.4-pre2", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/5af340937921b990c1b7da8bdac9d04fad7c3c95/1.16.4-pre2.json", "time": "2023-06-07T11:09:02+00:00", "releaseTime": "2020-10-22T15:32:17+00:00"}, {"id": "1.16.4-pre1", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/b48239bf7935185c788e07d9c2d83d788ce3f27b/1.16.4-pre1.json", "time": "2023-06-07T11:09:02+00:00", "releaseTime": "2020-10-13T14:36:07+00:00"}, {"id": "1.16.3", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/6485dd131ef68c968041a9f6fd73094b027e42e1/1.16.3.json", "time": "2023-06-07T11:09:02+00:00", "releaseTime": "2020-09-10T13:42:37+00:00"}, {"id": "1.16.3-rc1", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/5ba5cfa865db9020ddab97df365ea8821d3eb454/1.16.3-rc1.json", "time": "2023-06-07T11:09:02+00:00", "releaseTime": "2020-09-07T12:34:06+00:00"}, {"id": "1.16.2", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/998d9ef5770d05c20d760dc16cf85151f35009f2/1.16.2.json", "time": "2023-06-07T11:09:02+00:00", "releaseTime": "2020-08-11T10:13:46+00:00"}, {"id": "1.16.2-rc2", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/278e49a115bce14e99b5fa9420103652692c9f6b/1.16.2-rc2.json", "time": "2023-06-07T11:09:02+00:00", "releaseTime": "2020-08-10T11:43:36+00:00"}, {"id": "1.16.2-rc1", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/541ad2a92d12e6d36fb6c2b29b5d69ae4b97ab23/1.16.2-rc1.json", "time": "2023-06-07T11:09:02+00:00", "releaseTime": "2020-08-07T14:35:39+00:00"}, {"id": "1.16.2-pre3", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/3df6469e9cc759a1ac0a8f6690289922d547f97b/1.16.2-pre3.json", "time": "2023-06-07T11:09:02+00:00", "releaseTime": "2020-08-06T16:44:52+00:00"}, {"id": "1.16.2-pre2", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/7768698c025d559928042452df9d79910e7818eb/1.16.2-pre2.json", "time": "2023-06-07T11:09:02+00:00", "releaseTime": "2020-08-05T15:30:50+00:00"}, {"id": "1.16.2-pre1", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/9709f88b92c9078c3d0a95dae3a225dc8cd70a34/1.16.2-pre1.json", "time": "2023-06-07T11:09:02+00:00", "releaseTime": "2020-07-29T13:19:05+00:00"}, {"id": "20w30a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/3de2ee50c31ebcd4b1fa9577e2550a6020710df5/20w30a.json", "time": "2023-06-07T11:09:02+00:00", "releaseTime": "2020-07-22T15:05:15+00:00"}, {"id": "20w29a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/d869c8cda528228a47b80dde5cc9ea138f514a99/20w29a.json", "time": "2023-06-07T11:09:02+00:00", "releaseTime": "2020-07-15T14:13:47+00:00"}, {"id": "20w28a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/33142315373d1ed7289fa6e5b8b2de6980147de8/20w28a.json", "time": "2023-06-07T11:09:02+00:00", "releaseTime": "2020-07-08T15:10:40+00:00"}, {"id": "20w27a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/e442b0f37792b83bf46e9ae0258f45faff33a7cf/20w27a.json", "time": "2023-06-07T11:09:02+00:00", "releaseTime": "2020-07-01T15:07:35+00:00"}, {"id": "1.16.1", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/54fa3af57d041d2771e66d390197b2c0288e697c/1.16.1.json", "time": "2023-06-07T11:09:02+00:00", "releaseTime": "2020-06-24T10:31:40+00:00"}, {"id": "1.16", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/e9d21d375f9c961f0e9731d4e463306d76e77c48/1.16.json", "time": "2023-06-07T11:09:02+00:00", "releaseTime": "2020-06-23T16:20:52+00:00"}, {"id": "1.16-rc1", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/49d94686688119e1d85d8c7ebc690b0f6d71ebd8/1.16-rc1.json", "time": "2023-06-07T11:09:02+00:00", "releaseTime": "2020-06-18T12:49:28+00:00"}, {"id": "1.16-pre8", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/d85ab25ae33462045ba050774cf9cbb978afebca/1.16-pre8.json", "time": "2023-06-07T11:09:02+00:00", "releaseTime": "2020-06-17T14:45:23+00:00"}, {"id": "1.16-pre7", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/ec4dc4530869505923e1ebf6fc80ea08eda831e1/1.16-pre7.json", "time": "2023-06-07T11:09:02+00:00", "releaseTime": "2020-06-16T15:31:35+00:00"}, {"id": "1.16-pre6", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/4c1ed3dcbbf22fe0a17eb05b3f1f1445f25508d6/1.16-pre6.json", "time": "2023-06-07T11:09:02+00:00", "releaseTime": "2020-06-15T16:57:57+00:00"}, {"id": "1.16-pre5", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/e41cdd44896fcfd96db07aecf89a58bbc89d6c6f/1.16-pre5.json", "time": "2023-06-07T11:09:02+00:00", "releaseTime": "2020-06-12T14:33:59+00:00"}, {"id": "1.16-pre4", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/68b121aae24c9f217378ac64e7e27e1a4ca6c6e0/1.16-pre4.json", "time": "2023-06-07T11:09:02+00:00", "releaseTime": "2020-06-11T15:45:55+00:00"}, {"id": "1.16-pre3", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/72e9981dd7fb9bc1e775a04aa844ef79192bfebc/1.16-pre3.json", "time": "2023-06-07T11:09:02+00:00", "releaseTime": "2020-06-10T14:57:43+00:00"}, {"id": "1.16-pre2", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/81ae4d3c6cabf02af6c67abd87c6b9c9501bdf26/1.16-pre2.json", "time": "2023-06-07T11:09:02+00:00", "releaseTime": "2020-06-05T10:47:59+00:00"}, {"id": "1.16-pre1", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/bcfd0eeee263ea7779c23ba7d55034607ba4b00e/1.16-pre1.json", "time": "2023-06-07T11:09:02+00:00", "releaseTime": "2020-06-04T18:17:51+00:00"}, {"id": "20w22a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/a0bbbe0674789a5b2b11705bb868a446bfd660fd/20w22a.json", "time": "2023-06-07T11:09:02+00:00", "releaseTime": "2020-05-29T11:25:02+00:00"}, {"id": "20w21a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/3d95fdd82e0fa506eb4099f3e948c378124a2baf/20w21a.json", "time": "2023-06-07T11:09:02+00:00", "releaseTime": "2020-05-20T12:07:18+00:00"}, {"id": "20w20b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/2ac29186d5062224ff326d868fe78bea79360ad1/20w20b.json", "time": "2023-06-07T11:09:02+00:00", "releaseTime": "2020-05-14T08:16:26+00:00"}, {"id": "20w20a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/4e5118f80f061490e54d843216780dabdaaf59fd/20w20a.json", "time": "2023-06-07T11:09:02+00:00", "releaseTime": "2020-05-13T15:11:43+00:00"}, {"id": "20w19a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/be653aac3f8e6cfc2bc40cc9be764f0a4ba46121/20w19a.json", "time": "2023-06-07T11:09:02+00:00", "releaseTime": "2020-05-06T16:23:24+00:00"}, {"id": "20w18a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/1c7978f8d1b6735bb0b6d813f3aed0363bf1bd8d/20w18a.json", "time": "2023-06-07T11:09:02+00:00", "releaseTime": "2020-04-29T15:16:34+00:00"}, {"id": "20w17a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/98807b36f1ee047d5e4e2744d94b28d9e5c1b7cd/20w17a.json", "time": "2023-06-07T11:09:02+00:00", "releaseTime": "2020-04-22T13:47:50+00:00"}, {"id": "20w16a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/9ca086c9195b437c08f9f0c38d25dc1955d91870/20w16a.json", "time": "2023-06-07T11:09:02+00:00", "releaseTime": "2020-04-15T14:13:01+00:00"}, {"id": "20w15a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/bbf16435ce4c151d3908b442987c162e6f7cf8c5/20w15a.json", "time": "2023-06-07T11:09:02+00:00", "releaseTime": "2020-04-08T12:29:24+00:00"}, {"id": "20w14a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/1e548dbfeb7cb9aa76888b7308112c1a03cf0cc0/20w14a.json", "time": "2023-06-07T11:09:02+00:00", "releaseTime": "2020-04-02T14:28:06+00:00"}, {"id": "20w14infinite", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/73eb2a736f0a7349fb5f73e685f847826e5321fd/20w14infinite.json", "time": "2023-06-07T11:09:02+00:00", "releaseTime": "2020-04-01T12:47:08+00:00"}, {"id": "20w13b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/430033af05f29add54241c55be62bbde6b640cd5/20w13b.json", "time": "2023-06-07T11:09:02+00:00", "releaseTime": "2020-03-26T13:00:34+00:00"}, {"id": "20w13a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/2e7daff8b5d319aca184bfa818f073663ada22d7/20w13a.json", "time": "2023-06-07T11:09:02+00:00", "releaseTime": "2020-03-25T17:05:33+00:00"}, {"id": "20w12a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/79a74e0bfd167b1d09713accb7c2fe6cd1c5dd8c/20w12a.json", "time": "2023-06-07T11:09:02+00:00", "releaseTime": "2020-03-18T16:42:06+00:00"}, {"id": "20w11a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/ac08e450ea036741d61bcb7e5ea09e5db2e945d7/20w11a.json", "time": "2023-06-07T11:09:02+00:00", "releaseTime": "2020-03-11T16:28:27+00:00"}, {"id": "20w10a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/781dbf396510e90e3ec6c845d60e05719a3c8853/20w10a.json", "time": "2023-06-07T11:09:02+00:00", "releaseTime": "2020-03-04T16:21:41+00:00"}, {"id": "20w09a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/191f7a06170d42a2aed63c2a8adf4aaae4799892/20w09a.json", "time": "2023-06-07T11:09:02+00:00", "releaseTime": "2020-02-26T16:43:08+00:00"}, {"id": "20w08a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/77545f4f812d127fd032e36413901b85215662d9/20w08a.json", "time": "2023-06-07T11:09:02+00:00", "releaseTime": "2020-02-19T13:30:09+00:00"}, {"id": "20w07a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/49b9a7a4d3ae78d74dcba384e2aea08cb58fbe37/20w07a.json", "time": "2023-06-07T11:09:02+00:00", "releaseTime": "2020-02-14T13:20:49+00:00"}, {"id": "20w06a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/59a5d77dce749c868f7338c5d6241312a9dc2f1a/20w06a.json", "time": "2023-06-07T11:09:02+00:00", "releaseTime": "2020-02-05T16:05:22+00:00"}, {"id": "1.15.2", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/e9d0adb8f642abe422909ede50f651b2b58a3573/1.15.2.json", "time": "2023-06-07T11:17:08+00:00", "releaseTime": "2020-01-17T10:03:52+00:00"}, {"id": "1.15.2-pre2", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/2b1688e3a06c0427a99cd0042554ed40eb4fafa4/1.15.2-pre2.json", "time": "2023-06-07T11:17:08+00:00", "releaseTime": "2020-01-16T12:35:57+00:00"}, {"id": "1.15.2-pre1", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/d7f37c8d4695dff2a9f553952e9c97a49ee471ca/1.15.2-pre1.json", "time": "2023-06-07T11:17:08+00:00", "releaseTime": "2020-01-14T16:19:31+00:00"}, {"id": "1.15.1", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/18c3063de87ae126b4e017121219ba802be0755b/1.15.1.json", "time": "2023-06-07T11:17:08+00:00", "releaseTime": "2019-12-16T10:29:47+00:00"}, {"id": "1.15.1-pre1", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/1b5aee0865f805a44ecdbed04c964352e86534f2/1.15.1-pre1.json", "time": "2023-06-07T11:17:08+00:00", "releaseTime": "2019-12-12T14:02:30+00:00"}, {"id": "1.15", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/833322370ab320e77717097082effe1d124d48bd/1.15.json", "time": "2023-06-07T11:17:08+00:00", "releaseTime": "2019-12-09T13:13:38+00:00"}, {"id": "1.15-pre7", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/e60f500bb19e44c0e632e02da12807ff2fe92e49/1.15-pre7.json", "time": "2023-06-07T11:17:08+00:00", "releaseTime": "2019-12-09T12:14:11+00:00"}, {"id": "1.15-pre6", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/6da29669f5a9cd8ddf8ee92888125a23eb09b877/1.15-pre6.json", "time": "2023-06-07T11:17:08+00:00", "releaseTime": "2019-12-06T12:04:30+00:00"}, {"id": "1.15-pre5", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/1e842a4e2c50234213a19931ac8a462de3021467/1.15-pre5.json", "time": "2023-06-07T11:17:08+00:00", "releaseTime": "2019-12-05T13:20:00+00:00"}, {"id": "1.15-pre4", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/b4ca2162a7a098e4e4f7dce619666d0aa6f3e2fc/1.15-pre4.json", "time": "2023-06-07T11:17:08+00:00", "releaseTime": "2019-12-03T12:24:24+00:00"}, {"id": "1.15-pre3", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/1f31491b1ea5e89427393ab3ca6aefb5e0e9c34a/1.15-pre3.json", "time": "2023-06-07T11:17:08+00:00", "releaseTime": "2019-11-28T17:17:50+00:00"}, {"id": "1.15-pre2", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/62c8b621f2be16d47fa2f05f8f6380a696cfeda3/1.15-pre2.json", "time": "2023-06-07T11:17:08+00:00", "releaseTime": "2019-11-25T18:09:38+00:00"}, {"id": "1.15-pre1", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/66e8035a07e8d2610491003ebf7c51a9c4b0ed67/1.15-pre1.json", "time": "2023-06-07T11:17:08+00:00", "releaseTime": "2019-11-21T17:01:17+00:00"}, {"id": "19w46b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/18f4384dd05ad7711714742e5c22947a3828d6a2/19w46b.json", "time": "2023-06-07T11:17:08+00:00", "releaseTime": "2019-11-14T13:29:24+00:00"}, {"id": "19w46a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/91bef07ec9143752f2ce038434f60f08e6f10089/19w46a.json", "time": "2023-06-07T11:17:08+00:00", "releaseTime": "2019-11-13T16:37:46+00:00"}, {"id": "19w45b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/ce9a87180664cce2eaa96518f6dae923943efe4c/19w45b.json", "time": "2023-06-07T11:17:08+00:00", "releaseTime": "2019-11-08T12:42:44+00:00"}, {"id": "19w45a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/7e459f7878fde73117da2cb89cbaaa6d649b1a39/19w45a.json", "time": "2023-06-07T11:17:08+00:00", "releaseTime": "2019-11-07T16:19:20+00:00"}, {"id": "19w44a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/652ec7dc926df9b0c7a7f7d00e9cfe34b3b82470/19w44a.json", "time": "2023-06-07T11:17:08+00:00", "releaseTime": "2019-10-30T15:31:44+00:00"}, {"id": "19w42a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/4c7d6f4ba7786e252c79a73a13106eb077e622a3/19w42a.json", "time": "2023-06-07T11:17:08+00:00", "releaseTime": "2019-10-16T15:30:39+00:00"}, {"id": "19w41a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/a73a6135db91f13d7399fc9d438c24a7a80fb819/19w41a.json", "time": "2023-06-07T11:17:08+00:00", "releaseTime": "2019-10-09T15:21:35+00:00"}, {"id": "19w40a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/c2b4b675af813d9e8e43767991539a1770b93e6b/19w40a.json", "time": "2023-06-07T11:17:08+00:00", "releaseTime": "2019-10-02T13:40:26+00:00"}, {"id": "19w39a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/14180226c4e65289831b3f28fc75aebf8e114deb/19w39a.json", "time": "2023-06-07T11:17:08+00:00", "releaseTime": "2019-09-27T10:13:33+00:00"}, {"id": "19w38b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/72fea837ad3bf55eaf4a1163109afba0d1f9976c/19w38b.json", "time": "2023-06-07T11:17:08+00:00", "releaseTime": "2019-09-18T14:59:13+00:00"}, {"id": "19w38a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/e43b0e8f8944107fafb785cb50e2994c4be1676f/19w38a.json", "time": "2023-06-07T11:17:08+00:00", "releaseTime": "2019-09-18T10:03:22+00:00"}, {"id": "19w37a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/8a986a197d87f45205a5650018708c7f9d9056ad/19w37a.json", "time": "2023-06-07T11:17:08+00:00", "releaseTime": "2019-09-11T11:46:44+00:00"}, {"id": "19w36a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/90bc200686ed385ca3ccae265393d28a8d3191fe/19w36a.json", "time": "2023-06-07T11:17:08+00:00", "releaseTime": "2019-09-04T11:19:34+00:00"}, {"id": "19w35a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/39e153ff4f57f533069cf24441f9fa0a23b6d223/19w35a.json", "time": "2023-06-07T11:17:08+00:00", "releaseTime": "2019-08-28T15:01:44+00:00"}, {"id": "19w34a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/79310fef2c7bb69085e9459568152049f706e52d/19w34a.json", "time": "2023-06-07T11:17:08+00:00", "releaseTime": "2019-08-22T12:06:21+00:00"}, {"id": "1.14.4", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/be146d5f66a3627ed0a87c234c4d8dde8ab35098/1.14.4.json", "time": "2023-06-07T11:25:16+00:00", "releaseTime": "2019-07-19T09:25:47+00:00"}, {"id": "1.14.4-pre7", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/9fa32d63671ca8ad48ffc01f478bb5528a9780bb/1.14.4-pre7.json", "time": "2023-06-07T11:25:16+00:00", "releaseTime": "2019-07-18T11:32:36+00:00"}, {"id": "1.14.4-pre6", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/fc516c11532c5dd97de371786969d0103df1aff9/1.14.4-pre6.json", "time": "2023-06-07T11:25:16+00:00", "releaseTime": "2019-07-15T12:39:49+00:00"}, {"id": "1.14.4-pre5", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/6561296e73e1cbc2371cda68e0f045191d413ea3/1.14.4-pre5.json", "time": "2023-06-07T11:25:16+00:00", "releaseTime": "2019-07-11T10:52:33+00:00"}, {"id": "1.14.4-pre4", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/a08857ff791232848fb4f361c05bfc3096cf02b3/1.14.4-pre4.json", "time": "2023-06-07T11:25:16+00:00", "releaseTime": "2019-07-10T12:53:29+00:00"}, {"id": "1.14.4-pre3", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/1304801a59f94205cf234f809f2ddaf78e2b64a8/1.14.4-pre3.json", "time": "2023-06-07T11:25:16+00:00", "releaseTime": "2019-07-08T11:21:42+00:00"}, {"id": "1.14.4-pre2", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/33921eca48b26430ff698ce196645d166529f270/1.14.4-pre2.json", "time": "2023-06-07T11:25:16+00:00", "releaseTime": "2019-07-04T14:41:05+00:00"}, {"id": "1.14.4-pre1", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/22fef20b2c50855f8702a06a836dc4f31412436a/1.14.4-pre1.json", "time": "2023-06-07T11:25:16+00:00", "releaseTime": "2019-07-03T13:01:01+00:00"}, {"id": "1.14.3", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/e21618620e02be5a14543d1d17ffdba941d09aa8/1.14.3.json", "time": "2023-06-07T11:25:16+00:00", "releaseTime": "2019-06-24T12:52:52+00:00"}, {"id": "1.14.3-pre4", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/e197ff501e791295140b7b6b02ca5f476075f634/1.14.3-pre4.json", "time": "2023-06-07T11:25:16+00:00", "releaseTime": "2019-06-19T11:44:29+00:00"}, {"id": "1.14.3-pre3", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/cee4ea21267c4f62171f5cf19bf5b3322424be33/1.14.3-pre3.json", "time": "2023-06-07T11:25:16+00:00", "releaseTime": "2019-06-14T08:03:33+00:00"}, {"id": "1.14.3-pre2", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/f4a376be79a51403d9cd0c1dbec1a25a2994dc85/1.14.3-pre2.json", "time": "2023-06-07T11:25:16+00:00", "releaseTime": "2019-06-07T09:11:29+00:00"}, {"id": "1.14.3-pre1", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/6345b47eb7abe7b74870ff11dbd03e282e1b0112/1.14.3-pre1.json", "time": "2023-06-07T11:25:16+00:00", "releaseTime": "2019-06-03T14:34:20+00:00"}, {"id": "1.14.2", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/83299b3bf3139ebd9ae5547b3144dcf68d4cb1fd/1.14.2.json", "time": "2023-06-07T11:25:16+00:00", "releaseTime": "2019-05-27T11:48:25+00:00"}, {"id": "1.14.2 Pre-Release 4", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/75bf72d8e4b38cf5f729637efc116697edec4334/1.14.2%20Pre-Release%204.json", "time": "2023-06-07T11:25:16+00:00", "releaseTime": "2019-05-27T07:21:11+00:00"}, {"id": "1.14.2 Pre-Release 3", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/4a0126da466f90d6e52eb3e27332f7f7070f4be8/1.14.2%20Pre-Release%203.json", "time": "2023-06-07T11:25:16+00:00", "releaseTime": "2019-05-22T13:12:51+00:00"}, {"id": "1.14.2 Pre-Release 2", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/dee854f57cac0fc9f1b96b96254a67829dd103ae/1.14.2%20Pre-Release%202.json", "time": "2023-06-07T11:25:16+00:00", "releaseTime": "2019-05-17T12:21:03+00:00"}, {"id": "1.14.2 Pre-Release 1", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/0525ae4750d18d6c3cf9edee1f510333919c6003/1.14.2%20Pre-Release%201.json", "time": "2023-06-07T11:25:16+00:00", "releaseTime": "2019-05-16T15:40:25+00:00"}, {"id": "1.14.1", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/183e49ba0fabb5ef8a304f8f5907fa887f40c466/1.14.1.json", "time": "2023-06-07T11:25:16+00:00", "releaseTime": "2019-05-13T11:10:12+00:00"}, {"id": "1.14.1 Pre-Release 2", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/1d0ccfff5f8d13d3ecaddbc481a9a4815e312e4e/1.14.1%20Pre-Release%202.json", "time": "2023-06-07T11:25:16+00:00", "releaseTime": "2019-05-09T14:01:04+00:00"}, {"id": "1.14.1 Pre-Release 1", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/656e98e9c5a418b4747b0e5892fd301963b0bcc7/1.14.1%20Pre-Release%201.json", "time": "2023-06-07T11:25:16+00:00", "releaseTime": "2019-05-07T14:44:42+00:00"}, {"id": "1.14", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/0fd01dd81eaa451d3130b1cf025a10f129585b10/1.14.json", "time": "2023-06-07T11:25:16+00:00", "releaseTime": "2019-04-23T14:52:44+00:00"}, {"id": "1.14 Pre-Release 5", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/157959b1daeda81293854032102eef36e76af108/1.14%20Pre-Release%205.json", "time": "2023-06-07T11:25:16+00:00", "releaseTime": "2019-04-18T11:05:19+00:00"}, {"id": "1.14 Pre-Release 4", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/93ca7217fa9027019328b1b8f9b2e8f82436622d/1.14%20Pre-Release%204.json", "time": "2023-06-07T11:25:16+00:00", "releaseTime": "2019-04-17T15:31:12+00:00"}, {"id": "1.14 Pre-Release 3", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/af8a6b1a9d8d44e080451553060a602e1214a7bb/1.14%20Pre-Release%203.json", "time": "2023-06-07T11:25:16+00:00", "releaseTime": "2019-04-16T13:57:10+00:00"}, {"id": "1.14 Pre-Release 2", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/fcbaaa318bf47cecb0c37da7a37903e4bcf24e90/1.14%20Pre-Release%202.json", "time": "2023-06-07T11:25:16+00:00", "releaseTime": "2019-04-12T11:38:53+00:00"}, {"id": "1.14 Pre-Release 1", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/76dd36e6b4fb2db5e474dd3b44cd96f3f498433d/1.14%20Pre-Release%201.json", "time": "2023-06-07T11:25:16+00:00", "releaseTime": "2019-04-10T14:24:16+00:00"}, {"id": "19w14b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/eac7bd3b9b9a8beed783fda4920b76b792120861/19w14b.json", "time": "2023-06-07T11:25:16+00:00", "releaseTime": "2019-04-05T10:33:58+00:00"}, {"id": "19w14a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/3f547c294bf6f82e76120f760d5574d6b3eb88bc/19w14a.json", "time": "2023-06-07T11:25:16+00:00", "releaseTime": "2019-04-03T13:45:00+00:00"}, {"id": "3D Shareware v1.34", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/5b59564acaa4cc153b6f934e566226642ed978ab/3D%20Shareware%20v1.34.json", "time": "2023-06-07T12:27:21+00:00", "releaseTime": "2019-04-01T11:18:08+00:00"}, {"id": "19w13b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/fd82b31c5890e7f118c7ffa9122a0f6b29c87936/19w13b.json", "time": "2023-06-07T11:25:16+00:00", "releaseTime": "2019-03-29T16:53:22+00:00"}, {"id": "19w13a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/b6b6aa23cbbce46b65e36d0c1bccd4f18438118a/19w13a.json", "time": "2023-06-07T11:25:16+00:00", "releaseTime": "2019-03-27T15:15:31+00:00"}, {"id": "19w12b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/2b7c619474e2a5c19e43494199d47cafba395abf/19w12b.json", "time": "2023-06-07T11:25:16+00:00", "releaseTime": "2019-03-21T15:20:01+00:00"}, {"id": "19w12a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/91e9bb4b6af34b07c6a89c95696b988b8156702b/19w12a.json", "time": "2023-06-07T11:25:16+00:00", "releaseTime": "2019-03-20T16:47:34+00:00"}, {"id": "19w11b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/065fec1702d92598089ad37f9e64b2e52ca30114/19w11b.json", "time": "2023-06-07T11:25:16+00:00", "releaseTime": "2019-03-14T14:26:23+00:00"}, {"id": "19w11a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/ec8d1b45727e11cec93a813cc8b66bd48a6a3bad/19w11a.json", "time": "2023-06-07T11:25:16+00:00", "releaseTime": "2019-03-13T13:59:29+00:00"}, {"id": "19w09a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/fe35acc600f18d6247ec9e4228c53447e695f8a3/19w09a.json", "time": "2023-06-07T11:25:16+00:00", "releaseTime": "2019-02-27T14:44:30+00:00"}, {"id": "19w08b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/8d59acdc1b78c6d4a690c2906bcb0a875f119652/19w08b.json", "time": "2023-06-07T11:25:16+00:00", "releaseTime": "2019-02-21T13:38:09+00:00"}, {"id": "19w08a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/b21d6ece2b83e7ec488a4536dbe9f9228b744b34/19w08a.json", "time": "2023-06-07T11:25:16+00:00", "releaseTime": "2019-02-20T14:56:58+00:00"}, {"id": "19w07a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/0be11f1e510a44d0042ad471a72371e7633c9777/19w07a.json", "time": "2023-06-07T11:25:16+00:00", "releaseTime": "2019-02-13T16:12:08+00:00"}, {"id": "19w06a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/384c37467913bcd11a0d7f8d8b9ec81c7058f1de/19w06a.json", "time": "2023-06-07T11:25:16+00:00", "releaseTime": "2019-02-06T16:24:13+00:00"}, {"id": "19w05a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/87712b3fed60308203939e9ac846470f4b9672d3/19w05a.json", "time": "2023-06-07T11:25:16+00:00", "releaseTime": "2019-01-30T15:16:49+00:00"}, {"id": "19w04b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/aaf60b4748fbfa2b08c90c6abb1762fb92cac367/19w04b.json", "time": "2023-06-07T11:25:16+00:00", "releaseTime": "2019-01-25T12:20:15+00:00"}, {"id": "19w04a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/4eeb1dae750f4152927fe51c5065ca7aa3d53e3e/19w04a.json", "time": "2023-06-07T11:25:16+00:00", "releaseTime": "2019-01-24T15:31:52+00:00"}, {"id": "19w03c", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/e7a922f060cc4441841e4722b0a6bab631492c1e/19w03c.json", "time": "2023-06-07T11:25:16+00:00", "releaseTime": "2019-01-18T11:27:13+00:00"}, {"id": "19w03b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/a600b0a22f97147e59cd6060b362086ac84cb13e/19w03b.json", "time": "2023-06-07T11:25:16+00:00", "releaseTime": "2019-01-17T16:43:27+00:00"}, {"id": "19w03a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/e10947fbb39e5d58fb42000348be423e8c0cad64/19w03a.json", "time": "2023-06-07T11:25:16+00:00", "releaseTime": "2019-01-16T16:45:02+00:00"}, {"id": "19w02a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/5b51ed792b91ce4d281666c64c49084a134ac11d/19w02a.json", "time": "2023-06-07T11:25:16+00:00", "releaseTime": "2019-01-09T15:52:07+00:00"}, {"id": "18w50a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/307a38d1f592a92fcff056165ef05323cb499bfc/18w50a.json", "time": "2023-06-07T11:25:16+00:00", "releaseTime": "2018-12-12T14:58:13+00:00"}, {"id": "18w49a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/7e37cc7f1f8c8d9cde81b7754fda64954578170a/18w49a.json", "time": "2023-06-07T11:25:16+00:00", "releaseTime": "2018-12-05T12:24:30+00:00"}, {"id": "18w48b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/cece9e08337e073961bd7802672050718bf07d0d/18w48b.json", "time": "2023-06-07T11:25:16+00:00", "releaseTime": "2018-11-30T10:37:31+00:00"}, {"id": "18w48a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/fff0948616360b5545f236e5900af4c7c6da5d86/18w48a.json", "time": "2023-06-07T11:25:16+00:00", "releaseTime": "2018-11-29T13:11:38+00:00"}, {"id": "18w47b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/9d60a4e4f408db78e5f7797e8996d87e555674d8/18w47b.json", "time": "2023-06-07T11:25:16+00:00", "releaseTime": "2018-11-23T10:46:41+00:00"}, {"id": "18w47a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/b9345c8f73a33095fba323ebd4c4784796cf4436/18w47a.json", "time": "2023-06-07T11:25:16+00:00", "releaseTime": "2018-11-21T15:45:22+00:00"}, {"id": "18w46a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/1b24c105bfb11d85b4f8cb946c89f762cf099aa2/18w46a.json", "time": "2023-06-07T11:25:16+00:00", "releaseTime": "2018-11-15T13:43:14+00:00"}, {"id": "18w45a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/f8a857bfb02953d2578458402792e3b416d25f9f/18w45a.json", "time": "2023-06-07T11:25:16+00:00", "releaseTime": "2018-11-07T14:40:06+00:00"}, {"id": "18w44a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/7bee20111c1cd50fb0e26b689ea648ff84989ae6/18w44a.json", "time": "2023-06-07T11:25:16+00:00", "releaseTime": "2018-10-31T15:29:16+00:00"}, {"id": "18w43c", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/509730930d8dcd19bd3c6db819d33eb00d272ef4/18w43c.json", "time": "2023-06-07T11:25:16+00:00", "releaseTime": "2018-10-26T08:40:46+00:00"}, {"id": "18w43b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/ba1edcdba89ea57137c04952e4c7755926263a76/18w43b.json", "time": "2023-06-07T11:25:16+00:00", "releaseTime": "2018-10-24T15:02:30+00:00"}, {"id": "18w43a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/d07adde0060f5cbdb01b90ebc03cde154aacebcb/18w43a.json", "time": "2023-06-07T11:25:16+00:00", "releaseTime": "2018-10-24T10:52:16+00:00"}, {"id": "1.13.2", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/fa3ddc22146c46bfeb0e9d322c6f83b937e25005/1.13.2.json", "time": "2023-06-07T11:32:59+00:00", "releaseTime": "2018-10-22T11:41:07+00:00"}, {"id": "1.13.2-pre2", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/7b915c9ca867e916dcbacecdfe19cff3cd94cab8/1.13.2-pre2.json", "time": "2023-06-07T11:32:59+00:00", "releaseTime": "2018-10-18T14:46:12+00:00"}, {"id": "1.13.2-pre1", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/28eb641c164c2ae0879358f884f42f7e2393c366/1.13.2-pre1.json", "time": "2023-06-07T11:32:59+00:00", "releaseTime": "2018-10-16T13:40:58+00:00"}, {"id": "1.13.1", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/f37fe6f0912ddb7ac3e7d5201a73d56ce170a57f/1.13.1.json", "time": "2023-06-07T11:32:59+00:00", "releaseTime": "2018-08-22T14:03:42+00:00"}, {"id": "1.13.1-pre2", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/f82e1057225a7c9dfe3c75b45924a6bfa4aaeafa/1.13.1-pre2.json", "time": "2023-06-07T11:32:59+00:00", "releaseTime": "2018-08-20T13:52:09+00:00"}, {"id": "1.13.1-pre1", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/73f5439743e168a8270b538061832f22625369c9/1.13.1-pre1.json", "time": "2023-06-07T11:32:59+00:00", "releaseTime": "2018-08-16T13:08:44+00:00"}, {"id": "18w33a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/495ee0c97c88cf15b6614dd68bc70994413f8e5f/18w33a.json", "time": "2023-06-07T11:32:59+00:00", "releaseTime": "2018-08-15T14:28:56+00:00"}, {"id": "18w32a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/fa7c2eaa0539d16d3e3887ac16ecd19f25757505/18w32a.json", "time": "2023-06-07T11:32:59+00:00", "releaseTime": "2018-08-08T13:16:57+00:00"}, {"id": "18w31a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/5f20fbe733b3db3758045626e9ffff050029daf6/18w31a.json", "time": "2023-06-07T11:32:59+00:00", "releaseTime": "2018-08-01T12:54:44+00:00"}, {"id": "18w30b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/81891c454a12e9bf4a262002d5c89320bb4ae153/18w30b.json", "time": "2023-06-07T11:32:59+00:00", "releaseTime": "2018-07-26T16:06:57+00:00"}, {"id": "18w30a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/3e9adc4f817f01b8f92e00cb19e2d604473a83d3/18w30a.json", "time": "2023-06-07T11:32:59+00:00", "releaseTime": "2018-07-25T14:29:31+00:00"}, {"id": "1.13", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/c24c2fd37c8ca2e1c18721e2c77caf4d24c87f92/1.13.json", "time": "2023-06-07T11:41:22+00:00", "releaseTime": "2018-07-18T15:11:46+00:00"}, {"id": "1.13-pre10", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/0d4e1471e49b9657226ffb8684ed6da72bb5068e/1.13-pre10.json", "time": "2023-06-07T11:41:22+00:00", "releaseTime": "2018-07-17T14:48:06+00:00"}, {"id": "1.13-pre9", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/43f426cd0895c936110629532c6db46717b2d827/1.13-pre9.json", "time": "2023-06-07T11:41:22+00:00", "releaseTime": "2018-07-16T14:17:42+00:00"}, {"id": "1.13-pre8", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/28369586c81d7db81d6aea81a6464d2bb1765da8/1.13-pre8.json", "time": "2023-06-07T11:41:22+00:00", "releaseTime": "2018-07-13T11:45:00+00:00"}, {"id": "1.13-pre7", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/44314cf050787819e3c4b440f736a8c5e18ff862/1.13-pre7.json", "time": "2023-06-07T11:41:22+00:00", "releaseTime": "2018-07-10T14:21:42+00:00"}, {"id": "1.13-pre6", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/2e5288f29d1cd7b894ed99610828e713c3ba65ac/1.13-pre6.json", "time": "2023-06-07T11:41:22+00:00", "releaseTime": "2018-07-04T12:36:00+00:00"}, {"id": "1.13-pre5", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/f0500efb357283322169d38fd52d24e195d56e05/1.13-pre5.json", "time": "2023-06-07T11:41:22+00:00", "releaseTime": "2018-06-28T13:58:53+00:00"}, {"id": "1.13-pre4", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/5722f90decabdc54cf498d5c2e27e3a094c14018/1.13-pre4.json", "time": "2023-06-07T11:41:22+00:00", "releaseTime": "2018-06-26T13:00:55+00:00"}, {"id": "1.13-pre3", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/26564723c707a7eadfc07db2962295934c846296/1.13-pre3.json", "time": "2023-06-07T11:41:22+00:00", "releaseTime": "2018-06-21T12:57:11+00:00"}, {"id": "1.13-pre2", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/657c4cf0ac64074dbc4d97de063275aba31c9bc0/1.13-pre2.json", "time": "2023-06-07T11:41:22+00:00", "releaseTime": "2018-06-15T09:20:00+00:00"}, {"id": "1.13-pre1", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/28db6a1653a70fc1ac1b352e63f542d21397f59d/1.13-pre1.json", "time": "2023-06-07T11:41:22+00:00", "releaseTime": "2018-06-04T15:17:34+00:00"}, {"id": "18w22c", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/b16aeae7fd19224ec48c0e0937321faae2d241ff/18w22c.json", "time": "2023-06-07T11:41:22+00:00", "releaseTime": "2018-05-31T13:53:15+00:00"}, {"id": "18w22b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/8e22c333dbaff27f1dfb068aee0a343d7bc3544c/18w22b.json", "time": "2023-06-07T11:41:22+00:00", "releaseTime": "2018-05-30T13:48:58+00:00"}, {"id": "18w22a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/587dd0b2f3ac3ffd96b2a3451434d1b23b351066/18w22a.json", "time": "2023-06-07T11:41:22+00:00", "releaseTime": "2018-05-29T13:23:55+00:00"}, {"id": "18w21b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/aaae28bb5baa12bf5c7ca8c7f3cc8c558a39c038/18w21b.json", "time": "2023-06-07T11:41:22+00:00", "releaseTime": "2018-05-25T10:09:09+00:00"}, {"id": "18w21a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/92a0cd0254365df7df5e7ad7974ad15285020b32/18w21a.json", "time": "2023-06-07T11:41:22+00:00", "releaseTime": "2018-05-23T13:11:49+00:00"}, {"id": "18w20c", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/a9d4d7cd84c112e644f134cc0cbeb0b2efe1d9e5/18w20c.json", "time": "2023-06-07T11:41:22+00:00", "releaseTime": "2018-05-17T14:06:56+00:00"}, {"id": "18w20b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/566f11647d85194f292d2300fa550631bf75510a/18w20b.json", "time": "2023-06-07T11:41:22+00:00", "releaseTime": "2018-05-16T14:35:35+00:00"}, {"id": "18w20a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/a287a82f4f84e9529f8d387f3f23c680d262cf6a/18w20a.json", "time": "2023-06-07T11:41:22+00:00", "releaseTime": "2018-05-15T14:02:25+00:00"}, {"id": "18w19b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/48a0d019a8ce73d2e492f029e64c9e2791b49339/18w19b.json", "time": "2023-06-07T11:41:22+00:00", "releaseTime": "2018-05-09T10:00:51+00:00"}, {"id": "18w19a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/56cac74df46a43a6385708beafeed1df79590eb2/18w19a.json", "time": "2023-06-07T11:41:22+00:00", "releaseTime": "2018-05-08T13:05:19+00:00"}, {"id": "18w16a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/5fcd79de4734a0b058aab67607e44b1a09464290/18w16a.json", "time": "2023-06-07T11:41:22+00:00", "releaseTime": "2018-04-19T14:46:35+00:00"}, {"id": "18w15a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/c9fe2e1e80b8a5078af2c30cd6b764ca508beaa0/18w15a.json", "time": "2023-06-07T11:41:22+00:00", "releaseTime": "2018-04-11T14:54:22+00:00"}, {"id": "18w14b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/8b4dc5007c1306f5823cfcefd4dbb1e944c8439e/18w14b.json", "time": "2023-06-07T11:41:22+00:00", "releaseTime": "2018-04-05T14:44:02+00:00"}, {"id": "18w14a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/c976a8bb4510edcdcaafca651aae6b49df731bc9/18w14a.json", "time": "2023-06-07T11:41:22+00:00", "releaseTime": "2018-04-04T14:36:14+00:00"}, {"id": "18w11a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/d07fefcabe464b19876597340187732ffd59be5f/18w11a.json", "time": "2023-06-07T11:41:22+00:00", "releaseTime": "2018-03-13T15:10:59+00:00"}, {"id": "18w10d", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/282418aaec344de75724caaf9b2def18e892b213/18w10d.json", "time": "2023-06-07T11:41:22+00:00", "releaseTime": "2018-03-09T15:19:12+00:00"}, {"id": "18w10c", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/ab5cfc50c9e95c44d744a9501808621278aec8df/18w10c.json", "time": "2023-06-07T11:41:22+00:00", "releaseTime": "2018-03-08T15:29:23+00:00"}, {"id": "18w10b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/316ed74ddf2fa0ae65adb2a170ed5aacdada4d51/18w10b.json", "time": "2023-06-07T11:41:22+00:00", "releaseTime": "2018-03-07T15:56:01+00:00"}, {"id": "18w10a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/fac132e97632d4beff518e7f3f8224c07f9239de/18w10a.json", "time": "2023-06-07T11:41:22+00:00", "releaseTime": "2018-03-06T15:54:24+00:00"}, {"id": "18w09a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/fecf14145dffb1c28922b3c16f14e2972779b1e8/18w09a.json", "time": "2023-06-07T11:41:22+00:00", "releaseTime": "2018-03-01T14:15:10+00:00"}, {"id": "18w08b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/3563f3093515369cb24ba5c2d1db610a62e88379/18w08b.json", "time": "2023-06-07T11:41:22+00:00", "releaseTime": "2018-02-22T15:44:49+00:00"}, {"id": "18w08a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/dc7c9d4df688697de0b2f13dc46749e55cbd00ef/18w08a.json", "time": "2023-06-07T11:41:22+00:00", "releaseTime": "2018-02-21T14:59:00+00:00"}, {"id": "18w07c", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/c286a5129959684ce6c416f9a150560d6db263af/18w07c.json", "time": "2023-06-07T11:41:22+00:00", "releaseTime": "2018-02-16T13:23:32+00:00"}, {"id": "18w07b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/dea62b145246671ae46ed157e6ef2cd2de485a1e/18w07b.json", "time": "2023-06-07T11:41:22+00:00", "releaseTime": "2018-02-15T14:28:42+00:00"}, {"id": "18w07a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/211e0152bce6081564fc9c40603463c04f89d835/18w07a.json", "time": "2023-06-07T11:41:22+00:00", "releaseTime": "2018-02-14T17:34:13+00:00"}, {"id": "18w06a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/a19117df869fb45cdd7a3692a3a01aab3979253f/18w06a.json", "time": "2023-06-07T11:41:22+00:00", "releaseTime": "2018-02-09T12:09:55+00:00"}, {"id": "18w05a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/a33a7a4c76821853a7a578920d7d784b91e9581d/18w05a.json", "time": "2023-06-07T11:41:22+00:00", "releaseTime": "2018-01-31T13:32:09+00:00"}, {"id": "18w03b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/3321f5a7180f93f885b2546368a88a928e11a70a/18w03b.json", "time": "2023-06-07T11:41:22+00:00", "releaseTime": "2018-01-17T15:09:14+00:00"}, {"id": "18w03a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/a5e5d97e17af55625c66fa993b105fb774c2d967/18w03a.json", "time": "2023-06-07T11:41:22+00:00", "releaseTime": "2018-01-17T14:25:24+00:00"}, {"id": "18w02a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/8b9bdc1df5d704f0de0a1f2c6b8a721618371213/18w02a.json", "time": "2023-06-07T11:41:22+00:00", "releaseTime": "2018-01-10T11:54:55+00:00"}, {"id": "18w01a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/58589469cc95d98a7cb18823f9dfdd7f14c9d023/18w01a.json", "time": "2023-06-07T11:49:20+00:00", "releaseTime": "2018-01-03T13:29:30+00:00"}, {"id": "17w50a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/63a9166163a505dfb457a236e3e5d0f2ae983c2f/17w50a.json", "time": "2023-06-07T11:49:20+00:00", "releaseTime": "2017-12-11T15:28:08+00:00"}, {"id": "17w49b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/2f0a11dbf1fd65a650310359ccd9c3c36f481688/17w49b.json", "time": "2023-06-07T11:49:20+00:00", "releaseTime": "2017-12-07T15:29:54+00:00"}, {"id": "17w49a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/9fba986bf446a39962189fb76b4236ea81e2f5f8/17w49a.json", "time": "2023-06-07T11:49:20+00:00", "releaseTime": "2017-12-06T14:24:30+00:00"}, {"id": "17w48a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/3b07a3dbdf52535bf05c377cbeb4e4308c6dfd42/17w48a.json", "time": "2023-06-07T11:49:20+00:00", "releaseTime": "2017-11-27T15:36:33+00:00"}, {"id": "17w47b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/687c352e333feb8e36ac38e1a3cad8aa1a45affc/17w47b.json", "time": "2023-06-07T11:49:20+00:00", "releaseTime": "2017-11-23T15:30:12+00:00"}, {"id": "17w47a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/4f2089e0b8a7c209e811fe2ff86c4f9ab5b7bceb/17w47a.json", "time": "2023-06-07T11:49:20+00:00", "releaseTime": "2017-11-22T12:40:05+00:00"}, {"id": "17w46a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/a073800fa0f758a0570696446cd16df88ffc65f6/17w46a.json", "time": "2023-06-07T11:49:20+00:00", "releaseTime": "2017-11-15T15:21:55+00:00"}, {"id": "17w45b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/ad4e836a7bc594aebc70fae5cfda50b2ca410abd/17w45b.json", "time": "2023-06-07T11:49:20+00:00", "releaseTime": "2017-11-10T10:07:02+00:00"}, {"id": "17w45a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/b9fbd5f68cb9e4d0326d20afeb248595e4a278b8/17w45a.json", "time": "2023-06-07T11:49:20+00:00", "releaseTime": "2017-11-08T15:48:00+00:00"}, {"id": "17w43b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/6ceca710ad234e4db4c75c8fb9418878f2a8abf7/17w43b.json", "time": "2023-06-07T11:49:20+00:00", "releaseTime": "2017-10-26T13:36:22+00:00"}, {"id": "17w43a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/50714e6fa84ca0bd804d3fa2f8419bbc08298e76/17w43a.json", "time": "2023-06-07T11:49:20+00:00", "releaseTime": "2017-10-25T14:43:50+00:00"}, {"id": "1.12.2", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/832d95b9f40699d4961394dcf6cf549e65f15dc5/1.12.2.json", "time": "2023-06-07T11:49:20+00:00", "releaseTime": "2017-09-18T08:39:46+00:00"}, {"id": "1.12.2-pre2", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/1eff7a3a362a1005f202da0d3b7112b00c6259e7/1.12.2-pre2.json", "time": "2023-06-07T11:49:20+00:00", "releaseTime": "2017-09-15T08:21:17+00:00"}, {"id": "1.12.2-pre1", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/360cab493afe35971fca74d75fbd6b43c41aa797/1.12.2-pre1.json", "time": "2023-06-07T11:49:20+00:00", "releaseTime": "2017-09-13T13:33:31+00:00"}, {"id": "1.12.1", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/5b3e7d137ea360e1d418f0cf68de160acf93fbff/1.12.1.json", "time": "2023-06-07T11:49:20+00:00", "releaseTime": "2017-08-03T12:40:39+00:00"}, {"id": "1.12.1-pre1", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/36781397c4c05b1ee74276afd9247f9dc33ce692/1.12.1-pre1.json", "time": "2023-06-07T11:49:20+00:00", "releaseTime": "2017-08-02T10:53:55+00:00"}, {"id": "17w31a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/d500ab4e0838c53f4f7ffc5300521df0be9b9853/17w31a.json", "time": "2023-06-07T11:49:20+00:00", "releaseTime": "2017-08-01T09:41:23+00:00"}, {"id": "1.12", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/da76e0a25ffccf2765f9e86ce61c063e44b2183b/1.12.json", "time": "2023-06-07T11:49:20+00:00", "releaseTime": "2017-06-02T13:50:27+00:00"}, {"id": "1.12-pre7", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/92c171fe6fcf3c16ba95f03307618bcac5e3d947/1.12-pre7.json", "time": "2023-06-07T11:49:20+00:00", "releaseTime": "2017-05-31T10:56:41+00:00"}, {"id": "1.12-pre6", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/b1ba9c1c184e57e1bb970cdf4caa35ece8fb4eac/1.12-pre6.json", "time": "2023-06-07T11:49:20+00:00", "releaseTime": "2017-05-29T11:45:12+00:00"}, {"id": "1.12-pre5", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/f5dab6422cd2471a7a1b26435c912679cf66c58a/1.12-pre5.json", "time": "2023-06-07T11:49:20+00:00", "releaseTime": "2017-05-19T07:43:28+00:00"}, {"id": "1.12-pre4", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/8e05acd26ca220bb6399f396c0be0893bc74808d/1.12-pre4.json", "time": "2023-06-07T11:49:20+00:00", "releaseTime": "2017-05-18T12:28:16+00:00"}, {"id": "1.12-pre3", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/47d8cbd470539006d9825de3a890f07e342e4168/1.12-pre3.json", "time": "2023-06-07T11:49:20+00:00", "releaseTime": "2017-05-17T14:09:18+00:00"}, {"id": "1.12-pre2", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/5d014cb12b9aecd84a8d08a7f70bdac55ded1f26/1.12-pre2.json", "time": "2023-06-07T11:49:20+00:00", "releaseTime": "2017-05-11T12:11:12+00:00"}, {"id": "1.12-pre1", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/80d68dc92cdf2557aada495061e93c2ce4f5ca08/1.12-pre1.json", "time": "2023-06-07T11:49:20+00:00", "releaseTime": "2017-05-10T11:37:17+00:00"}, {"id": "17w18b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/69a0095dd897d6ef87fd449328215d4f3d71c78d/17w18b.json", "time": "2023-06-07T11:49:20+00:00", "releaseTime": "2017-05-04T13:40:22+00:00"}, {"id": "17w18a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/659b3c3b8578d45d265b58a0f1e428c044183ab2/17w18a.json", "time": "2023-06-07T11:49:20+00:00", "releaseTime": "2017-05-03T14:50:23+00:00"}, {"id": "17w17b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/8cd9ea793f3ee4608edf4fac8efad1b68fbceb65/17w17b.json", "time": "2023-06-07T11:49:20+00:00", "releaseTime": "2017-04-27T13:24:23+00:00"}, {"id": "17w17a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/9599f29c91fc8f57a77f7a79f4676a09e2ca1fe4/17w17a.json", "time": "2023-06-07T11:49:20+00:00", "releaseTime": "2017-04-26T13:48:23+00:00"}, {"id": "17w16b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/38e2d76bea9091f1ed89e9f9c5b4630fcec103d9/17w16b.json", "time": "2023-06-07T11:49:20+00:00", "releaseTime": "2017-04-21T12:02:59+00:00"}, {"id": "17w16a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/b0369bcb956a4853bcc094ffe0020964061a1379/17w16a.json", "time": "2023-06-07T11:49:20+00:00", "releaseTime": "2017-04-20T13:58:35+00:00"}, {"id": "17w15a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/84285c1ad87efc7f59ef75ca4e35ddf57c7193ae/17w15a.json", "time": "2023-06-07T11:49:20+00:00", "releaseTime": "2017-04-12T09:30:50+00:00"}, {"id": "17w14a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/3d56c3a0ac83f263ab173de90dd6f044523a5274/17w14a.json", "time": "2023-06-07T11:49:20+00:00", "releaseTime": "2017-04-05T13:58:01+00:00"}, {"id": "17w13b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/b06914e45949d4d0167e339daea5217dc2f1f3c4/17w13b.json", "time": "2023-06-07T11:49:20+00:00", "releaseTime": "2017-03-31T11:06:35+00:00"}, {"id": "17w13a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/c5d31a532de28fd250af810ed468a6bd70f3de54/17w13a.json", "time": "2023-06-07T11:49:20+00:00", "releaseTime": "2017-03-30T09:32:19+00:00"}, {"id": "17w06a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/a2a4b51368580cf7abc22d99d360eab2d4f2fec4/17w06a.json", "time": "2023-06-07T11:59:01+00:00", "releaseTime": "2017-02-08T13:16:29+00:00"}, {"id": "1.11.2", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/fa3f6d94a9fad648ff97d18fd710997261a421e8/1.11.2.json", "time": "2023-06-07T11:59:01+00:00", "releaseTime": "2016-12-21T09:29:12+00:00"}, {"id": "1.11.1", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/b244f9fc1721a2ac90b6e12220f5e40246d2c84d/1.11.1.json", "time": "2023-06-07T11:59:01+00:00", "releaseTime": "2016-12-20T14:05:34+00:00"}, {"id": "16w50a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/d4db7d96831cec8c3ad090110dfffae8f6f52aec/16w50a.json", "time": "2023-06-07T11:59:01+00:00", "releaseTime": "2016-12-15T14:38:52+00:00"}, {"id": "1.11", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/935062464617c9904d20045065515cfd3f1b76d2/1.11.json", "time": "2023-06-07T11:59:01+00:00", "releaseTime": "2016-11-14T14:34:40+00:00"}, {"id": "1.11-pre1", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/7bdd264a5a18799413f665a808de94451af68cb7/1.11-pre1.json", "time": "2023-06-07T11:59:01+00:00", "releaseTime": "2016-11-08T13:42:50+00:00"}, {"id": "16w44a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/a75c5e9b85de3c7f89e1acbe02702dd4515df5eb/16w44a.json", "time": "2023-06-07T11:59:01+00:00", "releaseTime": "2016-11-03T14:17:11+00:00"}, {"id": "16w43a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/ecdc354d9d658e08c5371a7ce961e4aa35849913/16w43a.json", "time": "2023-06-07T11:59:01+00:00", "releaseTime": "2016-10-27T09:00:51+00:00"}, {"id": "16w42a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/a133f828ccd3261131132a504729e3106f17f071/16w42a.json", "time": "2023-06-07T11:59:01+00:00", "releaseTime": "2016-10-19T11:17:47+00:00"}, {"id": "16w41a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/802bb9d6882c23e6f47e844c09d97914f1e90491/16w41a.json", "time": "2023-06-07T11:59:01+00:00", "releaseTime": "2016-10-13T14:28:35+00:00"}, {"id": "16w40a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/c5c9e009d6875b2b54c231fb81cea4670b7950d5/16w40a.json", "time": "2023-06-07T11:59:01+00:00", "releaseTime": "2016-10-06T13:57:59+00:00"}, {"id": "16w39c", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/636990dd6311f6cadddf50c1e4c0a51f8fcdaf2d/16w39c.json", "time": "2023-06-07T11:59:01+00:00", "releaseTime": "2016-09-30T14:11:48+00:00"}, {"id": "16w39b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/e4aac42badba700c6b8364ee5ebdc6a3b09073ca/16w39b.json", "time": "2023-06-07T11:59:01+00:00", "releaseTime": "2016-09-29T14:39:39+00:00"}, {"id": "16w39a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/a550f22fab3e847433aa3289c6bedbca49057527/16w39a.json", "time": "2023-06-07T11:59:01+00:00", "releaseTime": "2016-09-28T13:32:06+00:00"}, {"id": "16w38a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/687018ed85a2784dc63695af097daa280c9a8093/16w38a.json", "time": "2023-06-07T11:59:01+00:00", "releaseTime": "2016-09-20T12:40:49+00:00"}, {"id": "16w36a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/b49e747382603492f3ca5617a661f39c0c4e4e77/16w36a.json", "time": "2023-06-07T11:59:01+00:00", "releaseTime": "2016-09-08T14:55:10+00:00"}, {"id": "16w35a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/1ea0cec35ba30ccf2359303a8fbfd643179f0bcf/16w35a.json", "time": "2023-06-07T11:59:01+00:00", "releaseTime": "2016-09-01T13:13:38+00:00"}, {"id": "16w33a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/e9fde68c65264789e91e61ce3d5db783fd537d2c/16w33a.json", "time": "2023-06-07T11:59:01+00:00", "releaseTime": "2016-08-17T12:48:57+00:00"}, {"id": "16w32b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/f5e6026e390a7fde3928682740425d49a44d7786/16w32b.json", "time": "2023-06-07T11:59:01+00:00", "releaseTime": "2016-08-11T14:34:29+00:00"}, {"id": "16w32a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/66d012257108f502883cee77b2ecd7cc40aa6ebc/16w32a.json", "time": "2023-06-07T12:09:50+00:00", "releaseTime": "2016-08-10T12:30:10+00:00"}, {"id": "1.10.2", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/819460dcabf1a2e41b0cf65d342b18ad8dc12281/1.10.2.json", "time": "2023-06-07T12:09:50+00:00", "releaseTime": "2016-06-23T09:17:32+00:00"}, {"id": "1.10.1", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/9c23be6c5a48ab7dc7698586b5d7177fff4b441a/1.10.1.json", "time": "2023-06-07T12:09:50+00:00", "releaseTime": "2016-06-22T10:13:22+00:00"}, {"id": "1.10", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/a827abf9c022a08ed9c4c7807a8c1b7f2f05deca/1.10.json", "time": "2023-06-07T12:09:50+00:00", "releaseTime": "2016-06-08T13:06:18+00:00"}, {"id": "1.10-pre2", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/16ae6b8daf0522d443a64b79b04fae94077027f0/1.10-pre2.json", "time": "2023-06-07T12:09:50+00:00", "releaseTime": "2016-06-07T14:56:34+00:00"}, {"id": "1.10-pre1", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/0ac1b4475692d7e7d457bf16ad6dfac040e9f265/1.10-pre1.json", "time": "2023-06-07T12:17:49+00:00", "releaseTime": "2016-06-02T14:45:16+00:00"}, {"id": "16w21b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/49b8423070619688f106e5fa6f4fd9176fc54a93/16w21b.json", "time": "2023-06-07T12:17:49+00:00", "releaseTime": "2016-05-26T12:47:22+00:00"}, {"id": "16w21a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/325467ff1dae5a0ef55427a0a7a81c9c7e65ceea/16w21a.json", "time": "2023-06-07T12:17:49+00:00", "releaseTime": "2016-05-25T13:12:09+00:00"}, {"id": "16w20a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/9286a8e316080ccf271051a014abc7d886469979/16w20a.json", "time": "2023-06-07T12:17:49+00:00", "releaseTime": "2016-05-18T12:45:14+00:00"}, {"id": "1.9.4", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/b1a314ce2b67b3639bd6407ddcd549ce236de6f6/1.9.4.json", "time": "2023-06-07T12:17:49+00:00", "releaseTime": "2016-05-10T10:17:16+00:00"}, {"id": "1.9.3", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/4d37195227760207d397224c509ded4b0c68ea37/1.9.3.json", "time": "2023-06-07T12:17:49+00:00", "releaseTime": "2016-05-10T08:33:35+00:00"}, {"id": "1.9.3-pre3", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/bd10c446533e8059a6bb0018525e1bce31572bb9/1.9.3-pre3.json", "time": "2023-06-07T12:17:49+00:00", "releaseTime": "2016-05-03T09:28:11+00:00"}, {"id": "1.9.3-pre2", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/e179d52f490ab24205b495cb6554f172077db374/1.9.3-pre2.json", "time": "2023-06-07T12:17:49+00:00", "releaseTime": "2016-04-27T13:33:20+00:00"}, {"id": "1.9.3-pre1", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/75c4b0e87d82f8972f9513797915ab8624c60177/1.9.3-pre1.json", "time": "2023-06-07T12:17:49+00:00", "releaseTime": "2016-04-21T12:41:42+00:00"}, {"id": "16w15b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/0d4cf718d11fc50923c10d331be462c11836beb7/16w15b.json", "time": "2023-06-07T12:17:49+00:00", "releaseTime": "2016-04-13T13:56:41+00:00"}, {"id": "16w15a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/13ae720e4e324deb0f7a7dbbdfb37c330d3adcf2/16w15a.json", "time": "2023-06-07T12:17:49+00:00", "releaseTime": "2016-04-11T14:38:28+00:00"}, {"id": "16w14a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/c748934ad99af11076a95658af606686bdcbce7d/16w14a.json", "time": "2023-06-07T12:17:49+00:00", "releaseTime": "2016-04-07T12:47:51+00:00"}, {"id": "1.RV-Pre1", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/23761c1cc8b5c7c72f6604e1e7322a056a6af2f8/1.RV-Pre1.json", "time": "2023-06-07T12:36:15+00:00", "releaseTime": "2016-03-31T16:18:53+00:00"}, {"id": "1.9.2", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/9623ca73a57c6d183a28513c894c2337cfe65995/1.9.2.json", "time": "2023-06-07T12:17:49+00:00", "releaseTime": "2016-03-30T15:23:55+00:00"}, {"id": "1.9.1", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/fdca0cf4bdab9959fce30413202a00a1bce35be5/1.9.1.json", "time": "2023-06-07T12:17:49+00:00", "releaseTime": "2016-03-30T13:43:07+00:00"}, {"id": "1.9.1-pre3", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/2fa68c071c9cc440e792d70f3b2c2e02e016d657/1.9.1-pre3.json", "time": "2023-06-07T12:17:49+00:00", "releaseTime": "2016-03-11T09:20:36+00:00"}, {"id": "1.9.1-pre2", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/8da8881815e3d53da86adbdc051f836d0c4e2b93/1.9.1-pre2.json", "time": "2023-06-07T12:17:49+00:00", "releaseTime": "2016-03-10T15:06:03+00:00"}, {"id": "1.9.1-pre1", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/1e7ecc95790b3bac41c4c59e9c7186c8b35e3bb3/1.9.1-pre1.json", "time": "2023-06-07T12:17:49+00:00", "releaseTime": "2016-03-09T16:27:29+00:00"}, {"id": "1.9", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/9178828493e41a24452841039710f05728c466d6/1.9.json", "time": "2023-06-07T12:17:49+00:00", "releaseTime": "2016-02-29T13:49:54+00:00"}, {"id": "1.9-pre4", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/47874af37fe9a921ed0386321445be1dd5754976/1.9-pre4.json", "time": "2023-06-07T12:17:49+00:00", "releaseTime": "2016-02-26T15:21:11+00:00"}, {"id": "1.9-pre3", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/b34824eb8099df04af6542722d571ab20381b416/1.9-pre3.json", "time": "2023-06-07T12:17:49+00:00", "releaseTime": "2016-02-24T15:52:36+00:00"}, {"id": "1.9-pre2", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/99775b58e157766cb7c4058b244a1a2b357b0889/1.9-pre2.json", "time": "2023-06-07T12:17:49+00:00", "releaseTime": "2016-02-18T17:41:00+00:00"}, {"id": "1.9-pre1", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/06ae803d5a838a287548f6414b8ede0ebcefe64b/1.9-pre1.json", "time": "2023-06-07T12:17:49+00:00", "releaseTime": "2016-02-17T15:23:19+00:00"}, {"id": "16w07b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/d7abe006dec5beaffac1eb5fcddf86731f6eb97d/16w07b.json", "time": "2023-06-07T12:17:49+00:00", "releaseTime": "2016-02-16T15:22:39+00:00"}, {"id": "16w07a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/73a10d7e61011af19d4c00565bc4faeaae693c7b/16w07a.json", "time": "2023-06-07T12:17:49+00:00", "releaseTime": "2016-02-15T15:48:46+00:00"}, {"id": "16w06a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/86dfa5200058cdb6f96cd2648ec86ddd04bbaf41/16w06a.json", "time": "2023-06-07T12:17:49+00:00", "releaseTime": "2016-02-10T15:06:41+00:00"}, {"id": "16w05b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/f89c22833e743a144e56aaed3e238c142148d9b2/16w05b.json", "time": "2023-06-07T12:17:49+00:00", "releaseTime": "2016-02-04T15:28:02+00:00"}, {"id": "16w05a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/848849c124e368f87bca8a990cbdc9043f678366/16w05a.json", "time": "2023-06-07T12:17:49+00:00", "releaseTime": "2016-02-03T15:48:38+00:00"}, {"id": "16w04a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/ec6cfa675974817435326b87987a512c5af7fbdf/16w04a.json", "time": "2023-06-07T12:17:49+00:00", "releaseTime": "2016-01-28T15:37:24+00:00"}, {"id": "16w03a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/d254f6fc2e3abb57e016feb6734bfa6ff38802eb/16w03a.json", "time": "2023-06-07T12:17:49+00:00", "releaseTime": "2016-01-20T14:29:24+00:00"}, {"id": "16w02a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/1ba834734412a1d7532e85844a32ec2ba18c1580/16w02a.json", "time": "2023-06-07T12:17:49+00:00", "releaseTime": "2016-01-13T15:15:16+00:00"}, {"id": "15w51b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/40b2a92fcabe632c1239c615188f802a36b3854d/15w51b.json", "time": "2023-06-07T12:17:49+00:00", "releaseTime": "2015-12-17T15:30:41+00:00"}, {"id": "15w51a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/a120a6cce86982907628a84aca21cfc6b9064463/15w51a.json", "time": "2023-06-07T12:17:49+00:00", "releaseTime": "2015-12-17T14:02:37+00:00"}, {"id": "15w50a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/8356a6a93d89e3cc95328b4ee6bbd0697e0de200/15w50a.json", "time": "2023-06-07T12:17:49+00:00", "releaseTime": "2015-12-09T15:35:57+00:00"}, {"id": "15w49b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/f8472901afe69ddbe599112d9fc656d3adcd1d5c/15w49b.json", "time": "2023-06-07T12:17:49+00:00", "releaseTime": "2015-12-03T15:23:22+00:00"}, {"id": "1.8.9", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/d546f1707a3f2b7d034eece5ea2e311eda875787/1.8.9.json", "time": "2021-12-15T15:44:12+00:00", "releaseTime": "2015-12-03T09:24:39+00:00"}, {"id": "15w49a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/4b2fbb35b426fbd63932801bd5f198229dfd0f62/15w49a.json", "time": "2023-06-07T12:17:49+00:00", "releaseTime": "2015-12-02T15:09:37+00:00"}, {"id": "15w47c", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/2e61f29ace59ae1d4d1cb1473b673b225115dc8a/15w47c.json", "time": "2023-06-07T12:17:49+00:00", "releaseTime": "2015-11-20T12:46:56+00:00"}, {"id": "15w47b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/dd2a6ff3fd726a25ea42b020764a0f1c4e935849/15w47b.json", "time": "2023-06-07T12:17:49+00:00", "releaseTime": "2015-11-19T14:48:03+00:00"}, {"id": "15w47a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/3bab1680f0ec6330a832457f466654c03d799a0e/15w47a.json", "time": "2023-06-07T12:17:49+00:00", "releaseTime": "2015-11-18T15:53:41+00:00"}, {"id": "15w46a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/8b40019e05283d502aab6bcf40fa498e333cb08c/15w46a.json", "time": "2023-06-07T12:17:49+00:00", "releaseTime": "2015-11-12T12:11:47+00:00"}, {"id": "15w45a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/c581934b794e798ce74736fd3e802128a44aa698/15w45a.json", "time": "2023-06-07T12:17:49+00:00", "releaseTime": "2015-11-05T13:04:07+00:00"}, {"id": "15w44b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/17c7995e26759d671cb4ba41485b7ddf05bc2aba/15w44b.json", "time": "2023-06-07T12:17:49+00:00", "releaseTime": "2015-10-30T11:23:17+00:00"}, {"id": "15w44a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/dfce16ddf5118c95bb981ae7d84448ad3a60fc73/15w44a.json", "time": "2023-06-07T12:17:49+00:00", "releaseTime": "2015-10-28T15:09:36+00:00"}, {"id": "15w43c", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/9a348e6e81aadc6fb563f1586149424af39d5268/15w43c.json", "time": "2023-06-07T12:17:49+00:00", "releaseTime": "2015-10-23T15:35:55+00:00"}, {"id": "15w43b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/2a40420c0409f6f8fc24efe2c904e03715b22623/15w43b.json", "time": "2023-06-07T12:17:49+00:00", "releaseTime": "2015-10-22T14:11:58+00:00"}, {"id": "15w43a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/4aaabcbd0079e99840294002ebed569801729483/15w43a.json", "time": "2023-06-07T12:17:49+00:00", "releaseTime": "2015-10-21T15:28:52+00:00"}, {"id": "15w42a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/7b18842c1dbbe945d991851ffaff49ecd7efbb91/15w42a.json", "time": "2021-12-15T15:45:57+00:00", "releaseTime": "2015-10-14T13:25:14+00:00"}, {"id": "15w41b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/27ab9716cf332d457be085a808eb170fe1a1ff2c/15w41b.json", "time": "2021-12-15T15:45:56+00:00", "releaseTime": "2015-10-07T14:07:26+00:00"}, {"id": "15w41a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/38026b4c0301e3441d8e0d5b367392d3212dc51d/15w41a.json", "time": "2021-12-15T15:45:56+00:00", "releaseTime": "2015-10-07T13:19:53+00:00"}, {"id": "15w40b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/a00ee3d8eb0c1cb38d928f5efb4a473768fa5286/15w40b.json", "time": "2021-12-15T15:45:56+00:00", "releaseTime": "2015-09-30T14:13:54+00:00"}, {"id": "15w40a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/f5c9662f1674f7f0e55e82a77109ad88a6bc9df7/15w40a.json", "time": "2021-12-15T15:45:55+00:00", "releaseTime": "2015-09-30T13:13:54+00:00"}, {"id": "15w39c", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/134e9d87a2c86e82d98bc7f8ba5965b7fd6634c1/15w39c.json", "time": "2021-12-15T15:45:55+00:00", "releaseTime": "2015-09-23T13:13:54+00:00"}, {"id": "15w39b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/909aa3af2988edc58b1e9c66f906a883d9a34815/15w39b.json", "time": "2021-12-15T15:45:54+00:00", "releaseTime": "2015-09-21T15:09:52+00:00"}, {"id": "15w39a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/7f914aa1098b8b35e20e9c021b57378d0a8fcc6c/15w39a.json", "time": "2021-12-15T15:45:54+00:00", "releaseTime": "2015-09-21T13:16:32+00:00"}, {"id": "15w38b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/222a234de865b9147cad4e3b2545d8af93c35065/15w38b.json", "time": "2021-12-15T15:45:54+00:00", "releaseTime": "2015-09-17T14:22:31+00:00"}, {"id": "15w38a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/1b4dcb4c07599a5e5571d9d71570641086e821e4/15w38a.json", "time": "2021-12-15T15:45:53+00:00", "releaseTime": "2015-09-16T14:22:31+00:00"}, {"id": "15w37a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/9459c8c56ba4577b69cc12a9034769f0d20fb3dc/15w37a.json", "time": "2021-12-15T15:45:53+00:00", "releaseTime": "2015-09-10T14:22:31+00:00"}, {"id": "15w36d", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/49a6f0d3a233d103b5fdeb6aefd7a6b0208b5ce9/15w36d.json", "time": "2021-12-15T15:45:53+00:00", "releaseTime": "2015-09-04T14:22:31+00:00"}, {"id": "15w36c", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/b1a04bae902de441013791777aa0461d446bd2c7/15w36c.json", "time": "2021-12-15T15:45:52+00:00", "releaseTime": "2015-09-02T16:07:22+00:00"}, {"id": "15w36b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/2268159e9ce438054660ac86d55db3ddfed1e20b/15w36b.json", "time": "2021-12-15T15:45:52+00:00", "releaseTime": "2015-09-02T15:36:25+00:00"}, {"id": "15w36a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/c185b19d54c00e43f85c610858909c40f9163708/15w36a.json", "time": "2021-12-15T15:45:51+00:00", "releaseTime": "2015-09-02T14:46:40+00:00"}, {"id": "15w35e", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/1fade4fe9d2587106ac3fa14775f9126d3198103/15w35e.json", "time": "2021-12-15T15:45:51+00:00", "releaseTime": "2015-08-28T18:14:02+00:00"}, {"id": "15w35d", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/f7eeb1ed37ec5c38cd8a04ba1fe90a50a1b24752/15w35d.json", "time": "2021-12-15T15:45:51+00:00", "releaseTime": "2015-08-28T16:25:35+00:00"}, {"id": "15w35c", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/362bda12d03da60b8481c79f4779bba7a2602c89/15w35c.json", "time": "2021-12-15T15:45:50+00:00", "releaseTime": "2015-08-28T11:21:00+00:00"}, {"id": "15w35b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/fda82bd0b305eba9607742b9314a41a54f0a9952/15w35b.json", "time": "2021-12-15T15:45:50+00:00", "releaseTime": "2015-08-24T15:39:18+00:00"}, {"id": "15w35a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/801ae2c7be9b3e558a7aef6c766bddb74d4be66a/15w35a.json", "time": "2021-12-15T15:45:50+00:00", "releaseTime": "2015-08-24T14:19:31+00:00"}, {"id": "15w34d", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/3c0d347369147a3951163679127a5bf8e78be5a2/15w34d.json", "time": "2021-12-15T15:45:49+00:00", "releaseTime": "2015-08-21T15:27:55+00:00"}, {"id": "15w34c", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/44d6774de6881154fd5f9ac6154dee5f202eb121/15w34c.json", "time": "2021-12-15T15:45:49+00:00", "releaseTime": "2015-08-21T12:45:20+00:00"}, {"id": "15w34b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/3bec850cf623d63b26caf462b0be177bc9954a0a/15w34b.json", "time": "2021-12-15T15:45:48+00:00", "releaseTime": "2015-08-20T14:00:03+00:00"}, {"id": "15w34a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/b8fdc5838196c33646a68610ed7586678a53b085/15w34a.json", "time": "2021-12-15T15:45:48+00:00", "releaseTime": "2015-08-19T12:56:01+00:00"}, {"id": "15w33c", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/c602ac43b9f2c23b4c39999a6368bbccd31852ca/15w33c.json", "time": "2021-12-15T15:45:48+00:00", "releaseTime": "2015-08-14T13:10:46+00:00"}, {"id": "15w33b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/c108562e1ee548ba05439441e97fdcb0b01d1194/15w33b.json", "time": "2021-12-15T15:45:47+00:00", "releaseTime": "2015-08-12T15:29:11+00:00"}, {"id": "15w33a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/e5b7e666fd697aef925f539d3983d03ed5d4457e/15w33a.json", "time": "2021-12-15T15:45:47+00:00", "releaseTime": "2015-08-12T14:05:07+00:00"}, {"id": "15w32c", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/2bf1e36bc4099bba503063ec507b7600ca088e4c/15w32c.json", "time": "2021-12-15T15:45:46+00:00", "releaseTime": "2015-08-07T14:08:17+00:00"}, {"id": "15w32b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/59db82d67a0a1c6b6a31d22cd050ff6c43f1611b/15w32b.json", "time": "2021-12-15T15:45:46+00:00", "releaseTime": "2015-08-06T13:51:47+00:00"}, {"id": "15w32a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/4e80b2295bdb531e64326c4d3fbf93e8d330c5e7/15w32a.json", "time": "2021-12-15T15:45:45+00:00", "releaseTime": "2015-08-05T12:22:42+00:00"}, {"id": "15w31c", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/1345a9c6d2442415e5980c12fd7bd838072dbd90/15w31c.json", "time": "2021-12-15T15:45:44+00:00", "releaseTime": "2015-07-31T13:45:08+00:00"}, {"id": "15w31b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/c9c8d4b706ebb7a057bb91ac69d84ea060b8d174/15w31b.json", "time": "2021-12-15T15:45:44+00:00", "releaseTime": "2015-07-30T13:38:32+00:00"}, {"id": "15w31a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/4c9ad2064a55148bef3da7d98dde8d9ff50596ea/15w31a.json", "time": "2021-12-15T15:45:43+00:00", "releaseTime": "2015-07-29T13:24:33+00:00"}, {"id": "1.8.8", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/690172f1227e1c1d2fa8fceadd0f578f7851a69e/1.8.8.json", "time": "2021-12-15T15:44:12+00:00", "releaseTime": "2015-07-27T10:31:28+00:00"}, {"id": "1.8.7", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/7152f102903cd3ce7514d84c8ac98efecac30839/1.8.7.json", "time": "2021-12-15T15:44:11+00:00", "releaseTime": "2015-06-05T10:10:44+00:00"}, {"id": "1.8.6", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/acccbb056a3e8f3086c4614974fb3a894317853a/1.8.6.json", "time": "2021-12-15T15:44:11+00:00", "releaseTime": "2015-05-25T10:31:19+00:00"}, {"id": "1.8.5", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/16da5f5be7478f3602c25182a90f2057ba2f60d8/1.8.5.json", "time": "2021-12-15T15:44:11+00:00", "releaseTime": "2015-05-22T11:15:28+00:00"}, {"id": "1.8.4", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/043b84efde9fc25d849e979329c03101ac9b7795/1.8.4.json", "time": "2021-12-15T15:44:10+00:00", "releaseTime": "2015-04-17T11:37:50+00:00"}, {"id": "15w14a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/e9349d236c0f4b8760f75621b3eaad538055c759/15w14a.json", "time": "2021-12-15T15:45:43+00:00", "releaseTime": "2015-04-01T07:08:00+00:00"}, {"id": "1.8.3", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/413ad8fdcf8f29f4f1c2b4425aa0dade00f75dd4/1.8.3.json", "time": "2021-12-15T15:44:10+00:00", "releaseTime": "2015-02-20T14:00:09+00:00"}, {"id": "1.8.2", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/1e35829856a71261f5a7b2b3a83012c7434b2203/1.8.2.json", "time": "2021-12-15T15:44:09+00:00", "releaseTime": "2015-02-19T15:47:29+00:00"}, {"id": "1.8.2-pre7", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/d07a07da8ffe68a0929710c72346073a02a94933/1.8.2-pre7.json", "time": "2021-12-15T15:45:10+00:00", "releaseTime": "2015-02-16T13:01:35+00:00"}, {"id": "1.8.2-pre6", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/07ae1d9b67d36399e239a2ff46d43a1f96ef141a/1.8.2-pre6.json", "time": "2021-12-15T15:45:10+00:00", "releaseTime": "2015-01-30T11:58:24+00:00"}, {"id": "1.8.2-pre5", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/08e7827173655705e938233cf148f955b4f67901/1.8.2-pre5.json", "time": "2021-12-15T15:45:09+00:00", "releaseTime": "2015-01-26T15:03:24+00:00"}, {"id": "1.8.2-pre4", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/db4c583ec25447f7418fc8e458798905a1282b88/1.8.2-pre4.json", "time": "2021-12-15T15:45:09+00:00", "releaseTime": "2015-01-16T14:19:59+00:00"}, {"id": "1.8.2-pre3", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/3d371e2f8c3b04b44c76ae908a1e6f800895aa80/1.8.2-pre3.json", "time": "2021-12-15T15:45:08+00:00", "releaseTime": "2015-01-15T16:44:33+00:00"}, {"id": "1.8.2-pre2", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/50c6a27cbbd2df6adff74aaea9953a00c6ce38e3/1.8.2-pre2.json", "time": "2021-12-15T15:45:08+00:00", "releaseTime": "2015-01-15T15:07:31+00:00"}, {"id": "1.8.2-pre1", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/79c984156100e076c37316d6d6377ced3daaf379/1.8.2-pre1.json", "time": "2021-12-15T15:45:07+00:00", "releaseTime": "2014-12-18T11:29:41+00:00"}, {"id": "1.8.1", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/62f9f77f67fd7d6c92cfae57cecd445be14ccd4e/1.8.1.json", "time": "2021-12-15T15:44:09+00:00", "releaseTime": "2014-11-24T14:13:31+00:00"}, {"id": "1.8.1-pre5", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/4460bbf278fef1312f03c1483599c31149fe85a7/1.8.1-pre5.json", "time": "2021-12-15T15:45:07+00:00", "releaseTime": "2014-11-19T14:30:48+00:00"}, {"id": "1.8.1-pre4", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/e9024ad2831e3fc4450977aafe7bb3d07ff0d542/1.8.1-pre4.json", "time": "2021-12-15T15:45:06+00:00", "releaseTime": "2014-11-06T14:10:50+00:00"}, {"id": "1.8.1-pre3", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/c2f5fb57bf63012594b3dc34a80a8d888ec017ac/1.8.1-pre3.json", "time": "2021-12-15T15:45:06+00:00", "releaseTime": "2014-10-23T12:59:42+00:00"}, {"id": "1.8.1-pre2", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/8e77dedf93135552e1aaaebcec4c8d154d4dea04/1.8.1-pre2.json", "time": "2021-12-15T15:45:05+00:00", "releaseTime": "2014-10-16T14:19:27+00:00"}, {"id": "1.8.1-pre1", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/f470d54d32f9e1d1a02e4e84e33b2407325ab62d/1.8.1-pre1.json", "time": "2021-12-15T15:45:05+00:00", "releaseTime": "2014-10-15T13:25:11+00:00"}, {"id": "1.8", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/9eb165eef46294062d8698c8a78e8ac914949e7a/1.8.json", "time": "2021-12-15T15:44:13+00:00", "releaseTime": "2014-09-02T08:24:35+00:00"}, {"id": "1.8-pre3", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/7fd3abc53ee1f813f5b574c8dc758fd694b6abd3/1.8-pre3.json", "time": "2021-12-15T15:45:05+00:00", "releaseTime": "2014-08-28T09:40:54+00:00"}, {"id": "1.8-pre2", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/2c6bf8e3d17565117bbb5e188544439518d3ad95/1.8-pre2.json", "time": "2021-12-15T15:45:04+00:00", "releaseTime": "2014-08-25T14:52:18+00:00"}, {"id": "1.8-pre1", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/00ddc59925abc10e08047c94657e3365b1e031d6/1.8-pre1.json", "time": "2021-12-15T15:45:04+00:00", "releaseTime": "2014-08-21T13:56:26+00:00"}, {"id": "14w34d", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/e314c5316fc189a9883f5a786a6b9daffcff8e84/14w34d.json", "time": "2021-12-15T15:45:43+00:00", "releaseTime": "2014-08-20T12:46:59+00:00"}, {"id": "14w34c", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/a82b66557f41c05f41477481e39be5d5ceec3c62/14w34c.json", "time": "2021-12-15T15:45:42+00:00", "releaseTime": "2014-08-19T15:31:24+00:00"}, {"id": "14w34b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/f24d3b4a363411fec20a36c2bd92a62b628be003/14w34b.json", "time": "2021-12-15T15:45:42+00:00", "releaseTime": "2014-08-18T15:14:28+00:00"}, {"id": "14w34a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/dc020c20f2d7a79dee3f601317a8a7cb191c0538/14w34a.json", "time": "2021-12-15T15:45:41+00:00", "releaseTime": "2014-08-18T14:14:11+00:00"}, {"id": "14w33c", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/de314d5c6f011057f764e546a212731d40736c1f/14w33c.json", "time": "2021-12-15T15:45:41+00:00", "releaseTime": "2014-08-15T18:00:26+00:00"}, {"id": "14w33b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/dec4943bf73d83402d455243f83c8c550e36f7b5/14w33b.json", "time": "2021-12-15T15:45:40+00:00", "releaseTime": "2014-08-15T16:23:51+00:00"}, {"id": "14w33a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/a1a938359171774c96e06f54bc0c12352a9d7992/14w33a.json", "time": "2021-12-15T15:45:40+00:00", "releaseTime": "2014-08-13T15:08:14+00:00"}, {"id": "14w32d", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/414e33e7d03d873966c199d959426da08aa5aebc/14w32d.json", "time": "2021-12-15T15:45:40+00:00", "releaseTime": "2014-08-08T15:13:41+00:00"}, {"id": "14w32c", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/3dfa2c82cd06c89735ac0c9b05151b4994efab19/14w32c.json", "time": "2021-12-15T15:45:39+00:00", "releaseTime": "2014-08-08T14:11:20+00:00"}, {"id": "14w32b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/6230265cc1f324689cb5fbb7df21235ca0013e70/14w32b.json", "time": "2021-12-15T15:45:39+00:00", "releaseTime": "2014-08-07T14:45:17+00:00"}, {"id": "14w32a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/3af16f96e7800a8f0c31500a873b008c00036c84/14w32a.json", "time": "2021-12-15T15:45:38+00:00", "releaseTime": "2014-08-06T14:01:16+00:00"}, {"id": "14w31a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/1243fe2c047064613e42a2c0e7ce0018fdf94035/14w31a.json", "time": "2021-12-15T15:45:38+00:00", "releaseTime": "2014-07-30T15:38:05+00:00"}, {"id": "14w30c", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/6327714a7712f723bb74492e2f5fcbb92b8b12a9/14w30c.json", "time": "2021-12-15T15:45:37+00:00", "releaseTime": "2014-07-24T14:39:09+00:00"}, {"id": "14w30b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/dddd3cf12b88f179baa286a9bb51f4c3902c3780/14w30b.json", "time": "2021-12-15T15:45:37+00:00", "releaseTime": "2014-07-23T15:03:03+00:00"}, {"id": "14w30a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/f73b4bad130911c1ef16066aeb740574f20f90f7/14w30a.json", "time": "2021-12-15T15:45:36+00:00", "releaseTime": "2014-07-23T13:15:42+00:00"}, {"id": "14w29b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/02a4803aa427d29f9db910d22b263686d0135fcc/14w29b.json", "time": "2021-12-15T15:45:36+00:00", "releaseTime": "2014-07-16T17:27:40+00:00"}, {"id": "14w29a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/5219707e16e90d57fbba55f635b68e4725d72b8f/14w29a.json", "time": "2021-12-15T15:45:36+00:00", "releaseTime": "2014-07-16T15:18:17+00:00"}, {"id": "14w28b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/c18437b0194fb2af464b5fe0cb67ed0eeafb44e8/14w28b.json", "time": "2021-12-15T15:45:35+00:00", "releaseTime": "2014-07-10T14:28:48+00:00"}, {"id": "14w28a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/6d6b755e76453633e464ed09f82b0979a414d8e4/14w28a.json", "time": "2021-12-15T15:45:35+00:00", "releaseTime": "2014-07-09T15:42:36+00:00"}, {"id": "14w27b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/08f1ed6374fb9d87e34fe81ab50d19d01e3055dc/14w27b.json", "time": "2021-12-15T15:45:34+00:00", "releaseTime": "2014-07-02T18:34:56+00:00"}, {"id": "14w27a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/c0e594ad64eac1b322e4724b92292daad80951eb/14w27a.json", "time": "2021-12-15T15:45:34+00:00", "releaseTime": "2014-07-02T16:07:20+00:00"}, {"id": "14w26c", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/2fe002bebd830ccb5328329ed7efb7e9fb555519/14w26c.json", "time": "2021-12-15T15:45:34+00:00", "releaseTime": "2014-06-26T15:05:03+00:00"}, {"id": "14w26b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/288aa1d9c5840c8d0f75ee682bc8a0a1564babfb/14w26b.json", "time": "2021-12-15T15:45:33+00:00", "releaseTime": "2014-06-25T15:08:39+00:00"}, {"id": "14w26a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/6d41ffb32ced2eaaeed6b0ddd38b5e53f849c25f/14w26a.json", "time": "2021-12-15T15:45:33+00:00", "releaseTime": "2014-06-25T13:59:27+00:00"}, {"id": "14w25b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/d8b348b5a412e809748f35f694fe5dc395a83b3a/14w25b.json", "time": "2021-12-15T15:45:32+00:00", "releaseTime": "2014-06-19T12:29:48+00:00"}, {"id": "14w25a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/0091b9fe0f95dc765e187840ff41235638ce22d6/14w25a.json", "time": "2021-12-15T15:45:32+00:00", "releaseTime": "2014-06-18T15:52:28+00:00"}, {"id": "14w21b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/c5791a666929e783ba360e98247ff744b5ac3520/14w21b.json", "time": "2021-12-15T15:45:32+00:00", "releaseTime": "2014-05-22T15:17:55+00:00"}, {"id": "14w21a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/f8c912b97cf684f4339571b27592e85b7ec84a19/14w21a.json", "time": "2021-12-15T15:45:31+00:00", "releaseTime": "2014-05-22T14:44:33+00:00"}, {"id": "14w20b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/b4b682e67ff47a689cf3ff0b405eeec5758dfa9a/14w20b.json", "time": "2021-12-15T15:45:31+00:00", "releaseTime": "2014-05-15T16:47:21+00:00"}, {"id": "14w20a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/674e75f032a5473ad91531dfbfa7b8cb42f55f71/14w20a.json", "time": "2021-12-15T15:45:31+00:00", "releaseTime": "2014-05-15T14:01:20+00:00"}, {"id": "1.7.10", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/ed5d8789ed29872ea2ef1c348302b0c55e3f3468/1.7.10.json", "time": "2021-12-15T15:44:05+00:00", "releaseTime": "2014-05-14T17:29:23+00:00"}, {"id": "1.7.10-pre4", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/f2a4a03329bb07d70d4837b6893c435f97deed25/1.7.10-pre4.json", "time": "2021-12-15T15:45:02+00:00", "releaseTime": "2014-05-14T16:29:23+00:00"}, {"id": "1.7.10-pre3", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/94578a1fc1db7cb804a9be044008e54367f4905e/1.7.10-pre3.json", "time": "2021-12-15T15:45:01+00:00", "releaseTime": "2014-05-14T15:29:23+00:00"}, {"id": "1.7.10-pre2", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/2e8103cd14fc9a7db0c56f68cbc41a0b26ea9954/1.7.10-pre2.json", "time": "2021-12-15T15:45:01+00:00", "releaseTime": "2014-05-14T14:29:23+00:00"}, {"id": "1.7.10-pre1", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/a526665974dfa717f79f15529ae294d0a6074fc5/1.7.10-pre1.json", "time": "2021-12-15T15:45:00+00:00", "releaseTime": "2014-05-14T13:29:23+00:00"}, {"id": "14w19a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/ffcc6382a2d12310c42cc1b654ea8d88117cf105/14w19a.json", "time": "2021-12-15T15:45:30+00:00", "releaseTime": "2014-05-08T14:24:19+00:00"}, {"id": "14w18b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/0aa29d5bc6915b347505a194260bd51bc8bf2960/14w18b.json", "time": "2021-12-15T15:45:30+00:00", "releaseTime": "2014-05-02T11:38:17+00:00"}, {"id": "14w18a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/c64cc4d300948e2d8e5fb05e394b69edc680027e/14w18a.json", "time": "2021-12-15T15:45:29+00:00", "releaseTime": "2014-04-30T10:25:35+00:00"}, {"id": "14w17a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/2d857ecd809f15008f4718dc3b11ef5b60548ce4/14w17a.json", "time": "2021-12-15T15:45:29+00:00", "releaseTime": "2014-04-24T15:44:49+00:00"}, {"id": "14w11b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/022ade13058d98289f1625857462994a6ec40110/14w11b.json", "time": "2021-12-15T15:45:28+00:00", "releaseTime": "2014-04-14T14:36:19+00:00"}, {"id": "1.7.9", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/5579bc9e25a9bb5e3187a2570693a0c6658edce4/1.7.9.json", "time": "2021-12-15T15:44:08+00:00", "releaseTime": "2014-04-14T13:29:23+00:00"}, {"id": "1.7.8", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/03d8e2e1c192d48ffc406cb7a483861cf26dfe25/1.7.8.json", "time": "2021-12-15T15:44:08+00:00", "releaseTime": "2014-04-09T07:58:16+00:00"}, {"id": "1.7.7", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/47e228263557da73d0e2be803e5d83e5b246ae75/1.7.7.json", "time": "2021-12-15T15:44:07+00:00", "releaseTime": "2014-04-09T07:52:16+00:00"}, {"id": "1.7.6", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/b6dd3e6496ad415f0c57867dea1f97710d5f184c/1.7.6.json", "time": "2021-12-15T15:44:07+00:00", "releaseTime": "2014-04-09T07:52:06+00:00"}, {"id": "14w11a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/ed3b597f26c1140b31d4c7421054e83398270e19/14w11a.json", "time": "2021-12-15T15:45:28+00:00", "releaseTime": "2014-03-13T14:02:50+00:00"}, {"id": "1.7.6-pre2", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/977e8f92b306b2d798a7b69858f48fbe06dbb302/1.7.6-pre2.json", "time": "2021-12-15T15:45:03+00:00", "releaseTime": "2014-03-08T11:00:01+00:00"}, {"id": "1.7.6-pre1", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/39e402b6972475126fa9e8a883915a9ce5d7722a/1.7.6-pre1.json", "time": "2021-12-15T15:45:02+00:00", "releaseTime": "2014-03-08T11:00:00+00:00"}, {"id": "14w10c", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/312e632fcac49d7c1dca6a7fa58824eace01d91d/14w10c.json", "time": "2021-12-15T15:45:28+00:00", "releaseTime": "2014-03-07T13:49:55+00:00"}, {"id": "14w10b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/90e924daa64f7908e69d4c7c4451599d2592f9d3/14w10b.json", "time": "2021-12-15T15:45:27+00:00", "releaseTime": "2014-03-06T16:25:39+00:00"}, {"id": "14w10a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/643d852decb88d011fab20df4cb14ed100362f0f/14w10a.json", "time": "2021-12-15T15:45:27+00:00", "releaseTime": "2014-03-06T14:23:04+00:00"}, {"id": "14w08a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/4c04557fe5dcfe1c2e302265b677549384008c14/14w08a.json", "time": "2021-12-15T15:45:26+00:00", "releaseTime": "2014-02-26T17:00:00+00:00"}, {"id": "1.7.5", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/4afb628501a6a206b80a47ab4f29ea6b98caac90/1.7.5.json", "time": "2021-12-15T15:44:06+00:00", "releaseTime": "2014-02-26T09:22:17+00:00"}, {"id": "14w07a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/23dbadcc03150f2e3447d528f7f546ba8fd62246/14w07a.json", "time": "2021-12-15T15:45:26+00:00", "releaseTime": "2014-02-14T11:05:07+00:00"}, {"id": "14w06b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/2c381742bc9cadc33fbc0a823b4fb734aad78533/14w06b.json", "time": "2021-12-15T15:45:26+00:00", "releaseTime": "2014-02-06T17:30:42+00:00"}, {"id": "14w06a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/a59d77f95afc36421554f9fee3a930d6cca9209d/14w06a.json", "time": "2021-12-15T15:45:25+00:00", "releaseTime": "2014-02-06T14:30:17+00:00"}, {"id": "14w05b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/0b0f0bb2354640bfeeafe8611a8cfb53e9c3edff/14w05b.json", "time": "2021-12-15T15:45:25+00:00", "releaseTime": "2014-01-31T14:05:50+00:00"}, {"id": "14w05a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/e9d4eb5a505a84dda9c36ea32f7ebb998a60a97f/14w05a.json", "time": "2021-12-15T15:45:24+00:00", "releaseTime": "2014-01-30T15:32:41+00:00"}, {"id": "14w04b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/62524cf35e56e365a5dff36353fb77a38ff35269/14w04b.json", "time": "2021-12-15T15:45:24+00:00", "releaseTime": "2014-01-24T15:48:46+00:00"}, {"id": "14w04a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/41307eaf3c2bf6b526986d8bb2fd698099298a2f/14w04a.json", "time": "2021-12-15T15:45:23+00:00", "releaseTime": "2014-01-23T15:26:13+00:00"}, {"id": "14w03b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/4c3bab6bfb32daed6b30d298818e4b8bb37c4bb2/14w03b.json", "time": "2021-12-15T15:45:23+00:00", "releaseTime": "2014-01-16T16:36:19+00:00"}, {"id": "14w03a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/73f7ed186402ac8927ce415507cfa70b6aa5483f/14w03a.json", "time": "2021-12-15T15:45:23+00:00", "releaseTime": "2014-01-16T14:45:13+00:00"}, {"id": "14w02c", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/e7c40fe6754d5912ebc119a53e752c9024130e3f/14w02c.json", "time": "2021-12-15T15:45:22+00:00", "releaseTime": "2014-01-10T15:42:36+00:00"}, {"id": "14w02b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/25f758976bfd97d533af7e38680db8983d2cf82d/14w02b.json", "time": "2021-12-15T15:45:22+00:00", "releaseTime": "2014-01-09T15:45:55+00:00"}, {"id": "14w02a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/1348f531ae51631ea0ee1e467348440c5f93dcc2/14w02a.json", "time": "2021-12-15T15:45:22+00:00", "releaseTime": "2014-01-09T14:44:41+00:00"}, {"id": "1.7.4", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/5db9d89cb6b89573384f324aa585b4c99525b37a/1.7.4.json", "time": "2021-12-15T15:44:06+00:00", "releaseTime": "2013-12-09T12:28:10+00:00"}, {"id": "1.7.3", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/cd133f90b7e339c50b3cdce64188a51469c6a128/1.7.3.json", "time": "2021-12-15T15:44:06+00:00", "releaseTime": "2013-12-06T13:55:34+00:00"}, {"id": "13w49a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/82cf56aabfbca3a1f1d13b4404050d9877b5a67e/13w49a.json", "time": "2021-12-15T15:45:21+00:00", "releaseTime": "2013-12-05T14:34:41+00:00"}, {"id": "13w48b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/55543db98b2df3a986c99d8cdc8278a70493eb4a/13w48b.json", "time": "2021-12-15T15:45:21+00:00", "releaseTime": "2013-11-26T18:36:08+00:00"}, {"id": "13w48a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/329f28adfb5ba0d6d81ceae27209e1eb97c4ef88/13w48a.json", "time": "2021-12-15T15:45:20+00:00", "releaseTime": "2013-11-25T16:53:39+00:00"}, {"id": "13w47e", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/81b30470c108a201cfb2dfd548dc0a52afa20a0a/13w47e.json", "time": "2021-12-15T15:45:20+00:00", "releaseTime": "2013-11-22T15:16:38+00:00"}, {"id": "13w47d", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/ccf62018b2e8aa9628dab2353ed85a4239368f63/13w47d.json", "time": "2021-12-15T15:45:20+00:00", "releaseTime": "2013-11-22T13:51:15+00:00"}, {"id": "13w47c", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/ca7616ffa259c99e2350f010555eba54e54b4dd0/13w47c.json", "time": "2021-12-15T15:45:19+00:00", "releaseTime": "2013-11-21T17:10:33+00:00"}, {"id": "13w47b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/ac1dc3c3a7d33aa47e97c7b3d419510696f57cde/13w47b.json", "time": "2021-12-15T15:45:19+00:00", "releaseTime": "2013-11-21T16:57:41+00:00"}, {"id": "13w47a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/9bb727f63e3af146df7cbd47a6a3332d31550855/13w47a.json", "time": "2021-12-15T15:45:18+00:00", "releaseTime": "2013-11-21T15:59:58+00:00"}, {"id": "1.7.2", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/c2e8ecbf355760a74c93d7210767fa043d53f27c/1.7.2.json", "time": "2021-12-15T15:44:05+00:00", "releaseTime": "2013-10-25T13:00:00+00:00"}, {"id": "1.7.1", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/744a42505862bea0bdd5da55ff06e09536f36d66/1.7.1.json", "time": "2021-12-15T15:45:00+00:00", "releaseTime": "2013-10-23T12:01:07+00:00"}, {"id": "1.7", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/7a5aa5f3e3fba022efe0752660a5c7cd2dff2d16/1.7.json", "time": "2021-12-15T15:45:03+00:00", "releaseTime": "2013-10-22T15:04:05+00:00"}, {"id": "13w43a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/d7c2d81bf137c9e1a84576241767de08909c29fd/13w43a.json", "time": "2021-12-15T15:45:18+00:00", "releaseTime": "2013-10-21T16:34:47+00:00"}, {"id": "13w42b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/ce863b81986e6acce2983be040d2071711f6403c/13w42b.json", "time": "2021-12-15T15:45:17+00:00", "releaseTime": "2013-10-18T16:34:08+00:00"}, {"id": "13w42a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/8cef2eee33892b62b3a28559246c750c3487dd8f/13w42a.json", "time": "2021-12-15T15:45:17+00:00", "releaseTime": "2013-10-17T18:33:05+00:00"}, {"id": "13w41b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/015456cd8b5c68d0076536d4e867111cd36b541a/13w41b.json", "time": "2021-12-15T15:45:17+00:00", "releaseTime": "2013-10-11T15:09:17+00:00"}, {"id": "13w41a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/43622c17e011441b8b63b0a27d79887c2f7516aa/13w41a.json", "time": "2021-12-15T15:45:16+00:00", "releaseTime": "2013-10-10T14:21:43+00:00"}, {"id": "13w39b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/b2d2f0b1fd23b08f8d2fb9beff39f173a2d65160/13w39b.json", "time": "2021-12-13T14:56:26+00:00", "releaseTime": "2013-09-27T12:15:58+00:00"}, {"id": "13w39a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/61b88e8c311ed6a647ebf13d9934c6a1e3a94a75/13w39a.json", "time": "2021-12-13T14:56:26+00:00", "releaseTime": "2013-09-26T15:11:19+00:00"}, {"id": "13w38c", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/a9e87e0699f19fea280878f5deb744c5d5d3ccb1/13w38c.json", "time": "2019-06-28T07:08:09+00:00", "releaseTime": "2013-09-20T15:11:34+00:00"}, {"id": "13w38b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/6f426be1993b140ab5d10459c91eb1f542d58c82/13w38b.json", "time": "2019-06-28T07:08:09+00:00", "releaseTime": "2013-09-20T13:45:40+00:00"}, {"id": "13w38a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/e6dc1d9f9c8efeec67af438d5bf61be082f6e8a4/13w38a.json", "time": "2019-06-28T07:08:09+00:00", "releaseTime": "2013-09-19T16:34:21+00:00"}, {"id": "1.6.4", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/b71bae449192fbbe1582ff32fb3765edf0b9b0a8/1.6.4.json", "time": "2019-06-28T07:06:16+00:00", "releaseTime": "2013-09-19T15:52:37+00:00"}, {"id": "13w37b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/b8d28154ee056af6af3c8c37815418fe0e9f34f8/13w37b.json", "time": "2019-06-28T07:08:08+00:00", "releaseTime": "2013-09-13T10:54:41+00:00"}, {"id": "1.6.3", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/903d6ba1bc87c301d88fa418f8b33446201c7d4e/1.6.3.json", "time": "2019-06-28T07:07:47+00:00", "releaseTime": "2013-09-13T10:54:41+00:00"}, {"id": "13w37a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/2f33c613a4bb81ef5f56be03a8f578208ada382a/13w37a.json", "time": "2019-06-28T07:08:08+00:00", "releaseTime": "2013-09-12T14:23:14+00:00"}, {"id": "13w36b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/4a538e23057a596fc8c7e04d8a7738d866467f51/13w36b.json", "time": "2019-06-28T07:08:08+00:00", "releaseTime": "2013-09-06T12:31:58+00:00"}, {"id": "13w36a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/bc915c4dc167dfba92fcc0ae3aa051ae0f9f089b/13w36a.json", "time": "2019-06-28T07:08:08+00:00", "releaseTime": "2013-09-05T13:05:40+00:00"}, {"id": "1.6.2", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/c0729761bf65dc58138ce508645dba1442fa78b8/1.6.2.json", "time": "2019-06-28T07:06:16+00:00", "releaseTime": "2013-07-05T13:09:02+00:00"}, {"id": "1.6.1", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/7fd8e0c76f62813eb0465e31bb74b160c01472d6/1.6.1.json", "time": "2019-06-28T07:06:16+00:00", "releaseTime": "2013-06-28T14:48:41+00:00"}, {"id": "1.6", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/20116297638f7c70cd046e25a6ac90fee4cae61a/1.6.json", "time": "2019-06-28T07:07:47+00:00", "releaseTime": "2013-06-25T13:08:56+00:00"}, {"id": "13w26a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/b349702aef5e3adaebec30c79338300423943930/13w26a.json", "time": "2019-06-28T07:08:08+00:00", "releaseTime": "2013-06-24T16:06:06+00:00"}, {"id": "13w25c", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/934788bc580ef0a19725ee5bd31f02a0b866e0bf/13w25c.json", "time": "2019-06-28T07:08:08+00:00", "releaseTime": "2013-06-20T15:23:37+00:00"}, {"id": "13w25b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/8b7870ddd0d0b38779479ad782d65ad80e688cf7/13w25b.json", "time": "2019-06-28T07:08:08+00:00", "releaseTime": "2013-06-18T15:13:27+00:00"}, {"id": "13w25a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/65c0e5fff89b477ac6f8ddb336f0e718d525d311/13w25a.json", "time": "2019-06-28T07:08:08+00:00", "releaseTime": "2013-06-17T14:08:06+00:00"}, {"id": "13w24b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/e1294b52803771cfb06767c4c40dced70475cb25/13w24b.json", "time": "2019-06-28T07:08:08+00:00", "releaseTime": "2013-06-14T12:19:13+00:00"}, {"id": "13w24a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/74666ab85cc5539f08aec638eabd63a552ed4125/13w24a.json", "time": "2019-06-28T07:08:07+00:00", "releaseTime": "2013-06-13T15:32:23+00:00"}, {"id": "13w23b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/f17829f3e412b9b727437ec9f8433bdfc6c7b9a7/13w23b.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2013-06-08T00:32:01+00:00"}, {"id": "13w23a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/8234057ec006c5bb62a28ca4f6787323968438e6/13w23a.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2013-06-07T16:04:20+00:00"}, {"id": "13w22a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/597a15f27cc0913a77ff7e1e9c62c3affc627fe8/13w22a.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2013-05-30T14:38:40+00:00"}, {"id": "13w21b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/98f66e115fbab6dcd05f2e5e0a23dd78c0a5e7a3/13w21b.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2013-05-27T08:50:42+00:00"}, {"id": "13w21a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/aebfb9b82f0712de3e6ef78bc2cafe5dcb742130/13w21a.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2013-05-23T15:38:28+00:00"}, {"id": "13w19a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/8bb131515d6b483baa76f1b42ea5a1018d11bb22/13w19a.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2013-05-10T14:48:02+00:00"}, {"id": "13w18c", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/93738bf22f33d9ba5e2980bec849b097a5050c8f/13w18c.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2013-05-03T09:19:35+00:00"}, {"id": "13w18b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/2cab9aae9eef3558d6abe8ac2708ea19322a1594/13w18b.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2013-05-02T17:12:25+00:00"}, {"id": "13w18a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/79bef69b5542046e705a57784cc63574748effe2/13w18a.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2013-05-02T15:45:59+00:00"}, {"id": "13w17a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/d21e61b16b0e446b5062e8ee72c9d0ff3bfbd155/13w17a.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2013-04-25T15:50:00+00:00"}, {"id": "1.5.2", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/924a2dcd8bdc31f8e9d36229811c298b3537bbc7/1.5.2.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2013-04-25T15:45:00+00:00"}, {"id": "13w16b", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/5f4e1c860d1c79d346f3e4574615ca1fd9da01ed/13w16b.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2013-04-23T21:51:22+00:00"}, {"id": "13w16a", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/c355e2ee0495dfcc8ec9806955c8d2993179b40c/13w16a.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2013-04-21T12:49:30+00:00"}, {"id": "1.5.1", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/3c514114d9c2a3ea78f72c4f9fb4eeb56747135a/1.5.1.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2013-03-20T10:00:00+00:00"}, {"id": "1.5", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/bb882e3d97bee9c5b5e486da04b85f977e770150/1.5.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2013-03-06T22:00:00+00:00"}, {"id": "1.4.7", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/7aa8e9aeacf4e1076bfd81c096f78de9b883ebe6/1.4.7.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2012-12-27T22:00:00+00:00"}, {"id": "1.4.5", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/d64a902a48a6a618f9a0a82c183be454e7a1f23b/1.4.5.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2012-12-19T22:00:00+00:00"}, {"id": "1.4.6", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/09832797138da79745ade734da775f44c254066b/1.4.6.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2012-12-19T22:00:00+00:00"}, {"id": "1.4.4", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/f7de827181036b09444abb6b64c1fcc663b8e98e/1.4.4.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2012-12-13T22:00:00+00:00"}, {"id": "1.4.3", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/3ab416ac64dac1a6123402a8aabd8ef3caeef087/1.4.3.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2012-11-30T22:00:00+00:00"}, {"id": "1.4.2", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/2fd77aa19aba2860bbf4c1fd9f84f232703dd287/1.4.2.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2012-11-24T22:00:00+00:00"}, {"id": "1.4.1", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/14c3ba517b5baabdfc61b60eb49d9aa7da012906/1.4.1.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2012-11-22T22:00:00+00:00"}, {"id": "1.4", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/d979a4671611bf8704c0a2a0cf09964ca25eefd7/1.4.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2012-11-18T22:00:00+00:00"}, {"id": "1.3.2", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/598eedd6f67db4aefbae6ed119029e3d7373ecf5/1.3.2.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2012-08-15T22:00:00+00:00"}, {"id": "1.3.1", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/637aa8466c4dac462b88682caaf753290f37798f/1.3.1.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2012-07-31T22:00:00+00:00"}, {"id": "1.3", "type": "snapshot", "url": "https://piston-meta.mojang.com/v1/packages/b384219c6d4879e56b92eea01a0d986e20d55dea/1.3.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2012-07-25T22:00:00+00:00"}, {"id": "1.2.5", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/5158765caf1ca14958cb6c45d52c8e09ed9b046c/1.2.5.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2012-03-29T22:00:00+00:00"}, {"id": "1.2.4", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/69a67fcf11ed1298c6b43a00d64461908a318749/1.2.4.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2012-03-21T22:00:00+00:00"}, {"id": "1.2.3", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/2f7eaec33e3017a413c677eefa59df2e5919e536/1.2.3.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2012-03-01T22:00:00+00:00"}, {"id": "1.2.2", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/4e2e449ba0b8b5da7055f0decea1a3257b282f17/1.2.2.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2012-02-29T22:00:01+00:00"}, {"id": "1.2.1", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/1a45c035ebb969dbac4e0c39582e974ad7f74a9e/1.2.1.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2012-02-29T22:00:00+00:00"}, {"id": "1.1", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/c0cb9368dbdbb1e8dbcb9363a28d8da74cf6fc5e/1.1.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2012-01-11T22:00:00+00:00"}, {"id": "1.0", "type": "release", "url": "https://piston-meta.mojang.com/v1/packages/75062586b830dd5160f13f1c9130eb365e01f1b9/1.0.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2011-11-17T22:00:00+00:00"}, {"id": "b1.8.1", "type": "old_beta", "url": "https://piston-meta.mojang.com/v1/packages/440e3b845c3991492a3d0c5f0ccfda78ab90d9b6/b1.8.1.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2011-09-18T22:00:00+00:00"}, {"id": "b1.8", "type": "old_beta", "url": "https://piston-meta.mojang.com/v1/packages/e5b20b1a15daa60effefd86da94b118086214e8b/b1.8.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2011-09-14T22:00:00+00:00"}, {"id": "b1.7.3", "type": "old_beta", "url": "https://piston-meta.mojang.com/v1/packages/44f6969326bd45aa00dcd3c4ca3a7c05ebb24c04/b1.7.3.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2011-07-07T22:00:00+00:00"}, {"id": "b1.7.2", "type": "old_beta", "url": "https://piston-meta.mojang.com/v1/packages/00f5aff7cbf6ce109ecf2c8e1a5dc1bcbadb5680/b1.7.2.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2011-06-30T22:00:00+00:00"}, {"id": "b1.7", "type": "old_beta", "url": "https://piston-meta.mojang.com/v1/packages/f3a725f9f27e90f2a2622ad82c182c1a1178572f/b1.7.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2011-06-29T22:00:00+00:00"}, {"id": "b1.6.6", "type": "old_beta", "url": "https://piston-meta.mojang.com/v1/packages/16cb1aa6f7c9c3953fa2f53abd8f57558efd3e71/b1.6.6.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2011-05-30T22:00:00+00:00"}, {"id": "b1.6.5", "type": "old_beta", "url": "https://piston-meta.mojang.com/v1/packages/eae37053bb49092ce93d40e762f4c3a573ee2880/b1.6.5.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2011-05-27T22:00:00+00:00"}, {"id": "b1.6.4", "type": "old_beta", "url": "https://piston-meta.mojang.com/v1/packages/ac98b5e9e44038f3a311736111c16fc30006e1fd/b1.6.4.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2011-05-25T22:00:04+00:00"}, {"id": "b1.6.3", "type": "old_beta", "url": "https://piston-meta.mojang.com/v1/packages/87785f4386cd308defcc876fb6d62bf3681be6bc/b1.6.3.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2011-05-25T22:00:03+00:00"}, {"id": "b1.6.2", "type": "old_beta", "url": "https://piston-meta.mojang.com/v1/packages/23f8e2f1634d1db8875521d8e0d3fb5340623fd2/b1.6.2.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2011-05-25T22:00:02+00:00"}, {"id": "b1.6.1", "type": "old_beta", "url": "https://piston-meta.mojang.com/v1/packages/1958ecd7b20c5a2849b4e1e7a9921891e49178da/b1.6.1.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2011-05-25T22:00:01+00:00"}, {"id": "b1.6", "type": "old_beta", "url": "https://piston-meta.mojang.com/v1/packages/7442961ad4f23c60787ab2a3c97a5037c40a92f2/b1.6.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2011-05-25T22:00:00+00:00"}, {"id": "b1.5_01", "type": "old_beta", "url": "https://piston-meta.mojang.com/v1/packages/0f0b24408e6ca445e9c4a3ea2a676f71f96f5d35/b1.5_01.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2011-04-19T22:00:00+00:00"}, {"id": "b1.5", "type": "old_beta", "url": "https://piston-meta.mojang.com/v1/packages/3fa704bd73444368f04351d6d4add8a3eead9b4e/b1.5.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2011-04-18T22:00:00+00:00"}, {"id": "b1.4_01", "type": "old_beta", "url": "https://piston-meta.mojang.com/v1/packages/d47fcb0e4d9b7169fbb26c0bce56ed2082c3bb1d/b1.4_01.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2011-04-04T22:00:00+00:00"}, {"id": "b1.4", "type": "old_beta", "url": "https://piston-meta.mojang.com/v1/packages/2cf34d1caca87b68ee104e348480e38f45eb7621/b1.4.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2011-03-30T22:00:00+00:00"}, {"id": "b1.3_01", "type": "old_beta", "url": "https://piston-meta.mojang.com/v1/packages/a0e0a27d8f7d4c23b6441e473a3e44b45a958284/b1.3_01.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2011-02-22T22:00:00+00:00"}, {"id": "b1.3b", "type": "old_beta", "url": "https://piston-meta.mojang.com/v1/packages/16ffb877701f7b41c6f27fb09def7a8e5d667df1/b1.3b.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2011-02-21T22:00:00+00:00"}, {"id": "b1.2_02", "type": "old_beta", "url": "https://piston-meta.mojang.com/v1/packages/5352763f0a944e7940e718fd66aae03bc57dc2ef/b1.2_02.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2011-01-20T22:00:00+00:00"}, {"id": "b1.2_01", "type": "old_beta", "url": "https://piston-meta.mojang.com/v1/packages/0fea71dc8c4199581753d8ecb3ae69039a302340/b1.2_01.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2011-01-13T22:00:00+00:00"}, {"id": "b1.2", "type": "old_beta", "url": "https://piston-meta.mojang.com/v1/packages/67bcdada56d272e4508ecb8e35827ffa4a4c18d1/b1.2.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2011-01-12T22:00:00+00:00"}, {"id": "b1.1_02", "type": "old_beta", "url": "https://piston-meta.mojang.com/v1/packages/01042e0ecdd894894ebc6f45300ae306010c154f/b1.1_02.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2010-12-21T22:00:01+00:00"}, {"id": "b1.1_01", "type": "old_beta", "url": "https://piston-meta.mojang.com/v1/packages/1bab185d888a549a3fcb4e528557caa3e7884290/b1.1_01.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2010-12-21T22:00:00+00:00"}, {"id": "b1.0.2", "type": "old_beta", "url": "https://piston-meta.mojang.com/v1/packages/e0a317286013bdd8e6de6da5e709422af61597d8/b1.0.2.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2010-12-20T22:00:00+00:00"}, {"id": "b1.0_01", "type": "old_beta", "url": "https://piston-meta.mojang.com/v1/packages/d3eec813918ee87826f7bca65dd1558b33841798/b1.0_01.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2010-12-19T22:00:01+00:00"}, {"id": "b1.0", "type": "old_beta", "url": "https://piston-meta.mojang.com/v1/packages/e5348beaf3d3c366c522b1c70044f8b7be168b02/b1.0.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2010-12-19T22:00:00+00:00"}, {"id": "a1.2.6", "type": "old_alpha", "url": "https://piston-meta.mojang.com/v1/packages/1c888e4d8aed380db25aeb3835f5918297bb5e3a/a1.2.6.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2010-12-02T22:00:00+00:00"}, {"id": "a1.2.5", "type": "old_alpha", "url": "https://piston-meta.mojang.com/v1/packages/a925f00e3f7f1bde95240152bef4d15f36971394/a1.2.5.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2010-11-30T22:00:00+00:00"}, {"id": "a1.2.4_01", "type": "old_alpha", "url": "https://piston-meta.mojang.com/v1/packages/64d6a749cb24ddd8a27546f9555ac7c2853c5943/a1.2.4_01.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2010-11-29T22:00:00+00:00"}, {"id": "a1.2.3_04", "type": "old_alpha", "url": "https://piston-meta.mojang.com/v1/packages/59c7719b82023e5b71e334a69d3c13137014a2bc/a1.2.3_04.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2010-11-25T22:00:00+00:00"}, {"id": "a1.2.3_02", "type": "old_alpha", "url": "https://piston-meta.mojang.com/v1/packages/b22eadebb4bfb63cdc42e9811da8fd2234eaaa6e/a1.2.3_02.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2010-11-24T22:00:00+00:00"}, {"id": "a1.2.3_01", "type": "old_alpha", "url": "https://piston-meta.mojang.com/v1/packages/da7b740e70324be7e189c65f1f834f0a30c0588f/a1.2.3_01.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2010-11-23T22:00:01+00:00"}, {"id": "a1.2.3", "type": "old_alpha", "url": "https://piston-meta.mojang.com/v1/packages/6c059b7bdb14b29c8d5cca2b250472962fe3b0b1/a1.2.3.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2010-11-23T22:00:00+00:00"}, {"id": "a1.2.2b", "type": "old_alpha", "url": "https://piston-meta.mojang.com/v1/packages/2aba3e114e0a7190ea3dff1553787d5044e1c420/a1.2.2b.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2010-11-09T22:00:01+00:00"}, {"id": "a1.2.2a", "type": "old_alpha", "url": "https://piston-meta.mojang.com/v1/packages/03cde2f4856b59adab177ab10673b6d951bfd7c8/a1.2.2a.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2010-11-09T22:00:00+00:00"}, {"id": "a1.2.1_01", "type": "old_alpha", "url": "https://piston-meta.mojang.com/v1/packages/f20e3a7757a92e1d429dcf45fa545cc84a9699da/a1.2.1_01.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2010-11-04T22:00:01+00:00"}, {"id": "a1.2.1", "type": "old_alpha", "url": "https://piston-meta.mojang.com/v1/packages/05773451d61d92c0e8fa73cdb2e4c0fd23c4e1d4/a1.2.1.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2010-11-04T22:00:00+00:00"}, {"id": "a1.2.0_02", "type": "old_alpha", "url": "https://piston-meta.mojang.com/v1/packages/57ff567f186230b303af60241fbce283dad44bb2/a1.2.0_02.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2010-11-03T22:00:00+00:00"}, {"id": "a1.2.0_01", "type": "old_alpha", "url": "https://piston-meta.mojang.com/v1/packages/bed2a50ed2f9ce6a920394916ea66ce41b09b166/a1.2.0_01.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2010-10-30T22:00:00+00:00"}, {"id": "a1.2.0", "type": "old_alpha", "url": "https://piston-meta.mojang.com/v1/packages/abc94a77d94b94042d01476ee0c2e4b8c4eb08e1/a1.2.0.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2010-10-29T22:00:00+00:00"}, {"id": "a1.1.2_01", "type": "old_alpha", "url": "https://piston-meta.mojang.com/v1/packages/8730e3503e352fc03cca8a6c6ee614a17d66d8c6/a1.1.2_01.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2010-09-22T22:00:00+00:00"}, {"id": "a1.1.2", "type": "old_alpha", "url": "https://piston-meta.mojang.com/v1/packages/b515b79ecaba79a0b5a4a5a03bf2b077f6c53334/a1.1.2.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2010-09-19T22:00:00+00:00"}, {"id": "a1.1.0", "type": "old_alpha", "url": "https://piston-meta.mojang.com/v1/packages/6054271bd0a275ed3030be97b6e9f81977abdf5d/a1.1.0.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2010-09-12T22:00:00+00:00"}, {"id": "a1.0.17_04", "type": "old_alpha", "url": "https://piston-meta.mojang.com/v1/packages/fc2b6231e945558df29b6ed12522758860c511ab/a1.0.17_04.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2010-08-22T22:00:00+00:00"}, {"id": "a1.0.17_02", "type": "old_alpha", "url": "https://piston-meta.mojang.com/v1/packages/a261074f38c555d9770ba7f1a4cae9351af19d73/a1.0.17_02.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2010-08-19T22:00:00+00:00"}, {"id": "a1.0.16", "type": "old_alpha", "url": "https://piston-meta.mojang.com/v1/packages/205ed38d0d1e135b467702a746e64ed2623b4679/a1.0.16.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2010-08-11T22:00:00+00:00"}, {"id": "a1.0.15", "type": "old_alpha", "url": "https://piston-meta.mojang.com/v1/packages/05a0fdef0a0d62273290eb1c145ad10501941f75/a1.0.15.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2010-08-03T22:00:00+00:00"}, {"id": "a1.0.14", "type": "old_alpha", "url": "https://piston-meta.mojang.com/v1/packages/5af21fa2467997914940beb39279f0d545a48335/a1.0.14.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2010-07-29T22:00:00+00:00"}, {"id": "a1.0.11", "type": "old_alpha", "url": "https://piston-meta.mojang.com/v1/packages/b98235f44e6422741df02c781cf0016fce1c4a84/a1.0.11.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2010-07-22T22:00:00+00:00"}, {"id": "a1.0.5_01", "type": "old_alpha", "url": "https://piston-meta.mojang.com/v1/packages/4adaca651189d96ea9d7aa031038ab7b7d3fd807/a1.0.5_01.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2010-07-12T22:00:00+00:00"}, {"id": "a1.0.4", "type": "old_alpha", "url": "https://piston-meta.mojang.com/v1/packages/16c818f17af9e8560589f9e3cae57f0931011c25/a1.0.4.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2010-07-08T22:00:00+00:00"}, {"id": "inf-20100618", "type": "old_alpha", "url": "https://piston-meta.mojang.com/v1/packages/51a5c512af384d3d2a79a3efb93f7d4b9a1c6ec2/inf-20100618.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2010-06-15T22:00:00+00:00"}, {"id": "c0.30_01c", "type": "old_alpha", "url": "https://piston-meta.mojang.com/v1/packages/9392d3f635770ac4dfd3f8c9444f319b00b08945/c0.30_01c.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2009-12-21T22:00:00+00:00"}, {"id": "c0.0.13a", "type": "old_alpha", "url": "https://piston-meta.mojang.com/v1/packages/5ef11c52e02c27f40924ea0c323efee716de568d/c0.0.13a.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2009-05-30T22:00:00+00:00"}, {"id": "c0.0.13a_03", "type": "old_alpha", "url": "https://piston-meta.mojang.com/v1/packages/21122dee2365147033ef6214702098cf7b2549bd/c0.0.13a_03.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2009-05-21T22:00:00+00:00"}, {"id": "c0.0.11a", "type": "old_alpha", "url": "https://piston-meta.mojang.com/v1/packages/2339fd5639204675b9f18dff6055dae83fc91c7e/c0.0.11a.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2009-05-16T22:00:00+00:00"}, {"id": "rd-161348", "type": "old_alpha", "url": "https://piston-meta.mojang.com/v1/packages/f22a3882d124ef4468f6eb50b12836c53286e18a/rd-161348.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2009-05-16T11:48:00+00:00"}, {"id": "rd-160052", "type": "old_alpha", "url": "https://piston-meta.mojang.com/v1/packages/0cac2ceab812568826c6e5aeb4cf980397550479/rd-160052.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2009-05-15T22:52:00+00:00"}, {"id": "rd-20090515", "type": "old_alpha", "url": "https://piston-meta.mojang.com/v1/packages/a3165080e2b0bf20519eac5f55ee841f3491e277/rd-20090515.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2009-05-14T22:00:00+00:00"}, {"id": "rd-132328", "type": "old_alpha", "url": "https://piston-meta.mojang.com/v1/packages/4ec49ff663f96e78a5cf0d9538adb9d1358fc485/rd-132328.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2009-05-13T21:28:00+00:00"}, {"id": "rd-132211", "type": "old_alpha", "url": "https://piston-meta.mojang.com/v1/packages/d090f5d3766a28425316473d9ab6c37234d48b02/rd-132211.json", "time": "2022-03-10T09:51:38+00:00", "releaseTime": "2009-05-13T20:11:00+00:00"}]}
\ No newline at end of file
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/neoforge-manifest-new.xml b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/neoforge-manifest-new.xml
similarity index 62%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/neoforge-manifest-new.xml
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/neoforge-manifest-new.xml
index 6ae32dc3e..f8f72a385 100644
--- a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/neoforge-manifest-new.xml
+++ b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/neoforge-manifest-new.xml
@@ -3,8 +3,8 @@
   <groupId>net.neoforged</groupId>
   <artifactId>neoforge</artifactId>
   <versioning>
-    <latest>20.4.173</latest>
-    <release>20.4.173</release>
+    <latest>20.4.235</latest>
+    <release>20.4.235</release>
     <versions>
       <version>20.2.3-beta</version>
       <version>20.2.4-beta</version>
@@ -254,7 +254,163 @@
       <version>20.4.171</version>
       <version>20.4.172</version>
       <version>20.4.173</version>
+      <version>20.4.174</version>
+      <version>20.4.175</version>
+      <version>20.4.176</version>
+      <version>20.4.177</version>
+      <version>20.4.178</version>
+      <version>20.4.179</version>
+      <version>20.4.180</version>
+      <version>20.4.181</version>
+      <version>20.4.182</version>
+      <version>20.4.183</version>
+      <version>20.4.184</version>
+      <version>20.4.185</version>
+      <version>20.4.186</version>
+      <version>20.4.187</version>
+      <version>20.4.188</version>
+      <version>20.4.189</version>
+      <version>20.4.190</version>
+      <version>20.4.191</version>
+      <version>20.4.192</version>
+      <version>20.4.193</version>
+      <version>20.4.194</version>
+      <version>20.4.195</version>
+      <version>20.4.196</version>
+      <version>20.4.197</version>
+      <version>20.4.198</version>
+      <version>20.4.199</version>
+      <version>20.4.200</version>
+      <version>20.4.201</version>
+      <version>20.4.202</version>
+      <version>20.4.203</version>
+      <version>20.4.204</version>
+      <version>20.4.205</version>
+      <version>20.4.206</version>
+      <version>20.4.207</version>
+      <version>20.4.208</version>
+      <version>20.4.209</version>
+      <version>20.4.210</version>
+      <version>20.4.211</version>
+      <version>20.4.212</version>
+      <version>20.4.213</version>
+      <version>20.4.214</version>
+      <version>20.4.215</version>
+      <version>20.4.216</version>
+      <version>20.4.217</version>
+      <version>20.4.218</version>
+      <version>20.4.219</version>
+      <version>20.4.221</version>
+      <version>20.4.222</version>
+      <version>20.4.223</version>
+      <version>20.4.224</version>
+      <version>20.4.225</version>
+      <version>20.4.226</version>
+      <version>20.4.227</version>
+      <version>20.4.228</version>
+      <version>20.4.229</version>
+      <version>20.4.230</version>
+      <version>20.4.231</version>
+      <version>20.4.232</version>
+      <version>20.5.0-beta</version>
+      <version>20.5.1-beta</version>
+      <version>20.5.2-beta</version>
+      <version>20.5.3-beta</version>
+      <version>20.4.233</version>
+      <version>20.5.4-beta</version>
+      <version>20.5.5-beta</version>
+      <version>20.5.6-beta</version>
+      <version>20.5.7-beta</version>
+      <version>20.5.8-beta</version>
+      <version>20.5.9-beta</version>
+      <version>20.5.10-beta</version>
+      <version>20.5.11-beta</version>
+      <version>20.5.12-beta</version>
+      <version>20.5.13-beta</version>
+      <version>20.5.14-beta</version>
+      <version>20.5.15-beta</version>
+      <version>20.5.16-beta</version>
+      <version>20.5.17-beta</version>
+      <version>20.5.18-beta</version>
+      <version>20.5.19-beta</version>
+      <version>20.5.20-beta</version>
+      <version>20.5.21-beta</version>
+      <version>20.6.1-beta</version>
+      <version>20.6.2-beta</version>
+      <version>20.6.3-beta</version>
+      <version>20.6.4-beta</version>
+      <version>20.4.234</version>
+      <version>20.6.5-beta</version>
+      <version>20.6.6-beta</version>
+      <version>20.6.7-beta</version>
+      <version>20.6.8-beta</version>
+      <version>20.6.9-beta</version>
+      <version>20.6.10-beta</version>
+      <version>20.6.11-beta</version>
+      <version>20.6.12-beta</version>
+      <version>20.6.13-beta</version>
+      <version>20.6.14-beta</version>
+      <version>20.6.15-beta</version>
+      <version>20.6.16-beta</version>
+      <version>20.6.17-beta</version>
+      <version>20.6.18-beta</version>
+      <version>20.6.19-beta</version>
+      <version>20.6.20-beta</version>
+      <version>20.6.21-beta</version>
+      <version>20.6.22-beta</version>
+      <version>20.6.23-beta</version>
+      <version>20.6.24-beta</version>
+      <version>20.6.25-beta</version>
+      <version>20.6.26-beta</version>
+      <version>20.6.27-beta</version>
+      <version>20.6.28-beta</version>
+      <version>20.6.30-beta</version>
+      <version>20.6.29-beta</version>
+      <version>20.6.31-beta</version>
+      <version>20.6.32-beta</version>
+      <version>20.6.39-beta</version>
+      <version>20.6.40-beta</version>
+      <version>20.6.41-beta</version>
+      <version>20.6.42-beta</version>
+      <version>20.6.43-beta</version>
+      <version>20.6.44-beta</version>
+      <version>20.6.47-beta</version>
+      <version>20.6.45-beta</version>
+      <version>20.6.46-beta</version>
+      <version>20.6.48-beta</version>
+      <version>20.6.49-beta</version>
+      <version>20.6.50-beta</version>
+      <version>20.6.51-beta</version>
+      <version>20.6.52-beta</version>
+      <version>20.6.53-beta</version>
+      <version>20.6.55-beta</version>
+      <version>20.6.54-beta</version>
+      <version>20.6.56-beta</version>
+      <version>20.6.57-beta</version>
+      <version>20.6.59-beta</version>
+      <version>20.6.60-beta</version>
+      <version>20.6.61-beta</version>
+      <version>20.6.62-beta</version>
+      <version>20.6.63-beta</version>
+      <version>20.6.66-beta</version>
+      <version>20.6.68-beta</version>
+      <version>20.6.67-beta</version>
+      <version>20.6.69-beta</version>
+      <version>20.6.70-beta</version>
+      <version>20.6.71-beta</version>
+      <version>20.6.72-beta</version>
+      <version>20.6.73-beta</version>
+      <version>20.6.74-beta</version>
+      <version>20.6.75-beta</version>
+      <version>20.6.76-beta</version>
+      <version>20.6.77-beta</version>
+      <version>20.6.78-beta</version>
+      <version>20.6.80-beta</version>
+      <version>20.6.79-beta</version>
+      <version>20.6.81-beta</version>
+      <version>20.6.82-beta</version>
+      <version>20.4.235</version>
     </versions>
-    <lastUpdated>20240223175048</lastUpdated>
+    <lastUpdated>20240526110052</lastUpdated>
   </versioning>
 </metadata>
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/neoforge-manifest.xml b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/neoforge-manifest.xml
similarity index 88%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/neoforge-manifest.xml
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/neoforge-manifest.xml
index 2e0700a7a..079dcbb8f 100644
--- a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/neoforge-manifest.xml
+++ b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/neoforge-manifest.xml
@@ -3,8 +3,8 @@
   <groupId>net.neoforged</groupId>
   <artifactId>forge</artifactId>
   <versioning>
-    <latest>1.20.1-47.1.100</latest>
-    <release>1.20.1-47.1.100</release>
+    <latest>1.20.1-47.1.105</latest>
+    <release>1.20.1-47.1.105</release>
     <versions>
       <version>1.20.1-47.1.7</version>
       <version>1.20.1-47.1.5</version>
@@ -63,7 +63,12 @@
       <version>1.20.1-47.1.98</version>
       <version>1.20.1-47.1.99</version>
       <version>1.20.1-47.1.100</version>
+      <version>1.20.1-47.1.101</version>
+      <version>1.20.1-47.1.102</version>
+      <version>1.20.1-47.1.103</version>
+      <version>1.20.1-47.1.104</version>
+      <version>1.20.1-47.1.105</version>
     </versions>
-    <lastUpdated>20240215064837</lastUpdated>
+    <lastUpdated>20240426004451</lastUpdated>
   </versioning>
 </metadata>
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/quilt-installer-manifest.xml b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/quilt-installer-manifest.xml
similarity index 85%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/quilt-installer-manifest.xml
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/quilt-installer-manifest.xml
index 7c071ec25..52226d312 100644
--- a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/quilt-installer-manifest.xml
+++ b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/quilt-installer-manifest.xml
@@ -3,8 +3,8 @@
   <groupId>org.quiltmc</groupId>
   <artifactId>quilt-installer</artifactId>
   <versioning>
-    <latest>0.9.1</latest>
-    <release>0.9.1</release>
+    <latest>0.9.2</latest>
+    <release>0.9.2</release>
     <versions>
       <version>0.3.1</version>
       <version>0.4.0</version>
@@ -24,7 +24,8 @@
       <version>0.8.2</version>
       <version>0.9.0</version>
       <version>0.9.1</version>
+      <version>0.9.2</version>
     </versions>
-    <lastUpdated>20230917163513</lastUpdated>
+    <lastUpdated>20240517020203</lastUpdated>
   </versioning>
 </metadata>
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/quilt-manifest.xml b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/quilt-manifest.xml
similarity index 94%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/quilt-manifest.xml
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/quilt-manifest.xml
index dd88c92cd..57940962a 100644
--- a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/manifests/quilt-manifest.xml
+++ b/serverpackcreator-api/src/main/resources/de/griefed/resources/manifests/quilt-manifest.xml
@@ -3,8 +3,8 @@
   <groupId>org.quiltmc</groupId>
   <artifactId>quilt-loader</artifactId>
   <versioning>
-    <latest>0.24.0-beta.8</latest>
-    <release>0.24.0-beta.8</release>
+    <latest>0.26.0-beta.3</latest>
+    <release>0.26.0-beta.3</release>
     <versions>
       <version>0.16.0-beta.1</version>
       <version>0.16.0-beta.2</version>
@@ -237,7 +237,18 @@
       <version>0.24.0-beta.6</version>
       <version>0.24.0-beta.7</version>
       <version>0.24.0-beta.8</version>
+      <version>0.24.0-beta.9</version>
+      <version>0.24.0</version>
+      <version>0.24.1-beta.1</version>
+      <version>0.25.0-beta.1</version>
+      <version>0.25.0-beta.2</version>
+      <version>0.25.0-beta.3</version>
+      <version>0.25.0-beta.4</version>
+      <version>0.25.0</version>
+      <version>0.26.0-beta.1</version>
+      <version>0.26.0-beta.2</version>
+      <version>0.26.0-beta.3</version>
     </versions>
-    <lastUpdated>20240220031414</lastUpdated>
+    <lastUpdated>20240525235859</lastUpdated>
   </versioning>
 </metadata>
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/server_files/default_template.ps1 b/serverpackcreator-api/src/main/resources/de/griefed/resources/server_files/default_template.ps1
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/server_files/default_template.ps1
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/server_files/default_template.ps1
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/server_files/default_template.sh b/serverpackcreator-api/src/main/resources/de/griefed/resources/server_files/default_template.sh
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/server_files/default_template.sh
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/server_files/default_template.sh
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/server_files/server-icon.png b/serverpackcreator-api/src/main/resources/de/griefed/resources/server_files/server-icon.png
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/server_files/server-icon.png
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/server_files/server-icon.png
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/server_files/server.properties b/serverpackcreator-api/src/main/resources/de/griefed/resources/server_files/server.properties
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/server_files/server.properties
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/server_files/server.properties
diff --git a/serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/serverpackcreator.conf b/serverpackcreator-api/src/main/resources/de/griefed/resources/serverpackcreator.conf
similarity index 100%
rename from serverpackcreator-api/src/jvmMain/resources/de/griefed/resources/serverpackcreator.conf
rename to serverpackcreator-api/src/main/resources/de/griefed/resources/serverpackcreator.conf
diff --git a/serverpackcreator-api/src/main/resources/log4j2.component.properties b/serverpackcreator-api/src/main/resources/log4j2.component.properties
new file mode 100644
index 000000000..e05136308
--- /dev/null
+++ b/serverpackcreator-api/src/main/resources/log4j2.component.properties
@@ -0,0 +1,3 @@
+log4j.configurationFile=log4j2.xml
+log4j.formatMsgNoLookups=true
+log4j.configurationFactory=de.griefed.serverpackcreator.api.ApiProperties
\ No newline at end of file
diff --git a/serverpackcreator-api/src/jvmMain/resources/log4j2.xml b/serverpackcreator-api/src/main/resources/log4j2.xml
similarity index 78%
rename from serverpackcreator-api/src/jvmMain/resources/log4j2.xml
rename to serverpackcreator-api/src/main/resources/log4j2.xml
index 8b4cf88dd..8488dc9e3 100644
--- a/serverpackcreator-api/src/jvmMain/resources/log4j2.xml
+++ b/serverpackcreator-api/src/main/resources/log4j2.xml
@@ -35,22 +35,6 @@
       <DefaultRolloverStrategy max="5" />
     </RollingFile>
 
-    <RollingFile name="InstallerLogger" fileName="${log-path}/modloader_installer.log" filePattern="${archive}/modloader_installer.log.%i">
-      <PatternLayout>
-        <Charset>
-          ${charset}
-        </Charset>
-        <Pattern>
-          ${pattern}
-        </Pattern>
-      </PatternLayout>
-      <Policies>
-        <OnStartupTriggeringPolicy />
-        <SizeBasedTriggeringPolicy size="10 MB" />
-      </Policies>
-      <DefaultRolloverStrategy max="5" />
-    </RollingFile>
-
     <RollingFile name="PluginsLogger" fileName="${log-path}/plugins.log" filePattern="${archive}/plugins.log.%i">
       <PatternLayout>
         <Charset>
@@ -79,10 +63,6 @@
       <AppenderRef ref="ApplicationLogger" level="${log-level-spc}" />
     </Logger>
 
-    <Logger name="InstallerLogger" level="ALL" additivity="false">
-      <AppenderRef ref="InstallerLogger" level="${log-level-spc}" />
-    </Logger>
-
     <Logger name="PluginsLogger" level="ALL" additivity="false">
       <AppenderRef ref="PluginsLogger" level="${log-level-spc}" />
     </Logger>
diff --git a/serverpackcreator-api/src/jvmMain/resources/serverpackcreator.properties b/serverpackcreator-api/src/main/resources/serverpackcreator.properties
similarity index 99%
rename from serverpackcreator-api/src/jvmMain/resources/serverpackcreator.properties
rename to serverpackcreator-api/src/main/resources/serverpackcreator.properties
index 887eeb16a..8801818a5 100644
--- a/serverpackcreator-api/src/jvmMain/resources/serverpackcreator.properties
+++ b/serverpackcreator-api/src/main/resources/serverpackcreator.properties
@@ -1,7 +1,7 @@
 # Supported languages: [en_us, uk_ua, de_de]
 de.griefed.serverpackcreator.versioncheck.prerelease=false
 de.griefed.serverpackcreator.language=en_GB
-de.griefed.serverpackcreator.configuration.fallback.updateurl=https://raw.githubusercontent.com/Griefed/ServerPackCreator/main/serverpackcreator-api/src/jvmMain/resources/serverpackcreator.properties
+de.griefed.serverpackcreator.configuration.fallback.updateurl=https://raw.githubusercontent.com/Griefed/ServerPackCreator/main/serverpackcreator-api/src/main/resources/serverpackcreator.properties
 de.griefed.serverpackcreator.configuration.fallbackmodslist=3dskinlayers-,Absolutely-Not-A-Zoom-Mod-,AdvancedChat-,AdvancedChatCore-,AdvancedChatHUD-,AdvancedCompas-,Ambience,AmbientEnvironment-,AmbientSounds_,AnimaticaReforged-,AreYouBlind-,Armor Status HUD-,ArmorSoundTweak-,BH-Menu-,Batty's Coordinates PLUS Mod,BetterAdvancements-,BetterAnimationsCollection-,BetterModsButton-,BetterDarkMode-,BetterF3-,BetterFog-,BetterFoliage-,BetterPingDisplay-,BetterPlacement-,BetterTaskbar-,BetterThirdPerson,BetterTitleScreen-,Blur-,BorderlessWindow-,CTM-,ChunkAnimator-,ClientTweaks_,CompletionistsIndex-,Controller Support-,Controlling-,CraftPresence-,CullLessLeaves-Reforged-,CustomCursorMod-,CustomMainMenu-,DefaultOptions_,DefaultSettings-,DeleteWorldsToTrash-,DetailArmorBar-,Ding-,DistantHorizons-,DripSounds-,Durability101-,DurabilityNotifier-,DynamicSurroundings-,DynamicSurroundingsHuds-,EasyLAN-,EffectsLeft-,EiraMoticons_,EnchantmentDescriptions-,EnhancedVisuals_,EquipmentCompare-,EuphoriaPatcher-,FPS-Monitor-,FabricCustomCursorMod-,FadingNightVision-,Fallingleaves-,FancySpawnEggs,FancyVideo-API-,farsight-,FirstPersonMod,FogTweaker-,ForgeCustomCursorMod-,FpsReducer-,FpsReducer2-,FullscreenWindowed-,GameMenuModOption-,HealthOverlay-,HeldItemTooltips-,HorseStatsMod-,ImmediatelyFastReforged-,InventoryEssentials_,InventoryHud_[1.17.1].forge-,InventorySpam-,InventoryTweaks-,ItemBorders-,ItemLocks-,ItemPhysicLite_,ItemStitchingFix-,JBRA-Client-,JustEnoughCalculation-,JustEnoughEffects-,JustEnoughProfessions-,LeaveMyBarsAlone-,LLOverlayReloaded-,LOTRDRP-,LegendaryTooltips,LegendaryTooltips-,LightOverlay-,MinecraftCapes,MineMenu-,MoBends,ModernUI-,MouseTweaks-,MyServerIsCompatible-,Neat,Neat-,NekosEnchantedBooks-,NoAutoJump-,NoFog-,Notes-,NotifMod-,OldJavaWarning-,OptiFine,OptiFine_,OptiForge,OptiForge-,OverflowingBars-,PackMenu-,PackModeMenu-,PickUpNotifier-,Ping-,PingHUD-,PresenceFootsteps-,RPG-HUD-,ReAuth-,Reforgium-,ResourceLoader-,ResourcePackOrganizer,Ryoamiclights-,ShoulderSurfing-,ShulkerTooltip-,SimpleDiscordRichPresence-,SimpleWorldTimer-,SoundFilters-,SpawnerFix-,StylishEffects-,TextruesRubidiumOptions-,TRansliterationLib-,TipTheScales-,Tips-,Toast Control-,Toast-Control-,ToastControl-,TravelersTitles-,VoidFog-,VR-Combat_,WindowedFullscreen-,WorldNameRandomizer-,YeetusExperimentus-,YungsMenuTweaks-,[1.12.2]DamageIndicatorsMod-,[1.12.2]bspkrscore-,antighost-,anviltooltipmod-,appleskin-,armorchroma-,armorpointspp-,auditory-,authme-,auto-reconnect-,autojoin-,autoreconnect-,axolotl-item-fix-,backtools-,bannerunlimited-,beenfo-1.19-,better-recipe-book-,betterbiomeblend-,bhmenu-,blur-,borderless-mining-,cat_jam-,catalogue-,charmonium-,chat_heads-,cherishedworlds-,cirback-1.0-,classicbar-,clickadv-,clienttweaks-,combat_music-,connectedness-,controllable-,cullleaves-,cullparticles-,custom-crosshair-mod-,customdiscordrpc-,darkness-,dashloader-,defaultoptions-,desiredservers-,discordrpc-,drippyloadingscreen-,drippyloadingscreen_,durabilitytooltip-,dynamic-fps-,dynamic-music-,dynamiclights-,dynmus-,effective-,eggtab-,eguilib-,eiramoticons-,embeddium-,enchantment-lore-,entity-texture-features-,entityculling-,essential_,exhaustedstamina-,extremesoundmuffler-,fabricemotes-,fancymenu_,fancymenu_video_extension,fast-ip-ping-,flickerfix-,fm_audio_extension_,forgemod_VoxelMap-,freelook-,galacticraft-rpc-,gamestagesviewer-,gpumemleakfix-,grid-,helium-,hiddenrecipebook_,hiddenrecipebook-,infinitemusic-,inventoryprofiles,invtweaks-,itemzoom,itlt-,jeed-,jehc-,jeiintegration_,jumpoverfences-,just-enough-harvestcraft-,justenoughbeacons-,justenoughdrags-,justzoom_,keymap-,keywizard-,lazurite-,lazydfu-,lib39-,light-overlay-,lightfallclient-,lightspeed-,loadmyresources_,lock_minecart_view-,lootbeams-,lwl-,macos-input-fixes-,magnesium_extras-,maptooltip-,massunbind,mcbindtype-,mcwifipnp-,medievalmusic-,memoryusagescreen-,mightyarchitect-,mindful-eating-,minetogether-,mobplusplus-,modcredits-,modernworldcreation_,modnametooltip-,modnametooltip_,moreoverlays-,mousewheelie-,movement-vision-,multihotbar-,music-duration-reducer-,musicdr-,neiRecipeHandlers-,ngrok-lan-expose-mod-,no_nv_flash-,nopotionshift_,notenoughanimations-,oculus-,ornaments-,overloadedarmorbar-,panorama-,paperdoll-,physics-mod-,phosphor-,preciseblockplacing-,radon-,realm-of-lost-souls-,rebind_narrator-,rebind-narrator-,rebindnarrator-,rebrand-,reforgium-,replanter-,rrls-,rubidium-,rubidium_extras-,screenshot-to-clipboard-,servercountryflags-,shutupexperimentalsettings-,shutupmodelloader-,signtools-,simple-rpc-,simpleautorun-,smartcursor-,smoothboot-,smoothfocus-,sodium-fabric-,sounddeviceoptions-,soundreloader-,spoticraft-,skinlayers3d-forge,textrues_embeddium_options-,tconplanner-,timestamps-,tooltipscroller-,torchoptimizer-,torohealth-,totaldarkness,toughnessbar-,watermedia-,whats-that-slot-forge-,wisla-,xenon-,xlifeheartcolors-,yisthereautojump-
 de.griefed.serverpackcreator.configuration.modswhitelist=Ping-Wheel-
 de.griefed.serverpackcreator.configuration.hastebinserver=https://haste.zneix.eu/documents
@@ -49,4 +49,4 @@ spring.datasource.tomcat.min-idle=8
 spring.transaction.default-timeout=3600
 spring.servlet.multipart.max-file-size=5000MB
 spring.servlet.multipart.max-request-size=5000MB
-spring.jpa.properties.hibernate.jdbc.use_streams_for_binary=true
+spring.jpa.properties.hibernate.jdbc.use_streams_for_binary=true
\ No newline at end of file
diff --git a/serverpackcreator-api/src/jvmTest/kotlin/de/griefed/serverpackcreator/api/ApiPluginsTest.kt b/serverpackcreator-api/src/test/kotlin/de/griefed/serverpackcreator/api/ApiPluginsTest.kt
similarity index 90%
rename from serverpackcreator-api/src/jvmTest/kotlin/de/griefed/serverpackcreator/api/ApiPluginsTest.kt
rename to serverpackcreator-api/src/test/kotlin/de/griefed/serverpackcreator/api/ApiPluginsTest.kt
index a99ea729b..1733ade85 100644
--- a/serverpackcreator-api/src/jvmTest/kotlin/de/griefed/serverpackcreator/api/ApiPluginsTest.kt
+++ b/serverpackcreator-api/src/test/kotlin/de/griefed/serverpackcreator/api/ApiPluginsTest.kt
@@ -15,13 +15,13 @@ import javax.xml.parsers.ParserConfigurationException
 
 class ApiPluginsTest {
     private val apiPlugins: ApiPlugins =
-        ApiWrapper.api(File("src/jvmTest/resources/serverpackcreator.properties")).apiPlugins
+        ApiWrapper.api(File("src/test/resources/serverpackcreator.properties")).apiPlugins
 
     @Test
     @Throws(IOException::class, ParserConfigurationException::class, SAXException::class)
     fun test() {
         try {
-            File("src/jvmTest/resources/testresources/plugins").copyRecursively(File("tests/plugins"), true)
+            File("src/test/resources/testresources/plugins").copyRecursively(File("tests/plugins"), true)
         } catch (ignored: Exception) {
         }
         Assertions.assertNotNull(apiPlugins)
diff --git a/serverpackcreator-api/src/jvmTest/kotlin/de/griefed/serverpackcreator/api/ApiPropertiesTest.kt b/serverpackcreator-api/src/test/kotlin/de/griefed/serverpackcreator/api/ApiPropertiesTest.kt
similarity index 90%
rename from serverpackcreator-api/src/jvmTest/kotlin/de/griefed/serverpackcreator/api/ApiPropertiesTest.kt
rename to serverpackcreator-api/src/test/kotlin/de/griefed/serverpackcreator/api/ApiPropertiesTest.kt
index 0419716c1..466af3f06 100644
--- a/serverpackcreator-api/src/jvmTest/kotlin/de/griefed/serverpackcreator/api/ApiPropertiesTest.kt
+++ b/serverpackcreator-api/src/test/kotlin/de/griefed/serverpackcreator/api/ApiPropertiesTest.kt
@@ -10,19 +10,19 @@ import java.io.File
 
 class ApiPropertiesTest internal constructor() {
     private val fileUtilities: FileUtilities =
-        ApiWrapper.api(File("src/jvmTest/resources/serverpackcreator.properties")).fileUtilities
+        ApiWrapper.api(File("src/test/resources/serverpackcreator.properties")).fileUtilities
     private val systemUtilities: SystemUtilities =
-        ApiWrapper.api(File("src/jvmTest/resources/serverpackcreator.properties")).systemUtilities
+        ApiWrapper.api(File("src/test/resources/serverpackcreator.properties")).systemUtilities
     private val listUtilities: ListUtilities =
-        ApiWrapper.api(File("src/jvmTest/resources/serverpackcreator.properties")).listUtilities
+        ApiWrapper.api(File("src/test/resources/serverpackcreator.properties")).listUtilities
     private val jarUtilities: JarUtilities =
-        ApiWrapper.api(File("src/jvmTest/resources/serverpackcreator.properties")).jarUtilities
+        ApiWrapper.api(File("src/test/resources/serverpackcreator.properties")).jarUtilities
 
     @Test
     fun test() {
         var apiProperties = ApiProperties(
             fileUtilities, systemUtilities, listUtilities, jarUtilities,
-            File("src/jvmTest/resources/testresources/properties/filters/contains.properties")
+            File("src/test/resources/testresources/properties/filters/contains.properties")
         )
         Assertions.assertEquals(
             ExclusionFilter.CONTAIN,
@@ -30,7 +30,7 @@ class ApiPropertiesTest internal constructor() {
         )
         apiProperties = ApiProperties(
             fileUtilities, systemUtilities, listUtilities, jarUtilities,
-            File("src/jvmTest/resources/testresources/properties/filters/either.properties")
+            File("src/test/resources/testresources/properties/filters/either.properties")
         )
         Assertions.assertEquals(
             ExclusionFilter.EITHER,
@@ -38,7 +38,7 @@ class ApiPropertiesTest internal constructor() {
         )
         apiProperties = ApiProperties(
             fileUtilities, systemUtilities, listUtilities, jarUtilities,
-            File("src/jvmTest/resources/testresources/properties/filters/end.properties")
+            File("src/test/resources/testresources/properties/filters/end.properties")
         )
         Assertions.assertEquals(
             ExclusionFilter.END,
@@ -46,7 +46,7 @@ class ApiPropertiesTest internal constructor() {
         )
         apiProperties = ApiProperties(
             fileUtilities, systemUtilities, listUtilities, jarUtilities,
-            File("src/jvmTest/resources/testresources/properties/filters/regex.properties")
+            File("src/test/resources/testresources/properties/filters/regex.properties")
         )
         Assertions.assertEquals(
             ExclusionFilter.REGEX,
@@ -54,7 +54,7 @@ class ApiPropertiesTest internal constructor() {
         )
         apiProperties = ApiProperties(
             fileUtilities, systemUtilities, listUtilities, jarUtilities,
-            File("src/jvmTest/resources/testresources/properties/filters/start.properties")
+            File("src/test/resources/testresources/properties/filters/start.properties")
         )
         Assertions.assertEquals(
             ExclusionFilter.START,
@@ -62,7 +62,7 @@ class ApiPropertiesTest internal constructor() {
         )
         apiProperties = ApiProperties(
             fileUtilities, systemUtilities, listUtilities, jarUtilities,
-            File("src/jvmTest/resources/serverpackcreator.properties")
+            File("src/test/resources/serverpackcreator.properties")
         )
         Assertions.assertNotNull(apiProperties.javaPath)
         Assertions.assertTrue(
diff --git a/serverpackcreator-api/src/jvmTest/kotlin/de/griefed/serverpackcreator/api/ConfigurationHandlerTest.kt b/serverpackcreator-api/src/test/kotlin/de/griefed/serverpackcreator/api/ConfigurationHandlerTest.kt
similarity index 90%
rename from serverpackcreator-api/src/jvmTest/kotlin/de/griefed/serverpackcreator/api/ConfigurationHandlerTest.kt
rename to serverpackcreator-api/src/test/kotlin/de/griefed/serverpackcreator/api/ConfigurationHandlerTest.kt
index ce8396220..2eecf1bd0 100644
--- a/serverpackcreator-api/src/jvmTest/kotlin/de/griefed/serverpackcreator/api/ConfigurationHandlerTest.kt
+++ b/serverpackcreator-api/src/test/kotlin/de/griefed/serverpackcreator/api/ConfigurationHandlerTest.kt
@@ -10,16 +10,16 @@ import java.util.*
 
 internal class ConfigurationHandlerTest {
     private val apiProperties =
-        ApiWrapper.api(File("src/jvmTest/resources/serverpackcreator.properties")).apiProperties
+        ApiWrapper.api(File("src/test/resources/serverpackcreator.properties")).apiProperties
     private val configurationHandler =
-        ApiWrapper.api(File("src/jvmTest/resources/serverpackcreator.properties")).configurationHandler
+        ApiWrapper.api(File("src/test/resources/serverpackcreator.properties")).configurationHandler
     private val versionMeta =
-        ApiWrapper.api(File("src/jvmTest/resources/serverpackcreator.properties")).versionMeta
+        ApiWrapper.api(File("src/test/resources/serverpackcreator.properties")).versionMeta
     private val projectDir = apiProperties.homeDirectory.parentFile.parentFile
 
     @Test
     fun checkConfigFileTest() {
-        val check = configurationHandler.checkConfiguration(File("src/jvmTest/resources/testresources/spcconfs/serverpackcreator.conf"))
+        val check = configurationHandler.checkConfiguration(File("src/test/resources/testresources/spcconfs/serverpackcreator.conf"))
         Assertions.assertTrue(check.allChecksPassed)
         Assertions.assertTrue(check.modloaderChecksPassed)
         Assertions.assertTrue(check.modpackChecksPassed)
@@ -34,7 +34,7 @@ internal class ConfigurationHandlerTest {
 
     @Test
     fun isDirTestCopyDirs() {
-        val check = configurationHandler.checkConfiguration(File("src/jvmTest/resources/testresources/spcconfs/serverpackcreator_copydirs.conf"))
+        val check = configurationHandler.checkConfiguration(File("src/test/resources/testresources/spcconfs/serverpackcreator_copydirs.conf"))
         Assertions.assertTrue(check.modpackChecksPassed)
         Assertions.assertTrue(check.configChecksPassed)
         Assertions.assertTrue(check.otherChecksPassed)
@@ -48,7 +48,7 @@ internal class ConfigurationHandlerTest {
 
     @Test
     fun isDirTestMinecraftVersionFalse() {
-        val check = configurationHandler.checkConfiguration(File("src/jvmTest/resources/testresources/spcconfs/serverpackcreator_minecraftversion.conf"))
+        val check = configurationHandler.checkConfiguration(File("src/test/resources/testresources/spcconfs/serverpackcreator_minecraftversion.conf"))
         Assertions.assertTrue(check.modloaderChecksPassed)
         Assertions.assertTrue(check.modpackChecksPassed)
         Assertions.assertTrue(check.inclusionsChecksPassed)
@@ -62,7 +62,7 @@ internal class ConfigurationHandlerTest {
 
     @Test
     fun isModLoaderLegacyFabric() {
-        val check = configurationHandler.checkConfiguration(File("src/jvmTest/resources/testresources/spcconfs/serverpackcreator_legacyfabric.conf"))
+        val check = configurationHandler.checkConfiguration(File("src/test/resources/testresources/spcconfs/serverpackcreator_legacyfabric.conf"))
         Assertions.assertTrue(check.modloaderChecksPassed)
         Assertions.assertTrue(check.modpackChecksPassed)
         Assertions.assertTrue(check.inclusionsChecksPassed)
@@ -76,7 +76,7 @@ internal class ConfigurationHandlerTest {
 
     @Test
     fun isModLoaderQuilt() {
-        val check = configurationHandler.checkConfiguration(File("src/jvmTest/resources/testresources/spcconfs/serverpackcreator_quilt.conf"))
+        val check = configurationHandler.checkConfiguration(File("src/test/resources/testresources/spcconfs/serverpackcreator_quilt.conf"))
         Assertions.assertTrue(check.modloaderChecksPassed)
         Assertions.assertTrue(check.modpackChecksPassed)
         Assertions.assertTrue(check.inclusionsChecksPassed)
@@ -90,7 +90,7 @@ internal class ConfigurationHandlerTest {
 
     @Test
     fun isDirTestModLoaderFalse() {
-        val check = configurationHandler.checkConfiguration(File("src/jvmTest/resources/testresources/spcconfs/serverpackcreator_modloaderfalse.conf"))
+        val check = configurationHandler.checkConfiguration(File("src/test/resources/testresources/spcconfs/serverpackcreator_modloaderfalse.conf"))
         Assertions.assertTrue(check.modpackChecksPassed)
         Assertions.assertTrue(check.inclusionsChecksPassed)
         Assertions.assertTrue(check.minecraftVersionChecksPassed)
@@ -104,7 +104,7 @@ internal class ConfigurationHandlerTest {
 
     @Test
     fun isDirTestModLoaderVersion() {
-        val check = configurationHandler.checkConfiguration(File("src/jvmTest/resources/testresources/spcconfs/serverpackcreator_modloaderversion.conf"))
+        val check = configurationHandler.checkConfiguration(File("src/test/resources/testresources/spcconfs/serverpackcreator_modloaderversion.conf"))
         Assertions.assertTrue(check.modloaderChecksPassed)
         Assertions.assertTrue(check.modpackChecksPassed)
         Assertions.assertTrue(check.inclusionsChecksPassed)
@@ -118,7 +118,7 @@ internal class ConfigurationHandlerTest {
 
     @Test
     fun checkModpackDirTest() {
-        val modpackDirCorrect = "src/jvmTest/resources/forge_tests"
+        val modpackDirCorrect = "src/test/resources/forge_tests"
         val check = configurationHandler.checkModpackDir(modpackDirCorrect)
         Assertions.assertTrue(check.modpackChecksPassed)
     }
@@ -131,7 +131,7 @@ internal class ConfigurationHandlerTest {
 
     @Test
     fun checkInclusionsTest() {
-        val modpackDir = "src/jvmTest/resources/forge_tests"
+        val modpackDir = "src/test/resources/forge_tests"
         val inclusions = mutableListOf<InclusionSpecification>()
         inclusions.add(InclusionSpecification("config"))
         inclusions.add(InclusionSpecification("mods"))
@@ -146,7 +146,7 @@ internal class ConfigurationHandlerTest {
     @Suppress("SpellCheckingInspection")
     @Test
     fun checkInclusionsTestFalse() {
-        val modpackDir = "src/jvmTest/resources/forge_tests"
+        val modpackDir = "src/test/resources/forge_tests"
         val inclusions = mutableListOf<InclusionSpecification>()
         inclusions.add(InclusionSpecification("config"))
         inclusions.add(InclusionSpecification("modss"))
@@ -160,7 +160,7 @@ internal class ConfigurationHandlerTest {
 
     @Test
     fun checkInclusionsTestFiles() {
-        val modpackDir = "src/jvmTest/resources/forge_tests"
+        val modpackDir = "src/test/resources/forge_tests"
         val inclusions = mutableListOf<InclusionSpecification>()
         inclusions.add(InclusionSpecification("config"))
         inclusions.add(InclusionSpecification("mods"))
@@ -177,7 +177,7 @@ internal class ConfigurationHandlerTest {
     @Suppress("SpellCheckingInspection")
     @Test
     fun checkInclusionsTestFilesFalse() {
-        val modpackDir = "src/jvmTest/resources/forge_tests"
+        val modpackDir = "src/test/resources/forge_tests"
         val inclusions = mutableListOf<InclusionSpecification>()
         inclusions.add(InclusionSpecification("config"))
         inclusions.add(InclusionSpecification("mods"))
@@ -290,7 +290,7 @@ internal class ConfigurationHandlerTest {
         inclusions.add(InclusionSpecification("seeds"))
         inclusions.add(InclusionSpecification("defaultconfigs"))
         val packConfig = PackConfig()
-        packConfig.modpackDir = "src/jvmTest/resources/forge_tests"
+        packConfig.modpackDir = "src/test/resources/forge_tests"
         packConfig.setClientMods(clientMods)
         packConfig.setInclusions(inclusions)
         packConfig.isServerIconInclusionDesired = true
@@ -378,7 +378,7 @@ internal class ConfigurationHandlerTest {
     @Test
     fun zipArchiveTest() {
         var packConfig = PackConfig()
-        packConfig.modpackDir = "src/jvmTest/resources/testresources/Survive_Create_Prosper_4_valid.zip"
+        packConfig.modpackDir = "src/test/resources/testresources/Survive_Create_Prosper_4_valid.zip"
         var check = configurationHandler.checkConfiguration(packConfig)
         Assertions.assertTrue(check.allChecksPassed)
         Assertions.assertTrue(check.modloaderChecksPassed)
@@ -391,7 +391,7 @@ internal class ConfigurationHandlerTest {
         Assertions.assertTrue(check.serverPropertiesChecksPassed)
         Assertions.assertTrue(check.modloaderVersionChecksPassed)
         packConfig = PackConfig()
-        packConfig.modpackDir = "src/jvmTest/resources/testresources/Survive_Create_Prosper_4_invalid.zip"
+        packConfig.modpackDir = "src/test/resources/testresources/Survive_Create_Prosper_4_invalid.zip"
         check = configurationHandler.checkConfiguration(packConfig)
         Assertions.assertTrue(check.configChecksPassed)
         Assertions.assertFalse(check.modpackChecksPassed)
@@ -407,7 +407,7 @@ internal class ConfigurationHandlerTest {
 
     @Test
     fun checkConfigurationFileTest() {
-        val check = configurationHandler.checkConfiguration(File("src/jvmTest/resources/testresources/spcconfs/serverpackcreator.conf"))
+        val check = configurationHandler.checkConfiguration(File("src/test/resources/testresources/spcconfs/serverpackcreator.conf"))
         Assertions.assertTrue(check.allChecksPassed)
         Assertions.assertTrue(check.modloaderChecksPassed)
         Assertions.assertTrue(check.modpackChecksPassed)
@@ -424,7 +424,7 @@ internal class ConfigurationHandlerTest {
     fun checkConfigurationFileAndModelTest() {
         var packConfig = PackConfig()
         var check = configurationHandler.checkConfiguration(
-            File("src/jvmTest/resources/testresources/spcconfs/serverpackcreator.conf"),
+            File("src/test/resources/testresources/spcconfs/serverpackcreator.conf"),
             packConfig
         )
         Assertions.assertTrue(check.allChecksPassed)
@@ -437,13 +437,13 @@ internal class ConfigurationHandlerTest {
         Assertions.assertTrue(check.serverIconChecksPassed)
         Assertions.assertTrue(check.serverPropertiesChecksPassed)
         Assertions.assertTrue(check.modloaderVersionChecksPassed)
-        Assertions.assertEquals("src/jvmTest/resources/forge_tests", packConfig.modpackDir)
+        Assertions.assertEquals("src/test/resources/forge_tests", packConfig.modpackDir)
         Assertions.assertEquals("1.16.5", packConfig.minecraftVersion)
         Assertions.assertEquals("Forge", packConfig.modloader)
         Assertions.assertEquals("36.1.2", packConfig.modloaderVersion)
         packConfig = PackConfig()
         check = configurationHandler.checkConfiguration(
-            File("src/jvmTest/resources/testresources/spcconfs/serverpackcreator.conf"),
+            File("src/test/resources/testresources/spcconfs/serverpackcreator.conf"),
             packConfig
         )
         Assertions.assertTrue(check.allChecksPassed)
@@ -456,7 +456,7 @@ internal class ConfigurationHandlerTest {
         Assertions.assertTrue(check.serverIconChecksPassed)
         Assertions.assertTrue(check.serverPropertiesChecksPassed)
         Assertions.assertTrue(check.modloaderVersionChecksPassed)
-        Assertions.assertEquals("src/jvmTest/resources/forge_tests", packConfig.modpackDir)
+        Assertions.assertEquals("src/test/resources/forge_tests", packConfig.modpackDir)
         Assertions.assertEquals("1.16.5", packConfig.minecraftVersion)
         Assertions.assertEquals("Forge", packConfig.modloader)
         Assertions.assertEquals("36.1.2", packConfig.modloaderVersion)
@@ -497,7 +497,7 @@ internal class ConfigurationHandlerTest {
         inclusions.add(InclusionSpecification("scripts"))
         inclusions.add(InclusionSpecification("seeds"))
         inclusions.add(InclusionSpecification("defaultconfigs"))
-        packConfig.modpackDir = "src/jvmTest/resources/forge_tests"
+        packConfig.modpackDir = "src/test/resources/forge_tests"
         packConfig.setClientMods(clientMods)
         packConfig.setInclusions(inclusions)
         packConfig.isServerIconInclusionDesired = true
@@ -519,7 +519,7 @@ internal class ConfigurationHandlerTest {
         Assertions.assertTrue(check.serverPropertiesChecksPassed)
         Assertions.assertTrue(check.modloaderVersionChecksPassed)
         Assertions.assertEquals(
-            "src/jvmTest/resources/forge_tests", packConfig.modpackDir
+            "src/test/resources/forge_tests", packConfig.modpackDir
         )
         Assertions.assertEquals("1.16.5", packConfig.minecraftVersion)
         Assertions.assertEquals("Forge", packConfig.modloader)
@@ -572,9 +572,9 @@ internal class ConfigurationHandlerTest {
 
     @Test
     fun checkZipArchiveTest() {
-        var check = configurationHandler.checkZipArchive(Paths.get("src/jvmTest/resources/testresources/Survive_Create_Prosper_4_valid.zip").toAbsolutePath().toString())
+        var check = configurationHandler.checkZipArchive(Paths.get("src/test/resources/testresources/Survive_Create_Prosper_4_valid.zip").toAbsolutePath().toString())
         Assertions.assertTrue(check.modpackChecksPassed)
-        check = configurationHandler.checkZipArchive(Paths.get("src/jvmTest/resources/testresources/Survive_Create_Prosper_4_invalid.zip").toAbsolutePath().toString())
+        check = configurationHandler.checkZipArchive(Paths.get("src/test/resources/testresources/Survive_Create_Prosper_4_invalid.zip").toAbsolutePath().toString())
         Assertions.assertFalse(check.modpackChecksPassed)
     }
 
@@ -632,7 +632,7 @@ internal class ConfigurationHandlerTest {
                 clientMods,
                 whitelist,
                 inclusions,
-                "src/jvmTest/resources/fabric_tests",
+                "src/test/resources/fabric_tests",
                 javaPath,
                 "1.16.5",
                 "Fabric",
@@ -703,7 +703,7 @@ internal class ConfigurationHandlerTest {
                 clientMods,
                 whitelist,
                 inclusions,
-                "src/jvmTest/resources/forge_tests",
+                "src/test/resources/forge_tests",
                 javaPath,
                 "1.16.5",
                 "Forge",
@@ -725,7 +725,7 @@ internal class ConfigurationHandlerTest {
     @Test
     fun writeConfigToFileModelTest() {
         val packConfig = PackConfig()
-        packConfig.modpackDir = "src/jvmTest/resources/forge_tests"
+        packConfig.modpackDir = "src/test/resources/forge_tests"
         packConfig.setClientMods(
             arrayListOf(
                 "AmbientSounds",
@@ -800,7 +800,7 @@ internal class ConfigurationHandlerTest {
     @Test
     fun printConfigModelTest() {
         val packConfig = PackConfig()
-        packConfig.modpackDir = "src/jvmTest/resources/forge_tests"
+        packConfig.modpackDir = "src/test/resources/forge_tests"
         packConfig.setClientMods(
             arrayListOf(
                 "AmbientSounds",
@@ -851,21 +851,21 @@ internal class ConfigurationHandlerTest {
         val packConfig = PackConfig()
         configurationHandler.updateConfigModelFromModrinthManifest(
             packConfig,
-            File("src/jvmTest/resources/testresources/modrinth/forge_modrinth.index.json")
+            File("src/test/resources/testresources/modrinth/forge_modrinth.index.json")
         )
         Assertions.assertEquals(packConfig.minecraftVersion, "1.18.2")
         Assertions.assertEquals(packConfig.modloader, "Forge")
         Assertions.assertEquals(packConfig.modloaderVersion, "40.1.48")
         configurationHandler.updateConfigModelFromModrinthManifest(
             packConfig,
-            File("src/jvmTest/resources/testresources/modrinth/fabric_modrinth.index.json")
+            File("src/test/resources/testresources/modrinth/fabric_modrinth.index.json")
         )
         Assertions.assertEquals(packConfig.minecraftVersion, "1.19")
         Assertions.assertEquals(packConfig.modloader, "Fabric")
         Assertions.assertEquals(packConfig.modloaderVersion, "0.14.8")
         configurationHandler.updateConfigModelFromModrinthManifest(
             packConfig,
-            File("src/jvmTest/resources/testresources/modrinth/quilt_modrinth.index.json")
+            File("src/test/resources/testresources/modrinth/quilt_modrinth.index.json")
         )
         Assertions.assertEquals(packConfig.minecraftVersion, "1.19")
         Assertions.assertEquals(packConfig.modloader, "Quilt")
@@ -878,14 +878,14 @@ internal class ConfigurationHandlerTest {
         val packConfig = PackConfig()
         configurationHandler.updateConfigModelFromCurseManifest(
             packConfig,
-            File("src/jvmTest/resources/testresources/curseforge/forge_manifest.json")
+            File("src/test/resources/testresources/curseforge/forge_manifest.json")
         )
         Assertions.assertEquals(packConfig.minecraftVersion, "1.16.5")
         Assertions.assertEquals(packConfig.modloader, "Forge")
         Assertions.assertEquals(packConfig.modloaderVersion, "36.0.1")
         configurationHandler.updateConfigModelFromCurseManifest(
             packConfig,
-            File("src/jvmTest/resources/testresources/curseforge/fabric_manifest.json")
+            File("src/test/resources/testresources/curseforge/fabric_manifest.json")
         )
         Assertions.assertEquals(packConfig.minecraftVersion, "1.18.2")
         Assertions.assertEquals(packConfig.modloader, "Fabric")
@@ -898,14 +898,14 @@ internal class ConfigurationHandlerTest {
         val packConfig = PackConfig()
         configurationHandler.updateConfigModelFromMinecraftInstance(
             packConfig,
-            File("src/jvmTest/resources/testresources/curseforge/forge_minecraftinstance.json")
+            File("src/test/resources/testresources/curseforge/forge_minecraftinstance.json")
         )
         Assertions.assertEquals(packConfig.minecraftVersion, "1.16.5")
         Assertions.assertEquals(packConfig.modloader, "Forge")
         Assertions.assertEquals(packConfig.modloaderVersion, "36.2.4")
         configurationHandler.updateConfigModelFromMinecraftInstance(
             packConfig,
-            File("src/jvmTest/resources/testresources/curseforge/fabric_minecraftinstance.json")
+            File("src/test/resources/testresources/curseforge/fabric_minecraftinstance.json")
         )
         Assertions.assertEquals(packConfig.minecraftVersion, "1.18.2")
         Assertions.assertEquals(packConfig.modloader, "Fabric")
@@ -919,14 +919,14 @@ internal class ConfigurationHandlerTest {
         val packConfig = PackConfig()
         configurationHandler.updateConfigModelFromConfigJson(
             packConfig,
-            File("src/jvmTest/resources/testresources/gdlauncher/fabric_config.json")
+            File("src/test/resources/testresources/gdlauncher/fabric_config.json")
         )
         Assertions.assertEquals(packConfig.minecraftVersion, "1.18.2")
         Assertions.assertEquals(packConfig.modloader, "Fabric")
         Assertions.assertEquals(packConfig.modloaderVersion, "0.14.8")
         configurationHandler.updateConfigModelFromConfigJson(
             packConfig,
-            File("src/jvmTest/resources/testresources/gdlauncher/forge_config.json")
+            File("src/test/resources/testresources/gdlauncher/forge_config.json")
         )
         Assertions.assertEquals(packConfig.minecraftVersion, "1.18.2")
         Assertions.assertEquals(packConfig.modloader, "Forge")
@@ -940,21 +940,21 @@ internal class ConfigurationHandlerTest {
         val packConfig = PackConfig()
         configurationHandler.updateConfigModelFromMMCPack(
             packConfig,
-            File("src/jvmTest/resources/testresources/multimc/fabric_mmc-pack.json")
+            File("src/test/resources/testresources/multimc/fabric_mmc-pack.json")
         )
         Assertions.assertEquals(packConfig.minecraftVersion, "1.18.1")
         Assertions.assertEquals(packConfig.modloader, "Fabric")
         Assertions.assertEquals(packConfig.modloaderVersion, "0.12.12")
         configurationHandler.updateConfigModelFromMMCPack(
             packConfig,
-            File("src/jvmTest/resources/testresources/multimc/forge_mmc-pack.json")
+            File("src/test/resources/testresources/multimc/forge_mmc-pack.json")
         )
         Assertions.assertEquals(packConfig.minecraftVersion, "1.16.5")
         Assertions.assertEquals(packConfig.modloader, "Forge")
         Assertions.assertEquals(packConfig.modloaderVersion, "36.2.23")
         configurationHandler.updateConfigModelFromMMCPack(
             packConfig,
-            File("src/jvmTest/resources/testresources/multimc/quilt_mmc-pack.json")
+            File("src/test/resources/testresources/multimc/quilt_mmc-pack.json")
         )
         Assertions.assertEquals(packConfig.minecraftVersion, "1.19")
         Assertions.assertEquals(packConfig.modloader, "Quilt")
@@ -967,13 +967,13 @@ internal class ConfigurationHandlerTest {
     fun updateDestinationFromInstanceCfgTest() {
         Assertions.assertEquals(
             configurationHandler.updateDestinationFromInstanceCfg(
-                File("src/jvmTest/resources/testresources/multimc/better_mc_instance.cfg")
+                File("src/test/resources/testresources/multimc/better_mc_instance.cfg")
             ),
             "Better Minecraft [FABRIC] - 1.18.1"
         )
         Assertions.assertEquals(
             configurationHandler.updateDestinationFromInstanceCfg(
-                File("src/jvmTest/resources/testresources/multimc/all_the_mods_instance.cfg")
+                File("src/test/resources/testresources/multimc/all_the_mods_instance.cfg")
             ),
             "All the Mods 6 - ATM6 - 1.16.5"
         )
@@ -981,7 +981,7 @@ internal class ConfigurationHandlerTest {
 
     @Test
     fun suggestInclusionsTest() {
-        val dirs: List<InclusionSpecification> = configurationHandler.suggestInclusions("src/jvmTest/resources/fabric_tests")
+        val dirs: List<InclusionSpecification> = configurationHandler.suggestInclusions("src/test/resources/fabric_tests")
         dirs.any { inclusion -> inclusion.source == "config" }
         dirs.any { inclusion -> inclusion.source == "defaultconfigs" }
         dirs.any { inclusion -> inclusion.source == "mods" }
@@ -995,13 +995,13 @@ internal class ConfigurationHandlerTest {
     fun directoriesInModpackZipTest() {
         var entries: List<String?> = configurationHandler.getDirectoriesInModpackZipBaseDirectory(
             File(
-                "src/jvmTest/resources/testresources/Survive_Create_Prosper_4_invalid.zip"
+                "src/test/resources/testresources/Survive_Create_Prosper_4_invalid.zip"
             )
         )
         Assertions.assertEquals(1, entries.size)
         Assertions.assertTrue(entries.contains("overrides/"))
         entries = configurationHandler.getDirectoriesInModpackZipBaseDirectory(
-            File("src/jvmTest/resources/testresources/Survive_Create_Prosper_4_valid.zip")
+            File("src/test/resources/testresources/Survive_Create_Prosper_4_valid.zip")
         )
         Assertions.assertTrue(entries.size > 1)
         Assertions.assertTrue(entries.contains("mods/"))
@@ -1015,7 +1015,7 @@ internal class ConfigurationHandlerTest {
             configurationHandler
                 .getFilesInModpackZip(
                     File(
-                        "src/jvmTest/resources/testresources/Survive_Create_Prosper_4_invalid.zip"
+                        "src/test/resources/testresources/Survive_Create_Prosper_4_invalid.zip"
                     )
                 )
                 .isNotEmpty()
@@ -1024,7 +1024,7 @@ internal class ConfigurationHandlerTest {
             configurationHandler
                 .getFilesInModpackZip(
                     File(
-                        "src/jvmTest/resources/testresources/Survive_Create_Prosper_4_valid.zip"
+                        "src/test/resources/testresources/Survive_Create_Prosper_4_valid.zip"
                     )
                 )
                 .isNotEmpty()
@@ -1033,7 +1033,7 @@ internal class ConfigurationHandlerTest {
             configurationHandler
                 .getDirectoriesInModpackZip(
                     File(
-                        "src/jvmTest/resources/testresources/Survive_Create_Prosper_4_invalid.zip"
+                        "src/test/resources/testresources/Survive_Create_Prosper_4_invalid.zip"
                     )
                 )
                 .isNotEmpty()
@@ -1042,7 +1042,7 @@ internal class ConfigurationHandlerTest {
             configurationHandler
                 .getDirectoriesInModpackZip(
                     File(
-                        "src/jvmTest/resources/testresources/Survive_Create_Prosper_4_valid.zip"
+                        "src/test/resources/testresources/Survive_Create_Prosper_4_valid.zip"
                     )
                 )
                 .isNotEmpty()
@@ -1051,7 +1051,7 @@ internal class ConfigurationHandlerTest {
             configurationHandler
                 .getAllFilesAndDirectoriesInModpackZip(
                     File(
-                        "src/jvmTest/resources/testresources/Survive_Create_Prosper_4_invalid.zip"
+                        "src/test/resources/testresources/Survive_Create_Prosper_4_invalid.zip"
                     )
                 )
                 .isNotEmpty()
@@ -1060,7 +1060,7 @@ internal class ConfigurationHandlerTest {
             configurationHandler
                 .getAllFilesAndDirectoriesInModpackZip(
                     File(
-                        "src/jvmTest/resources/testresources/Survive_Create_Prosper_4_valid.zip"
+                        "src/test/resources/testresources/Survive_Create_Prosper_4_valid.zip"
                     )
                 )
                 .isNotEmpty()
diff --git a/serverpackcreator-api/src/jvmTest/kotlin/de/griefed/serverpackcreator/api/PackConfigTest.kt b/serverpackcreator-api/src/test/kotlin/de/griefed/serverpackcreator/api/PackConfigTest.kt
similarity index 95%
rename from serverpackcreator-api/src/jvmTest/kotlin/de/griefed/serverpackcreator/api/PackConfigTest.kt
rename to serverpackcreator-api/src/test/kotlin/de/griefed/serverpackcreator/api/PackConfigTest.kt
index 0e40461dc..e6b147669 100644
--- a/serverpackcreator-api/src/jvmTest/kotlin/de/griefed/serverpackcreator/api/PackConfigTest.kt
+++ b/serverpackcreator-api/src/test/kotlin/de/griefed/serverpackcreator/api/PackConfigTest.kt
@@ -35,8 +35,8 @@ class PackConfigTest internal constructor() {
     @Throws(FileNotFoundException::class, ParserConfigurationException::class)
     fun scriptSettingsTest() {
         val packConfig = PackConfig(
-            ApiWrapper.api(File("src/jvmTest/resources/serverpackcreator.properties")).utilities,
-            File("src/jvmTest/resources/testresources/spcconfs/scriptSettings.conf")
+            ApiWrapper.api(File("src/test/resources/serverpackcreator.properties")).utilities,
+            File("src/test/resources/testresources/spcconfs/scriptSettings.conf")
         )
         Assertions.assertEquals(
             packConfig.serverIconPath,
@@ -116,11 +116,11 @@ class PackConfigTest internal constructor() {
             Assertions.assertEquals((config.get("list") as ArrayList<String>).size, 4)
             Assertions.assertEquals(config.get("list") as ArrayList<String>, list)
         }
-        val apiProperties = ApiWrapper.api(File("src/jvmTest/resources/serverpackcreator.properties")).apiProperties
+        val apiProperties = ApiWrapper.api(File("src/test/resources/serverpackcreator.properties")).apiProperties
         val afterFile = File(apiProperties.homeDirectory,"after.conf")
         packConfig.save(afterFile, apiProperties)
         val after = PackConfig(
-            ApiWrapper.api(File("src/jvmTest/resources/serverpackcreator.properties")).utilities, afterFile
+            ApiWrapper.api(File("src/test/resources/serverpackcreator.properties")).utilities, afterFile
         )
         Assertions.assertEquals(after.serverIconPath, packConfig.serverIconPath)
         Assertions.assertEquals(after.serverPackSuffix, packConfig.serverPackSuffix)
diff --git a/serverpackcreator-api/src/jvmTest/kotlin/de/griefed/serverpackcreator/api/ServerPackHandlerTest.kt b/serverpackcreator-api/src/test/kotlin/de/griefed/serverpackcreator/api/ServerPackHandlerTest.kt
similarity index 93%
rename from serverpackcreator-api/src/jvmTest/kotlin/de/griefed/serverpackcreator/api/ServerPackHandlerTest.kt
rename to serverpackcreator-api/src/test/kotlin/de/griefed/serverpackcreator/api/ServerPackHandlerTest.kt
index e3f63c74f..7b951882c 100644
--- a/serverpackcreator-api/src/jvmTest/kotlin/de/griefed/serverpackcreator/api/ServerPackHandlerTest.kt
+++ b/serverpackcreator-api/src/test/kotlin/de/griefed/serverpackcreator/api/ServerPackHandlerTest.kt
@@ -11,20 +11,20 @@ import java.util.*
 
 internal class ServerPackHandlerTest {
     private val configurationHandler =
-        ApiWrapper.api(File("src/jvmTest/resources/serverpackcreator.properties")).configurationHandler
+        ApiWrapper.api(File("src/test/resources/serverpackcreator.properties")).configurationHandler
     private val serverPackHandler =
-        ApiWrapper.api(File("src/jvmTest/resources/serverpackcreator.properties")).serverPackHandler
+        ApiWrapper.api(File("src/test/resources/serverpackcreator.properties")).serverPackHandler
     private val versionMeta =
-        ApiWrapper.api(File("src/jvmTest/resources/serverpackcreator.properties")).versionMeta
+        ApiWrapper.api(File("src/test/resources/serverpackcreator.properties")).versionMeta
     private val apiProperties =
-        ApiWrapper.api(File("src/jvmTest/resources/serverpackcreator.properties")).apiProperties
+        ApiWrapper.api(File("src/test/resources/serverpackcreator.properties")).apiProperties
 
     init {
-        File("src/jvmTest/resources/custom_template.ps1").copyTo(
+        File("src/test/resources/custom_template.ps1").copyTo(
             File(apiProperties.serverFilesDirectory,"custom_template.ps1"),
             overwrite = true
         )
-        File("src/jvmTest/resources/custom_template.sh").copyTo(
+        File("src/test/resources/custom_template.sh").copyTo(
             File(apiProperties.serverFilesDirectory,"custom_template.sh"),
             overwrite = true
         )
@@ -35,7 +35,7 @@ internal class ServerPackHandlerTest {
     fun neoForgeTest() {
         val packConfig = PackConfig()
         configurationHandler.checkConfiguration(
-            File("src/jvmTest/resources/testresources/spcconfs/serverpackcreator_neoforge.conf"),
+            File("src/test/resources/testresources/spcconfs/serverpackcreator_neoforge.conf"),
             packConfig
         )
         val neoForgeDir = serverPackHandler.getServerPackDestination(packConfig)
@@ -64,7 +64,7 @@ internal class ServerPackHandlerTest {
         val forgeZip = ZipFile(File(apiProperties.serverPacksDirectory, "forge_tests_server_pack.zip"))
         apiProperties.scriptTemplates = TreeSet(apiProperties.defaultScriptTemplates())
         configurationHandler.checkConfiguration(
-            File("src/jvmTest/resources/testresources/spcconfs/serverpackcreator.conf"),
+            File("src/test/resources/testresources/spcconfs/serverpackcreator.conf"),
             packConfig
         )
         val forgeDir = serverPackHandler.getServerPackDestination(packConfig)
@@ -73,7 +73,7 @@ internal class ServerPackHandlerTest {
         Assertions.assertTrue(File(forgeDir, "config").isDirectory)
         Assertions.assertTrue(File(forgeDir, "defaultconfigs").isDirectory)
         val modsDir = File(forgeDir, "mods")
-        Assertions.assertTrue(modsDir.isDirectory)
+        Assertions.assertTrue(modsDir.isDirectory, modsDir.absolutePath)
         Assertions.assertFalse(File(modsDir, "Ping-1.19-1.9.1.jar").isFile)
         Assertions.assertTrue(File(modsDir, "Ping-Wheel-1.6.1-forge-1.20.1.jar").isFile)
         Assertions.assertTrue(File(forgeDir, "scripts").isDirectory)
@@ -173,7 +173,7 @@ internal class ServerPackHandlerTest {
         Assertions.assertTrue(File(forgeDir,"some/place/bla.txt").isFile)
         Assertions.assertTrue(File(forgeDir,"some.file").isFile)
         try {
-            File("src/jvmTest/resources/testresources/server_pack.zip").copyTo(
+            File("src/test/resources/testresources/server_pack.zip").copyTo(
                 File(apiProperties.serverPacksDirectory,"forge_tests_server_pack.zip"),
                 true
             )
@@ -237,7 +237,7 @@ internal class ServerPackHandlerTest {
     fun fabricTest() {
         val packConfig = PackConfig()
         configurationHandler.checkConfiguration(
-            File("src/jvmTest/resources/testresources/spcconfs/serverpackcreator_fabric.conf"),
+            File("src/test/resources/testresources/spcconfs/serverpackcreator_fabric.conf"),
             packConfig
         )
         val fabricDir = serverPackHandler.getServerPackDestination(packConfig)
@@ -260,7 +260,7 @@ internal class ServerPackHandlerTest {
     fun quiltTest() {
         val packConfig = PackConfig()
         configurationHandler.checkConfiguration(
-            File("src/jvmTest/resources/testresources/spcconfs/serverpackcreator_quilt.conf"),
+            File("src/test/resources/testresources/spcconfs/serverpackcreator_quilt.conf"),
             packConfig
         )
         val quiltDir = serverPackHandler.getServerPackDestination(packConfig)
@@ -283,7 +283,7 @@ internal class ServerPackHandlerTest {
     fun legacyFabricTest() {
         val packConfig = PackConfig()
         configurationHandler.checkConfiguration(
-            File("src/jvmTest/resources/testresources/spcconfs/serverpackcreator_legacyfabric.conf"),
+            File("src/test/resources/testresources/spcconfs/serverpackcreator_legacyfabric.conf"),
             packConfig
         )
         val legacyFabricDir = serverPackHandler.getServerPackDestination(packConfig)
diff --git a/serverpackcreator-api/src/jvmTest/kotlin/de/griefed/serverpackcreator/api/common/BooleanUtilitiesTest.kt b/serverpackcreator-api/src/test/kotlin/de/griefed/serverpackcreator/api/common/BooleanUtilitiesTest.kt
similarity index 93%
rename from serverpackcreator-api/src/jvmTest/kotlin/de/griefed/serverpackcreator/api/common/BooleanUtilitiesTest.kt
rename to serverpackcreator-api/src/test/kotlin/de/griefed/serverpackcreator/api/common/BooleanUtilitiesTest.kt
index bb4ac34b2..b2706777c 100644
--- a/serverpackcreator-api/src/jvmTest/kotlin/de/griefed/serverpackcreator/api/common/BooleanUtilitiesTest.kt
+++ b/serverpackcreator-api/src/test/kotlin/de/griefed/serverpackcreator/api/common/BooleanUtilitiesTest.kt
@@ -8,7 +8,7 @@ import java.io.File
 
 class BooleanUtilitiesTest internal constructor() {
     private var booleanUtilities: BooleanUtilities =
-        ApiWrapper.api(File("src/jvmTest/resources/serverpackcreator.properties")).booleanUtilities
+        ApiWrapper.api(File("src/test/resources/serverpackcreator.properties")).booleanUtilities
 
     @Test
     fun convertToBooleanTestTrue() {
diff --git a/serverpackcreator-api/src/jvmTest/kotlin/de/griefed/serverpackcreator/api/common/FileUtilitiesTest.kt b/serverpackcreator-api/src/test/kotlin/de/griefed/serverpackcreator/api/common/FileUtilitiesTest.kt
similarity index 61%
rename from serverpackcreator-api/src/jvmTest/kotlin/de/griefed/serverpackcreator/api/common/FileUtilitiesTest.kt
rename to serverpackcreator-api/src/test/kotlin/de/griefed/serverpackcreator/api/common/FileUtilitiesTest.kt
index 87f61e71b..665c76757 100644
--- a/serverpackcreator-api/src/jvmTest/kotlin/de/griefed/serverpackcreator/api/common/FileUtilitiesTest.kt
+++ b/serverpackcreator-api/src/test/kotlin/de/griefed/serverpackcreator/api/common/FileUtilitiesTest.kt
@@ -10,25 +10,25 @@ import java.io.IOException
 
 class FileUtilitiesTest internal constructor() {
     private var fileUtilities: FileUtilities =
-        ApiWrapper.api(File("src/jvmTest/resources/serverpackcreator.properties")).fileUtilities
+        ApiWrapper.api(File("src/test/resources/serverpackcreator.properties")).fileUtilities
 
     @Test
     fun unzipArchiveTest() {
-        val modpackDir = "src/jvmTest/resources/curseforge_tests"
-        val zipFile = "src/jvmTest/resources/curseforge_tests/modpack.zip"
+        val modpackDir = "src/test/resources/curseforge_tests"
+        val zipFile = "src/test/resources/curseforge_tests/modpack.zip"
         fileUtilities.unzipArchive(zipFile, modpackDir)
         Assertions.assertTrue(
-            File("src/jvmTest/resources/curseforge_tests/manifest.json").exists()
+            File("src/test/resources/curseforge_tests/manifest.json").exists()
         )
         Assertions.assertTrue(
-            File("src/jvmTest/resources/curseforge_tests/modlist.html").exists()
+            File("src/test/resources/curseforge_tests/modlist.html").exists()
         )
         Assertions.assertTrue(
-            File("src/jvmTest/resources/curseforge_tests/overrides").isDirectory
+            File("src/test/resources/curseforge_tests/overrides").isDirectory
         )
-        File("src/jvmTest/resources/curseforge_tests/manifest.json").deleteQuietly()
-        File("src/jvmTest/resources/curseforge_tests/modlist.html").deleteQuietly()
-        File("src/jvmTest/resources/curseforge_tests/overrides").deleteQuietly()
+        File("src/test/resources/curseforge_tests/manifest.json").deleteQuietly()
+        File("src/test/resources/curseforge_tests/modlist.html").deleteQuietly()
+        File("src/test/resources/curseforge_tests/overrides").deleteQuietly()
     }
 
     @Test
diff --git a/serverpackcreator-api/src/jvmTest/kotlin/de/griefed/serverpackcreator/api/common/JarUtilitiesTest.kt b/serverpackcreator-api/src/test/kotlin/de/griefed/serverpackcreator/api/common/JarUtilitiesTest.kt
similarity index 95%
rename from serverpackcreator-api/src/jvmTest/kotlin/de/griefed/serverpackcreator/api/common/JarUtilitiesTest.kt
rename to serverpackcreator-api/src/test/kotlin/de/griefed/serverpackcreator/api/common/JarUtilitiesTest.kt
index f08b77f8b..40a3d4acb 100644
--- a/serverpackcreator-api/src/jvmTest/kotlin/de/griefed/serverpackcreator/api/common/JarUtilitiesTest.kt
+++ b/serverpackcreator-api/src/test/kotlin/de/griefed/serverpackcreator/api/common/JarUtilitiesTest.kt
@@ -8,7 +8,7 @@ import java.io.File
 
 class JarUtilitiesTest internal constructor() {
     private var jarUtilities: JarUtilities =
-        ApiWrapper.api(File("src/jvmTest/resources/serverpackcreator.properties")).jarUtilities
+        ApiWrapper.api(File("src/test/resources/serverpackcreator.properties")).jarUtilities
 
     @Test
     fun copyFileFromJarTest() {
diff --git a/serverpackcreator-api/src/jvmTest/kotlin/de/griefed/serverpackcreator/api/common/ListUtilitiesTest.kt b/serverpackcreator-api/src/test/kotlin/de/griefed/serverpackcreator/api/common/ListUtilitiesTest.kt
similarity index 98%
rename from serverpackcreator-api/src/jvmTest/kotlin/de/griefed/serverpackcreator/api/common/ListUtilitiesTest.kt
rename to serverpackcreator-api/src/test/kotlin/de/griefed/serverpackcreator/api/common/ListUtilitiesTest.kt
index d727f4643..71ebafed1 100644
--- a/serverpackcreator-api/src/jvmTest/kotlin/de/griefed/serverpackcreator/api/common/ListUtilitiesTest.kt
+++ b/serverpackcreator-api/src/test/kotlin/de/griefed/serverpackcreator/api/common/ListUtilitiesTest.kt
@@ -8,7 +8,7 @@ import java.io.File
 
 class ListUtilitiesTest internal constructor() {
     private var listUtilities: ListUtilities =
-        ApiWrapper.api(File("src/jvmTest/resources/serverpackcreator.properties")).listUtilities
+        ApiWrapper.api(File("src/test/resources/serverpackcreator.properties")).listUtilities
 
     @Suppress("SpellCheckingInspection")
     @Test
diff --git a/serverpackcreator-api/src/jvmTest/kotlin/de/griefed/serverpackcreator/api/common/StringUtilitiesTest.kt b/serverpackcreator-api/src/test/kotlin/de/griefed/serverpackcreator/api/common/StringUtilitiesTest.kt
similarity index 86%
rename from serverpackcreator-api/src/jvmTest/kotlin/de/griefed/serverpackcreator/api/common/StringUtilitiesTest.kt
rename to serverpackcreator-api/src/test/kotlin/de/griefed/serverpackcreator/api/common/StringUtilitiesTest.kt
index 6207de050..911fe1e30 100644
--- a/serverpackcreator-api/src/jvmTest/kotlin/de/griefed/serverpackcreator/api/common/StringUtilitiesTest.kt
+++ b/serverpackcreator-api/src/test/kotlin/de/griefed/serverpackcreator/api/common/StringUtilitiesTest.kt
@@ -8,7 +8,7 @@ import java.io.File
 
 class StringUtilitiesTest internal constructor() {
     private var stringUtilities: StringUtilities =
-        ApiWrapper.api(File("src/jvmTest/resources/serverpackcreator.properties")).stringUtilities
+        ApiWrapper.api(File("src/test/resources/serverpackcreator.properties")).stringUtilities
 
     @Test
     fun buildStringTest() {
diff --git a/serverpackcreator-api/src/jvmTest/kotlin/de/griefed/serverpackcreator/api/common/SystemUtilitiesTest.kt b/serverpackcreator-api/src/test/kotlin/de/griefed/serverpackcreator/api/common/SystemUtilitiesTest.kt
similarity index 89%
rename from serverpackcreator-api/src/jvmTest/kotlin/de/griefed/serverpackcreator/api/common/SystemUtilitiesTest.kt
rename to serverpackcreator-api/src/test/kotlin/de/griefed/serverpackcreator/api/common/SystemUtilitiesTest.kt
index de428b64f..f70eb3d15 100644
--- a/serverpackcreator-api/src/jvmTest/kotlin/de/griefed/serverpackcreator/api/common/SystemUtilitiesTest.kt
+++ b/serverpackcreator-api/src/test/kotlin/de/griefed/serverpackcreator/api/common/SystemUtilitiesTest.kt
@@ -8,7 +8,7 @@ import java.io.File
 
 class SystemUtilitiesTest internal constructor() {
     private var systemUtilities: SystemUtilities =
-        ApiWrapper.api(File("src/jvmTest/resources/serverpackcreator.properties")).systemUtilities
+        ApiWrapper.api(File("src/test/resources/serverpackcreator.properties")).systemUtilities
 
     @Test
     fun acquireJavaPathFromSystemTest() {
diff --git a/serverpackcreator-api/src/jvmTest/kotlin/de/griefed/serverpackcreator/api/common/WebUtilitiesTest.kt b/serverpackcreator-api/src/test/kotlin/de/griefed/serverpackcreator/api/common/WebUtilitiesTest.kt
similarity index 93%
rename from serverpackcreator-api/src/jvmTest/kotlin/de/griefed/serverpackcreator/api/common/WebUtilitiesTest.kt
rename to serverpackcreator-api/src/test/kotlin/de/griefed/serverpackcreator/api/common/WebUtilitiesTest.kt
index ff092411a..cfdfc155d 100644
--- a/serverpackcreator-api/src/jvmTest/kotlin/de/griefed/serverpackcreator/api/common/WebUtilitiesTest.kt
+++ b/serverpackcreator-api/src/test/kotlin/de/griefed/serverpackcreator/api/common/WebUtilitiesTest.kt
@@ -10,7 +10,7 @@ import java.net.URI
 
 class WebUtilitiesTest internal constructor() {
     private var webUtilities: WebUtilities =
-        ApiWrapper.api(File("src/jvmTest/resources/serverpackcreator.properties")).webUtilities
+        ApiWrapper.api(File("src/test/resources/serverpackcreator.properties")).webUtilities
 
     @Suppress("SpellCheckingInspection")
     @Test
diff --git a/serverpackcreator-api/src/test/kotlin/de/griefed/serverpackcreator/api/modscanning/ModScannerTest.kt b/serverpackcreator-api/src/test/kotlin/de/griefed/serverpackcreator/api/modscanning/ModScannerTest.kt
new file mode 100644
index 000000000..94aacb54a
--- /dev/null
+++ b/serverpackcreator-api/src/test/kotlin/de/griefed/serverpackcreator/api/modscanning/ModScannerTest.kt
@@ -0,0 +1,229 @@
+package de.griefed.serverpackcreator.api.modscanning
+
+import de.griefed.serverpackcreator.api.ApiWrapper
+import de.griefed.serverpackcreator.api.utilities.common.FilterType
+import de.griefed.serverpackcreator.api.utilities.common.filteredWalk
+import org.junit.jupiter.api.Assertions
+import org.junit.jupiter.api.Test
+import java.io.File
+
+class ModScannerTest internal constructor() {
+    private var modScanner: ModScanner =
+        ApiWrapper.api(File("src/test/resources/serverpackcreator.properties")).modScanner
+
+    @Suppress("SpellCheckingInspection")
+    @Test
+    fun tomlTest() {
+        val files: Collection<File> =
+            File("src/test/resources/forge_tests/mods").filteredWalk(listOf("jar"), FilterType.ENDS_WITH)
+
+        val excluded: List<File> = modScanner.forgeTomlScanner.scan(files).toList()
+        Assertions.assertTrue(
+            excluded.contains(File("src/test/resources/forge_tests/mods/aaaaa.jar"))
+        )
+        Assertions.assertTrue(
+            excluded.contains(File("src/test/resources/forge_tests/mods/bbbbb.jar"))
+        )
+        Assertions.assertTrue(
+            excluded.contains(File("src/test/resources/forge_tests/mods/ccccc.jar"))
+        )
+        Assertions.assertTrue(
+            excluded.contains(File("src/test/resources/forge_tests/mods/ddddd.jar"))
+        )
+        Assertions.assertTrue(
+            excluded.contains(File("src/test/resources/forge_tests/mods/fffff.jar"))
+        )
+        Assertions.assertTrue(
+            excluded.contains(File("src/test/resources/forge_tests/mods/ggggg.jar"))
+        )
+        Assertions.assertTrue(
+            excluded.contains(File("src/test/resources/forge_tests/mods/hhhhh.jar"))
+        )
+        Assertions.assertTrue(
+            excluded.contains(File("src/test/resources/forge_tests/mods/iiiii.jar"))
+        )
+        Assertions.assertTrue(
+            excluded.contains(File("src/test/resources/forge_tests/mods/jjjjj.jar"))
+        )
+        Assertions.assertTrue(
+            excluded.contains(File("src/test/resources/forge_tests/mods/kkkkk.jar"))
+        )
+        Assertions.assertTrue(
+            excluded.contains(File("src/test/resources/forge_tests/mods/lllll.jar"))
+        )
+        Assertions.assertTrue(
+            excluded.contains(File("src/test/resources/forge_tests/mods/nnnnn.jar"))
+        )
+        Assertions.assertTrue(
+            excluded.contains(File("src/test/resources/forge_tests/mods/ppppp.jar"))
+        )
+        Assertions.assertFalse(
+            excluded.contains(File("src/test/resources/forge_tests/mods/qqqqq.jar"))
+        )
+        Assertions.assertFalse(
+            excluded.contains(File("src/test/resources/forge_tests/mods/rrrrr.jar"))
+        )
+        Assertions.assertFalse(
+            excluded.contains(File("src/test/resources/forge_tests/mods/testmod.jar"))
+        )
+        Assertions.assertFalse(
+            excluded.contains(File("src/test/resources/forge_tests/mods/uuuuu.jar"))
+        )
+        Assertions.assertFalse(
+            excluded.contains(File("src/test/resources/forge_tests/mods/vvvvv.jar"))
+        )
+        Assertions.assertFalse(
+            excluded.contains(File("src/test/resources/forge_tests/mods/wwwww.jar"))
+        )
+        Assertions.assertFalse(
+            excluded.contains(File("src/test/resources/forge_tests/mods/xxxxx.jar"))
+        )
+        Assertions.assertFalse(
+            excluded.contains(File("src/test/resources/forge_tests/mods/yyyyy.jar"))
+        )
+        Assertions.assertFalse(
+            excluded.contains(File("src/test/resources/forge_tests/mods/zzzzz.jar"))
+        )
+    }
+
+    @Suppress("SpellCheckingInspection")
+    @Test
+    fun fabricTest() {
+        val files: Collection<File> =
+            File("src/test/resources/fabric_tests/mods").filteredWalk(listOf("jar"), FilterType.ENDS_WITH)
+
+        val excluded: List<File> = modScanner.fabricScanner.scan(files).toList()
+        Assertions.assertTrue(
+            excluded.contains(File("src/test/resources/fabric_tests/mods/aaaaa.jar"))
+        )
+        Assertions.assertTrue(
+            excluded.contains(File("src/test/resources/fabric_tests/mods/bbbbb.jar"))
+        )
+        Assertions.assertTrue(
+            excluded.contains(File("src/test/resources/fabric_tests/mods/ccccc.jar"))
+        )
+        Assertions.assertTrue(
+            excluded.contains(File("src/test/resources/fabric_tests/mods/ddddd.jar"))
+        )
+        Assertions.assertTrue(
+            excluded.contains(File("src/test/resources/fabric_tests/mods/eeeee.jar"))
+        )
+        Assertions.assertTrue(
+            excluded.contains(File("src/test/resources/fabric_tests/mods/fffff.jar"))
+        )
+        Assertions.assertTrue(
+            excluded.contains(File("src/test/resources/fabric_tests/mods/ggggg.jar"))
+        )
+        Assertions.assertTrue(
+            excluded.contains(File("src/test/resources/fabric_tests/mods/hhhhh.jar"))
+        )
+        Assertions.assertFalse(
+            excluded.contains(File("src/test/resources/fabric_tests/mods/iiiii.jar"))
+        )
+        Assertions.assertFalse(
+            excluded.contains(File("src/test/resources/fabric_tests/mods/jjjjj.jar"))
+        )
+        Assertions.assertFalse(
+            excluded.contains(File("src/test/resources/fabric_tests/mods/kkkkk.jar"))
+        )
+        Assertions.assertFalse(
+            excluded.contains(File("src/test/resources/fabric_tests/mods/lllll.jar"))
+        )
+        Assertions.assertFalse(
+            excluded.contains(File("src/test/resources/fabric_tests/mods/mmmmm.jar"))
+        )
+        Assertions.assertFalse(
+            excluded.contains(File("src/test/resources/fabric_tests/mods/nnnnn.jar"))
+        )
+        Assertions.assertFalse(
+            excluded.contains(File("src/test/resources/fabric_tests/mods/ooooo.jar"))
+        )
+        Assertions.assertFalse(
+            excluded.contains(File("src/test/resources/fabric_tests/mods/ppppp.jar"))
+        )
+        Assertions.assertFalse(
+            excluded.contains(File("src/test/resources/fabric_tests/mods/qqqqq.jar"))
+        )
+        Assertions.assertFalse(
+            excluded.contains(File("src/test/resources/fabric_tests/mods/testmod.jar"))
+        )
+    }
+
+    @Suppress("SpellCheckingInspection")
+    @Test
+    fun quiltTest() {
+        val files: Collection<File> =
+            File("src/test/resources/quilt_tests/mods").filteredWalk(listOf("jar"), FilterType.ENDS_WITH)
+
+        val excluded: List<File> = modScanner.quiltScanner.scan(files).toList()
+        Assertions.assertTrue(
+            excluded.contains(File("src/test/resources/quilt_tests/mods/aaaaa.jar"))
+        )
+        Assertions.assertTrue(
+            excluded.contains(File("src/test/resources/quilt_tests/mods/bbbbb.jar"))
+        )
+        Assertions.assertFalse(
+            excluded.contains(File("src/test/resources/quilt_tests/mods/testmod.jar"))
+        )
+    }
+
+    @Suppress("SpellCheckingInspection")
+    @Test
+    fun annotationTest() {
+        val files: Collection<File> =
+            File("src/test/resources/forge_old/mods").filteredWalk(listOf("jar"), FilterType.ENDS_WITH)
+
+        val excluded: List<File> = modScanner.forgeAnnotationScanner.scan(files).toList()
+        Assertions.assertTrue(
+            excluded.contains(File("src/test/resources/forge_old/mods/aaaaa.jar"))
+        )
+        Assertions.assertTrue(
+            excluded.contains(File("src/test/resources/forge_old/mods/bbbbb.jar"))
+        )
+        Assertions.assertTrue(
+            excluded.contains(File("src/test/resources/forge_old/mods/ccccc.jar"))
+        )
+        Assertions.assertTrue(
+            excluded.contains(File("src/test/resources/forge_old/mods/ddddd.jar"))
+        )
+        Assertions.assertTrue(
+            excluded.contains(File("src/test/resources/forge_old/mods/eeeee.jar"))
+        )
+        Assertions.assertTrue(
+            excluded.contains(File("src/test/resources/forge_old/mods/fffff.jar"))
+        )
+        Assertions.assertTrue(
+            excluded.contains(File("src/test/resources/forge_old/mods/ggggg.jar"))
+        )
+        Assertions.assertTrue(
+            excluded.contains(File("src/test/resources/forge_old/mods/hhhhh.jar"))
+        )
+        Assertions.assertTrue(
+            excluded.contains(File("src/test/resources/forge_old/mods/iiiii.jar"))
+        )
+        Assertions.assertTrue(
+            excluded.contains(File("src/test/resources/forge_old/mods/jjjjj.jar"))
+        )
+        Assertions.assertTrue(
+            excluded.contains(File("src/test/resources/forge_old/mods/kkkkk.jar"))
+        )
+        Assertions.assertFalse(
+            excluded.contains(File("src/test/resources/forge_old/mods/lllll.jar"))
+        )
+        Assertions.assertFalse(
+            excluded.contains(File("src/test/resources/forge_old/mods/mmmmm.jar"))
+        )
+        Assertions.assertFalse(
+            excluded.contains(File("src/test/resources/forge_old/mods/nnnnn.jar"))
+        )
+        Assertions.assertFalse(
+            excluded.contains(File("src/test/resources/forge_old/mods/ooooo.jar"))
+        )
+        Assertions.assertFalse(
+            excluded.contains(File("src/test/resources/forge_old/mods/ppppp.jar"))
+        )
+        Assertions.assertFalse(
+            excluded.contains(File("src/test/resources/forge_old/mods/qqqqq.jar"))
+        )
+    }
+}
\ No newline at end of file
diff --git a/serverpackcreator-api/src/jvmTest/kotlin/de/griefed/serverpackcreator/api/versionmeta/VersionMetaTest.kt b/serverpackcreator-api/src/test/kotlin/de/griefed/serverpackcreator/api/versionmeta/VersionMetaTest.kt
similarity index 99%
rename from serverpackcreator-api/src/jvmTest/kotlin/de/griefed/serverpackcreator/api/versionmeta/VersionMetaTest.kt
rename to serverpackcreator-api/src/test/kotlin/de/griefed/serverpackcreator/api/versionmeta/VersionMetaTest.kt
index e36cca63b..fa65ed391 100644
--- a/serverpackcreator-api/src/jvmTest/kotlin/de/griefed/serverpackcreator/api/versionmeta/VersionMetaTest.kt
+++ b/serverpackcreator-api/src/test/kotlin/de/griefed/serverpackcreator/api/versionmeta/VersionMetaTest.kt
@@ -11,7 +11,7 @@ import javax.xml.parsers.ParserConfigurationException
 
 class VersionMetaTest {
     private val versionMeta: VersionMeta =
-        ApiWrapper.api(File("src/jvmTest/resources/serverpackcreator.properties")).versionMeta
+        ApiWrapper.api(File("src/test/resources/serverpackcreator.properties")).versionMeta
 
     @Test
     @Throws(IOException::class, ParserConfigurationException::class, SAXException::class)
diff --git a/serverpackcreator-api/src/jvmTest/resources/application.properties b/serverpackcreator-api/src/test/resources/application.properties
similarity index 92%
rename from serverpackcreator-api/src/jvmTest/resources/application.properties
rename to serverpackcreator-api/src/test/resources/application.properties
index 1e741233a..ef1acd9f7 100644
--- a/serverpackcreator-api/src/jvmTest/resources/application.properties
+++ b/serverpackcreator-api/src/test/resources/application.properties
@@ -21,4 +21,4 @@ spring.transaction.default-timeout=3600
 spring.datasource.tomcat.max-active=50
 spring.datasource.tomcat.max-idle=15
 spring.datasource.tomcat.min-idle=8
-spring.config.import=classpath:application.properties,classpath:serverpackcreator.properties,file:./src/jvmTest/resources/serverpackcreator.properties
\ No newline at end of file
+spring.config.import=classpath:application.properties,classpath:serverpackcreator.properties,file:./src/test/resources/serverpackcreator.properties
\ No newline at end of file
diff --git a/serverpackcreator-api/src/jvmTest/resources/curseforge_tests/modpack.zip b/serverpackcreator-api/src/test/resources/curseforge_tests/modpack.zip
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/curseforge_tests/modpack.zip
rename to serverpackcreator-api/src/test/resources/curseforge_tests/modpack.zip
diff --git a/serverpackcreator-api/src/jvmTest/resources/custom_template.ps1 b/serverpackcreator-api/src/test/resources/custom_template.ps1
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/custom_template.ps1
rename to serverpackcreator-api/src/test/resources/custom_template.ps1
diff --git a/serverpackcreator-api/src/jvmTest/resources/custom_template.sh b/serverpackcreator-api/src/test/resources/custom_template.sh
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/custom_template.sh
rename to serverpackcreator-api/src/test/resources/custom_template.sh
diff --git a/serverpackcreator-api/src/jvmTest/resources/fabric_tests/config/testfile.txt b/serverpackcreator-api/src/test/resources/fabric_tests/config/testfile.txt
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/fabric_tests/config/testfile.txt
rename to serverpackcreator-api/src/test/resources/fabric_tests/config/testfile.txt
diff --git a/serverpackcreator-api/src/jvmTest/resources/fabric_tests/defaultconfigs/testfile.txt b/serverpackcreator-api/src/test/resources/fabric_tests/defaultconfigs/testfile.txt
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/fabric_tests/defaultconfigs/testfile.txt
rename to serverpackcreator-api/src/test/resources/fabric_tests/defaultconfigs/testfile.txt
diff --git a/serverpackcreator-api/src/jvmTest/resources/fabric_tests/mods/Ping-1.19-1.9.1.jar b/serverpackcreator-api/src/test/resources/fabric_tests/mods/Ping-1.19-1.9.1.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/fabric_tests/mods/Ping-1.19-1.9.1.jar
rename to serverpackcreator-api/src/test/resources/fabric_tests/mods/Ping-1.19-1.9.1.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/fabric_tests/mods/Ping-Wheel-1.6.1-forge-1.20.1.jar b/serverpackcreator-api/src/test/resources/fabric_tests/mods/Ping-Wheel-1.6.1-forge-1.20.1.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/fabric_tests/mods/Ping-Wheel-1.6.1-forge-1.20.1.jar
rename to serverpackcreator-api/src/test/resources/fabric_tests/mods/Ping-Wheel-1.6.1-forge-1.20.1.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/fabric_tests/mods/aaaaa.jar b/serverpackcreator-api/src/test/resources/fabric_tests/mods/aaaaa.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/fabric_tests/mods/aaaaa.jar
rename to serverpackcreator-api/src/test/resources/fabric_tests/mods/aaaaa.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/fabric_tests/mods/bbbbb.jar b/serverpackcreator-api/src/test/resources/fabric_tests/mods/bbbbb.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/fabric_tests/mods/bbbbb.jar
rename to serverpackcreator-api/src/test/resources/fabric_tests/mods/bbbbb.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/fabric_tests/mods/ccccc.jar b/serverpackcreator-api/src/test/resources/fabric_tests/mods/ccccc.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/fabric_tests/mods/ccccc.jar
rename to serverpackcreator-api/src/test/resources/fabric_tests/mods/ccccc.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/fabric_tests/mods/ddddd.jar b/serverpackcreator-api/src/test/resources/fabric_tests/mods/ddddd.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/fabric_tests/mods/ddddd.jar
rename to serverpackcreator-api/src/test/resources/fabric_tests/mods/ddddd.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/fabric_tests/mods/eeeee.jar b/serverpackcreator-api/src/test/resources/fabric_tests/mods/eeeee.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/fabric_tests/mods/eeeee.jar
rename to serverpackcreator-api/src/test/resources/fabric_tests/mods/eeeee.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/fabric_tests/mods/fffff.jar b/serverpackcreator-api/src/test/resources/fabric_tests/mods/fffff.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/fabric_tests/mods/fffff.jar
rename to serverpackcreator-api/src/test/resources/fabric_tests/mods/fffff.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/fabric_tests/mods/ggggg.jar b/serverpackcreator-api/src/test/resources/fabric_tests/mods/ggggg.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/fabric_tests/mods/ggggg.jar
rename to serverpackcreator-api/src/test/resources/fabric_tests/mods/ggggg.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/fabric_tests/mods/hhhhh.jar b/serverpackcreator-api/src/test/resources/fabric_tests/mods/hhhhh.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/fabric_tests/mods/hhhhh.jar
rename to serverpackcreator-api/src/test/resources/fabric_tests/mods/hhhhh.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/fabric_tests/mods/iiiii.jar b/serverpackcreator-api/src/test/resources/fabric_tests/mods/iiiii.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/fabric_tests/mods/iiiii.jar
rename to serverpackcreator-api/src/test/resources/fabric_tests/mods/iiiii.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/fabric_tests/mods/jjjjj.jar b/serverpackcreator-api/src/test/resources/fabric_tests/mods/jjjjj.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/fabric_tests/mods/jjjjj.jar
rename to serverpackcreator-api/src/test/resources/fabric_tests/mods/jjjjj.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/fabric_tests/mods/kkkkk.jar b/serverpackcreator-api/src/test/resources/fabric_tests/mods/kkkkk.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/fabric_tests/mods/kkkkk.jar
rename to serverpackcreator-api/src/test/resources/fabric_tests/mods/kkkkk.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/fabric_tests/mods/lllll.jar b/serverpackcreator-api/src/test/resources/fabric_tests/mods/lllll.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/fabric_tests/mods/lllll.jar
rename to serverpackcreator-api/src/test/resources/fabric_tests/mods/lllll.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/fabric_tests/mods/mmmmm.jar b/serverpackcreator-api/src/test/resources/fabric_tests/mods/mmmmm.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/fabric_tests/mods/mmmmm.jar
rename to serverpackcreator-api/src/test/resources/fabric_tests/mods/mmmmm.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/fabric_tests/mods/nnnnn.jar b/serverpackcreator-api/src/test/resources/fabric_tests/mods/nnnnn.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/fabric_tests/mods/nnnnn.jar
rename to serverpackcreator-api/src/test/resources/fabric_tests/mods/nnnnn.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/fabric_tests/mods/ooooo.jar b/serverpackcreator-api/src/test/resources/fabric_tests/mods/ooooo.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/fabric_tests/mods/ooooo.jar
rename to serverpackcreator-api/src/test/resources/fabric_tests/mods/ooooo.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/fabric_tests/mods/ppppp.jar b/serverpackcreator-api/src/test/resources/fabric_tests/mods/ppppp.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/fabric_tests/mods/ppppp.jar
rename to serverpackcreator-api/src/test/resources/fabric_tests/mods/ppppp.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/fabric_tests/mods/qqqqq.jar b/serverpackcreator-api/src/test/resources/fabric_tests/mods/qqqqq.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/fabric_tests/mods/qqqqq.jar
rename to serverpackcreator-api/src/test/resources/fabric_tests/mods/qqqqq.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/fabric_tests/mods/testmod.jar b/serverpackcreator-api/src/test/resources/fabric_tests/mods/testmod.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/fabric_tests/mods/testmod.jar
rename to serverpackcreator-api/src/test/resources/fabric_tests/mods/testmod.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/fabric_tests/scripts/testscript.zs b/serverpackcreator-api/src/test/resources/fabric_tests/scripts/testscript.zs
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/fabric_tests/scripts/testscript.zs
rename to serverpackcreator-api/src/test/resources/fabric_tests/scripts/testscript.zs
diff --git a/serverpackcreator-api/src/jvmTest/resources/fabric_tests/seeds/testjson.json b/serverpackcreator-api/src/test/resources/fabric_tests/seeds/testjson.json
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/fabric_tests/seeds/testjson.json
rename to serverpackcreator-api/src/test/resources/fabric_tests/seeds/testjson.json
diff --git a/serverpackcreator-api/src/jvmTest/resources/forge_old/mods/Ping-1.19-1.9.1.jar b/serverpackcreator-api/src/test/resources/forge_old/mods/Ping-1.19-1.9.1.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/forge_old/mods/Ping-1.19-1.9.1.jar
rename to serverpackcreator-api/src/test/resources/forge_old/mods/Ping-1.19-1.9.1.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/forge_old/mods/Ping-Wheel-1.6.1-forge-1.20.1.jar b/serverpackcreator-api/src/test/resources/forge_old/mods/Ping-Wheel-1.6.1-forge-1.20.1.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/forge_old/mods/Ping-Wheel-1.6.1-forge-1.20.1.jar
rename to serverpackcreator-api/src/test/resources/forge_old/mods/Ping-Wheel-1.6.1-forge-1.20.1.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/forge_old/mods/aaaaa.jar b/serverpackcreator-api/src/test/resources/forge_old/mods/aaaaa.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/forge_old/mods/aaaaa.jar
rename to serverpackcreator-api/src/test/resources/forge_old/mods/aaaaa.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/forge_old/mods/bbbbb.jar b/serverpackcreator-api/src/test/resources/forge_old/mods/bbbbb.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/forge_old/mods/bbbbb.jar
rename to serverpackcreator-api/src/test/resources/forge_old/mods/bbbbb.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/forge_old/mods/ccccc.jar b/serverpackcreator-api/src/test/resources/forge_old/mods/ccccc.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/forge_old/mods/ccccc.jar
rename to serverpackcreator-api/src/test/resources/forge_old/mods/ccccc.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/forge_old/mods/ddddd.jar b/serverpackcreator-api/src/test/resources/forge_old/mods/ddddd.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/forge_old/mods/ddddd.jar
rename to serverpackcreator-api/src/test/resources/forge_old/mods/ddddd.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/forge_old/mods/eeeee.jar b/serverpackcreator-api/src/test/resources/forge_old/mods/eeeee.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/forge_old/mods/eeeee.jar
rename to serverpackcreator-api/src/test/resources/forge_old/mods/eeeee.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/forge_old/mods/fffff.jar b/serverpackcreator-api/src/test/resources/forge_old/mods/fffff.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/forge_old/mods/fffff.jar
rename to serverpackcreator-api/src/test/resources/forge_old/mods/fffff.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/forge_old/mods/ggggg.jar b/serverpackcreator-api/src/test/resources/forge_old/mods/ggggg.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/forge_old/mods/ggggg.jar
rename to serverpackcreator-api/src/test/resources/forge_old/mods/ggggg.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/forge_old/mods/hhhhh.jar b/serverpackcreator-api/src/test/resources/forge_old/mods/hhhhh.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/forge_old/mods/hhhhh.jar
rename to serverpackcreator-api/src/test/resources/forge_old/mods/hhhhh.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/forge_old/mods/iiiii.jar b/serverpackcreator-api/src/test/resources/forge_old/mods/iiiii.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/forge_old/mods/iiiii.jar
rename to serverpackcreator-api/src/test/resources/forge_old/mods/iiiii.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/forge_old/mods/jjjjj.jar b/serverpackcreator-api/src/test/resources/forge_old/mods/jjjjj.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/forge_old/mods/jjjjj.jar
rename to serverpackcreator-api/src/test/resources/forge_old/mods/jjjjj.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/forge_old/mods/kkkkk.jar b/serverpackcreator-api/src/test/resources/forge_old/mods/kkkkk.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/forge_old/mods/kkkkk.jar
rename to serverpackcreator-api/src/test/resources/forge_old/mods/kkkkk.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/forge_old/mods/lllll.jar b/serverpackcreator-api/src/test/resources/forge_old/mods/lllll.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/forge_old/mods/lllll.jar
rename to serverpackcreator-api/src/test/resources/forge_old/mods/lllll.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/forge_old/mods/mmmmm.jar b/serverpackcreator-api/src/test/resources/forge_old/mods/mmmmm.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/forge_old/mods/mmmmm.jar
rename to serverpackcreator-api/src/test/resources/forge_old/mods/mmmmm.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/forge_old/mods/nnnnn.jar b/serverpackcreator-api/src/test/resources/forge_old/mods/nnnnn.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/forge_old/mods/nnnnn.jar
rename to serverpackcreator-api/src/test/resources/forge_old/mods/nnnnn.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/forge_old/mods/ooooo.jar b/serverpackcreator-api/src/test/resources/forge_old/mods/ooooo.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/forge_old/mods/ooooo.jar
rename to serverpackcreator-api/src/test/resources/forge_old/mods/ooooo.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/forge_old/mods/ppppp.jar b/serverpackcreator-api/src/test/resources/forge_old/mods/ppppp.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/forge_old/mods/ppppp.jar
rename to serverpackcreator-api/src/test/resources/forge_old/mods/ppppp.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/forge_old/mods/qqqqq.jar b/serverpackcreator-api/src/test/resources/forge_old/mods/qqqqq.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/forge_old/mods/qqqqq.jar
rename to serverpackcreator-api/src/test/resources/forge_old/mods/qqqqq.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/forge_tests/config/testfile.txt b/serverpackcreator-api/src/test/resources/forge_tests/config/testfile.txt
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/forge_tests/config/testfile.txt
rename to serverpackcreator-api/src/test/resources/forge_tests/config/testfile.txt
diff --git a/serverpackcreator-api/src/jvmTest/resources/forge_tests/defaultconfigs/testfile.txt b/serverpackcreator-api/src/test/resources/forge_tests/defaultconfigs/testfile.txt
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/forge_tests/defaultconfigs/testfile.txt
rename to serverpackcreator-api/src/test/resources/forge_tests/defaultconfigs/testfile.txt
diff --git a/serverpackcreator-api/src/jvmTest/resources/forge_tests/exclude_me/I_dont_want_to_be_included.file b/serverpackcreator-api/src/test/resources/forge_tests/exclude_me/I_dont_want_to_be_included.file
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/forge_tests/exclude_me/I_dont_want_to_be_included.file
rename to serverpackcreator-api/src/test/resources/forge_tests/exclude_me/I_dont_want_to_be_included.file
diff --git a/serverpackcreator-api/src/jvmTest/resources/forge_tests/exclude_me/exclude_me_some_more/ICANSEEMYHOUSEFROMHEEEEEEEEEEEEERE b/serverpackcreator-api/src/test/resources/forge_tests/exclude_me/exclude_me_some_more/ICANSEEMYHOUSEFROMHEEEEEEEEEEEEERE
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/forge_tests/exclude_me/exclude_me_some_more/ICANSEEMYHOUSEFROMHEEEEEEEEEEEEERE
rename to serverpackcreator-api/src/test/resources/forge_tests/exclude_me/exclude_me_some_more/ICANSEEMYHOUSEFROMHEEEEEEEEEEEEERE
diff --git a/serverpackcreator-api/src/jvmTest/resources/forge_tests/exclude_me/exclude_me_some_more/I_dont_want_to_be_included.file b/serverpackcreator-api/src/test/resources/forge_tests/exclude_me/exclude_me_some_more/I_dont_want_to_be_included.file
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/forge_tests/exclude_me/exclude_me_some_more/I_dont_want_to_be_included.file
rename to serverpackcreator-api/src/test/resources/forge_tests/exclude_me/exclude_me_some_more/I_dont_want_to_be_included.file
diff --git a/serverpackcreator-api/src/jvmTest/resources/forge_tests/exclude_me/exclude_me_some_more/dont_include_me_either.ogg b/serverpackcreator-api/src/test/resources/forge_tests/exclude_me/exclude_me_some_more/dont_include_me_either.ogg
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/forge_tests/exclude_me/exclude_me_some_more/dont_include_me_either.ogg
rename to serverpackcreator-api/src/test/resources/forge_tests/exclude_me/exclude_me_some_more/dont_include_me_either.ogg
diff --git a/serverpackcreator-api/src/jvmTest/resources/forge_tests/exclude_me/exclude_me_some_more/some_more_dirs_to_exclude/I_dont_want_to_be_included.file b/serverpackcreator-api/src/test/resources/forge_tests/exclude_me/exclude_me_some_more/some_more_dirs_to_exclude/I_dont_want_to_be_included.file
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/forge_tests/exclude_me/exclude_me_some_more/some_more_dirs_to_exclude/I_dont_want_to_be_included.file
rename to serverpackcreator-api/src/test/resources/forge_tests/exclude_me/exclude_me_some_more/some_more_dirs_to_exclude/I_dont_want_to_be_included.file
diff --git a/serverpackcreator-api/src/jvmTest/resources/forge_tests/mods/Ping-1.19-1.9.1.jar b/serverpackcreator-api/src/test/resources/forge_tests/mods/Ping-1.19-1.9.1.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/forge_tests/mods/Ping-1.19-1.9.1.jar
rename to serverpackcreator-api/src/test/resources/forge_tests/mods/Ping-1.19-1.9.1.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/forge_tests/mods/Ping-Wheel-1.6.1-forge-1.20.1.jar b/serverpackcreator-api/src/test/resources/forge_tests/mods/Ping-Wheel-1.6.1-forge-1.20.1.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/forge_tests/mods/Ping-Wheel-1.6.1-forge-1.20.1.jar
rename to serverpackcreator-api/src/test/resources/forge_tests/mods/Ping-Wheel-1.6.1-forge-1.20.1.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/forge_tests/mods/aaaaa.jar b/serverpackcreator-api/src/test/resources/forge_tests/mods/aaaaa.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/forge_tests/mods/aaaaa.jar
rename to serverpackcreator-api/src/test/resources/forge_tests/mods/aaaaa.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/forge_tests/mods/bbbbb.jar b/serverpackcreator-api/src/test/resources/forge_tests/mods/bbbbb.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/forge_tests/mods/bbbbb.jar
rename to serverpackcreator-api/src/test/resources/forge_tests/mods/bbbbb.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/forge_tests/mods/ccccc.jar b/serverpackcreator-api/src/test/resources/forge_tests/mods/ccccc.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/forge_tests/mods/ccccc.jar
rename to serverpackcreator-api/src/test/resources/forge_tests/mods/ccccc.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/forge_tests/mods/ddddd.jar b/serverpackcreator-api/src/test/resources/forge_tests/mods/ddddd.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/forge_tests/mods/ddddd.jar
rename to serverpackcreator-api/src/test/resources/forge_tests/mods/ddddd.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/forge_tests/mods/fffff.jar b/serverpackcreator-api/src/test/resources/forge_tests/mods/fffff.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/forge_tests/mods/fffff.jar
rename to serverpackcreator-api/src/test/resources/forge_tests/mods/fffff.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/forge_tests/mods/ggggg.jar b/serverpackcreator-api/src/test/resources/forge_tests/mods/ggggg.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/forge_tests/mods/ggggg.jar
rename to serverpackcreator-api/src/test/resources/forge_tests/mods/ggggg.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/forge_tests/mods/hhhhh.jar b/serverpackcreator-api/src/test/resources/forge_tests/mods/hhhhh.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/forge_tests/mods/hhhhh.jar
rename to serverpackcreator-api/src/test/resources/forge_tests/mods/hhhhh.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/forge_tests/mods/iiiii.jar b/serverpackcreator-api/src/test/resources/forge_tests/mods/iiiii.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/forge_tests/mods/iiiii.jar
rename to serverpackcreator-api/src/test/resources/forge_tests/mods/iiiii.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/forge_tests/mods/jjjjj.jar b/serverpackcreator-api/src/test/resources/forge_tests/mods/jjjjj.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/forge_tests/mods/jjjjj.jar
rename to serverpackcreator-api/src/test/resources/forge_tests/mods/jjjjj.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/forge_tests/mods/kkkkk.jar b/serverpackcreator-api/src/test/resources/forge_tests/mods/kkkkk.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/forge_tests/mods/kkkkk.jar
rename to serverpackcreator-api/src/test/resources/forge_tests/mods/kkkkk.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/forge_tests/mods/lllll.jar b/serverpackcreator-api/src/test/resources/forge_tests/mods/lllll.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/forge_tests/mods/lllll.jar
rename to serverpackcreator-api/src/test/resources/forge_tests/mods/lllll.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/forge_tests/mods/nnnnn.jar b/serverpackcreator-api/src/test/resources/forge_tests/mods/nnnnn.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/forge_tests/mods/nnnnn.jar
rename to serverpackcreator-api/src/test/resources/forge_tests/mods/nnnnn.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/forge_tests/mods/ppppp.jar b/serverpackcreator-api/src/test/resources/forge_tests/mods/ppppp.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/forge_tests/mods/ppppp.jar
rename to serverpackcreator-api/src/test/resources/forge_tests/mods/ppppp.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/forge_tests/mods/qqqqq.jar b/serverpackcreator-api/src/test/resources/forge_tests/mods/qqqqq.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/forge_tests/mods/qqqqq.jar
rename to serverpackcreator-api/src/test/resources/forge_tests/mods/qqqqq.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/forge_tests/mods/rrrrr.jar b/serverpackcreator-api/src/test/resources/forge_tests/mods/rrrrr.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/forge_tests/mods/rrrrr.jar
rename to serverpackcreator-api/src/test/resources/forge_tests/mods/rrrrr.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/forge_tests/mods/testmod.jar b/serverpackcreator-api/src/test/resources/forge_tests/mods/testmod.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/forge_tests/mods/testmod.jar
rename to serverpackcreator-api/src/test/resources/forge_tests/mods/testmod.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/forge_tests/mods/uuuuu.jar b/serverpackcreator-api/src/test/resources/forge_tests/mods/uuuuu.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/forge_tests/mods/uuuuu.jar
rename to serverpackcreator-api/src/test/resources/forge_tests/mods/uuuuu.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/forge_tests/mods/vvvvv.jar b/serverpackcreator-api/src/test/resources/forge_tests/mods/vvvvv.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/forge_tests/mods/vvvvv.jar
rename to serverpackcreator-api/src/test/resources/forge_tests/mods/vvvvv.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/forge_tests/mods/wwwww.jar b/serverpackcreator-api/src/test/resources/forge_tests/mods/wwwww.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/forge_tests/mods/wwwww.jar
rename to serverpackcreator-api/src/test/resources/forge_tests/mods/wwwww.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/forge_tests/mods/xxxxx.jar b/serverpackcreator-api/src/test/resources/forge_tests/mods/xxxxx.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/forge_tests/mods/xxxxx.jar
rename to serverpackcreator-api/src/test/resources/forge_tests/mods/xxxxx.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/forge_tests/mods/yyyyy.jar b/serverpackcreator-api/src/test/resources/forge_tests/mods/yyyyy.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/forge_tests/mods/yyyyy.jar
rename to serverpackcreator-api/src/test/resources/forge_tests/mods/yyyyy.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/forge_tests/mods/zzzzz.jar b/serverpackcreator-api/src/test/resources/forge_tests/mods/zzzzz.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/forge_tests/mods/zzzzz.jar
rename to serverpackcreator-api/src/test/resources/forge_tests/mods/zzzzz.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/forge_tests/scripts/testscript.zs b/serverpackcreator-api/src/test/resources/forge_tests/scripts/testscript.zs
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/forge_tests/scripts/testscript.zs
rename to serverpackcreator-api/src/test/resources/forge_tests/scripts/testscript.zs
diff --git a/serverpackcreator-api/src/jvmTest/resources/forge_tests/seeds/testjson.json b/serverpackcreator-api/src/test/resources/forge_tests/seeds/testjson.json
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/forge_tests/seeds/testjson.json
rename to serverpackcreator-api/src/test/resources/forge_tests/seeds/testjson.json
diff --git a/serverpackcreator-api/src/jvmTest/resources/forge_tests/test.txt b/serverpackcreator-api/src/test/resources/forge_tests/test.txt
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/forge_tests/test.txt
rename to serverpackcreator-api/src/test/resources/forge_tests/test.txt
diff --git a/serverpackcreator-api/src/jvmTest/resources/forge_tests/test2.txt b/serverpackcreator-api/src/test/resources/forge_tests/test2.txt
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/forge_tests/test2.txt
rename to serverpackcreator-api/src/test/resources/forge_tests/test2.txt
diff --git a/serverpackcreator-api/src/jvmTest/resources/legacyfabric_tests/config/testfile.txt b/serverpackcreator-api/src/test/resources/legacyfabric_tests/config/testfile.txt
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/legacyfabric_tests/config/testfile.txt
rename to serverpackcreator-api/src/test/resources/legacyfabric_tests/config/testfile.txt
diff --git a/serverpackcreator-api/src/jvmTest/resources/legacyfabric_tests/defaultconfigs/testfile.txt b/serverpackcreator-api/src/test/resources/legacyfabric_tests/defaultconfigs/testfile.txt
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/legacyfabric_tests/defaultconfigs/testfile.txt
rename to serverpackcreator-api/src/test/resources/legacyfabric_tests/defaultconfigs/testfile.txt
diff --git a/serverpackcreator-api/src/jvmTest/resources/legacyfabric_tests/mods/Ping-1.19-1.9.1.jar b/serverpackcreator-api/src/test/resources/legacyfabric_tests/mods/Ping-1.19-1.9.1.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/legacyfabric_tests/mods/Ping-1.19-1.9.1.jar
rename to serverpackcreator-api/src/test/resources/legacyfabric_tests/mods/Ping-1.19-1.9.1.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/legacyfabric_tests/mods/Ping-Wheel-1.6.1-forge-1.20.1.jar b/serverpackcreator-api/src/test/resources/legacyfabric_tests/mods/Ping-Wheel-1.6.1-forge-1.20.1.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/legacyfabric_tests/mods/Ping-Wheel-1.6.1-forge-1.20.1.jar
rename to serverpackcreator-api/src/test/resources/legacyfabric_tests/mods/Ping-Wheel-1.6.1-forge-1.20.1.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/legacyfabric_tests/mods/aaaaa.jar b/serverpackcreator-api/src/test/resources/legacyfabric_tests/mods/aaaaa.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/legacyfabric_tests/mods/aaaaa.jar
rename to serverpackcreator-api/src/test/resources/legacyfabric_tests/mods/aaaaa.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/legacyfabric_tests/mods/bbbbb.jar b/serverpackcreator-api/src/test/resources/legacyfabric_tests/mods/bbbbb.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/legacyfabric_tests/mods/bbbbb.jar
rename to serverpackcreator-api/src/test/resources/legacyfabric_tests/mods/bbbbb.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/legacyfabric_tests/mods/ccccc.jar b/serverpackcreator-api/src/test/resources/legacyfabric_tests/mods/ccccc.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/legacyfabric_tests/mods/ccccc.jar
rename to serverpackcreator-api/src/test/resources/legacyfabric_tests/mods/ccccc.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/legacyfabric_tests/mods/ddddd.jar b/serverpackcreator-api/src/test/resources/legacyfabric_tests/mods/ddddd.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/legacyfabric_tests/mods/ddddd.jar
rename to serverpackcreator-api/src/test/resources/legacyfabric_tests/mods/ddddd.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/legacyfabric_tests/mods/eeeee.jar b/serverpackcreator-api/src/test/resources/legacyfabric_tests/mods/eeeee.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/legacyfabric_tests/mods/eeeee.jar
rename to serverpackcreator-api/src/test/resources/legacyfabric_tests/mods/eeeee.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/legacyfabric_tests/mods/fffff.jar b/serverpackcreator-api/src/test/resources/legacyfabric_tests/mods/fffff.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/legacyfabric_tests/mods/fffff.jar
rename to serverpackcreator-api/src/test/resources/legacyfabric_tests/mods/fffff.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/legacyfabric_tests/mods/ggggg.jar b/serverpackcreator-api/src/test/resources/legacyfabric_tests/mods/ggggg.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/legacyfabric_tests/mods/ggggg.jar
rename to serverpackcreator-api/src/test/resources/legacyfabric_tests/mods/ggggg.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/legacyfabric_tests/mods/hhhhh.jar b/serverpackcreator-api/src/test/resources/legacyfabric_tests/mods/hhhhh.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/legacyfabric_tests/mods/hhhhh.jar
rename to serverpackcreator-api/src/test/resources/legacyfabric_tests/mods/hhhhh.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/legacyfabric_tests/mods/iiiii.jar b/serverpackcreator-api/src/test/resources/legacyfabric_tests/mods/iiiii.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/legacyfabric_tests/mods/iiiii.jar
rename to serverpackcreator-api/src/test/resources/legacyfabric_tests/mods/iiiii.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/legacyfabric_tests/mods/jjjjj.jar b/serverpackcreator-api/src/test/resources/legacyfabric_tests/mods/jjjjj.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/legacyfabric_tests/mods/jjjjj.jar
rename to serverpackcreator-api/src/test/resources/legacyfabric_tests/mods/jjjjj.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/legacyfabric_tests/mods/kkkkk.jar b/serverpackcreator-api/src/test/resources/legacyfabric_tests/mods/kkkkk.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/legacyfabric_tests/mods/kkkkk.jar
rename to serverpackcreator-api/src/test/resources/legacyfabric_tests/mods/kkkkk.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/legacyfabric_tests/mods/lllll.jar b/serverpackcreator-api/src/test/resources/legacyfabric_tests/mods/lllll.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/legacyfabric_tests/mods/lllll.jar
rename to serverpackcreator-api/src/test/resources/legacyfabric_tests/mods/lllll.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/legacyfabric_tests/mods/mmmmm.jar b/serverpackcreator-api/src/test/resources/legacyfabric_tests/mods/mmmmm.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/legacyfabric_tests/mods/mmmmm.jar
rename to serverpackcreator-api/src/test/resources/legacyfabric_tests/mods/mmmmm.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/legacyfabric_tests/mods/nnnnn.jar b/serverpackcreator-api/src/test/resources/legacyfabric_tests/mods/nnnnn.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/legacyfabric_tests/mods/nnnnn.jar
rename to serverpackcreator-api/src/test/resources/legacyfabric_tests/mods/nnnnn.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/legacyfabric_tests/mods/ooooo.jar b/serverpackcreator-api/src/test/resources/legacyfabric_tests/mods/ooooo.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/legacyfabric_tests/mods/ooooo.jar
rename to serverpackcreator-api/src/test/resources/legacyfabric_tests/mods/ooooo.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/legacyfabric_tests/mods/ppppp.jar b/serverpackcreator-api/src/test/resources/legacyfabric_tests/mods/ppppp.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/legacyfabric_tests/mods/ppppp.jar
rename to serverpackcreator-api/src/test/resources/legacyfabric_tests/mods/ppppp.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/legacyfabric_tests/mods/qqqqq.jar b/serverpackcreator-api/src/test/resources/legacyfabric_tests/mods/qqqqq.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/legacyfabric_tests/mods/qqqqq.jar
rename to serverpackcreator-api/src/test/resources/legacyfabric_tests/mods/qqqqq.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/legacyfabric_tests/mods/testmod.jar b/serverpackcreator-api/src/test/resources/legacyfabric_tests/mods/testmod.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/legacyfabric_tests/mods/testmod.jar
rename to serverpackcreator-api/src/test/resources/legacyfabric_tests/mods/testmod.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/legacyfabric_tests/scripts/testscript.zs b/serverpackcreator-api/src/test/resources/legacyfabric_tests/scripts/testscript.zs
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/legacyfabric_tests/scripts/testscript.zs
rename to serverpackcreator-api/src/test/resources/legacyfabric_tests/scripts/testscript.zs
diff --git a/serverpackcreator-api/src/jvmTest/resources/legacyfabric_tests/seeds/testjson.json b/serverpackcreator-api/src/test/resources/legacyfabric_tests/seeds/testjson.json
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/legacyfabric_tests/seeds/testjson.json
rename to serverpackcreator-api/src/test/resources/legacyfabric_tests/seeds/testjson.json
diff --git a/serverpackcreator-api/src/test/resources/log4j2.component.properties b/serverpackcreator-api/src/test/resources/log4j2.component.properties
new file mode 100644
index 000000000..e05136308
--- /dev/null
+++ b/serverpackcreator-api/src/test/resources/log4j2.component.properties
@@ -0,0 +1,3 @@
+log4j.configurationFile=log4j2.xml
+log4j.formatMsgNoLookups=true
+log4j.configurationFactory=de.griefed.serverpackcreator.api.ApiProperties
\ No newline at end of file
diff --git a/serverpackcreator-api/src/jvmTest/resources/log4j2.xml b/serverpackcreator-api/src/test/resources/log4j2.xml
similarity index 77%
rename from serverpackcreator-api/src/jvmTest/resources/log4j2.xml
rename to serverpackcreator-api/src/test/resources/log4j2.xml
index 318b1c6b6..d3fa2dcbf 100644
--- a/serverpackcreator-api/src/jvmTest/resources/log4j2.xml
+++ b/serverpackcreator-api/src/test/resources/log4j2.xml
@@ -35,22 +35,6 @@
             <DefaultRolloverStrategy max="5" />
         </RollingFile>
 
-        <RollingFile name="InstallerLogger" fileName="${log-path}/modloader_installer.log" filePattern="${archive}/modloader_installer.log.%i">
-            <PatternLayout>
-                <Charset>
-                    ${charset}
-                </Charset>
-                <Pattern>
-                    ${pattern}
-                </Pattern>
-            </PatternLayout>
-            <Policies>
-                <OnStartupTriggeringPolicy />
-                <SizeBasedTriggeringPolicy size="10 MB" />
-            </Policies>
-            <DefaultRolloverStrategy max="5" />
-        </RollingFile>
-
         <RollingFile name="PluginsLogger" fileName="${log-path}/plugins.log" filePattern="${archive}/plugins.log.%i">
             <PatternLayout>
                 <Charset>
@@ -79,10 +63,6 @@
             <AppenderRef ref="ApplicationLogger" level="${log-level-spc}" />
         </Logger>
 
-        <Logger name="InstallerLogger" level="ALL" additivity="false">
-            <AppenderRef ref="InstallerLogger" level="${log-level-spc}" />
-        </Logger>
-
         <Logger name="PluginsLogger" level="ALL" additivity="false">
             <AppenderRef ref="PluginsLogger" level="${log-level-spc}" />
         </Logger>
diff --git a/serverpackcreator-api/src/jvmTest/resources/mods/Ping-1.19-1.9.1.jar b/serverpackcreator-api/src/test/resources/mods/Ping-1.19-1.9.1.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/mods/Ping-1.19-1.9.1.jar
rename to serverpackcreator-api/src/test/resources/mods/Ping-1.19-1.9.1.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/mods/Ping-Wheel-1.6.1-forge-1.20.1.jar b/serverpackcreator-api/src/test/resources/mods/Ping-Wheel-1.6.1-forge-1.20.1.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/mods/Ping-Wheel-1.6.1-forge-1.20.1.jar
rename to serverpackcreator-api/src/test/resources/mods/Ping-Wheel-1.6.1-forge-1.20.1.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/mods/aaaaa.jar b/serverpackcreator-api/src/test/resources/mods/aaaaa.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/mods/aaaaa.jar
rename to serverpackcreator-api/src/test/resources/mods/aaaaa.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/mods/bbbbb.jar b/serverpackcreator-api/src/test/resources/mods/bbbbb.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/mods/bbbbb.jar
rename to serverpackcreator-api/src/test/resources/mods/bbbbb.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/mods/ccccc.jar b/serverpackcreator-api/src/test/resources/mods/ccccc.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/mods/ccccc.jar
rename to serverpackcreator-api/src/test/resources/mods/ccccc.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/mods/ddddd.jar b/serverpackcreator-api/src/test/resources/mods/ddddd.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/mods/ddddd.jar
rename to serverpackcreator-api/src/test/resources/mods/ddddd.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/mods/eeeee.jar b/serverpackcreator-api/src/test/resources/mods/eeeee.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/mods/eeeee.jar
rename to serverpackcreator-api/src/test/resources/mods/eeeee.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/mods/fffff.jar b/serverpackcreator-api/src/test/resources/mods/fffff.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/mods/fffff.jar
rename to serverpackcreator-api/src/test/resources/mods/fffff.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/mods/ggggg.jar b/serverpackcreator-api/src/test/resources/mods/ggggg.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/mods/ggggg.jar
rename to serverpackcreator-api/src/test/resources/mods/ggggg.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/mods/hhhhh.jar b/serverpackcreator-api/src/test/resources/mods/hhhhh.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/mods/hhhhh.jar
rename to serverpackcreator-api/src/test/resources/mods/hhhhh.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/mods/iiiii.jar b/serverpackcreator-api/src/test/resources/mods/iiiii.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/mods/iiiii.jar
rename to serverpackcreator-api/src/test/resources/mods/iiiii.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/mods/jjjjj.jar b/serverpackcreator-api/src/test/resources/mods/jjjjj.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/mods/jjjjj.jar
rename to serverpackcreator-api/src/test/resources/mods/jjjjj.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/mods/kkkkk.jar b/serverpackcreator-api/src/test/resources/mods/kkkkk.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/mods/kkkkk.jar
rename to serverpackcreator-api/src/test/resources/mods/kkkkk.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/mods/lllll.jar b/serverpackcreator-api/src/test/resources/mods/lllll.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/mods/lllll.jar
rename to serverpackcreator-api/src/test/resources/mods/lllll.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/mods/mmmmm.jar b/serverpackcreator-api/src/test/resources/mods/mmmmm.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/mods/mmmmm.jar
rename to serverpackcreator-api/src/test/resources/mods/mmmmm.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/mods/nnnnn.jar b/serverpackcreator-api/src/test/resources/mods/nnnnn.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/mods/nnnnn.jar
rename to serverpackcreator-api/src/test/resources/mods/nnnnn.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/mods/ooooo.jar b/serverpackcreator-api/src/test/resources/mods/ooooo.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/mods/ooooo.jar
rename to serverpackcreator-api/src/test/resources/mods/ooooo.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/mods/ppppp.jar b/serverpackcreator-api/src/test/resources/mods/ppppp.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/mods/ppppp.jar
rename to serverpackcreator-api/src/test/resources/mods/ppppp.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/mods/qqqqq.jar b/serverpackcreator-api/src/test/resources/mods/qqqqq.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/mods/qqqqq.jar
rename to serverpackcreator-api/src/test/resources/mods/qqqqq.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/neoforge_tests/config/testfile.txt b/serverpackcreator-api/src/test/resources/neoforge_tests/config/testfile.txt
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/neoforge_tests/config/testfile.txt
rename to serverpackcreator-api/src/test/resources/neoforge_tests/config/testfile.txt
diff --git a/serverpackcreator-api/src/jvmTest/resources/neoforge_tests/defaultconfigs/testfile.txt b/serverpackcreator-api/src/test/resources/neoforge_tests/defaultconfigs/testfile.txt
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/neoforge_tests/defaultconfigs/testfile.txt
rename to serverpackcreator-api/src/test/resources/neoforge_tests/defaultconfigs/testfile.txt
diff --git a/serverpackcreator-api/src/jvmTest/resources/neoforge_tests/exclude_me/I_dont_want_to_be_included.file b/serverpackcreator-api/src/test/resources/neoforge_tests/exclude_me/I_dont_want_to_be_included.file
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/neoforge_tests/exclude_me/I_dont_want_to_be_included.file
rename to serverpackcreator-api/src/test/resources/neoforge_tests/exclude_me/I_dont_want_to_be_included.file
diff --git a/serverpackcreator-api/src/jvmTest/resources/neoforge_tests/exclude_me/exclude_me_some_more/ICANSEEMYHOUSEFROMHEEEEEEEEEEEEERE b/serverpackcreator-api/src/test/resources/neoforge_tests/exclude_me/exclude_me_some_more/ICANSEEMYHOUSEFROMHEEEEEEEEEEEEERE
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/neoforge_tests/exclude_me/exclude_me_some_more/ICANSEEMYHOUSEFROMHEEEEEEEEEEEEERE
rename to serverpackcreator-api/src/test/resources/neoforge_tests/exclude_me/exclude_me_some_more/ICANSEEMYHOUSEFROMHEEEEEEEEEEEEERE
diff --git a/serverpackcreator-api/src/jvmTest/resources/neoforge_tests/exclude_me/exclude_me_some_more/I_dont_want_to_be_included.file b/serverpackcreator-api/src/test/resources/neoforge_tests/exclude_me/exclude_me_some_more/I_dont_want_to_be_included.file
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/neoforge_tests/exclude_me/exclude_me_some_more/I_dont_want_to_be_included.file
rename to serverpackcreator-api/src/test/resources/neoforge_tests/exclude_me/exclude_me_some_more/I_dont_want_to_be_included.file
diff --git a/serverpackcreator-api/src/jvmTest/resources/neoforge_tests/exclude_me/exclude_me_some_more/dont_include_me_either.ogg b/serverpackcreator-api/src/test/resources/neoforge_tests/exclude_me/exclude_me_some_more/dont_include_me_either.ogg
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/neoforge_tests/exclude_me/exclude_me_some_more/dont_include_me_either.ogg
rename to serverpackcreator-api/src/test/resources/neoforge_tests/exclude_me/exclude_me_some_more/dont_include_me_either.ogg
diff --git a/serverpackcreator-api/src/jvmTest/resources/neoforge_tests/exclude_me/exclude_me_some_more/some_more_dirs_to_exclude/I_dont_want_to_be_included.file b/serverpackcreator-api/src/test/resources/neoforge_tests/exclude_me/exclude_me_some_more/some_more_dirs_to_exclude/I_dont_want_to_be_included.file
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/neoforge_tests/exclude_me/exclude_me_some_more/some_more_dirs_to_exclude/I_dont_want_to_be_included.file
rename to serverpackcreator-api/src/test/resources/neoforge_tests/exclude_me/exclude_me_some_more/some_more_dirs_to_exclude/I_dont_want_to_be_included.file
diff --git a/serverpackcreator-api/src/jvmTest/resources/neoforge_tests/mods/Ping-1.19-1.9.1.jar b/serverpackcreator-api/src/test/resources/neoforge_tests/mods/Ping-1.19-1.9.1.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/neoforge_tests/mods/Ping-1.19-1.9.1.jar
rename to serverpackcreator-api/src/test/resources/neoforge_tests/mods/Ping-1.19-1.9.1.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/neoforge_tests/mods/Ping-Wheel-1.6.1-forge-1.20.1.jar b/serverpackcreator-api/src/test/resources/neoforge_tests/mods/Ping-Wheel-1.6.1-forge-1.20.1.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/neoforge_tests/mods/Ping-Wheel-1.6.1-forge-1.20.1.jar
rename to serverpackcreator-api/src/test/resources/neoforge_tests/mods/Ping-Wheel-1.6.1-forge-1.20.1.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/neoforge_tests/mods/aaaaa.jar b/serverpackcreator-api/src/test/resources/neoforge_tests/mods/aaaaa.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/neoforge_tests/mods/aaaaa.jar
rename to serverpackcreator-api/src/test/resources/neoforge_tests/mods/aaaaa.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/neoforge_tests/mods/bbbbb.jar b/serverpackcreator-api/src/test/resources/neoforge_tests/mods/bbbbb.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/neoforge_tests/mods/bbbbb.jar
rename to serverpackcreator-api/src/test/resources/neoforge_tests/mods/bbbbb.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/neoforge_tests/mods/ccccc.jar b/serverpackcreator-api/src/test/resources/neoforge_tests/mods/ccccc.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/neoforge_tests/mods/ccccc.jar
rename to serverpackcreator-api/src/test/resources/neoforge_tests/mods/ccccc.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/neoforge_tests/mods/ddddd.jar b/serverpackcreator-api/src/test/resources/neoforge_tests/mods/ddddd.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/neoforge_tests/mods/ddddd.jar
rename to serverpackcreator-api/src/test/resources/neoforge_tests/mods/ddddd.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/neoforge_tests/mods/fffff.jar b/serverpackcreator-api/src/test/resources/neoforge_tests/mods/fffff.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/neoforge_tests/mods/fffff.jar
rename to serverpackcreator-api/src/test/resources/neoforge_tests/mods/fffff.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/neoforge_tests/mods/ggggg.jar b/serverpackcreator-api/src/test/resources/neoforge_tests/mods/ggggg.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/neoforge_tests/mods/ggggg.jar
rename to serverpackcreator-api/src/test/resources/neoforge_tests/mods/ggggg.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/neoforge_tests/mods/hhhhh.jar b/serverpackcreator-api/src/test/resources/neoforge_tests/mods/hhhhh.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/neoforge_tests/mods/hhhhh.jar
rename to serverpackcreator-api/src/test/resources/neoforge_tests/mods/hhhhh.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/neoforge_tests/mods/iiiii.jar b/serverpackcreator-api/src/test/resources/neoforge_tests/mods/iiiii.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/neoforge_tests/mods/iiiii.jar
rename to serverpackcreator-api/src/test/resources/neoforge_tests/mods/iiiii.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/neoforge_tests/mods/jjjjj.jar b/serverpackcreator-api/src/test/resources/neoforge_tests/mods/jjjjj.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/neoforge_tests/mods/jjjjj.jar
rename to serverpackcreator-api/src/test/resources/neoforge_tests/mods/jjjjj.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/neoforge_tests/mods/kkkkk.jar b/serverpackcreator-api/src/test/resources/neoforge_tests/mods/kkkkk.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/neoforge_tests/mods/kkkkk.jar
rename to serverpackcreator-api/src/test/resources/neoforge_tests/mods/kkkkk.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/neoforge_tests/mods/lllll.jar b/serverpackcreator-api/src/test/resources/neoforge_tests/mods/lllll.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/neoforge_tests/mods/lllll.jar
rename to serverpackcreator-api/src/test/resources/neoforge_tests/mods/lllll.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/neoforge_tests/mods/nnnnn.jar b/serverpackcreator-api/src/test/resources/neoforge_tests/mods/nnnnn.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/neoforge_tests/mods/nnnnn.jar
rename to serverpackcreator-api/src/test/resources/neoforge_tests/mods/nnnnn.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/neoforge_tests/mods/ppppp.jar b/serverpackcreator-api/src/test/resources/neoforge_tests/mods/ppppp.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/neoforge_tests/mods/ppppp.jar
rename to serverpackcreator-api/src/test/resources/neoforge_tests/mods/ppppp.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/neoforge_tests/mods/qqqqq.jar b/serverpackcreator-api/src/test/resources/neoforge_tests/mods/qqqqq.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/neoforge_tests/mods/qqqqq.jar
rename to serverpackcreator-api/src/test/resources/neoforge_tests/mods/qqqqq.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/neoforge_tests/mods/rrrrr.jar b/serverpackcreator-api/src/test/resources/neoforge_tests/mods/rrrrr.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/neoforge_tests/mods/rrrrr.jar
rename to serverpackcreator-api/src/test/resources/neoforge_tests/mods/rrrrr.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/neoforge_tests/mods/testmod.jar b/serverpackcreator-api/src/test/resources/neoforge_tests/mods/testmod.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/neoforge_tests/mods/testmod.jar
rename to serverpackcreator-api/src/test/resources/neoforge_tests/mods/testmod.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/neoforge_tests/mods/uuuuu.jar b/serverpackcreator-api/src/test/resources/neoforge_tests/mods/uuuuu.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/neoforge_tests/mods/uuuuu.jar
rename to serverpackcreator-api/src/test/resources/neoforge_tests/mods/uuuuu.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/neoforge_tests/mods/vvvvv.jar b/serverpackcreator-api/src/test/resources/neoforge_tests/mods/vvvvv.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/neoforge_tests/mods/vvvvv.jar
rename to serverpackcreator-api/src/test/resources/neoforge_tests/mods/vvvvv.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/neoforge_tests/mods/wwwww.jar b/serverpackcreator-api/src/test/resources/neoforge_tests/mods/wwwww.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/neoforge_tests/mods/wwwww.jar
rename to serverpackcreator-api/src/test/resources/neoforge_tests/mods/wwwww.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/neoforge_tests/mods/xxxxx.jar b/serverpackcreator-api/src/test/resources/neoforge_tests/mods/xxxxx.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/neoforge_tests/mods/xxxxx.jar
rename to serverpackcreator-api/src/test/resources/neoforge_tests/mods/xxxxx.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/neoforge_tests/mods/yyyyy.jar b/serverpackcreator-api/src/test/resources/neoforge_tests/mods/yyyyy.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/neoforge_tests/mods/yyyyy.jar
rename to serverpackcreator-api/src/test/resources/neoforge_tests/mods/yyyyy.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/neoforge_tests/mods/zzzzz.jar b/serverpackcreator-api/src/test/resources/neoforge_tests/mods/zzzzz.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/neoforge_tests/mods/zzzzz.jar
rename to serverpackcreator-api/src/test/resources/neoforge_tests/mods/zzzzz.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/neoforge_tests/scripts/testscript.zs b/serverpackcreator-api/src/test/resources/neoforge_tests/scripts/testscript.zs
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/neoforge_tests/scripts/testscript.zs
rename to serverpackcreator-api/src/test/resources/neoforge_tests/scripts/testscript.zs
diff --git a/serverpackcreator-api/src/jvmTest/resources/neoforge_tests/seeds/testjson.json b/serverpackcreator-api/src/test/resources/neoforge_tests/seeds/testjson.json
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/neoforge_tests/seeds/testjson.json
rename to serverpackcreator-api/src/test/resources/neoforge_tests/seeds/testjson.json
diff --git a/serverpackcreator-api/src/jvmTest/resources/neoforge_tests/test.txt b/serverpackcreator-api/src/test/resources/neoforge_tests/test.txt
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/neoforge_tests/test.txt
rename to serverpackcreator-api/src/test/resources/neoforge_tests/test.txt
diff --git a/serverpackcreator-api/src/jvmTest/resources/neoforge_tests/test2.txt b/serverpackcreator-api/src/test/resources/neoforge_tests/test2.txt
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/neoforge_tests/test2.txt
rename to serverpackcreator-api/src/test/resources/neoforge_tests/test2.txt
diff --git a/serverpackcreator-api/src/jvmTest/resources/overrides/config/testfile.txt b/serverpackcreator-api/src/test/resources/overrides/config/testfile.txt
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/overrides/config/testfile.txt
rename to serverpackcreator-api/src/test/resources/overrides/config/testfile.txt
diff --git a/serverpackcreator-api/src/jvmTest/resources/overrides/defaultconfigs/testfile.txt b/serverpackcreator-api/src/test/resources/overrides/defaultconfigs/testfile.txt
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/overrides/defaultconfigs/testfile.txt
rename to serverpackcreator-api/src/test/resources/overrides/defaultconfigs/testfile.txt
diff --git a/serverpackcreator-api/src/jvmTest/resources/overrides/scripts/testscript.zs b/serverpackcreator-api/src/test/resources/overrides/scripts/testscript.zs
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/overrides/scripts/testscript.zs
rename to serverpackcreator-api/src/test/resources/overrides/scripts/testscript.zs
diff --git a/serverpackcreator-api/src/jvmTest/resources/overrides/seeds/seed1.json b/serverpackcreator-api/src/test/resources/overrides/seeds/seed1.json
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/overrides/seeds/seed1.json
rename to serverpackcreator-api/src/test/resources/overrides/seeds/seed1.json
diff --git a/serverpackcreator-api/src/jvmTest/resources/overrides/seeds/testjson.json b/serverpackcreator-api/src/test/resources/overrides/seeds/testjson.json
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/overrides/seeds/testjson.json
rename to serverpackcreator-api/src/test/resources/overrides/seeds/testjson.json
diff --git a/serverpackcreator-api/src/jvmTest/resources/overridestest/overrides/config/testfile.txt b/serverpackcreator-api/src/test/resources/overridestest/overrides/config/testfile.txt
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/overridestest/overrides/config/testfile.txt
rename to serverpackcreator-api/src/test/resources/overridestest/overrides/config/testfile.txt
diff --git a/serverpackcreator-api/src/jvmTest/resources/overridestest/overrides/defaultconfigs/testfile.txt b/serverpackcreator-api/src/test/resources/overridestest/overrides/defaultconfigs/testfile.txt
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/overridestest/overrides/defaultconfigs/testfile.txt
rename to serverpackcreator-api/src/test/resources/overridestest/overrides/defaultconfigs/testfile.txt
diff --git a/serverpackcreator-api/src/jvmTest/resources/overrides/mods/aaaaa.jar b/serverpackcreator-api/src/test/resources/overridestest/overrides/mods/aaaaa.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/overrides/mods/aaaaa.jar
rename to serverpackcreator-api/src/test/resources/overridestest/overrides/mods/aaaaa.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/overrides/mods/bbbbb.jar b/serverpackcreator-api/src/test/resources/overridestest/overrides/mods/bbbbb.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/overrides/mods/bbbbb.jar
rename to serverpackcreator-api/src/test/resources/overridestest/overrides/mods/bbbbb.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/overrides/mods/ccccc.jar b/serverpackcreator-api/src/test/resources/overridestest/overrides/mods/ccccc.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/overrides/mods/ccccc.jar
rename to serverpackcreator-api/src/test/resources/overridestest/overrides/mods/ccccc.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/overrides/mods/fffff.jar b/serverpackcreator-api/src/test/resources/overridestest/overrides/mods/fffff.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/overrides/mods/fffff.jar
rename to serverpackcreator-api/src/test/resources/overridestest/overrides/mods/fffff.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/overrides/mods/ggggg.jar b/serverpackcreator-api/src/test/resources/overridestest/overrides/mods/ggggg.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/overrides/mods/ggggg.jar
rename to serverpackcreator-api/src/test/resources/overridestest/overrides/mods/ggggg.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/overrides/mods/hhhhh.jar b/serverpackcreator-api/src/test/resources/overridestest/overrides/mods/hhhhh.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/overrides/mods/hhhhh.jar
rename to serverpackcreator-api/src/test/resources/overridestest/overrides/mods/hhhhh.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/overrides/mods/iiiii.jar b/serverpackcreator-api/src/test/resources/overridestest/overrides/mods/iiiii.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/overrides/mods/iiiii.jar
rename to serverpackcreator-api/src/test/resources/overridestest/overrides/mods/iiiii.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/overrides/mods/jjjjj.jar b/serverpackcreator-api/src/test/resources/overridestest/overrides/mods/jjjjj.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/overrides/mods/jjjjj.jar
rename to serverpackcreator-api/src/test/resources/overridestest/overrides/mods/jjjjj.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/overrides/mods/kkkkk.jar b/serverpackcreator-api/src/test/resources/overridestest/overrides/mods/kkkkk.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/overrides/mods/kkkkk.jar
rename to serverpackcreator-api/src/test/resources/overridestest/overrides/mods/kkkkk.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/overrides/mods/lllll.jar b/serverpackcreator-api/src/test/resources/overridestest/overrides/mods/lllll.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/overrides/mods/lllll.jar
rename to serverpackcreator-api/src/test/resources/overridestest/overrides/mods/lllll.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/overrides/mods/nnnnn.jar b/serverpackcreator-api/src/test/resources/overridestest/overrides/mods/nnnnn.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/overrides/mods/nnnnn.jar
rename to serverpackcreator-api/src/test/resources/overridestest/overrides/mods/nnnnn.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/overrides/mods/ppppp.jar b/serverpackcreator-api/src/test/resources/overridestest/overrides/mods/ppppp.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/overrides/mods/ppppp.jar
rename to serverpackcreator-api/src/test/resources/overridestest/overrides/mods/ppppp.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/overrides/mods/qqqqq.jar b/serverpackcreator-api/src/test/resources/overridestest/overrides/mods/qqqqq.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/overrides/mods/qqqqq.jar
rename to serverpackcreator-api/src/test/resources/overridestest/overrides/mods/qqqqq.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/overrides/mods/rrrrr.jar b/serverpackcreator-api/src/test/resources/overridestest/overrides/mods/rrrrr.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/overrides/mods/rrrrr.jar
rename to serverpackcreator-api/src/test/resources/overridestest/overrides/mods/rrrrr.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/overrides/mods/testmod.jar b/serverpackcreator-api/src/test/resources/overridestest/overrides/mods/testmod.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/overrides/mods/testmod.jar
rename to serverpackcreator-api/src/test/resources/overridestest/overrides/mods/testmod.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/overrides/mods/uuuuu.jar b/serverpackcreator-api/src/test/resources/overridestest/overrides/mods/uuuuu.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/overrides/mods/uuuuu.jar
rename to serverpackcreator-api/src/test/resources/overridestest/overrides/mods/uuuuu.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/overrides/mods/vvvvv.jar b/serverpackcreator-api/src/test/resources/overridestest/overrides/mods/vvvvv.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/overrides/mods/vvvvv.jar
rename to serverpackcreator-api/src/test/resources/overridestest/overrides/mods/vvvvv.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/overrides/mods/wwwww.jar b/serverpackcreator-api/src/test/resources/overridestest/overrides/mods/wwwww.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/overrides/mods/wwwww.jar
rename to serverpackcreator-api/src/test/resources/overridestest/overrides/mods/wwwww.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/overrides/mods/xxxxx.jar b/serverpackcreator-api/src/test/resources/overridestest/overrides/mods/xxxxx.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/overrides/mods/xxxxx.jar
rename to serverpackcreator-api/src/test/resources/overridestest/overrides/mods/xxxxx.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/overrides/mods/yyyyy.jar b/serverpackcreator-api/src/test/resources/overridestest/overrides/mods/yyyyy.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/overrides/mods/yyyyy.jar
rename to serverpackcreator-api/src/test/resources/overridestest/overrides/mods/yyyyy.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/overrides/mods/zzzzz.jar b/serverpackcreator-api/src/test/resources/overridestest/overrides/mods/zzzzz.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/overrides/mods/zzzzz.jar
rename to serverpackcreator-api/src/test/resources/overridestest/overrides/mods/zzzzz.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/overridestest/overrides/scripts/testscript.zs b/serverpackcreator-api/src/test/resources/overridestest/overrides/scripts/testscript.zs
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/overridestest/overrides/scripts/testscript.zs
rename to serverpackcreator-api/src/test/resources/overridestest/overrides/scripts/testscript.zs
diff --git a/serverpackcreator-api/src/jvmTest/resources/overridestest/overrides/seeds/seed1.json b/serverpackcreator-api/src/test/resources/overridestest/overrides/seeds/seed1.json
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/overridestest/overrides/seeds/seed1.json
rename to serverpackcreator-api/src/test/resources/overridestest/overrides/seeds/seed1.json
diff --git a/serverpackcreator-api/src/jvmTest/resources/overridestest/overrides/seeds/testjson.json b/serverpackcreator-api/src/test/resources/overridestest/overrides/seeds/testjson.json
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/overridestest/overrides/seeds/testjson.json
rename to serverpackcreator-api/src/test/resources/overridestest/overrides/seeds/testjson.json
diff --git a/serverpackcreator-api/src/jvmTest/resources/quilt_tests/config/testfile.txt b/serverpackcreator-api/src/test/resources/quilt_tests/config/testfile.txt
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/quilt_tests/config/testfile.txt
rename to serverpackcreator-api/src/test/resources/quilt_tests/config/testfile.txt
diff --git a/serverpackcreator-api/src/jvmTest/resources/quilt_tests/defaultconfigs/testfile.txt b/serverpackcreator-api/src/test/resources/quilt_tests/defaultconfigs/testfile.txt
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/quilt_tests/defaultconfigs/testfile.txt
rename to serverpackcreator-api/src/test/resources/quilt_tests/defaultconfigs/testfile.txt
diff --git a/serverpackcreator-api/src/jvmTest/resources/quilt_tests/mods/Ping-1.19-1.9.1.jar b/serverpackcreator-api/src/test/resources/quilt_tests/mods/Ping-1.19-1.9.1.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/quilt_tests/mods/Ping-1.19-1.9.1.jar
rename to serverpackcreator-api/src/test/resources/quilt_tests/mods/Ping-1.19-1.9.1.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/quilt_tests/mods/Ping-Wheel-1.6.1-forge-1.20.1.jar b/serverpackcreator-api/src/test/resources/quilt_tests/mods/Ping-Wheel-1.6.1-forge-1.20.1.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/quilt_tests/mods/Ping-Wheel-1.6.1-forge-1.20.1.jar
rename to serverpackcreator-api/src/test/resources/quilt_tests/mods/Ping-Wheel-1.6.1-forge-1.20.1.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/quilt_tests/mods/aaaaa.jar b/serverpackcreator-api/src/test/resources/quilt_tests/mods/aaaaa.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/quilt_tests/mods/aaaaa.jar
rename to serverpackcreator-api/src/test/resources/quilt_tests/mods/aaaaa.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/quilt_tests/mods/bbbbb.jar b/serverpackcreator-api/src/test/resources/quilt_tests/mods/bbbbb.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/quilt_tests/mods/bbbbb.jar
rename to serverpackcreator-api/src/test/resources/quilt_tests/mods/bbbbb.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/overridestest/overrides/mods/testmod.jar b/serverpackcreator-api/src/test/resources/quilt_tests/mods/testmod.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/overridestest/overrides/mods/testmod.jar
rename to serverpackcreator-api/src/test/resources/quilt_tests/mods/testmod.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/quilt_tests/scripts/testscript.zs b/serverpackcreator-api/src/test/resources/quilt_tests/scripts/testscript.zs
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/quilt_tests/scripts/testscript.zs
rename to serverpackcreator-api/src/test/resources/quilt_tests/scripts/testscript.zs
diff --git a/serverpackcreator-api/src/jvmTest/resources/quilt_tests/seeds/testjson.json b/serverpackcreator-api/src/test/resources/quilt_tests/seeds/testjson.json
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/quilt_tests/seeds/testjson.json
rename to serverpackcreator-api/src/test/resources/quilt_tests/seeds/testjson.json
diff --git a/serverpackcreator-api/src/jvmTest/resources/serverpackcreator.db b/serverpackcreator-api/src/test/resources/serverpackcreator.db
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/serverpackcreator.db
rename to serverpackcreator-api/src/test/resources/serverpackcreator.db
diff --git a/serverpackcreator-api/src/jvmTest/resources/serverpackcreator.properties b/serverpackcreator-api/src/test/resources/serverpackcreator.properties
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/serverpackcreator.properties
rename to serverpackcreator-api/src/test/resources/serverpackcreator.properties
diff --git a/serverpackcreator-api/src/jvmTest/resources/testresources/SCP_icon.png b/serverpackcreator-api/src/test/resources/testresources/SCP_icon.png
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/testresources/SCP_icon.png
rename to serverpackcreator-api/src/test/resources/testresources/SCP_icon.png
diff --git a/serverpackcreator-api/src/jvmTest/resources/testresources/Survive_Create_Prosper_4_invalid.zip b/serverpackcreator-api/src/test/resources/testresources/Survive_Create_Prosper_4_invalid.zip
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/testresources/Survive_Create_Prosper_4_invalid.zip
rename to serverpackcreator-api/src/test/resources/testresources/Survive_Create_Prosper_4_invalid.zip
diff --git a/serverpackcreator-api/src/jvmTest/resources/testresources/Survive_Create_Prosper_4_valid.zip b/serverpackcreator-api/src/test/resources/testresources/Survive_Create_Prosper_4_valid.zip
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/testresources/Survive_Create_Prosper_4_valid.zip
rename to serverpackcreator-api/src/test/resources/testresources/Survive_Create_Prosper_4_valid.zip
diff --git a/serverpackcreator-api/src/jvmTest/resources/testresources/curseforge/fabric_manifest.json b/serverpackcreator-api/src/test/resources/testresources/curseforge/fabric_manifest.json
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/testresources/curseforge/fabric_manifest.json
rename to serverpackcreator-api/src/test/resources/testresources/curseforge/fabric_manifest.json
diff --git a/serverpackcreator-api/src/jvmTest/resources/testresources/curseforge/fabric_minecraftinstance.json b/serverpackcreator-api/src/test/resources/testresources/curseforge/fabric_minecraftinstance.json
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/testresources/curseforge/fabric_minecraftinstance.json
rename to serverpackcreator-api/src/test/resources/testresources/curseforge/fabric_minecraftinstance.json
diff --git a/serverpackcreator-api/src/jvmTest/resources/testresources/curseforge/forge_manifest.json b/serverpackcreator-api/src/test/resources/testresources/curseforge/forge_manifest.json
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/testresources/curseforge/forge_manifest.json
rename to serverpackcreator-api/src/test/resources/testresources/curseforge/forge_manifest.json
diff --git a/serverpackcreator-api/src/jvmTest/resources/testresources/curseforge/forge_minecraftinstance.json b/serverpackcreator-api/src/test/resources/testresources/curseforge/forge_minecraftinstance.json
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/testresources/curseforge/forge_minecraftinstance.json
rename to serverpackcreator-api/src/test/resources/testresources/curseforge/forge_minecraftinstance.json
diff --git a/serverpackcreator-api/src/jvmTest/resources/testresources/gdlauncher/fabric_config.json b/serverpackcreator-api/src/test/resources/testresources/gdlauncher/fabric_config.json
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/testresources/gdlauncher/fabric_config.json
rename to serverpackcreator-api/src/test/resources/testresources/gdlauncher/fabric_config.json
diff --git a/serverpackcreator-api/src/jvmTest/resources/testresources/gdlauncher/forge_config.json b/serverpackcreator-api/src/test/resources/testresources/gdlauncher/forge_config.json
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/testresources/gdlauncher/forge_config.json
rename to serverpackcreator-api/src/test/resources/testresources/gdlauncher/forge_config.json
diff --git a/serverpackcreator-api/src/jvmTest/resources/testresources/kreezxil.properties b/serverpackcreator-api/src/test/resources/testresources/kreezxil.properties
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/testresources/kreezxil.properties
rename to serverpackcreator-api/src/test/resources/testresources/kreezxil.properties
diff --git a/serverpackcreator-api/src/jvmTest/resources/testresources/languages/de_de.properties b/serverpackcreator-api/src/test/resources/testresources/languages/de_de.properties
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/testresources/languages/de_de.properties
rename to serverpackcreator-api/src/test/resources/testresources/languages/de_de.properties
diff --git a/serverpackcreator-api/src/jvmTest/resources/testresources/languages/en_us.properties b/serverpackcreator-api/src/test/resources/testresources/languages/en_us.properties
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/testresources/languages/en_us.properties
rename to serverpackcreator-api/src/test/resources/testresources/languages/en_us.properties
diff --git a/serverpackcreator-api/src/jvmTest/resources/testresources/languages/langMissing/lang_de_de.properties b/serverpackcreator-api/src/test/resources/testresources/languages/langMissing/lang_de_de.properties
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/testresources/languages/langMissing/lang_de_de.properties
rename to serverpackcreator-api/src/test/resources/testresources/languages/langMissing/lang_de_de.properties
diff --git a/serverpackcreator-api/src/jvmTest/resources/testresources/languages/langMissing/lang_ef_gh.properties b/serverpackcreator-api/src/test/resources/testresources/languages/langMissing/lang_ef_gh.properties
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/testresources/languages/langMissing/lang_ef_gh.properties
rename to serverpackcreator-api/src/test/resources/testresources/languages/langMissing/lang_ef_gh.properties
diff --git a/serverpackcreator-api/src/jvmTest/resources/testresources/languages/langMissing/lang_en_us.properties b/serverpackcreator-api/src/test/resources/testresources/languages/langMissing/lang_en_us.properties
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/testresources/languages/langMissing/lang_en_us.properties
rename to serverpackcreator-api/src/test/resources/testresources/languages/langMissing/lang_en_us.properties
diff --git a/serverpackcreator-api/src/jvmTest/resources/testresources/languages/langMissing/lang_uk_ua.properties b/serverpackcreator-api/src/test/resources/testresources/languages/langMissing/lang_uk_ua.properties
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/testresources/languages/langMissing/lang_uk_ua.properties
rename to serverpackcreator-api/src/test/resources/testresources/languages/langMissing/lang_uk_ua.properties
diff --git a/serverpackcreator-api/src/jvmTest/resources/testresources/languages/uk_ua.properties b/serverpackcreator-api/src/test/resources/testresources/languages/uk_ua.properties
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/testresources/languages/uk_ua.properties
rename to serverpackcreator-api/src/test/resources/testresources/languages/uk_ua.properties
diff --git a/serverpackcreator-api/src/jvmTest/resources/testresources/modrinth/fabric_modrinth.index.json b/serverpackcreator-api/src/test/resources/testresources/modrinth/fabric_modrinth.index.json
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/testresources/modrinth/fabric_modrinth.index.json
rename to serverpackcreator-api/src/test/resources/testresources/modrinth/fabric_modrinth.index.json
diff --git a/serverpackcreator-api/src/jvmTest/resources/testresources/modrinth/forge_modrinth.index.json b/serverpackcreator-api/src/test/resources/testresources/modrinth/forge_modrinth.index.json
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/testresources/modrinth/forge_modrinth.index.json
rename to serverpackcreator-api/src/test/resources/testresources/modrinth/forge_modrinth.index.json
diff --git a/serverpackcreator-api/src/jvmTest/resources/testresources/modrinth/quilt_modrinth.index.json b/serverpackcreator-api/src/test/resources/testresources/modrinth/quilt_modrinth.index.json
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/testresources/modrinth/quilt_modrinth.index.json
rename to serverpackcreator-api/src/test/resources/testresources/modrinth/quilt_modrinth.index.json
diff --git a/serverpackcreator-api/src/jvmTest/resources/testresources/multimc/all_the_mods_instance.cfg b/serverpackcreator-api/src/test/resources/testresources/multimc/all_the_mods_instance.cfg
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/testresources/multimc/all_the_mods_instance.cfg
rename to serverpackcreator-api/src/test/resources/testresources/multimc/all_the_mods_instance.cfg
diff --git a/serverpackcreator-api/src/jvmTest/resources/testresources/multimc/better_mc_instance.cfg b/serverpackcreator-api/src/test/resources/testresources/multimc/better_mc_instance.cfg
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/testresources/multimc/better_mc_instance.cfg
rename to serverpackcreator-api/src/test/resources/testresources/multimc/better_mc_instance.cfg
diff --git a/serverpackcreator-api/src/jvmTest/resources/testresources/multimc/fabric_mmc-pack.json b/serverpackcreator-api/src/test/resources/testresources/multimc/fabric_mmc-pack.json
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/testresources/multimc/fabric_mmc-pack.json
rename to serverpackcreator-api/src/test/resources/testresources/multimc/fabric_mmc-pack.json
diff --git a/serverpackcreator-api/src/jvmTest/resources/testresources/multimc/forge_mmc-pack.json b/serverpackcreator-api/src/test/resources/testresources/multimc/forge_mmc-pack.json
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/testresources/multimc/forge_mmc-pack.json
rename to serverpackcreator-api/src/test/resources/testresources/multimc/forge_mmc-pack.json
diff --git a/serverpackcreator-api/src/jvmTest/resources/testresources/multimc/quilt_mmc-pack.json b/serverpackcreator-api/src/test/resources/testresources/multimc/quilt_mmc-pack.json
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/testresources/multimc/quilt_mmc-pack.json
rename to serverpackcreator-api/src/test/resources/testresources/multimc/quilt_mmc-pack.json
diff --git a/serverpackcreator-api/src/jvmTest/resources/testresources/plugins/disabled.txt b/serverpackcreator-api/src/test/resources/testresources/plugins/disabled.txt
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/testresources/plugins/disabled.txt
rename to serverpackcreator-api/src/test/resources/testresources/plugins/disabled.txt
diff --git a/serverpackcreator-api/src/jvmTest/resources/testresources/plugins/serverpackcreator-plugin-example-dev.jar b/serverpackcreator-api/src/test/resources/testresources/plugins/serverpackcreator-plugin-example-dev.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/testresources/plugins/serverpackcreator-plugin-example-dev.jar
rename to serverpackcreator-api/src/test/resources/testresources/plugins/serverpackcreator-plugin-example-dev.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/testresources/properties/filters/contains.properties b/serverpackcreator-api/src/test/resources/testresources/properties/filters/contains.properties
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/testresources/properties/filters/contains.properties
rename to serverpackcreator-api/src/test/resources/testresources/properties/filters/contains.properties
diff --git a/serverpackcreator-api/src/jvmTest/resources/testresources/properties/filters/either.properties b/serverpackcreator-api/src/test/resources/testresources/properties/filters/either.properties
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/testresources/properties/filters/either.properties
rename to serverpackcreator-api/src/test/resources/testresources/properties/filters/either.properties
diff --git a/serverpackcreator-api/src/jvmTest/resources/testresources/properties/filters/end.properties b/serverpackcreator-api/src/test/resources/testresources/properties/filters/end.properties
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/testresources/properties/filters/end.properties
rename to serverpackcreator-api/src/test/resources/testresources/properties/filters/end.properties
diff --git a/serverpackcreator-api/src/jvmTest/resources/testresources/properties/filters/regex.properties b/serverpackcreator-api/src/test/resources/testresources/properties/filters/regex.properties
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/testresources/properties/filters/regex.properties
rename to serverpackcreator-api/src/test/resources/testresources/properties/filters/regex.properties
diff --git a/serverpackcreator-api/src/jvmTest/resources/testresources/properties/filters/start.properties b/serverpackcreator-api/src/test/resources/testresources/properties/filters/start.properties
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/testresources/properties/filters/start.properties
rename to serverpackcreator-api/src/test/resources/testresources/properties/filters/start.properties
diff --git a/serverpackcreator-api/src/jvmTest/resources/quilt_tests/mods/testmod.jar b/serverpackcreator-api/src/test/resources/testresources/server_pack/mods/testmod.jar
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/quilt_tests/mods/testmod.jar
rename to serverpackcreator-api/src/test/resources/testresources/server_pack/mods/testmod.jar
diff --git a/serverpackcreator-api/src/jvmTest/resources/testresources/spcconfs/scriptSettings.conf b/serverpackcreator-api/src/test/resources/testresources/spcconfs/scriptSettings.conf
similarity index 100%
rename from serverpackcreator-api/src/jvmTest/resources/testresources/spcconfs/scriptSettings.conf
rename to serverpackcreator-api/src/test/resources/testresources/spcconfs/scriptSettings.conf
diff --git a/serverpackcreator-api/src/jvmTest/resources/testresources/spcconfs/serverpackcreator.conf b/serverpackcreator-api/src/test/resources/testresources/spcconfs/serverpackcreator.conf
similarity index 98%
rename from serverpackcreator-api/src/jvmTest/resources/testresources/spcconfs/serverpackcreator.conf
rename to serverpackcreator-api/src/test/resources/testresources/spcconfs/serverpackcreator.conf
index 8e1c9afbc..adaf8105e 100644
--- a/serverpackcreator-api/src/jvmTest/resources/testresources/spcconfs/serverpackcreator.conf
+++ b/serverpackcreator-api/src/test/resources/testresources/spcconfs/serverpackcreator.conf
@@ -1,7 +1,7 @@
 # Path to your modpack. Can be either relative or absolute.
 # Example: "./Some Modpack" or "C:\Minecraft\Some Modpack"
 # Can also be a combination of CurseForge projectID and fileID. Example for Survive Create Prosper 4 4.6.7 "390331,3215793"
-modpackDir = "src/jvmTest/resources/forge_tests"
+modpackDir = "src/test/resources/forge_tests"
 
 # List of client-only mods to delete from serverpack.
 # No need to include version specifics. Must be the filenames of the mods, not their project names on CurseForge!
@@ -15,10 +15,10 @@ clientMods = ["Armor Status HUD-","[1.12.2]bspkrscore-","[1.12.2]DamageIndicator
 #copyDirs = ["config","mods","scripts","seeds","defaultconfigs","exclude_me","!exclude_me[/\\]I_dont_want_to_be_included.file","!.ogg","!exclude_me[/\\]exclude_me_some_more[/\\]some_more_dirs_to_exclude","!exclude_me[/\\]exclude_me_some_more[/\\]I_dont_want_to_be_included.file"]
 
 # Path to a custom server-icon.png-file to include in the server pack.
-serverIconPath = "src/jvmTest/resources/testresources/SCP_icon.png"
+serverIconPath = "src/test/resources/testresources/SCP_icon.png"
 
 # Path to a custom server.properties-file to include in the server pack.
-serverPropertiesPath = "src/jvmTest/resources/testresources/kreezxil.properties"
+serverPropertiesPath = "src/test/resources/testresources/kreezxil.properties"
 
 # Whether to install a Forge/Fabric server for the serverpack. Must be true or false.
 # Default value is true.
diff --git a/serverpackcreator-api/src/jvmTest/resources/testresources/spcconfs/serverpackcreator_copydirs.conf b/serverpackcreator-api/src/test/resources/testresources/spcconfs/serverpackcreator_copydirs.conf
similarity index 99%
rename from serverpackcreator-api/src/jvmTest/resources/testresources/spcconfs/serverpackcreator_copydirs.conf
rename to serverpackcreator-api/src/test/resources/testresources/spcconfs/serverpackcreator_copydirs.conf
index d3e5d003a..c4da76b1c 100644
--- a/serverpackcreator-api/src/jvmTest/resources/testresources/spcconfs/serverpackcreator_copydirs.conf
+++ b/serverpackcreator-api/src/test/resources/testresources/spcconfs/serverpackcreator_copydirs.conf
@@ -1,7 +1,7 @@
 # Path to your modpack. Can be either relative or absolute.
 # Example: "./Some Modpack" or "C:\Minecraft\Some Modpack"
 # Can also be a combination of CurseForge projectID and fileID. Example for Survive Create Prosper 4 4.6.7 "390331,3215793"
-modpackDir = "src/jvmTest/resources/forge_tests"
+modpackDir = "src/test/resources/forge_tests"
 
 # List of client-only mods to delete from serverpack.
 # No need to include version specifics. Must be the filenames of the mods, not their project names on CurseForge!
diff --git a/serverpackcreator-api/src/jvmTest/resources/testresources/spcconfs/serverpackcreator_fabric.conf b/serverpackcreator-api/src/test/resources/testresources/spcconfs/serverpackcreator_fabric.conf
similarity index 97%
rename from serverpackcreator-api/src/jvmTest/resources/testresources/spcconfs/serverpackcreator_fabric.conf
rename to serverpackcreator-api/src/test/resources/testresources/spcconfs/serverpackcreator_fabric.conf
index 49c37ba94..2a81fe9fa 100644
--- a/serverpackcreator-api/src/jvmTest/resources/testresources/spcconfs/serverpackcreator_fabric.conf
+++ b/serverpackcreator-api/src/test/resources/testresources/spcconfs/serverpackcreator_fabric.conf
@@ -1,7 +1,7 @@
 # Path to your modpack. Can be either relative or absolute.
 # Example: "./Some Modpack" or "C:\Minecraft\Some Modpack"
 # Can also be a combination of CurseForge projectID and fileID. Example for Survive Create Prosper 4 4.6.7 "390331,3215793"
-modpackDir = "src/jvmTest/resources/fabric_tests"
+modpackDir = "src/test/resources/fabric_tests"
 
 # List of client-only mods to delete from serverpack.
 # No need to include version specifics. Must be the filenames of the mods, not their project names on CurseForge!
@@ -15,10 +15,10 @@ clientMods = ["Armor Status HUD-","[1.12.2]bspkrscore-","[1.12.2]DamageIndicator
 copyDirs = ["config","mods","scripts","seeds","defaultconfigs"]
 
 # Path to a custom server-icon.png-file to include in the server pack.
-serverIconPath = "src/jvmTest/resources/testresources/SCP_icon.png"
+serverIconPath = "src/test/resources/testresources/SCP_icon.png"
 
 # Path to a custom server.properties-file to include in the server pack.
-serverPropertiesPath = "src/jvmTest/resources/testresources/kreezxil.properties"
+serverPropertiesPath = "src/test/resources/testresources/kreezxil.properties"
 
 # Whether to install a Forge/Fabric server for the serverpack. Must be true or false.
 # Default value is true.
diff --git a/serverpackcreator-api/src/jvmTest/resources/testresources/spcconfs/serverpackcreator_javapath.conf b/serverpackcreator-api/src/test/resources/testresources/spcconfs/serverpackcreator_javapath.conf
similarity index 99%
rename from serverpackcreator-api/src/jvmTest/resources/testresources/spcconfs/serverpackcreator_javapath.conf
rename to serverpackcreator-api/src/test/resources/testresources/spcconfs/serverpackcreator_javapath.conf
index 1c2de9a2d..39cda013f 100644
--- a/serverpackcreator-api/src/jvmTest/resources/testresources/spcconfs/serverpackcreator_javapath.conf
+++ b/serverpackcreator-api/src/test/resources/testresources/spcconfs/serverpackcreator_javapath.conf
@@ -1,7 +1,7 @@
 # Path to your modpack. Can be either relative or absolute.
 # Example: "./Some Modpack" or "C:\Minecraft\Some Modpack"
 # Can also be a combination of CurseForge projectID and fileID. Example for Survive Create Prosper 4 4.6.7 "390331,3215793"
-modpackDir = "src/jvmTest/resources/forge_tests"
+modpackDir = "src/test/resources/forge_tests"
 
 # List of client-only mods to delete from serverpack.
 # No need to include version specifics. Must be the filenames of the mods, not their project names on CurseForge!
diff --git a/serverpackcreator-api/src/jvmTest/resources/testresources/spcconfs/serverpackcreator_legacyfabric.conf b/serverpackcreator-api/src/test/resources/testresources/spcconfs/serverpackcreator_legacyfabric.conf
similarity index 97%
rename from serverpackcreator-api/src/jvmTest/resources/testresources/spcconfs/serverpackcreator_legacyfabric.conf
rename to serverpackcreator-api/src/test/resources/testresources/spcconfs/serverpackcreator_legacyfabric.conf
index 7980cadd5..00e83b58c 100644
--- a/serverpackcreator-api/src/jvmTest/resources/testresources/spcconfs/serverpackcreator_legacyfabric.conf
+++ b/serverpackcreator-api/src/test/resources/testresources/spcconfs/serverpackcreator_legacyfabric.conf
@@ -1,7 +1,7 @@
 # Path to your modpack. Can be either relative or absolute.
 # Example: "./Some Modpack" or "C:\Minecraft\Some Modpack"
 # Can also be a combination of CurseForge projectID and fileID. Example for Survive Create Prosper 4 4.6.7 "390331,3215793"
-modpackDir = "src/jvmTest/resources/legacyfabric_tests"
+modpackDir = "src/test/resources/legacyfabric_tests"
 
 # List of client-only mods to delete from serverpack.
 # No need to include version specifics. Must be the filenames of the mods, not their project names on CurseForge!
@@ -15,10 +15,10 @@ clientMods = ["Armor Status HUD-","[1.12.2]bspkrscore-","[1.12.2]DamageIndicator
 copyDirs = ["config","mods","scripts","seeds","defaultconfigs"]
 
 # Path to a custom server-icon.png-file to include in the server pack.
-serverIconPath = "src/jvmTest/resources/testresources/SCP_icon.png"
+serverIconPath = "src/test/resources/testresources/SCP_icon.png"
 
 # Path to a custom server.properties-file to include in the server pack.
-serverPropertiesPath = "src/jvmTest/resources/testresources/kreezxil.properties"
+serverPropertiesPath = "src/test/resources/testresources/kreezxil.properties"
 
 # Whether to install a Forge/Fabric server for the serverpack. Must be true or false.
 # Default value is true.
diff --git a/serverpackcreator-api/src/jvmTest/resources/testresources/spcconfs/serverpackcreator_minecraftversion.conf b/serverpackcreator-api/src/test/resources/testresources/spcconfs/serverpackcreator_minecraftversion.conf
similarity index 99%
rename from serverpackcreator-api/src/jvmTest/resources/testresources/spcconfs/serverpackcreator_minecraftversion.conf
rename to serverpackcreator-api/src/test/resources/testresources/spcconfs/serverpackcreator_minecraftversion.conf
index bd80cd8b6..a623f1059 100644
--- a/serverpackcreator-api/src/jvmTest/resources/testresources/spcconfs/serverpackcreator_minecraftversion.conf
+++ b/serverpackcreator-api/src/test/resources/testresources/spcconfs/serverpackcreator_minecraftversion.conf
@@ -1,7 +1,7 @@
 # Path to your modpack. Can be either relative or absolute.
 # Example: "./Some Modpack" or "C:\Minecraft\Some Modpack"
 # Can also be a combination of CurseForge projectID and fileID. Example for Survive Create Prosper 4 4.6.7 "390331,3215793"
-modpackDir = "src/jvmTest/resources/forge_tests"
+modpackDir = "src/test/resources/forge_tests"
 
 # List of client-only mods to delete from serverpack.
 # No need to include version specifics. Must be the filenames of the mods, not their project names on CurseForge!
diff --git a/serverpackcreator-api/src/jvmTest/resources/testresources/spcconfs/serverpackcreator_modloaderfalse.conf b/serverpackcreator-api/src/test/resources/testresources/spcconfs/serverpackcreator_modloaderfalse.conf
similarity index 99%
rename from serverpackcreator-api/src/jvmTest/resources/testresources/spcconfs/serverpackcreator_modloaderfalse.conf
rename to serverpackcreator-api/src/test/resources/testresources/spcconfs/serverpackcreator_modloaderfalse.conf
index 58c15a5a6..228af39e7 100644
--- a/serverpackcreator-api/src/jvmTest/resources/testresources/spcconfs/serverpackcreator_modloaderfalse.conf
+++ b/serverpackcreator-api/src/test/resources/testresources/spcconfs/serverpackcreator_modloaderfalse.conf
@@ -1,7 +1,7 @@
 # Path to your modpack. Can be either relative or absolute.
 # Example: "./Some Modpack" or "C:\Minecraft\Some Modpack"
 # Can also be a combination of CurseForge projectID and fileID. Example for Survive Create Prosper 4 4.6.7 "390331,3215793"
-modpackDir = "src/jvmTest/resources/forge_tests"
+modpackDir = "src/test/resources/forge_tests"
 
 # List of client-only mods to delete from serverpack.
 # No need to include version specifics. Must be the filenames of the mods, not their project names on CurseForge!
diff --git a/serverpackcreator-api/src/jvmTest/resources/testresources/spcconfs/serverpackcreator_modloaderversion.conf b/serverpackcreator-api/src/test/resources/testresources/spcconfs/serverpackcreator_modloaderversion.conf
similarity index 99%
rename from serverpackcreator-api/src/jvmTest/resources/testresources/spcconfs/serverpackcreator_modloaderversion.conf
rename to serverpackcreator-api/src/test/resources/testresources/spcconfs/serverpackcreator_modloaderversion.conf
index cce17cb7c..0f65e0066 100644
--- a/serverpackcreator-api/src/jvmTest/resources/testresources/spcconfs/serverpackcreator_modloaderversion.conf
+++ b/serverpackcreator-api/src/test/resources/testresources/spcconfs/serverpackcreator_modloaderversion.conf
@@ -1,7 +1,7 @@
 # Path to your modpack. Can be either relative or absolute.
 # Example: "./Some Modpack" or "C:\Minecraft\Some Modpack"
 # Can also be a combination of CurseForge projectID and fileID. Example for Survive Create Prosper 4 4.6.7 "390331,3215793"
-modpackDir = "src/jvmTest/resources/forge_tests"
+modpackDir = "src/test/resources/forge_tests"
 
 # List of client-only mods to delete from serverpack.
 # No need to include version specifics. Must be the filenames of the mods, not their project names on CurseForge!
diff --git a/serverpackcreator-api/src/jvmTest/resources/testresources/spcconfs/serverpackcreator_neoforge.conf b/serverpackcreator-api/src/test/resources/testresources/spcconfs/serverpackcreator_neoforge.conf
similarity index 97%
rename from serverpackcreator-api/src/jvmTest/resources/testresources/spcconfs/serverpackcreator_neoforge.conf
rename to serverpackcreator-api/src/test/resources/testresources/spcconfs/serverpackcreator_neoforge.conf
index 7a9b7ea5b..cb6658a94 100644
--- a/serverpackcreator-api/src/jvmTest/resources/testresources/spcconfs/serverpackcreator_neoforge.conf
+++ b/serverpackcreator-api/src/test/resources/testresources/spcconfs/serverpackcreator_neoforge.conf
@@ -1,7 +1,7 @@
 # Path to your modpack. Can be either relative or absolute.
 # Example: "./Some Modpack" or "C:\Minecraft\Some Modpack"
 # Can also be a combination of CurseForge projectID and fileID. Example for Survive Create Prosper 4 4.6.7 "390331,3215793"
-modpackDir = "src/jvmTest/resources/neoforge_tests"
+modpackDir = "src/test/resources/neoforge_tests"
 
 # List of client-only mods to delete from serverpack.
 # No need to include version specifics. Must be the filenames of the mods, not their project names on CurseForge!
@@ -15,10 +15,10 @@ clientMods = ["Armor Status HUD-","[1.12.2]bspkrscore-","[1.12.2]DamageIndicator
 copyDirs = ["config","mods","scripts","seeds","defaultconfigs"]
 
 # Path to a custom server-icon.png-file to include in the server pack.
-serverIconPath = "src/jvmTest/resources/testresources/SCP_icon.png"
+serverIconPath = "src/test/resources/testresources/SCP_icon.png"
 
 # Path to a custom server.properties-file to include in the server pack.
-serverPropertiesPath = "src/jvmTest/resources/testresources/kreezxil.properties"
+serverPropertiesPath = "src/test/resources/testresources/kreezxil.properties"
 
 # Whether to install a Forge/Fabric server for the serverpack. Must be true or false.
 # Default value is true.
diff --git a/serverpackcreator-api/src/jvmTest/resources/testresources/spcconfs/serverpackcreator_quilt.conf b/serverpackcreator-api/src/test/resources/testresources/spcconfs/serverpackcreator_quilt.conf
similarity index 97%
rename from serverpackcreator-api/src/jvmTest/resources/testresources/spcconfs/serverpackcreator_quilt.conf
rename to serverpackcreator-api/src/test/resources/testresources/spcconfs/serverpackcreator_quilt.conf
index a2628b8be..a06026c89 100644
--- a/serverpackcreator-api/src/jvmTest/resources/testresources/spcconfs/serverpackcreator_quilt.conf
+++ b/serverpackcreator-api/src/test/resources/testresources/spcconfs/serverpackcreator_quilt.conf
@@ -1,7 +1,7 @@
 # Path to your modpack. Can be either relative or absolute.
 # Example: "./Some Modpack" or "C:\Minecraft\Some Modpack"
 # Can also be a combination of CurseForge projectID and fileID. Example for Survive Create Prosper 4 4.6.7 "390331,3215793"
-modpackDir = "src/jvmTest/resources/quilt_tests"
+modpackDir = "src/test/resources/quilt_tests"
 
 # List of client-only mods to delete from serverpack.
 # No need to include version specifics. Must be the filenames of the mods, not their project names on CurseForge!
@@ -15,10 +15,10 @@ clientMods = ["Armor Status HUD-","[1.12.2]bspkrscore-","[1.12.2]DamageIndicator
 copyDirs = ["config","mods","scripts","seeds","defaultconfigs"]
 
 # Path to a custom server-icon.png-file to include in the server pack.
-serverIconPath = "src/jvmTest/resources/testresources/SCP_icon.png"
+serverIconPath = "src/test/resources/testresources/SCP_icon.png"
 
 # Path to a custom server.properties-file to include in the server pack.
-serverPropertiesPath = "src/jvmTest/resources/testresources/kreezxil.properties"
+serverPropertiesPath = "src/test/resources/testresources/kreezxil.properties"
 
 # Whether to install a Forge/Fabric server for the serverpack. Must be true or false.
 # Default value is true.
diff --git a/serverpackcreator-app/build.gradle.kts b/serverpackcreator-app/build.gradle.kts
index 59b616104..7c8d4a046 100644
--- a/serverpackcreator-app/build.gradle.kts
+++ b/serverpackcreator-app/build.gradle.kts
@@ -1,3 +1,4 @@
+
 import java.time.LocalDate
 import java.util.*
 
@@ -22,8 +23,8 @@ dependencies {
     api(project(":serverpackcreator-gui"))
     api(project(":serverpackcreator-web"))
     api(project(":serverpackcreator-updater"))
-    testImplementation("org.junit.jupiter:junit-jupiter-api:5.10.0")
-    testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine:5.10.0")
+    testImplementation("org.junit.jupiter:junit-jupiter-api:5.10.2")
+    testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine:5.10.2")
 }
 
 springBoot {
@@ -40,6 +41,10 @@ tasks.clean {
     }
 }
 
+tasks.bootJar {
+    dependsOn(":serverpackcreator-api:processTestResources")
+}
+
 task("copyDependencies", Copy::class) {
     from(configurations.runtimeClasspath).into("${layout.buildDirectory.asFile.get()}/jars")
 }
@@ -114,4 +119,4 @@ tasks.jpackage {
         linuxRpmLicenseType = "LGPL-2.1"
         linuxShortcut = true
     }
-}
+}
\ No newline at end of file
diff --git a/serverpackcreator-app/src/main/kotlin/de/griefed/serverpackcreator/app/ServerPackCreator.kt b/serverpackcreator-app/src/main/kotlin/de/griefed/serverpackcreator/app/ServerPackCreator.kt
index fba1766ed..39a0bc1b0 100644
--- a/serverpackcreator-app/src/main/kotlin/de/griefed/serverpackcreator/app/ServerPackCreator.kt
+++ b/serverpackcreator-app/src/main/kotlin/de/griefed/serverpackcreator/app/ServerPackCreator.kt
@@ -35,11 +35,6 @@ import org.apache.commons.io.monitor.FileAlterationListener
 import org.apache.commons.io.monitor.FileAlterationMonitor
 import org.apache.commons.io.monitor.FileAlterationObserver
 import org.apache.logging.log4j.kotlin.cachedLoggerOf
-import org.springframework.boot.autoconfigure.SpringBootApplication
-import org.springframework.boot.autoconfigure.domain.EntityScan
-import org.springframework.boot.context.properties.EnableConfigurationProperties
-import org.springframework.context.annotation.ComponentScan
-import org.springframework.scheduling.annotation.EnableScheduling
 import org.xml.sax.SAXException
 import java.awt.GraphicsEnvironment
 import java.io.File
@@ -64,21 +59,17 @@ fun main(args: Array<String>) {
  * API-instance used to run a given instance of SPC.
  * @author Griefed
  */
-@SpringBootApplication
-@EnableConfigurationProperties
-@EntityScan(value = ["de.griefed.serverpackcreator.web"])
-@ComponentScan(value = ["de.griefed.serverpackcreator"])
-@EnableScheduling
 class ServerPackCreator(private val args: Array<String>) {
-    private val log = cachedLoggerOf(this.javaClass)
-    final val commandlineParser: CommandlineParser = CommandlineParser(args)
-    final val apiWrapper = ApiWrapper.api(commandlineParser.propertiesFile, false)
+    private val log by lazy { cachedLoggerOf(this.javaClass) }
+    val commandlineParser: CommandlineParser = CommandlineParser(args)
+    val apiWrapper = ApiWrapper.api(commandlineParser.propertiesFile, false)
     private val appInfo = JarInformation(ServerPackCreator::class.java, apiWrapper.jarUtilities)
 
     init {
         if (commandlineParser.language != null) {
             apiWrapper.apiProperties.changeLocale(commandlineParser.language!!)
         }
+        apiWrapper.apiProperties.isExe()
     }
 
     @Suppress("MemberVisibilityCanBePrivate")
@@ -102,7 +93,8 @@ class ServerPackCreator(private val args: Array<String>) {
         log.info("Running in mode: $mode")
         log.info("App information:")
         log.info("App Folder:      ${appInfo.jarFolder}")
-        log.info("App Path:        ${appInfo.jarFile.absolutePath}")
+        log.info("App File:        ${appInfo.jarFile}")
+        log.info("App Path:        ${appInfo.jarPath}")
         log.info("App Name:        ${appInfo.jarFileName}")
         log.info("Java version:    ${apiWrapper.apiProperties.getJavaVersion()}")
         log.info("OS architecture: ${apiWrapper.apiProperties.getOSArch()}")
diff --git a/serverpackcreator-cli/build.gradle.kts b/serverpackcreator-cli/build.gradle.kts
index 8fb985b42..91b1dee59 100644
--- a/serverpackcreator-cli/build.gradle.kts
+++ b/serverpackcreator-cli/build.gradle.kts
@@ -8,6 +8,6 @@ repositories {
 
 dependencies {
 	api(project(":serverpackcreator-api"))
-    testImplementation("org.junit.jupiter:junit-jupiter-api:5.10.0")
-    testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine:5.10.0")
+    testImplementation("org.junit.jupiter:junit-jupiter-api:5.10.2")
+    testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine:5.10.2")
 }
\ No newline at end of file
diff --git a/serverpackcreator-cli/src/main/kotlin/de/griefed/serverpackcreator/cli/ConfigurationEditor.kt b/serverpackcreator-cli/src/main/kotlin/de/griefed/serverpackcreator/cli/ConfigurationEditor.kt
index 77f204386..0cda41538 100644
--- a/serverpackcreator-cli/src/main/kotlin/de/griefed/serverpackcreator/cli/ConfigurationEditor.kt
+++ b/serverpackcreator-cli/src/main/kotlin/de/griefed/serverpackcreator/cli/ConfigurationEditor.kt
@@ -45,7 +45,7 @@ class ConfigurationEditor(
     private val utilities: Utilities,
     private val versionMeta: VersionMeta
 ) {
-    private val log = cachedLoggerOf(this.javaClass)
+    private val log by lazy { cachedLoggerOf(this.javaClass) }
     private val dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd_HH-mm-ss")
     private val current = dateTimeFormatter.format(LocalDateTime.now())
     private val logFile: File = File(apiProperties.logsDirectory, "configurationCreator-$current.log")
diff --git a/serverpackcreator-gui/build.gradle.kts b/serverpackcreator-gui/build.gradle.kts
index 3732f8e69..a524af46f 100644
--- a/serverpackcreator-gui/build.gradle.kts
+++ b/serverpackcreator-gui/build.gradle.kts
@@ -8,25 +8,25 @@ repositories {
 
 dependencies {
     api(project(":serverpackcreator-api"))
-    api("commons-io:commons-io:2.14.0")
-    api("org.jetbrains.kotlinx:kotlinx-coroutines-swing:1.7.3")
-    api("org.jetbrains.kotlin:kotlin-reflect:1.9.10")
+    api("commons-io:commons-io:2.16.1")
+    api("org.jetbrains.kotlinx:kotlinx-coroutines-swing:1.8.0")
+    api("org.jetbrains.kotlin:kotlin-reflect:1.9.23")
     implementation(project(":serverpackcreator-updater"))
 
     //New GUI
-    api("com.formdev:flatlaf:3.2.5")
-    api("com.formdev:flatlaf-extras:3.2.5")
-    api("com.formdev:flatlaf-intellij-themes:3.2.5")
-    api("com.formdev:flatlaf-fonts-jetbrains-mono:2.242")
-    api("com.formdev:flatlaf-fonts-inter:3.19")
+    api("com.formdev:flatlaf:3.4")
+    api("com.formdev:flatlaf-extras:3.4")
+    api("com.formdev:flatlaf-intellij-themes:3.4")
+    api("com.formdev:flatlaf-fonts-jetbrains-mono:2.304")
+    api("com.formdev:flatlaf-fonts-inter:4.0")
     api("com.formdev:flatlaf-fonts-roboto:2.137")
     api("com.formdev:flatlaf-fonts-roboto-mono:3.000")
-    api("com.miglayout:miglayout-swing:11.2")
+    api("com.miglayout:miglayout-swing:11.3")
     api("com.formdev:svgSalamander:1.1.4")
     api("net.java.balloontip:balloontip:1.2.4.1")
     api("com.cronutils:cron-utils:9.2.1")
     api("tokyo.northside:tipoftheday:0.4.2")
 
-    testImplementation("org.junit.jupiter:junit-jupiter-api:5.10.0")
-    testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine:5.10.0")
+    testImplementation("org.junit.jupiter:junit-jupiter-api:5.10.2")
+    testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine:5.10.2")
 }
\ No newline at end of file
diff --git a/serverpackcreator-gui/src/main/kotlin/de/griefed/serverpackcreator/gui/components/ConvenientJTable.kt b/serverpackcreator-gui/src/main/kotlin/de/griefed/serverpackcreator/gui/components/ConvenientJTable.kt
index 98284c2f8..e843fc6b9 100644
--- a/serverpackcreator-gui/src/main/kotlin/de/griefed/serverpackcreator/gui/components/ConvenientJTable.kt
+++ b/serverpackcreator-gui/src/main/kotlin/de/griefed/serverpackcreator/gui/components/ConvenientJTable.kt
@@ -67,7 +67,7 @@ abstract class ConvenientJTable(
     tableColumnModel: DefaultTableColumnModel? = null,
     listSelectionModel: DefaultListSelectionModel? = null
 ) : JTable(tableModel, tableColumnModel, listSelectionModel) {
-    private val log = cachedLoggerOf(this.javaClass)
+    private val log by lazy { cachedLoggerOf(this.javaClass) }
     val scrollPanel: ResizeIndicatorScrollPane
 
     init {
diff --git a/serverpackcreator-gui/src/main/kotlin/de/griefed/serverpackcreator/gui/themes/ThemeManager.kt b/serverpackcreator-gui/src/main/kotlin/de/griefed/serverpackcreator/gui/themes/ThemeManager.kt
index bc87ef5d4..eaba5b600 100644
--- a/serverpackcreator-gui/src/main/kotlin/de/griefed/serverpackcreator/gui/themes/ThemeManager.kt
+++ b/serverpackcreator-gui/src/main/kotlin/de/griefed/serverpackcreator/gui/themes/ThemeManager.kt
@@ -27,7 +27,7 @@ import com.formdev.flatlaf.themes.FlatMacDarkLaf
 import com.formdev.flatlaf.themes.FlatMacLightLaf
 import com.formdev.flatlaf.util.StringUtils
 import de.griefed.serverpackcreator.api.ApiWrapper
-import de.griefed.serverpackcreator.api.utilities.common.createDirectories
+import de.griefed.serverpackcreator.api.utilities.common.create
 import de.griefed.serverpackcreator.gui.GuiProps
 import org.apache.logging.log4j.kotlin.cachedLoggerOf
 import java.awt.Frame
@@ -46,14 +46,14 @@ import javax.swing.UIManager
  */
 class ThemeManager(private val apiWrapper: ApiWrapper, private val guiProps: GuiProps) {
 
-    private val log = cachedLoggerOf(this.javaClass)
+    private val log by lazy { cachedLoggerOf(this.javaClass) }
     private val themeRegex = ".*\\.(properties|txt)".toRegex()
     private val lastModifiedMap: HashMap<File, Long> = HashMap()
     val themesDir: File = File(apiWrapper.apiProperties.homeDirectory, "themes").absoluteFile
     val themes = mutableListOf<ThemeInfo>()
 
     init {
-        themesDir.createDirectories(create = true, directory = true)
+        themesDir.create(create = true, directory = true)
         provideExamples()
         reloadThemes()
     }
diff --git a/serverpackcreator-gui/src/main/kotlin/de/griefed/serverpackcreator/gui/tips/TipOfTheDayManager.kt b/serverpackcreator-gui/src/main/kotlin/de/griefed/serverpackcreator/gui/tips/TipOfTheDayManager.kt
index c7912963f..a1be5914d 100644
--- a/serverpackcreator-gui/src/main/kotlin/de/griefed/serverpackcreator/gui/tips/TipOfTheDayManager.kt
+++ b/serverpackcreator-gui/src/main/kotlin/de/griefed/serverpackcreator/gui/tips/TipOfTheDayManager.kt
@@ -24,7 +24,6 @@ import de.griefed.serverpackcreator.gui.GuiProps
 import kotlinx.coroutines.*
 import kotlinx.coroutines.swing.Swing
 import tokyo.northside.swing.TipOfTheDay
-import tokyo.northside.swing.TipOfTheDay.ShowOnStartupChoice
 import tokyo.northside.swing.tips.DefaultTipOfTheDayModel
 import java.util.*
 import javax.swing.JFrame
@@ -57,7 +56,7 @@ class TipOfTheDayManager(private val mainFrame: JFrame, private val guiProps: Gu
 
     @OptIn(DelicateCoroutinesApi::class)
     fun showTipOfTheDay() {
-        GlobalScope.launch(Dispatchers.Swing, CoroutineStart.UNDISPATCHED) {
+        GlobalScope.launch(Dispatchers.Swing, CoroutineStart.DEFAULT) {
             var random = (0..<tipOfTheDayModel.tipCount).random()
             if (guiProps.viewedTips.size == tipOfTheDayModel.tipCount) {
                 random = 0
@@ -69,7 +68,7 @@ class TipOfTheDayManager(private val mainFrame: JFrame, private val guiProps: Gu
             val newViewed = TreeSet(guiProps.viewedTips)
             newViewed.add(random)
             guiProps.viewedTips = newViewed
-            val tipOfTheDay = TipOfTheDay(tipOfTheDayModel)
+            val tipOfTheDay = TipOfTheDay(tipOfTheDayModel, false)
             tipOfTheDay.currentTip = random
             val customUI = CustomTipOfTheDayUI(tipOfTheDay, guiProps)
             tipOfTheDay.setUI(customUI)
@@ -80,7 +79,7 @@ class TipOfTheDayManager(private val mainFrame: JFrame, private val guiProps: Gu
         }
     }
 
-    inner class ShowOnStartup : ShowOnStartupChoice {
+    inner class ShowOnStartup : TipOfTheDay.ShowOnStartupChoice {
         override fun setShowingOnStartup(showOnStartup: Boolean) {
             guiProps.showTipOnStartup = showOnStartup
         }
diff --git a/serverpackcreator-gui/src/main/kotlin/de/griefed/serverpackcreator/gui/window/KeyComboManager.kt b/serverpackcreator-gui/src/main/kotlin/de/griefed/serverpackcreator/gui/window/KeyComboManager.kt
index ea1357b55..1caa0bab0 100644
--- a/serverpackcreator-gui/src/main/kotlin/de/griefed/serverpackcreator/gui/window/KeyComboManager.kt
+++ b/serverpackcreator-gui/src/main/kotlin/de/griefed/serverpackcreator/gui/window/KeyComboManager.kt
@@ -41,7 +41,7 @@ class KeyComboManager(
     mainPanel: MainPanel
 ) {
 
-    private val log = cachedLoggerOf(this.javaClass)
+    private val log by lazy { cachedLoggerOf(this.javaClass) }
     private val configs = mainPanel.tabbedConfigsTab
     private val control = mainPanel.controlPanel
 
diff --git a/serverpackcreator-gui/src/main/kotlin/de/griefed/serverpackcreator/gui/window/UpdateDialogs.kt b/serverpackcreator-gui/src/main/kotlin/de/griefed/serverpackcreator/gui/window/UpdateDialogs.kt
index 41487ffbe..9f5ab491f 100644
--- a/serverpackcreator-gui/src/main/kotlin/de/griefed/serverpackcreator/gui/window/UpdateDialogs.kt
+++ b/serverpackcreator-gui/src/main/kotlin/de/griefed/serverpackcreator/gui/window/UpdateDialogs.kt
@@ -50,7 +50,7 @@ class UpdateDialogs(
     private val updateChecker: UpdateChecker,
     private val mainFrame: JFrame
 ) {
-    private val log = cachedLoggerOf(this.javaClass)
+    private val log by lazy { cachedLoggerOf(this.javaClass) }
     var update: Optional<Update> = updateChecker.checkForUpdate(
         apiProperties.apiVersion,
         apiProperties.isCheckingForPreReleasesEnabled
diff --git a/serverpackcreator-gui/src/main/kotlin/de/griefed/serverpackcreator/gui/window/configs/ConfigEditor.kt b/serverpackcreator-gui/src/main/kotlin/de/griefed/serverpackcreator/gui/window/configs/ConfigEditor.kt
index af891dfc3..5fc2b4ad9 100644
--- a/serverpackcreator-gui/src/main/kotlin/de/griefed/serverpackcreator/gui/window/configs/ConfigEditor.kt
+++ b/serverpackcreator-gui/src/main/kotlin/de/griefed/serverpackcreator/gui/window/configs/ConfigEditor.kt
@@ -57,7 +57,7 @@ class ConfigEditor(
     componentResizer: ComponentResizer
 ) : JScrollPane(), ServerPackConfigTab {
 
-    private val log = cachedLoggerOf(this.javaClass)
+    private val log by lazy { cachedLoggerOf(this.javaClass) }
     private val panel = JPanel(
         MigLayout(
             "left,wrap",
@@ -74,7 +74,7 @@ class ConfigEditor(
 
     private val modpackIcon = StatusIcon(guiProps,Translations.createserverpack_gui_createserverpack_labelmodpackdir_tip.toString())
     private val modpackLabel = ElementLabel(Translations.createserverpack_gui_createserverpack_labelmodpackdir.toString())
-    private val modpackSetting = ScrollTextFileField(guiProps,File(""), validationChangeListener)
+    private val modpackSetting = ScrollTextFileField(guiProps,apiWrapper.apiProperties.homeDirectory, validationChangeListener)
     private val modpackChooser = BalloonTipButton(null, guiProps.folderIcon, Translations.createserverpack_gui_browser.toString(), guiProps) { selectModpackDirectory() }
     private val modpackCheck = BalloonTipButton(null, guiProps.inspectIcon,Translations.createserverpack_gui_buttonmodpackdir_scan_tip.toString(), guiProps) { updateGuiFromSelectedModpack() }
 
diff --git a/serverpackcreator-gui/src/main/kotlin/de/griefed/serverpackcreator/gui/window/configs/TabbedConfigsTab.kt b/serverpackcreator-gui/src/main/kotlin/de/griefed/serverpackcreator/gui/window/configs/TabbedConfigsTab.kt
index 0eb79dd5d..bd1504e78 100644
--- a/serverpackcreator-gui/src/main/kotlin/de/griefed/serverpackcreator/gui/window/configs/TabbedConfigsTab.kt
+++ b/serverpackcreator-gui/src/main/kotlin/de/griefed/serverpackcreator/gui/window/configs/TabbedConfigsTab.kt
@@ -54,7 +54,7 @@ class TabbedConfigsTab(
     private val apiWrapper: ApiWrapper,
     private val mainFrame: MainFrame
 ) : TabPanel() {
-    private val log = cachedLoggerOf(this.javaClass)
+    private val log by lazy { cachedLoggerOf(this.javaClass) }
     private val choose = arrayOf(Translations.createserverpack_gui_quickselect_choose.toString())
     private val noVersions = DefaultComboBoxModel(arrayOf(Translations.createserverpack_gui_createserverpack_forge_none.toString()))
     private val componentResizer = ComponentResizer()
diff --git a/serverpackcreator-gui/src/main/kotlin/de/griefed/serverpackcreator/gui/window/configs/components/SuggestionProvider.kt b/serverpackcreator-gui/src/main/kotlin/de/griefed/serverpackcreator/gui/window/configs/components/SuggestionProvider.kt
index 23f8ccd5a..f6e48d43c 100644
--- a/serverpackcreator-gui/src/main/kotlin/de/griefed/serverpackcreator/gui/window/configs/components/SuggestionProvider.kt
+++ b/serverpackcreator-gui/src/main/kotlin/de/griefed/serverpackcreator/gui/window/configs/components/SuggestionProvider.kt
@@ -56,7 +56,7 @@ class SuggestionProvider(
     private val sourceComponent: JTextComponent,
     private val identifier: String
 ) {
-    private val log = cachedLoggerOf(this.javaClass)
+    private val log by lazy { cachedLoggerOf(this.javaClass) }
     private val suggestionMenu = JPopupMenu()
     private var suggestionListModel = DefaultListModel<String>()
     private var suggestionList = JList(suggestionListModel)
diff --git a/serverpackcreator-gui/src/main/kotlin/de/griefed/serverpackcreator/gui/window/configs/components/advanced/AdvancedSettingsPanel.kt b/serverpackcreator-gui/src/main/kotlin/de/griefed/serverpackcreator/gui/window/configs/components/advanced/AdvancedSettingsPanel.kt
index dd1afc3ff..4260a7b47 100644
--- a/serverpackcreator-gui/src/main/kotlin/de/griefed/serverpackcreator/gui/window/configs/components/advanced/AdvancedSettingsPanel.kt
+++ b/serverpackcreator-gui/src/main/kotlin/de/griefed/serverpackcreator/gui/window/configs/components/advanced/AdvancedSettingsPanel.kt
@@ -57,7 +57,7 @@ class AdvancedSettingsPanel(
         "[left,::64]5[left]5[left,grow]5[left,::64]5[left,::64]", "30"
     )
 ) {
-    private val log = cachedLoggerOf(this.javaClass)
+    private val log by lazy { cachedLoggerOf(this.javaClass) }
     private val clientModsIcon = StatusIcon(guiProps,Translations.createserverpack_gui_createserverpack_labelclientmods_tip.toString())
     private val clientModsLabel = ElementLabel(Translations.createserverpack_gui_createserverpack_labelclientmods.toString())
     private val clientModsRevert = BalloonTipButton(null, guiProps.revertIcon, Translations.createserverpack_gui_buttonclientmods_revert_tip.toString(), guiProps) { revertExclusions() }
diff --git a/serverpackcreator-gui/src/main/kotlin/de/griefed/serverpackcreator/gui/window/configs/components/inclusions/InclusionsEditor.kt b/serverpackcreator-gui/src/main/kotlin/de/griefed/serverpackcreator/gui/window/configs/components/inclusions/InclusionsEditor.kt
index 00f50b83d..26d751527 100644
--- a/serverpackcreator-gui/src/main/kotlin/de/griefed/serverpackcreator/gui/window/configs/components/inclusions/InclusionsEditor.kt
+++ b/serverpackcreator-gui/src/main/kotlin/de/griefed/serverpackcreator/gui/window/configs/components/inclusions/InclusionsEditor.kt
@@ -64,7 +64,7 @@ class InclusionsEditor(
     private val inclusionFilter: ScrollTextField,
     private val exclusionFilter: ScrollTextField
 ) : JSplitPane(HORIZONTAL_SPLIT) {
-    private val log = cachedLoggerOf(this.javaClass)
+    private val log by lazy { cachedLoggerOf(this.javaClass) }
     private val expertPanel = JPanel(
         MigLayout(
             "left,wrap",
diff --git a/serverpackcreator-gui/src/main/kotlin/de/griefed/serverpackcreator/gui/window/control/ControlPanel.kt b/serverpackcreator-gui/src/main/kotlin/de/griefed/serverpackcreator/gui/window/control/ControlPanel.kt
index a9fe6a72c..616370644 100644
--- a/serverpackcreator-gui/src/main/kotlin/de/griefed/serverpackcreator/gui/window/control/ControlPanel.kt
+++ b/serverpackcreator-gui/src/main/kotlin/de/griefed/serverpackcreator/gui/window/control/ControlPanel.kt
@@ -53,7 +53,7 @@ class ControlPanel(
     private val apiWrapper: ApiWrapper,
     private val mainFrame: MainFrame
 ) {
-    private val log = cachedLoggerOf(this.javaClass)
+    private val log by lazy { cachedLoggerOf(this.javaClass) }
     private val statusPanel = StatusPanel(guiProps)
 
     private val runGeneration = GenerationButton(guiProps) { generate() }
diff --git a/serverpackcreator-gui/src/main/kotlin/de/griefed/serverpackcreator/gui/window/menu/file/MainLogToHasteBinItem.kt b/serverpackcreator-gui/src/main/kotlin/de/griefed/serverpackcreator/gui/window/menu/file/MainLogToHasteBinItem.kt
index 09e2906f3..5fda3ef6e 100644
--- a/serverpackcreator-gui/src/main/kotlin/de/griefed/serverpackcreator/gui/window/menu/file/MainLogToHasteBinItem.kt
+++ b/serverpackcreator-gui/src/main/kotlin/de/griefed/serverpackcreator/gui/window/menu/file/MainLogToHasteBinItem.kt
@@ -44,7 +44,7 @@ class MainLogToHasteBinItem(
     guiProps: GuiProps,
     mainFrame: JFrame
 ) : HasteBinMenuItem(Translations.menubar_gui_menuitem_uploadlog.toString(), mainFrame, guiProps, webUtilities) {
-    private val log = cachedLoggerOf(this.javaClass)
+    private val log by lazy { cachedLoggerOf(this.javaClass) }
     private val spcLogDocument: StyledDocument = DefaultStyledDocument()
     private val spcLogAttributeSet: SimpleAttributeSet = SimpleAttributeSet()
     private val spcLogWindowTextPane: JTextPane = JTextPane(spcLogDocument)
diff --git a/serverpackcreator-gui/src/main/kotlin/de/griefed/serverpackcreator/gui/window/settings/GlobalSettings.kt b/serverpackcreator-gui/src/main/kotlin/de/griefed/serverpackcreator/gui/window/settings/GlobalSettings.kt
index 2b85064e7..bbb97b0a4 100644
--- a/serverpackcreator-gui/src/main/kotlin/de/griefed/serverpackcreator/gui/window/settings/GlobalSettings.kt
+++ b/serverpackcreator-gui/src/main/kotlin/de/griefed/serverpackcreator/gui/window/settings/GlobalSettings.kt
@@ -54,24 +54,24 @@ class GlobalSettings(
     controlPanel: ControlPanel
 ) : Editor(Translations.settings_global.toString(), guiProps) {
 
-    private val homeIcon = StatusIcon(guiProps, Translations.settings_global_home_tooltip.toString())
-    private val homeLabel = ElementLabel(Translations.settings_global_home_label.toString())
-    private val homeSetting = ScrollTextFileField(guiProps, apiProperties.homeDirectory.absoluteFile, changeListener)
-    private val homeRevert = BalloonTipButton(null, guiProps.revertIcon, Translations.settings_revert.toString(), guiProps) { homeSetting.file = apiProperties.homeDirectory }
-    private val homeReset = BalloonTipButton(null, guiProps.resetIcon,Translations.settings_reset.toString(), guiProps) { homeSetting.file = apiProperties.defaultHomeDirectory() }
-    private val homeChoose = BalloonTipButton(null, guiProps.folderIcon,Translations.settings_select_directory.toString(), guiProps) {
-        val homeChooser = HomeDirChooser(apiProperties,Translations.settings_global_home_chooser.toString())
-        if (homeChooser.showSaveDialog(mainFrame.frame) == JFileChooser.APPROVE_OPTION) {
-            if (homeChooser.selectedFile.absoluteFile.testFileWrite()) {
-                homeSetting.file = homeChooser.selectedFile.absoluteFile
-            } else {
-                JOptionPane.showMessageDialog(
-                    mainFrame.frame,
-                    Translations.settings_directory_error(homeChooser.selectedFile.absolutePath)
-                )
-            }
-        }
-    }
+//    private val homeIcon = StatusIcon(guiProps, Translations.settings_global_home_tooltip.toString())
+//    private val homeLabel = ElementLabel(Translations.settings_global_home_label.toString())
+//    private val homeSetting = ScrollTextFileField(guiProps, apiProperties.homeDirectory.absoluteFile, changeListener)
+//    private val homeRevert = BalloonTipButton(null, guiProps.revertIcon, Translations.settings_revert.toString(), guiProps) { homeSetting.file = apiProperties.homeDirectory }
+//    private val homeReset = BalloonTipButton(null, guiProps.resetIcon,Translations.settings_reset.toString(), guiProps) { homeSetting.file = apiProperties.home }
+//    private val homeChoose = BalloonTipButton(null, guiProps.folderIcon,Translations.settings_select_directory.toString(), guiProps) {
+//        val homeChooser = HomeDirChooser(apiProperties,Translations.settings_global_home_chooser.toString())
+//        if (homeChooser.showSaveDialog(mainFrame.frame) == JFileChooser.APPROVE_OPTION) {
+//            if (homeChooser.selectedFile.absoluteFile.testFileWrite()) {
+//                homeSetting.file = homeChooser.selectedFile.absoluteFile
+//            } else {
+//                JOptionPane.showMessageDialog(
+//                    mainFrame.frame,
+//                    Translations.settings_directory_error(homeChooser.selectedFile.absolutePath)
+//                )
+//            }
+//        }
+//    }
 
     private val javaIcon = StatusIcon(guiProps, Translations.settings_global_java_tooltip.toString())
     private val javaLabel = ElementLabel(Translations.settings_global_java_label.toString())
@@ -221,12 +221,12 @@ class GlobalSettings(
         val postInstallY: Int
         val javaPathsY: Int
         var y = 0
-        panel.add(homeIcon, "cell 0 $y")
-        panel.add(homeLabel, "cell 1 $y")
-        panel.add(homeSetting, "cell 2 $y, grow")
-        panel.add(homeRevert, "cell 3 $y")
-        panel.add(homeReset, "cell 4 $y")
-        panel.add(homeChoose, "cell 5 $y")
+//        panel.add(homeIcon, "cell 0 $y")
+//        panel.add(homeLabel, "cell 1 $y")
+//        panel.add(homeSetting, "cell 2 $y, grow")
+//        panel.add(homeRevert, "cell 3 $y")
+//        panel.add(homeReset, "cell 4 $y")
+//        panel.add(homeChoose, "cell 5 $y")
 
         y++
         panel.add(javaIcon, "cell 0 $y")
@@ -380,7 +380,7 @@ class GlobalSettings(
     }
 
     override fun loadSettings() {
-        homeSetting.file = apiProperties.homeDirectory.absoluteFile
+//        homeSetting.file = apiProperties.homeDirectory.absoluteFile
         javaSetting.file = File(apiProperties.javaPath).absoluteFile
         serverPacksSetting.file = apiProperties.serverPacksDirectory.absoluteFile
         zipSetting.text = apiProperties.zipArchiveExclusions.joinToString(", ")
@@ -403,7 +403,7 @@ class GlobalSettings(
     }
 
     override fun saveSettings() {
-        apiProperties.homeDirectory = homeSetting.file.absoluteFile
+//        apiProperties.homeDirectory = homeSetting.file.absoluteFile
         apiProperties.javaPath = javaSetting.file.absolutePath
         apiProperties.serverPacksDirectory = serverPacksSetting.file.absoluteFile
         apiProperties.zipArchiveExclusions = TreeSet(zipSetting.text.replace(", ",",").split(","))
@@ -429,12 +429,12 @@ class GlobalSettings(
 
     override fun validateSettings(): List<String> {
         val errors = mutableListOf<String>()
-        if (!homeSetting.file.absoluteFile.isDirectory || !homeSetting.file.absoluteFile.canWrite()) {
-            homeIcon.error(Translations.settings_check_home.toString())
-            errors.add(Translations.settings_check_home.toString())
-        } else {
-            homeIcon.info()
-        }
+//        if (!homeSetting.file.absoluteFile.isDirectory || !homeSetting.file.absoluteFile.canWrite()) {
+//            homeIcon.error(Translations.settings_check_home.toString())
+//            errors.add(Translations.settings_check_home.toString())
+//        } else {
+//            homeIcon.info()
+//        }
 
         if (!javaSetting.file.absoluteFile.isFile || !javaSetting.file.absoluteFile.canRead() || !javaSetting.file.absoluteFile.canExecute()) {
             javaIcon.error(Translations.settings_check_java.toString())
@@ -498,7 +498,7 @@ class GlobalSettings(
     override fun hasUnsavedChanges(): Boolean {
         val javaPaths = javaPathsSetting.getData()
         javaPaths.remove("placeholder")
-        val changes = homeSetting.file.absolutePath != apiProperties.homeDirectory.absolutePath ||
+        val changes = /*homeSetting.file.absolutePath != apiProperties.homeDirectory.absolutePath ||*/
         javaSetting.file.absolutePath != File(apiProperties.javaPath).absolutePath ||
         serverPacksSetting.file.absolutePath != apiProperties.serverPacksDirectory.absolutePath ||
         zipSetting.text != apiProperties.zipArchiveExclusions.joinToString(", ") ||
diff --git a/serverpackcreator-gui/src/main/kotlin/de/griefed/serverpackcreator/gui/window/settings/SettingsHandling.kt b/serverpackcreator-gui/src/main/kotlin/de/griefed/serverpackcreator/gui/window/settings/SettingsHandling.kt
index 49e920b7b..ccf749334 100644
--- a/serverpackcreator-gui/src/main/kotlin/de/griefed/serverpackcreator/gui/window/settings/SettingsHandling.kt
+++ b/serverpackcreator-gui/src/main/kotlin/de/griefed/serverpackcreator/gui/window/settings/SettingsHandling.kt
@@ -80,7 +80,6 @@ class SettingsHandling(
             (tab as Editor).saveSettings()
         }
         apiProperties.saveProperties(apiProperties.serverPackCreatorPropertiesFile)
-        apiProperties.saveOverrides()
         lastAction = Translations.settings_handle_saved(currentTime())
         checkAll()
         controlPanel.updateStatus(Translations.settings_info_saved(apiProperties.serverPackCreatorPropertiesFile.absolutePath))
diff --git a/serverpackcreator-gui/src/main/resources/de/griefed/resources/gui/LICENSE-AGREEMENT b/serverpackcreator-gui/src/main/resources/de/griefed/resources/gui/LICENSE-AGREEMENT
index e1d820cb1..02abccda1 100644
--- a/serverpackcreator-gui/src/main/resources/de/griefed/resources/gui/LICENSE-AGREEMENT
+++ b/serverpackcreator-gui/src/main/resources/de/griefed/resources/gui/LICENSE-AGREEMENT
@@ -469,52 +469,6 @@ DAMAGES.
 
                      END OF TERMS AND CONDITIONS
 
-           How to Apply These Terms to Your New Libraries
-
-  If you develop a new library, and you want it to be of the greatest
-possible use to the public, we recommend making it free software that
-everyone can redistribute and change.  You can do so by permitting
-redistribution under these terms (or, alternatively, under the terms of the
-ordinary General Public License).
-
-  To apply these terms, attach the following notices to the library.  It is
-safest to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least the
-"copyright" line and a pointer to where the full notice is found.
-
-    <one line to give the library's name and a brief idea of what it does.>
-    Copyright (C) <year>  <name of author>
-
-    This library is free software; you can redistribute it and/or
-    modify it under the terms of the GNU Lesser General Public
-    License as published by the Free Software Foundation; either
-    version 2.1 of the License, or (at your option) any later version.
-
-    This library is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-    Lesser General Public License for more details.
-
-    You should have received a copy of the GNU Lesser General Public
-    License along with this library; if not, write to the Free Software
-    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301
-    USA
-
-Also add information on how to contact you by electronic and paper mail.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the library, if
-necessary.  Here is a sample; alter the names:
-
-  Yoyodyne, Inc., hereby disclaims all copyright interest in the
-  library `Frob' (a library for tweaking knobs) written by James Random
-  Hacker.
-
-  <signature of Ty Coon>, 1 April 1990
-  Ty Coon, President of Vice
-
-That's all there is to it!
-
 
 Used libraries / dependencies licenses:
 
@@ -546,8 +500,8 @@ URL: https://www.apache.org/licenses/LICENSE-2.0
 (2 of 41)
 Group:   com.electronwill.night-config
 Name:    toml
-Version: 3.6.7
-POM Project URL: https://github.com/TheElectronWill/Night-Config
+Version: 3.7.1
+POM Project URL: https://github.com/TheElectronWill/night-config
 
 
 POM License: GNU Lesser General Public License v3.0
@@ -733,7 +687,7 @@ Library.
 (3 of 41)
 Group:   com.fasterxml.jackson.core
 Name:    jackson-databind
-Version: 2.15.3
+Version: 2.17.0
 Project URL: https://github.com/FasterXML/jackson\n\n
 Manifest license URL: https://www.apache.org/licenses/LICENSE-2.0
 
@@ -976,7 +930,7 @@ from the source code management (SCM) system project uses.
 (4 of 41)
 Group:   com.fasterxml.jackson.module
 Name:    jackson-module-kotlin
-Version: 2.14.2
+Version: 2.17.0
 Project URL: https://github.com/FasterXML/jackson-module-kotlin\n\n
 Manifest license URL: https://www.apache.org/licenses/LICENSE-2.0
 
@@ -990,7 +944,7 @@ Embedded license:
 This copy of Jackson JSON processor databind module is licensed under the
 Apache (Software) License, version 2.0 ("the License").
 See the License for details about distribution rights, and the
-specific rights regarding derivate works.
+specific rights regarding derivative works.
 
 You may obtain a copy of the License at:
 
@@ -1005,6 +959,10 @@ been in development since 2007.
 It is currently developed by a community of developers, as well as supported
 commercially by FasterXML.com.
 
+## Copyright
+
+Copyright 2007-, Tatu Saloranta (tatu.saloranta@iki.fi)
+
 ## Licensing
 
 Jackson core and extension components may be licensed under different licenses.
@@ -1024,7 +982,7 @@ from the source code management (SCM) system project uses.
 (5 of 41)
 Group:   com.fasterxml.jackson.module
 Name:    jackson-module-kotlin
-Version: 2.15.3
+Version: 2.17.1
 Project URL: https://github.com/FasterXML/jackson-module-kotlin\n\n
 Manifest license URL: https://www.apache.org/licenses/LICENSE-2.0
 
@@ -1076,7 +1034,7 @@ from the source code management (SCM) system project uses.
 (6 of 41)
 Group:   com.formdev
 Name:    flatlaf
-Version: 3.2.5
+Version: 3.4
 POM Project URL: https://github.com/JFormDesigner/FlatLaf
 
 
@@ -1294,7 +1252,7 @@ Embedded license:
 (7 of 41)
 Group:   com.formdev
 Name:    flatlaf-extras
-Version: 3.2.5
+Version: 3.4
 POM Project URL: https://github.com/JFormDesigner/FlatLaf
 
 
@@ -1512,7 +1470,7 @@ Embedded license:
 (8 of 41)
 Group:   com.formdev
 Name:    flatlaf-fonts-inter
-Version: 3.19
+Version: 4.0
 POM Project URL: https://github.com/JFormDesigner/FlatLaf
 
 
@@ -1729,9 +1687,7 @@ Embedded license:
    limitations under the License.
 
 
-Copyright (c) 2016-2020 The Inter Project Authors.
-"Inter" is trademark of Rasmus Andersson.
-https://github.com/rsms/inter
+Copyright (c) 2016 The Inter Project Authors (https://github.com/rsms/inter)
 
 This Font Software is licensed under the SIL Open Font License, Version 1.1.
 This license is copied below, and is also available with a FAQ at:
@@ -1830,7 +1786,7 @@ OTHER DEALINGS IN THE FONT SOFTWARE.
 (9 of 41)
 Group:   com.formdev
 Name:    flatlaf-fonts-jetbrains-mono
-Version: 2.242
+Version: 2.304
 POM Project URL: https://github.com/JFormDesigner/FlatLaf
 
 
@@ -2896,7 +2852,7 @@ Embedded license:
 (12 of 41)
 Group:   com.formdev
 Name:    flatlaf-intellij-themes
-Version: 3.2.5
+Version: 3.4
 POM Project URL: https://github.com/JFormDesigner/FlatLaf
 
 
@@ -3142,7 +3098,7 @@ URL: https://opensource.org/licenses/BSD-2-Clause
 (14 of 41)
 Group:   com.miglayout
 Name:    miglayout-swing
-Version: 11.2
+Version: 11.3
 POM Project URL: http://www.miglayout.com/
 
 
@@ -3162,7 +3118,7 @@ URL: https://opensource.org/licenses/0BSD
 (15 of 41)
 Group:   commons-io
 Name:    commons-io
-Version: 2.14.0
+Version: 2.16.1
 Project URL: https://commons.apache.org/proper/commons-io/\n\n
 Manifest license URL: https://www.apache.org/licenses/LICENSE-2.0
 
@@ -3379,7 +3335,7 @@ Embedded license:
 
 
 Apache Commons IO
-Copyright 2002-2023 The Apache Software Foundation
+Copyright 2002-2024 The Apache Software Foundation
 
 This product includes software developed at
 The Apache Software Foundation (https://www.apache.org/).
@@ -3390,7 +3346,7 @@ The Apache Software Foundation (https://www.apache.org/).
 (16 of 41)
 Group:   de.comahe.i18n4k
 Name:    i18n4k-core
-Version: 0.6.2
+Version: 0.7.0
 No license information found
 
 
@@ -3399,7 +3355,7 @@ No license information found
 (17 of 41)
 Group:   de.comahe.i18n4k
 Name:    i18n4k-core-jvm
-Version: 0.6.2
+Version: 0.7.0
 POM Project URL: https://comahe-de.github.io/i18n4k/
 
 
@@ -3419,7 +3375,7 @@ URL: https://www.apache.org/licenses/LICENSE-2.0
 (18 of 41)
 Group:   de.jensklingenberg.ktorfit
 Name:    ktorfit-lib
-Version: 1.9.0
+Version: 1.14.0
 No license information found
 
 
@@ -3480,7 +3436,7 @@ URL: https://www.apache.org/licenses/LICENSE-2.0
 (22 of 41)
 Group:   org.apache.logging.log4j
 Name:    log4j-api-kotlin
-Version: 1.3.0
+Version: 1.4.0
 Manifest license URL: https://www.apache.org/licenses/LICENSE-2.0
 
 
@@ -3707,7 +3663,7 @@ The Apache Software Foundation (http://www.apache.org/).
 (23 of 41)
 Group:   org.apache.logging.log4j
 Name:    log4j-core
-Version: 2.21.0
+Version: 2.23.1
 Manifest license URL: https://www.apache.org/licenses/LICENSE-2.0
 
 
@@ -3935,7 +3891,7 @@ Copyright 2005-2006 Tim Fennell
 (24 of 41)
 Group:   org.bouncycastle
 Name:    bcpkix-jdk18on
-Version: 1.77
+Version: 1.78
 POM Project URL: https://www.bouncycastle.org/java.html
 
 
@@ -3955,11 +3911,11 @@ URL: https://www.bouncycastle.org/licence.html
 (25 of 41)
 Group:   org.javassist
 Name:    javassist
-Version: 3.29.2-GA
+Version: 3.30.2-GA
 Manifest license URL: https://www.apache.org/licenses/LICENSE-2.0
 
 
-POM Project URL: http://www.javassist.org/
+POM Project URL: https://www.javassist.org/
 
 
 POM License: Apache License, Version 2.0
@@ -3994,7 +3950,7 @@ URL: https://www.mozilla.org/en-US/MPL/1.1
 (26 of 41)
 Group:   org.jetbrains.kotlin
 Name:    kotlin-bom
-Version: 1.9.21
+Version: 1.9.23
 No license information found
 
 
@@ -4003,7 +3959,7 @@ No license information found
 (27 of 41)
 Group:   org.jetbrains.kotlin
 Name:    kotlin-reflect
-Version: 1.9.10
+Version: 1.9.23
 POM Project URL: https://kotlinlang.org/
 
 
@@ -4022,8 +3978,8 @@ URL: https://www.apache.org/licenses/LICENSE-2.0
 
 (28 of 41)
 Group:   org.jetbrains.kotlin
-Name:    kotlin-reflect
-Version: 1.9.21
+Name:    kotlin-stdlib
+Version: 1.9.23
 POM Project URL: https://kotlinlang.org/
 
 
@@ -4043,7 +3999,7 @@ URL: https://www.apache.org/licenses/LICENSE-2.0
 (29 of 41)
 Group:   org.jetbrains.kotlin
 Name:    kotlin-stdlib
-Version: 1.9.21
+Version: 2.0.0-RC1
 POM Project URL: https://kotlinlang.org/
 
 
@@ -4063,7 +4019,7 @@ URL: https://www.apache.org/licenses/LICENSE-2.0
 (30 of 41)
 Group:   org.jetbrains.kotlinx
 Name:    kotlinx-coroutines-core
-Version: 1.7.3
+Version: 1.8.0
 No license information found
 
 
@@ -4072,7 +4028,7 @@ No license information found
 (31 of 41)
 Group:   org.jetbrains.kotlinx
 Name:    kotlinx-coroutines-swing
-Version: 1.7.3
+Version: 1.8.0
 POM Project URL: https://github.com/Kotlin/kotlinx.coroutines
 
 
@@ -4092,7 +4048,7 @@ URL: https://www.apache.org/licenses/LICENSE-2.0
 (32 of 41)
 Group:   org.jetbrains.kotlinx
 Name:    kotlinx-datetime
-Version: 0.4.1
+Version: 0.5.0
 No license information found
 
 
@@ -4101,7 +4057,7 @@ No license information found
 (33 of 41)
 Group:   org.pf4j
 Name:    pf4j
-Version: 3.10.0
+Version: 3.11.0
 POM License: Apache License, Version 2.0
  - https://www.apache.org/licenses/LICENSE-2.0
 
@@ -4118,7 +4074,7 @@ URL: https://www.apache.org/licenses/LICENSE-2.0
 (34 of 41)
 Group:   org.postgresql
 Name:    postgresql
-Version: 42.6.0
+Version: 42.7.3
 Manifest Project URL: https://jdbc.postgresql.org/
 
 
@@ -4270,7 +4226,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 (35 of 41)
 Group:   org.springframework.boot
 Name:    spring-boot-devtools
-Version: 3.0.4
+Version: 3.2.5
 POM Project URL: https://spring.io/projects/spring-boot
 
 
@@ -4483,8 +4439,8 @@ Embedded license:
    See the License for the specific language governing permissions and
    limitations under the License.
 
-Spring Boot 3.0.4
-Copyright (c) 2012-2023 VMware, Inc.
+Spring Boot 3.2.5
+Copyright (c) 2012-2024 VMware, Inc.
 
 This product is licensed to you under the Apache License, Version 2.0
 (the "License"). You may not use this product except in compliance with
@@ -4495,7 +4451,7 @@ the License.
 (36 of 41)
 Group:   org.springframework.boot
 Name:    spring-boot-devtools
-Version: 3.2.0
+Version: 3.3.0
 POM Project URL: https://spring.io/projects/spring-boot
 
 
@@ -4708,8 +4664,8 @@ Embedded license:
    See the License for the specific language governing permissions and
    limitations under the License.
 
-Spring Boot 3.2.0
-Copyright (c) 2012-2023 VMware, Inc.
+Spring Boot 3.3.0
+Copyright (c) 2012-2024 VMware, Inc.
 
 This product is licensed to you under the Apache License, Version 2.0
 (the "License"). You may not use this product except in compliance with
@@ -4720,7 +4676,7 @@ the License.
 (37 of 41)
 Group:   org.springframework.boot
 Name:    spring-boot-starter-data-jpa
-Version: 3.0.4
+Version: 3.2.5
 POM Project URL: https://spring.io/projects/spring-boot
 
 
@@ -4933,8 +4889,8 @@ Embedded license:
    See the License for the specific language governing permissions and
    limitations under the License.
 
-Spring Boot 3.0.4
-Copyright (c) 2012-2023 VMware, Inc.
+Spring Boot 3.2.5
+Copyright (c) 2012-2024 VMware, Inc.
 
 This product is licensed to you under the Apache License, Version 2.0
 (the "License"). You may not use this product except in compliance with
@@ -4945,7 +4901,7 @@ the License.
 (38 of 41)
 Group:   org.springframework.boot
 Name:    spring-boot-starter-log4j2
-Version: 3.0.4
+Version: 3.2.4
 POM Project URL: https://spring.io/projects/spring-boot
 
 
@@ -5158,8 +5114,8 @@ Embedded license:
    See the License for the specific language governing permissions and
    limitations under the License.
 
-Spring Boot 3.0.4
-Copyright (c) 2012-2023 VMware, Inc.
+Spring Boot 3.2.4
+Copyright (c) 2012-2024 VMware, Inc.
 
 This product is licensed to you under the Apache License, Version 2.0
 (the "License"). You may not use this product except in compliance with
@@ -5170,7 +5126,7 @@ the License.
 (39 of 41)
 Group:   org.springframework.boot
 Name:    spring-boot-starter-web
-Version: 3.1.0
+Version: 3.2.4
 POM Project URL: https://spring.io/projects/spring-boot
 
 
@@ -5383,8 +5339,8 @@ Embedded license:
    See the License for the specific language governing permissions and
    limitations under the License.
 
-Spring Boot 3.1.0
-Copyright (c) 2012-2023 VMware, Inc.
+Spring Boot 3.2.4
+Copyright (c) 2012-2024 VMware, Inc.
 
 This product is licensed to you under the Apache License, Version 2.0
 (the "License"). You may not use this product except in compliance with
@@ -5395,7 +5351,7 @@ the License.
 (40 of 41)
 Group:   org.springframework.boot
 Name:    spring-boot-starter-web
-Version: 3.2.0
+Version: 3.3.0
 POM Project URL: https://spring.io/projects/spring-boot
 
 
@@ -5608,8 +5564,8 @@ Embedded license:
    See the License for the specific language governing permissions and
    limitations under the License.
 
-Spring Boot 3.2.0
-Copyright (c) 2012-2023 VMware, Inc.
+Spring Boot 3.3.0
+Copyright (c) 2012-2024 VMware, Inc.
 
 This product is licensed to you under the Apache License, Version 2.0
 (the "License"). You may not use this product except in compliance with
diff --git a/serverpackcreator-plugin-example/build.gradle.kts b/serverpackcreator-plugin-example/build.gradle.kts
index 87f853540..16c126aca 100644
--- a/serverpackcreator-plugin-example/build.gradle.kts
+++ b/serverpackcreator-plugin-example/build.gradle.kts
@@ -30,8 +30,8 @@ val pluginDescription = "An example plugin for ServerPackCreator, written in Kot
 val pluginAuthor = "Griefed"
 
 dependencies {
-    annotationProcessor("org.pf4j:pf4j:3.10.0")
-    kapt("org.pf4j:pf4j:3.10.0")
+    annotationProcessor("org.pf4j:pf4j:3.11.0")
+    kapt("org.pf4j:pf4j:3.11.0")
     /*
      * CAUTION: When copying the code of the example plugin, make sure to change the dependency on
      * the API to implementation("de.griefed:serverpackcreator:serverpackcreator-api:$VERSION")
@@ -40,8 +40,8 @@ dependencies {
 
 
     // Testing
-    testImplementation("org.junit.jupiter:junit-jupiter-api:5.10.0")
-    testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine:5.10.0")
+    testImplementation("org.junit.jupiter:junit-jupiter-api:5.10.2")
+    testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine:5.10.2")
 }
 
 tasks.processResources {
@@ -79,6 +79,10 @@ tasks.sourcesJar {
     dependsOn(tasks.generateI18n4kFiles)
 }
 
+tasks.test {
+    dependsOn(":serverpackcreator-api:processTestResources")
+}
+
 tasks.jar {
     manifest {
         attributes(
diff --git a/serverpackcreator-updater/build.gradle.kts b/serverpackcreator-updater/build.gradle.kts
index 7b7716eb7..f8d51c370 100644
--- a/serverpackcreator-updater/build.gradle.kts
+++ b/serverpackcreator-updater/build.gradle.kts
@@ -8,6 +8,6 @@ repositories {
 
 dependencies {
     implementation(project(":serverpackcreator-api"))
-    testImplementation("org.junit.jupiter:junit-jupiter-api:5.10.0")
-    testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine:5.10.0")
+    testImplementation("org.junit.jupiter:junit-jupiter-api:5.10.2")
+    testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine:5.10.2")
 }
\ No newline at end of file
diff --git a/serverpackcreator-updater/src/main/kotlin/de/griefed/serverpackcreator/updater/MigrationManager.kt b/serverpackcreator-updater/src/main/kotlin/de/griefed/serverpackcreator/updater/MigrationManager.kt
index 87e959b33..191cc0957 100644
--- a/serverpackcreator-updater/src/main/kotlin/de/griefed/serverpackcreator/updater/MigrationManager.kt
+++ b/serverpackcreator-updater/src/main/kotlin/de/griefed/serverpackcreator/updater/MigrationManager.kt
@@ -66,7 +66,7 @@ import java.util.*
 class MigrationManager(
     private val apiProperties: ApiProperties, private val tomlParser: TomlParser
 ) {
-    private val log = cachedLoggerOf(this.javaClass)
+    private val log by lazy { cachedLoggerOf(this.javaClass) }
     private val migrationMethods = MigrationMethods()
     private val previous: String = apiProperties.oldVersion()
     private val current: String = apiProperties.apiVersion
diff --git a/serverpackcreator-updater/src/main/kotlin/de/griefed/serverpackcreator/updater/UpdateChecker.kt b/serverpackcreator-updater/src/main/kotlin/de/griefed/serverpackcreator/updater/UpdateChecker.kt
index 8a9ae4c73..87cbb92ac 100644
--- a/serverpackcreator-updater/src/main/kotlin/de/griefed/serverpackcreator/updater/UpdateChecker.kt
+++ b/serverpackcreator-updater/src/main/kotlin/de/griefed/serverpackcreator/updater/UpdateChecker.kt
@@ -33,7 +33,7 @@ import java.util.*
  * @author Griefed
  */
 class UpdateChecker(private val apiProperties: ApiProperties) {
-    private val log = cachedLoggerOf(this.javaClass)
+    private val log by lazy { cachedLoggerOf(this.javaClass) }
     private var gitHub: GitHubChecker? = null
 
     /**
diff --git a/serverpackcreator-updater/src/main/kotlin/de/griefed/versionchecker/GitHubChecker.kt b/serverpackcreator-updater/src/main/kotlin/de/griefed/versionchecker/GitHubChecker.kt
index 4fd918665..891349dfb 100644
--- a/serverpackcreator-updater/src/main/kotlin/de/griefed/versionchecker/GitHubChecker.kt
+++ b/serverpackcreator-updater/src/main/kotlin/de/griefed/versionchecker/GitHubChecker.kt
@@ -29,6 +29,7 @@ import com.fasterxml.jackson.databind.JsonNode
 import de.griefed.serverpackcreator.api.utilities.common.Comparison
 import de.griefed.serverpackcreator.api.utilities.common.SemanticVersionComparator
 import org.apache.logging.log4j.LogManager
+import org.apache.logging.log4j.kotlin.cachedLoggerOf
 import java.io.IOException
 import java.net.MalformedURLException
 import java.net.URI
@@ -48,7 +49,7 @@ import java.util.*
  * @author Griefed
  */
 class GitHubChecker : VersionChecker {
-    private val logger = LogManager.getLogger(GitHubChecker::class.java)
+    private val log by lazy { cachedLoggerOf(this.javaClass) }
     private val gitHubApi: URL
     private val gitHubApiLatest: URL
     private var repository: JsonNode? = null
@@ -104,7 +105,7 @@ class GitHubChecker : VersionChecker {
      * @return [Update]-instance, wrapped in an [Optional], containing information about the available update.
      */
     override fun check(currentVersion: String, checkForPreReleases: Boolean): Optional<Update> {
-        logger.debug("Current version: $currentVersion")
+        log.debug("Current version: $currentVersion")
         try {
             val newVersion = isUpdateAvailable(currentVersion, checkForPreReleases)
             if (newVersion != "up_to_date") {
@@ -154,9 +155,9 @@ class GitHubChecker : VersionChecker {
                 )
             }
         } catch (ex: NumberFormatException) {
-            logger.error("A version could not be parsed into integers.", ex)
+            log.error("A version could not be parsed into integers.", ex)
         } catch (ex: MalformedURLException) {
-            logger.error("URL could not be created.", ex)
+            log.error("URL could not be created.", ex)
         }
         return Optional.empty()
     }
@@ -177,7 +178,7 @@ class GitHubChecker : VersionChecker {
                 }
             }
         }
-        logger.debug("All versions: {}", versions)
+        log.debug("All versions: $versions")
 
         // In case the given repository does not have any releases
         return if (versions.size == 0) {
@@ -204,7 +205,7 @@ class GitHubChecker : VersionChecker {
                     version = alpha
                 }
             }
-            logger.debug("Latest version:{}", latest)
+            log.debug("Latest version: $latest")
             return version
         }
         return "no_release"
diff --git a/serverpackcreator-updater/src/main/kotlin/de/griefed/versionchecker/GitLabChecker.kt b/serverpackcreator-updater/src/main/kotlin/de/griefed/versionchecker/GitLabChecker.kt
index 834d5be01..73ddf316e 100644
--- a/serverpackcreator-updater/src/main/kotlin/de/griefed/versionchecker/GitLabChecker.kt
+++ b/serverpackcreator-updater/src/main/kotlin/de/griefed/versionchecker/GitLabChecker.kt
@@ -26,6 +26,7 @@
 package de.griefed.versionchecker
 
 import com.fasterxml.jackson.databind.JsonNode
+import org.apache.logging.log4j.kotlin.cachedLoggerOf
 import de.griefed.serverpackcreator.api.utilities.common.Comparison
 import de.griefed.serverpackcreator.api.utilities.common.SemanticVersionComparator
 import org.apache.logging.log4j.LogManager
@@ -48,7 +49,7 @@ import java.util.*
  * @author Griefed
  */
 class GitLabChecker : VersionChecker {
-    private val logger = LogManager.getLogger(GitLabChecker::class.java)
+    private val log by lazy { cachedLoggerOf(this.javaClass) }
     private val gitLabApi: URL
     private var repository: JsonNode? = null
 
@@ -100,7 +101,7 @@ class GitLabChecker : VersionChecker {
      * @return [Update]-instance, wrapped in an [Optional], contianing information about the available update.
      */
     override fun check(currentVersion: String, checkForPreReleases: Boolean): Optional<Update> {
-        logger.debug("Current version: $currentVersion")
+        log.debug("Current version: $currentVersion")
         try {
             val newVersion = isUpdateAvailable(currentVersion, checkForPreReleases)
             if (newVersion != "up_to_date") {
@@ -153,9 +154,9 @@ class GitLabChecker : VersionChecker {
                 )
             }
         } catch (ex: NumberFormatException) {
-            logger.error("A version could not be parsed into integers.", ex)
+            log.error("A version could not be parsed into integers.", ex)
         } catch (ex: MalformedURLException) {
-            logger.error("URL could not be created.", ex)
+            log.error("URL could not be created.", ex)
         }
         return Optional.empty()
     }
@@ -176,7 +177,7 @@ class GitLabChecker : VersionChecker {
                 }
             }
         }
-        logger.debug("All versions: {}", versions)
+        log.debug("All versions: $versions")
 
         // In case the given repository does not have any releases
         return if (versions.size == 0) {
@@ -207,7 +208,7 @@ class GitLabChecker : VersionChecker {
                 return "no_release"
             }
             for (version in allVersions!!) {
-                logger.debug("version: $version")
+                log.debug("version: $version")
                 if (!version.contains("alpha") && !version.contains("beta") && SemanticVersionComparator.compareSemantics(
                         latest!!,
                         version,
diff --git a/serverpackcreator-updater/src/main/kotlin/de/griefed/versionchecker/VersionChecker.kt b/serverpackcreator-updater/src/main/kotlin/de/griefed/versionchecker/VersionChecker.kt
index 5ce75085a..fb5f2a636 100644
--- a/serverpackcreator-updater/src/main/kotlin/de/griefed/versionchecker/VersionChecker.kt
+++ b/serverpackcreator-updater/src/main/kotlin/de/griefed/versionchecker/VersionChecker.kt
@@ -27,7 +27,7 @@ import com.fasterxml.jackson.databind.DeserializationFeature
 import com.fasterxml.jackson.databind.ObjectMapper
 import de.griefed.serverpackcreator.api.utilities.common.Comparison
 import de.griefed.serverpackcreator.api.utilities.common.SemanticVersionComparator
-import org.apache.logging.log4j.LogManager
+import org.apache.logging.log4j.kotlin.cachedLoggerOf
 import java.io.BufferedReader
 import java.io.IOException
 import java.io.InputStreamReader
@@ -43,7 +43,7 @@ import java.util.*
  */
 @Suppress("unused")
 abstract class VersionChecker {
-    private val logger = LogManager.getLogger(VersionChecker::class.java)
+    private val log by lazy { cachedLoggerOf(this.javaClass) }
     protected var allVersions: List<String>? = null
         private set
 
@@ -60,7 +60,7 @@ abstract class VersionChecker {
      * New prerelease available: `Current version: 2.0.0. A new PreRelease is available: 3.0.0-alpha.14. Download available at: https://github.com/Griefed/ServerPackCreator/releases/tag/3.0.0-alpha.14`
      */
     fun checkForUpdate(currentVersion: String, checkForPreReleases: Boolean): String {
-        logger.debug("Current version: $currentVersion")
+        log.debug("Current version: $currentVersion")
         return try {
             val newVersion = isUpdateAvailable(currentVersion, checkForPreReleases)
             if (newVersion == "up_to_date") {
@@ -69,7 +69,7 @@ abstract class VersionChecker {
                 newVersion + ";" + getDownloadUrl(newVersion!!)
             }
         } catch (ex: NumberFormatException) {
-            logger.error("A version could not be parsed into integers.", ex)
+            log.error("A version could not be parsed into integers.", ex)
             "No updates available."
         }
     }
@@ -262,7 +262,7 @@ abstract class VersionChecker {
                 }
             }
         }
-        logger.debug("Latest beta: $beta")
+        log.debug("Latest beta: $beta")
         return beta
     }
 
@@ -288,7 +288,7 @@ abstract class VersionChecker {
                 }
             }
         }
-        logger.debug("Latest alpha: $alpha")
+        log.debug("Latest alpha: $alpha")
         return alpha
     }
 
diff --git a/serverpackcreator-web-frontend/build.gradle.kts b/serverpackcreator-web-frontend/build.gradle.kts
index b9fbc5cd8..ed02bbc02 100644
--- a/serverpackcreator-web-frontend/build.gradle.kts
+++ b/serverpackcreator-web-frontend/build.gradle.kts
@@ -1,13 +1,3 @@
 plugins {
     id("serverpackcreator.quasar-conventions")
 }
-
-/*
-tasks.register("copyDist", Copy::class) {
-    from(projectDir.resolve("dist/spa"))
-    into(rootDir.resolve("serverpackcreator-web/src/main/resources/static"))
-}
-
-tasks.build.get().finalizedBy(
-        tasks.getByName("copyDist")
-)*/
diff --git a/serverpackcreator-web-frontend/package-lock.json b/serverpackcreator-web-frontend/package-lock.json
index e28bb6c9c..1615f0596 100644
--- a/serverpackcreator-web-frontend/package-lock.json
+++ b/serverpackcreator-web-frontend/package-lock.json
@@ -8,26 +8,28 @@
       "name": "serverpackcreator-web-frontend",
       "version": "2.0.0",
       "dependencies": {
-        "@quasar/extras": "^1.16.4",
-        "axios": "^1.2.1",
+        "@quasar/extras": "^1.16.11",
+        "apexcharts": "^3.49.0",
+        "axios": "^1.6.8",
         "pinia": "^2.0.11",
-        "quasar": "^2.6.0",
-        "vue": "^3.0.0",
-        "vue-i18n": "^9.2.2",
-        "vue-router": "^4.0.0"
+        "quasar": "^2.15.4",
+        "vue": "^3.4.25",
+        "vue-i18n": "^9.13.1",
+        "vue-router": "^4.3.2",
+        "vue3-apexcharts": "^1.5.2"
       },
       "devDependencies": {
-        "@intlify/vite-plugin-vue-i18n": "^3.3.1",
+        "@intlify/vite-plugin-vue-i18n": "^7.0.0",
         "@quasar/app-vite": "^1.3.0",
-        "@types/node": "^12.20.21",
-        "@typescript-eslint/eslint-plugin": "^5.10.0",
-        "@typescript-eslint/parser": "^5.10.0",
-        "autoprefixer": "^10.4.2",
-        "eslint": "^8.10.0",
-        "eslint-config-prettier": "^8.1.0",
-        "eslint-plugin-vue": "^9.0.0",
-        "prettier": "^2.5.1",
-        "typescript": "^4.5.4"
+        "@types/node": "^20.12.7",
+        "@typescript-eslint/eslint-plugin": "^7.7.1",
+        "@typescript-eslint/parser": "^7.7.1",
+        "autoprefixer": "^10.4.19",
+        "eslint": "^8.56.0",
+        "eslint-config-prettier": "^9.1.0",
+        "eslint-plugin-vue": "^9.25.0",
+        "prettier": "^3.2.5",
+        "typescript": "^5.4.5"
       },
       "engines": {
         "node": "^18 || ^16 || ^14.19",
@@ -45,9 +47,9 @@
       }
     },
     "node_modules/@babel/parser": {
-      "version": "7.23.6",
-      "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.6.tgz",
-      "integrity": "sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ==",
+      "version": "7.24.4",
+      "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.4.tgz",
+      "integrity": "sha512-zTvEBcghmeBma9QIGunWevvBAp4/Qu9Bdq+2k0Ot4fVMD6v3dsC9WOcRSKk7tRRyBM/53yKMJko9xOatGQAwSg==",
       "bin": {
         "parser": "bin/babel-parser.js"
       },
@@ -145,15 +147,15 @@
       "dev": true
     },
     "node_modules/@intlify/bundle-utils": {
-      "version": "2.2.2",
-      "resolved": "https://registry.npmjs.org/@intlify/bundle-utils/-/bundle-utils-2.2.2.tgz",
-      "integrity": "sha512-vngkvlIVV8ZJoyC5VqMvqJd2nvsx+qMN7pQjPiPjOrVndeiR7Dlue0k86Q8FsFUzyksW3HJZZi833ldxwbFzTA==",
+      "version": "3.4.0",
+      "resolved": "https://registry.npmjs.org/@intlify/bundle-utils/-/bundle-utils-3.4.0.tgz",
+      "integrity": "sha512-2UQkqiSAOSPEHMGWlybqWm4G2K0X+FyYho5AwXz6QklSX1EY5EDmOSxZmwscn2qmKBnp6OYsme5kUrnN9xrWzQ==",
       "dev": true,
       "dependencies": {
-        "@intlify/message-compiler": "^9.1.0",
-        "@intlify/shared": "^9.1.0",
+        "@intlify/message-compiler": "next",
+        "@intlify/shared": "next",
         "jsonc-eslint-parser": "^1.0.1",
-        "source-map": "^0.6.1",
+        "source-map": "0.6.1",
         "yaml-eslint-parser": "^0.3.2"
       },
       "engines": {
@@ -169,12 +171,27 @@
       }
     },
     "node_modules/@intlify/core-base": {
-      "version": "9.8.0",
-      "resolved": "https://registry.npmjs.org/@intlify/core-base/-/core-base-9.8.0.tgz",
-      "integrity": "sha512-UxaSZVZ1DwqC/CltUZrWZNaWNhfmKtfyV4BJSt/Zt4Or/fZs1iFj0B+OekYk1+MRHfIOe3+x00uXGQI4PbO/9g==",
+      "version": "9.13.1",
+      "resolved": "https://registry.npmjs.org/@intlify/core-base/-/core-base-9.13.1.tgz",
+      "integrity": "sha512-+bcQRkJO9pcX8d0gel9ZNfrzU22sZFSA0WVhfXrf5jdJOS24a+Bp8pozuS9sBI9Hk/tGz83pgKfmqcn/Ci7/8w==",
       "dependencies": {
-        "@intlify/message-compiler": "9.8.0",
-        "@intlify/shared": "9.8.0"
+        "@intlify/message-compiler": "9.13.1",
+        "@intlify/shared": "9.13.1"
+      },
+      "engines": {
+        "node": ">= 16"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/kazupon"
+      }
+    },
+    "node_modules/@intlify/core-base/node_modules/@intlify/message-compiler": {
+      "version": "9.13.1",
+      "resolved": "https://registry.npmjs.org/@intlify/message-compiler/-/message-compiler-9.13.1.tgz",
+      "integrity": "sha512-SKsVa4ajYGBVm7sHMXd5qX70O2XXjm55zdZB3VeMFCvQyvLew/dLvq3MqnaIsTMF1VkkOb9Ttr6tHcMlyPDL9w==",
+      "dependencies": {
+        "@intlify/shared": "9.13.1",
+        "source-map-js": "^1.0.2"
       },
       "engines": {
         "node": ">= 16"
@@ -184,11 +201,12 @@
       }
     },
     "node_modules/@intlify/message-compiler": {
-      "version": "9.8.0",
-      "resolved": "https://registry.npmjs.org/@intlify/message-compiler/-/message-compiler-9.8.0.tgz",
-      "integrity": "sha512-McnYWhcoYmDJvssVu6QGR0shqlkJuL1HHdi5lK7fNqvQqRYaQ4lSLjYmZxwc8tRNMdIe9/KUKfyPxU9M6yCtNQ==",
+      "version": "10.0.0-alpha.3",
+      "resolved": "https://registry.npmjs.org/@intlify/message-compiler/-/message-compiler-10.0.0-alpha.3.tgz",
+      "integrity": "sha512-WjM1KAl5enpOfprfVAJ3FzwACmizZFPgyV0sn+QXoWH8BG2ahVkf7uVEqQH0mvUr2rKKaScwpzhH3wZ5F7ZdPw==",
+      "dev": true,
       "dependencies": {
-        "@intlify/shared": "9.8.0",
+        "@intlify/shared": "10.0.0-alpha.3",
         "source-map-js": "^1.0.2"
       },
       "engines": {
@@ -198,10 +216,22 @@
         "url": "https://github.com/sponsors/kazupon"
       }
     },
+    "node_modules/@intlify/message-compiler/node_modules/@intlify/shared": {
+      "version": "10.0.0-alpha.3",
+      "resolved": "https://registry.npmjs.org/@intlify/shared/-/shared-10.0.0-alpha.3.tgz",
+      "integrity": "sha512-fi2q48i+C6sSCAt3vOj/9LD3tkr1wcvLt+ifZEHrpPiwHCyKLDYGp5qBNUHUBBA/iqFTeWdtHUbHE9z9OeTXkw==",
+      "dev": true,
+      "engines": {
+        "node": ">= 16"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/kazupon"
+      }
+    },
     "node_modules/@intlify/shared": {
-      "version": "9.8.0",
-      "resolved": "https://registry.npmjs.org/@intlify/shared/-/shared-9.8.0.tgz",
-      "integrity": "sha512-TmgR0RCLjzrSo+W3wT0ALf9851iFMlVI9EYNGeWvZFUQTAJx0bvfsMlPdgVtV1tDNRiAfhkFsMKu6jtUY1ZLKQ==",
+      "version": "9.13.1",
+      "resolved": "https://registry.npmjs.org/@intlify/shared/-/shared-9.13.1.tgz",
+      "integrity": "sha512-u3b6BKGhE6j/JeRU6C/RL2FgyJfy6LakbtfeVF8fJXURpZZTzfh3e05J0bu0XPw447Q6/WUp3C4ajv4TMS4YsQ==",
       "engines": {
         "node": ">= 16"
       },
@@ -210,40 +240,96 @@
       }
     },
     "node_modules/@intlify/vite-plugin-vue-i18n": {
-      "version": "3.4.0",
-      "resolved": "https://registry.npmjs.org/@intlify/vite-plugin-vue-i18n/-/vite-plugin-vue-i18n-3.4.0.tgz",
-      "integrity": "sha512-XXcZBgwJ+3FRu11c4ARoY9N00kElPii0/jNZ49qR045Ka7/YGCwb1Ku14BBlMSEHiHDSjLQknLwrJKSQGVZLyA==",
+      "version": "7.0.0",
+      "resolved": "https://registry.npmjs.org/@intlify/vite-plugin-vue-i18n/-/vite-plugin-vue-i18n-7.0.0.tgz",
+      "integrity": "sha512-2TbDOQ8XD+vkc0s5OFmr+IY/k4mYMC7pzvx0xGQn+cU/ev314+yi7Z7N7rWcBgiYk1WOUalbGSo3d4nJDxOOyw==",
+      "deprecated": "This plugin support until Vite 3. If you would like to use on Vite 4, please use @intlify/unplugin-vue-i18n",
       "dev": true,
       "dependencies": {
-        "@intlify/bundle-utils": "^2.2.2",
-        "@intlify/shared": "^9.1.0",
-        "@rollup/pluginutils": "^4.1.0",
+        "@intlify/bundle-utils": "^3.1.2",
+        "@intlify/shared": "next",
+        "@rollup/pluginutils": "^4.2.0",
         "debug": "^4.3.1",
         "fast-glob": "^3.2.5",
         "source-map": "0.6.1"
       },
       "engines": {
-        "node": ">= 12"
+        "node": ">= 14.6"
       },
       "peerDependencies": {
-        "petite-vue-i18n": "^9.1.0",
-        "vite": "^2.0.0",
-        "vue-i18n": "^9.1.0"
+        "petite-vue-i18n": "*",
+        "vite": "^2.9.0 || ^3.0.0",
+        "vue-i18n": "*"
       },
       "peerDependenciesMeta": {
         "petite-vue-i18n": {
           "optional": true
         },
+        "vite": {
+          "optional": true
+        },
         "vue-i18n": {
           "optional": true
         }
       }
     },
+    "node_modules/@jridgewell/gen-mapping": {
+      "version": "0.3.5",
+      "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz",
+      "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==",
+      "dev": true,
+      "dependencies": {
+        "@jridgewell/set-array": "^1.2.1",
+        "@jridgewell/sourcemap-codec": "^1.4.10",
+        "@jridgewell/trace-mapping": "^0.3.24"
+      },
+      "engines": {
+        "node": ">=6.0.0"
+      }
+    },
+    "node_modules/@jridgewell/resolve-uri": {
+      "version": "3.1.2",
+      "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
+      "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
+      "dev": true,
+      "engines": {
+        "node": ">=6.0.0"
+      }
+    },
+    "node_modules/@jridgewell/set-array": {
+      "version": "1.2.1",
+      "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz",
+      "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==",
+      "dev": true,
+      "engines": {
+        "node": ">=6.0.0"
+      }
+    },
+    "node_modules/@jridgewell/source-map": {
+      "version": "0.3.6",
+      "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz",
+      "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==",
+      "dev": true,
+      "dependencies": {
+        "@jridgewell/gen-mapping": "^0.3.5",
+        "@jridgewell/trace-mapping": "^0.3.25"
+      }
+    },
     "node_modules/@jridgewell/sourcemap-codec": {
       "version": "1.4.15",
       "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz",
       "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg=="
     },
+    "node_modules/@jridgewell/trace-mapping": {
+      "version": "0.3.25",
+      "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz",
+      "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==",
+      "dev": true,
+      "dependencies": {
+        "@jridgewell/resolve-uri": "^3.1.0",
+        "@jridgewell/sourcemap-codec": "^1.4.14"
+      }
+    },
     "node_modules/@nodelib/fs.scandir": {
       "version": "2.1.5",
       "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
@@ -280,9 +366,9 @@
       }
     },
     "node_modules/@quasar/app-vite": {
-      "version": "1.7.1",
-      "resolved": "https://registry.npmjs.org/@quasar/app-vite/-/app-vite-1.7.1.tgz",
-      "integrity": "sha512-cs3ix7w8f7884JiTp3EW6auZ9R+Fg4qoPxEZ7VRGOrSsUg5oQtR/i91jeQk4Z96J/JUOqtcKqdqbzN4fzaFyIg==",
+      "version": "1.8.5",
+      "resolved": "https://registry.npmjs.org/@quasar/app-vite/-/app-vite-1.8.5.tgz",
+      "integrity": "sha512-OB5nU9qKIl3p7Ton9fLWkSQTv1I/7slfQl8izhZPPJZRY755Jn4Kz1exYUoEgJJ4cLSaUI/cpnVOL59pw53NEg==",
       "dev": true,
       "dependencies": {
         "@quasar/render-ssr-error": "^1.0.3",
@@ -304,7 +390,7 @@
         "express": "^4.17.3",
         "fast-glob": "3.2.12",
         "fs-extra": "^11.1.0",
-        "html-minifier": "^4.0.0",
+        "html-minifier-terser": "^7.2.0",
         "inquirer": "^8.2.1",
         "isbinaryfile": "^5.0.0",
         "kolorist": "^1.5.1",
@@ -333,6 +419,7 @@
         "url": "https://donate.quasar.dev"
       },
       "peerDependencies": {
+        "@electron/packager": ">= 18",
         "electron-builder": ">= 22",
         "electron-packager": ">= 15",
         "eslint": "^8.11.0",
@@ -344,6 +431,9 @@
         "workbox-build": ">= 6"
       },
       "peerDependenciesMeta": {
+        "@electron/packager": {
+          "optional": true
+        },
         "electron-builder": {
           "optional": true
         },
@@ -381,9 +471,9 @@
       }
     },
     "node_modules/@quasar/extras": {
-      "version": "1.16.9",
-      "resolved": "https://registry.npmjs.org/@quasar/extras/-/extras-1.16.9.tgz",
-      "integrity": "sha512-SlOhwzXyPQHWgQIS2ncyDdYdksCJvUYNtgsDQqzAKEG3r3d/ejOxvThle79HTK3Q6HB+gQWFG21Ux00Osr5XSw==",
+      "version": "1.16.11",
+      "resolved": "https://registry.npmjs.org/@quasar/extras/-/extras-1.16.11.tgz",
+      "integrity": "sha512-sbTBHOA+Hi7ah0P6qSm+xfRXqwJ94ct3NKA3Lkq3iNPYuHD7VXbSWtP2eA7Cu9Fd0WjVoPbngf6yFGg46U3IfQ==",
       "funding": {
         "type": "github",
         "url": "https://donate.quasar.dev"
@@ -545,10 +635,13 @@
       "dev": true
     },
     "node_modules/@types/node": {
-      "version": "12.20.55",
-      "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz",
-      "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==",
-      "dev": true
+      "version": "20.12.7",
+      "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.7.tgz",
+      "integrity": "sha512-wq0cICSkRLVaf3UGLMGItu/PtdY7oaXaI/RVU+xliKVOtRna3PRY57ZDfztpDL0n11vfymMUnXv8QwYCO7L1wg==",
+      "dev": true,
+      "dependencies": {
+        "undici-types": "~5.26.4"
+      }
     },
     "node_modules/@types/qs": {
       "version": "6.9.11",
@@ -563,9 +656,9 @@
       "dev": true
     },
     "node_modules/@types/semver": {
-      "version": "7.5.6",
-      "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.6.tgz",
-      "integrity": "sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==",
+      "version": "7.5.8",
+      "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz",
+      "integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==",
       "dev": true
     },
     "node_modules/@types/send": {
@@ -590,32 +683,33 @@
       }
     },
     "node_modules/@typescript-eslint/eslint-plugin": {
-      "version": "5.62.0",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz",
-      "integrity": "sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==",
+      "version": "7.7.1",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.7.1.tgz",
+      "integrity": "sha512-KwfdWXJBOviaBVhxO3p5TJiLpNuh2iyXyjmWN0f1nU87pwyvfS0EmjC6ukQVYVFJd/K1+0NWGPDXiyEyQorn0Q==",
       "dev": true,
       "dependencies": {
-        "@eslint-community/regexpp": "^4.4.0",
-        "@typescript-eslint/scope-manager": "5.62.0",
-        "@typescript-eslint/type-utils": "5.62.0",
-        "@typescript-eslint/utils": "5.62.0",
+        "@eslint-community/regexpp": "^4.10.0",
+        "@typescript-eslint/scope-manager": "7.7.1",
+        "@typescript-eslint/type-utils": "7.7.1",
+        "@typescript-eslint/utils": "7.7.1",
+        "@typescript-eslint/visitor-keys": "7.7.1",
         "debug": "^4.3.4",
         "graphemer": "^1.4.0",
-        "ignore": "^5.2.0",
-        "natural-compare-lite": "^1.4.0",
-        "semver": "^7.3.7",
-        "tsutils": "^3.21.0"
+        "ignore": "^5.3.1",
+        "natural-compare": "^1.4.0",
+        "semver": "^7.6.0",
+        "ts-api-utils": "^1.3.0"
       },
       "engines": {
-        "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+        "node": "^18.18.0 || >=20.0.0"
       },
       "funding": {
         "type": "opencollective",
         "url": "https://opencollective.com/typescript-eslint"
       },
       "peerDependencies": {
-        "@typescript-eslint/parser": "^5.0.0",
-        "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0"
+        "@typescript-eslint/parser": "^7.0.0",
+        "eslint": "^8.56.0"
       },
       "peerDependenciesMeta": {
         "typescript": {
@@ -623,26 +717,42 @@
         }
       }
     },
+    "node_modules/@typescript-eslint/eslint-plugin/node_modules/semver": {
+      "version": "7.6.0",
+      "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
+      "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
+      "dev": true,
+      "dependencies": {
+        "lru-cache": "^6.0.0"
+      },
+      "bin": {
+        "semver": "bin/semver.js"
+      },
+      "engines": {
+        "node": ">=10"
+      }
+    },
     "node_modules/@typescript-eslint/parser": {
-      "version": "5.62.0",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.62.0.tgz",
-      "integrity": "sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==",
+      "version": "7.7.1",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.7.1.tgz",
+      "integrity": "sha512-vmPzBOOtz48F6JAGVS/kZYk4EkXao6iGrD838sp1w3NQQC0W8ry/q641KU4PrG7AKNAf56NOcR8GOpH8l9FPCw==",
       "dev": true,
       "dependencies": {
-        "@typescript-eslint/scope-manager": "5.62.0",
-        "@typescript-eslint/types": "5.62.0",
-        "@typescript-eslint/typescript-estree": "5.62.0",
+        "@typescript-eslint/scope-manager": "7.7.1",
+        "@typescript-eslint/types": "7.7.1",
+        "@typescript-eslint/typescript-estree": "7.7.1",
+        "@typescript-eslint/visitor-keys": "7.7.1",
         "debug": "^4.3.4"
       },
       "engines": {
-        "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+        "node": "^18.18.0 || >=20.0.0"
       },
       "funding": {
         "type": "opencollective",
         "url": "https://opencollective.com/typescript-eslint"
       },
       "peerDependencies": {
-        "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0"
+        "eslint": "^8.56.0"
       },
       "peerDependenciesMeta": {
         "typescript": {
@@ -651,16 +761,16 @@
       }
     },
     "node_modules/@typescript-eslint/scope-manager": {
-      "version": "5.62.0",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz",
-      "integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==",
+      "version": "7.7.1",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.7.1.tgz",
+      "integrity": "sha512-PytBif2SF+9SpEUKynYn5g1RHFddJUcyynGpztX3l/ik7KmZEv19WCMhUBkHXPU9es/VWGD3/zg3wg90+Dh2rA==",
       "dev": true,
       "dependencies": {
-        "@typescript-eslint/types": "5.62.0",
-        "@typescript-eslint/visitor-keys": "5.62.0"
+        "@typescript-eslint/types": "7.7.1",
+        "@typescript-eslint/visitor-keys": "7.7.1"
       },
       "engines": {
-        "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+        "node": "^18.18.0 || >=20.0.0"
       },
       "funding": {
         "type": "opencollective",
@@ -668,25 +778,25 @@
       }
     },
     "node_modules/@typescript-eslint/type-utils": {
-      "version": "5.62.0",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz",
-      "integrity": "sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==",
+      "version": "7.7.1",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.7.1.tgz",
+      "integrity": "sha512-ZksJLW3WF7o75zaBPScdW1Gbkwhd/lyeXGf1kQCxJaOeITscoSl0MjynVvCzuV5boUz/3fOI06Lz8La55mu29Q==",
       "dev": true,
       "dependencies": {
-        "@typescript-eslint/typescript-estree": "5.62.0",
-        "@typescript-eslint/utils": "5.62.0",
+        "@typescript-eslint/typescript-estree": "7.7.1",
+        "@typescript-eslint/utils": "7.7.1",
         "debug": "^4.3.4",
-        "tsutils": "^3.21.0"
+        "ts-api-utils": "^1.3.0"
       },
       "engines": {
-        "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+        "node": "^18.18.0 || >=20.0.0"
       },
       "funding": {
         "type": "opencollective",
         "url": "https://opencollective.com/typescript-eslint"
       },
       "peerDependencies": {
-        "eslint": "*"
+        "eslint": "^8.56.0"
       },
       "peerDependenciesMeta": {
         "typescript": {
@@ -695,12 +805,12 @@
       }
     },
     "node_modules/@typescript-eslint/types": {
-      "version": "5.62.0",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz",
-      "integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==",
+      "version": "7.7.1",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.7.1.tgz",
+      "integrity": "sha512-AmPmnGW1ZLTpWa+/2omPrPfR7BcbUU4oha5VIbSbS1a1Tv966bklvLNXxp3mrbc+P2j4MNOTfDffNsk4o0c6/w==",
       "dev": true,
       "engines": {
-        "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+        "node": "^18.18.0 || >=20.0.0"
       },
       "funding": {
         "type": "opencollective",
@@ -708,21 +818,22 @@
       }
     },
     "node_modules/@typescript-eslint/typescript-estree": {
-      "version": "5.62.0",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz",
-      "integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==",
+      "version": "7.7.1",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.7.1.tgz",
+      "integrity": "sha512-CXe0JHCXru8Fa36dteXqmH2YxngKJjkQLjxzoj6LYwzZ7qZvgsLSc+eqItCrqIop8Vl2UKoAi0StVWu97FQZIQ==",
       "dev": true,
       "dependencies": {
-        "@typescript-eslint/types": "5.62.0",
-        "@typescript-eslint/visitor-keys": "5.62.0",
+        "@typescript-eslint/types": "7.7.1",
+        "@typescript-eslint/visitor-keys": "7.7.1",
         "debug": "^4.3.4",
         "globby": "^11.1.0",
         "is-glob": "^4.0.3",
-        "semver": "^7.3.7",
-        "tsutils": "^3.21.0"
+        "minimatch": "^9.0.4",
+        "semver": "^7.6.0",
+        "ts-api-utils": "^1.3.0"
       },
       "engines": {
-        "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+        "node": "^18.18.0 || >=20.0.0"
       },
       "funding": {
         "type": "opencollective",
@@ -734,43 +845,96 @@
         }
       }
     },
+    "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
+      "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+      "dev": true,
+      "dependencies": {
+        "balanced-match": "^1.0.0"
+      }
+    },
+    "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": {
+      "version": "9.0.4",
+      "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz",
+      "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==",
+      "dev": true,
+      "dependencies": {
+        "brace-expansion": "^2.0.1"
+      },
+      "engines": {
+        "node": ">=16 || 14 >=14.17"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/isaacs"
+      }
+    },
+    "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": {
+      "version": "7.6.0",
+      "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
+      "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
+      "dev": true,
+      "dependencies": {
+        "lru-cache": "^6.0.0"
+      },
+      "bin": {
+        "semver": "bin/semver.js"
+      },
+      "engines": {
+        "node": ">=10"
+      }
+    },
     "node_modules/@typescript-eslint/utils": {
-      "version": "5.62.0",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz",
-      "integrity": "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==",
+      "version": "7.7.1",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.7.1.tgz",
+      "integrity": "sha512-QUvBxPEaBXf41ZBbaidKICgVL8Hin0p6prQDu6bbetWo39BKbWJxRsErOzMNT1rXvTll+J7ChrbmMCXM9rsvOQ==",
       "dev": true,
       "dependencies": {
-        "@eslint-community/eslint-utils": "^4.2.0",
-        "@types/json-schema": "^7.0.9",
-        "@types/semver": "^7.3.12",
-        "@typescript-eslint/scope-manager": "5.62.0",
-        "@typescript-eslint/types": "5.62.0",
-        "@typescript-eslint/typescript-estree": "5.62.0",
-        "eslint-scope": "^5.1.1",
-        "semver": "^7.3.7"
+        "@eslint-community/eslint-utils": "^4.4.0",
+        "@types/json-schema": "^7.0.15",
+        "@types/semver": "^7.5.8",
+        "@typescript-eslint/scope-manager": "7.7.1",
+        "@typescript-eslint/types": "7.7.1",
+        "@typescript-eslint/typescript-estree": "7.7.1",
+        "semver": "^7.6.0"
       },
       "engines": {
-        "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+        "node": "^18.18.0 || >=20.0.0"
       },
       "funding": {
         "type": "opencollective",
         "url": "https://opencollective.com/typescript-eslint"
       },
       "peerDependencies": {
-        "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0"
+        "eslint": "^8.56.0"
+      }
+    },
+    "node_modules/@typescript-eslint/utils/node_modules/semver": {
+      "version": "7.6.0",
+      "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
+      "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
+      "dev": true,
+      "dependencies": {
+        "lru-cache": "^6.0.0"
+      },
+      "bin": {
+        "semver": "bin/semver.js"
+      },
+      "engines": {
+        "node": ">=10"
       }
     },
     "node_modules/@typescript-eslint/visitor-keys": {
-      "version": "5.62.0",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz",
-      "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==",
+      "version": "7.7.1",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.7.1.tgz",
+      "integrity": "sha512-gBL3Eq25uADw1LQ9kVpf3hRM+DWzs0uZknHYK3hq4jcTPqVCClHGDnB6UUUV2SFeBeA4KWHWbbLqmbGcZ4FYbw==",
       "dev": true,
       "dependencies": {
-        "@typescript-eslint/types": "5.62.0",
-        "eslint-visitor-keys": "^3.3.0"
+        "@typescript-eslint/types": "7.7.1",
+        "eslint-visitor-keys": "^3.4.3"
       },
       "engines": {
-        "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+        "node": "^18.18.0 || >=20.0.0"
       },
       "funding": {
         "type": "opencollective",
@@ -797,49 +961,49 @@
       }
     },
     "node_modules/@vue/compiler-core": {
-      "version": "3.3.13",
-      "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.3.13.tgz",
-      "integrity": "sha512-bwi9HShGu7uaZLOErZgsH2+ojsEdsjerbf2cMXPwmvcgZfVPZ2BVZzCVnwZBxTAYd6Mzbmf6izcUNDkWnBBQ6A==",
+      "version": "3.4.25",
+      "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.4.25.tgz",
+      "integrity": "sha512-Y2pLLopaElgWnMNolgG8w3C5nNUVev80L7hdQ5iIKPtMJvhVpG0zhnBG/g3UajJmZdvW0fktyZTotEHD1Srhbg==",
       "dependencies": {
-        "@babel/parser": "^7.23.5",
-        "@vue/shared": "3.3.13",
+        "@babel/parser": "^7.24.4",
+        "@vue/shared": "3.4.25",
+        "entities": "^4.5.0",
         "estree-walker": "^2.0.2",
-        "source-map-js": "^1.0.2"
+        "source-map-js": "^1.2.0"
       }
     },
     "node_modules/@vue/compiler-dom": {
-      "version": "3.3.13",
-      "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.3.13.tgz",
-      "integrity": "sha512-EYRDpbLadGtNL0Gph+HoKiYqXLqZ0xSSpR5Dvnu/Ep7ggaCbjRDIus1MMxTS2Qm0koXED4xSlvTZaTnI8cYAsw==",
+      "version": "3.4.25",
+      "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.25.tgz",
+      "integrity": "sha512-Ugz5DusW57+HjllAugLci19NsDK+VyjGvmbB2TXaTcSlQxwL++2PETHx/+Qv6qFwNLzSt7HKepPe4DcTE3pBWg==",
       "dependencies": {
-        "@vue/compiler-core": "3.3.13",
-        "@vue/shared": "3.3.13"
+        "@vue/compiler-core": "3.4.25",
+        "@vue/shared": "3.4.25"
       }
     },
     "node_modules/@vue/compiler-sfc": {
-      "version": "3.3.13",
-      "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.3.13.tgz",
-      "integrity": "sha512-DQVmHEy/EKIgggvnGRLx21hSqnr1smUS9Aq8tfxiiot8UR0/pXKHN9k78/qQ7etyQTFj5em5nruODON7dBeumw==",
-      "dependencies": {
-        "@babel/parser": "^7.23.5",
-        "@vue/compiler-core": "3.3.13",
-        "@vue/compiler-dom": "3.3.13",
-        "@vue/compiler-ssr": "3.3.13",
-        "@vue/reactivity-transform": "3.3.13",
-        "@vue/shared": "3.3.13",
+      "version": "3.4.25",
+      "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.4.25.tgz",
+      "integrity": "sha512-m7rryuqzIoQpOBZ18wKyq05IwL6qEpZxFZfRxlNYuIPDqywrXQxgUwLXIvoU72gs6cRdY6wHD0WVZIFE4OEaAQ==",
+      "dependencies": {
+        "@babel/parser": "^7.24.4",
+        "@vue/compiler-core": "3.4.25",
+        "@vue/compiler-dom": "3.4.25",
+        "@vue/compiler-ssr": "3.4.25",
+        "@vue/shared": "3.4.25",
         "estree-walker": "^2.0.2",
-        "magic-string": "^0.30.5",
-        "postcss": "^8.4.32",
-        "source-map-js": "^1.0.2"
+        "magic-string": "^0.30.10",
+        "postcss": "^8.4.38",
+        "source-map-js": "^1.2.0"
       }
     },
     "node_modules/@vue/compiler-ssr": {
-      "version": "3.3.13",
-      "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.3.13.tgz",
-      "integrity": "sha512-d/P3bCeUGmkJNS1QUZSAvoCIW4fkOKK3l2deE7zrp0ypJEy+En2AcypIkqvcFQOcw3F0zt2VfMvNsA9JmExTaw==",
+      "version": "3.4.25",
+      "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.4.25.tgz",
+      "integrity": "sha512-H2ohvM/Pf6LelGxDBnfbbXFPyM4NE3hrw0e/EpwuSiYu8c819wx+SVGdJ65p/sFrYDd6OnSDxN1MB2mN07hRSQ==",
       "dependencies": {
-        "@vue/compiler-dom": "3.3.13",
-        "@vue/shared": "3.3.13"
+        "@vue/compiler-dom": "3.4.25",
+        "@vue/shared": "3.4.25"
       }
     },
     "node_modules/@vue/devtools-api": {
@@ -848,60 +1012,53 @@
       "integrity": "sha512-+KpckaAQyfbvshdDW5xQylLni1asvNSGme1JFs8I1+/H5pHEhqUKMEQD/qn3Nx5+/nycBq11qAEi8lk+LXI2dA=="
     },
     "node_modules/@vue/reactivity": {
-      "version": "3.3.13",
-      "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.3.13.tgz",
-      "integrity": "sha512-fjzCxceMahHhi4AxUBzQqqVhuA21RJ0COaWTbIBl1PruGW1CeY97louZzLi4smpYx+CHfFPPU/CS8NybbGvPKQ==",
+      "version": "3.4.25",
+      "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.4.25.tgz",
+      "integrity": "sha512-mKbEtKr1iTxZkAG3vm3BtKHAOhuI4zzsVcN0epDldU/THsrvfXRKzq+lZnjczZGnTdh3ojd86/WrP+u9M51pWQ==",
       "dependencies": {
-        "@vue/shared": "3.3.13"
-      }
-    },
-    "node_modules/@vue/reactivity-transform": {
-      "version": "3.3.13",
-      "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.3.13.tgz",
-      "integrity": "sha512-oWnydGH0bBauhXvh5KXUy61xr9gKaMbtsMHk40IK9M4gMuKPJ342tKFarY0eQ6jef8906m35q37wwA8DMZOm5Q==",
-      "dependencies": {
-        "@babel/parser": "^7.23.5",
-        "@vue/compiler-core": "3.3.13",
-        "@vue/shared": "3.3.13",
-        "estree-walker": "^2.0.2",
-        "magic-string": "^0.30.5"
+        "@vue/shared": "3.4.25"
       }
     },
     "node_modules/@vue/runtime-core": {
-      "version": "3.3.13",
-      "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.3.13.tgz",
-      "integrity": "sha512-1TzA5TvGuh2zUwMJgdfvrBABWZ7y8kBwBhm7BXk8rvdx2SsgcGfz2ruv2GzuGZNvL1aKnK8CQMV/jFOrxNQUMA==",
+      "version": "3.4.25",
+      "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.4.25.tgz",
+      "integrity": "sha512-3qhsTqbEh8BMH3pXf009epCI5E7bKu28fJLi9O6W+ZGt/6xgSfMuGPqa5HRbUxLoehTNp5uWvzCr60KuiRIL0Q==",
       "dependencies": {
-        "@vue/reactivity": "3.3.13",
-        "@vue/shared": "3.3.13"
+        "@vue/reactivity": "3.4.25",
+        "@vue/shared": "3.4.25"
       }
     },
     "node_modules/@vue/runtime-dom": {
-      "version": "3.3.13",
-      "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.3.13.tgz",
-      "integrity": "sha512-JJkpE8R/hJKXqVTgUoODwS5wqKtOsmJPEqmp90PDVGygtJ4C0PtOkcEYXwhiVEmef6xeXcIlrT3Yo5aQ4qkHhQ==",
+      "version": "3.4.25",
+      "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.4.25.tgz",
+      "integrity": "sha512-ode0sj77kuwXwSc+2Yhk8JMHZh1sZp9F/51wdBiz3KGaWltbKtdihlJFhQG4H6AY+A06zzeMLkq6qu8uDSsaoA==",
       "dependencies": {
-        "@vue/runtime-core": "3.3.13",
-        "@vue/shared": "3.3.13",
+        "@vue/runtime-core": "3.4.25",
+        "@vue/shared": "3.4.25",
         "csstype": "^3.1.3"
       }
     },
     "node_modules/@vue/server-renderer": {
-      "version": "3.3.13",
-      "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.3.13.tgz",
-      "integrity": "sha512-vSnN+nuf6iSqTL3Qgx/9A+BT+0Zf/VJOgF5uMZrKjYPs38GMYyAU1coDyBNHauehXDaP+zl73VhwWv0vBRBHcg==",
+      "version": "3.4.25",
+      "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.4.25.tgz",
+      "integrity": "sha512-8VTwq0Zcu3K4dWV0jOwIVINESE/gha3ifYCOKEhxOj6MEl5K5y8J8clQncTcDhKF+9U765nRw4UdUEXvrGhyVQ==",
       "dependencies": {
-        "@vue/compiler-ssr": "3.3.13",
-        "@vue/shared": "3.3.13"
+        "@vue/compiler-ssr": "3.4.25",
+        "@vue/shared": "3.4.25"
       },
       "peerDependencies": {
-        "vue": "3.3.13"
+        "vue": "3.4.25"
       }
     },
     "node_modules/@vue/shared": {
-      "version": "3.3.13",
-      "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.3.13.tgz",
-      "integrity": "sha512-/zYUwiHD8j7gKx2argXEMCUXVST6q/21DFU0sTfNX0URJroCe3b1UF6vLJ3lQDfLNIiiRl2ONp7Nh5UVWS6QnA=="
+      "version": "3.4.25",
+      "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.4.25.tgz",
+      "integrity": "sha512-k0yappJ77g2+KNrIaF0FFnzwLvUBLUYr8VOwz+/6vLsmItFp51AcxLL7Ey3iPd7BIRyWPOcqUjMnm7OkahXllA=="
+    },
+    "node_modules/@yr/monotone-cubic-spline": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npmjs.org/@yr/monotone-cubic-spline/-/monotone-cubic-spline-1.0.3.tgz",
+      "integrity": "sha512-FQXkOta0XBSUPHndIKON2Y9JeQz5ZeMqLYZVVK93FliNBFm7LNMIZmY6FrMEB9XPcDbE2bekMbZD6kzDkxwYjA=="
     },
     "node_modules/accepts": {
       "version": "1.3.8",
@@ -1017,6 +1174,20 @@
         "node": ">= 8"
       }
     },
+    "node_modules/apexcharts": {
+      "version": "3.49.0",
+      "resolved": "https://registry.npmjs.org/apexcharts/-/apexcharts-3.49.0.tgz",
+      "integrity": "sha512-2T9HnbQFLCuYRPndQLmh+bEQFoz0meUbvASaGgiSKDuYhWcLBodJtIpKql2aOtMx4B/sHrWW0dm90HsW4+h2PQ==",
+      "dependencies": {
+        "@yr/monotone-cubic-spline": "^1.0.3",
+        "svg.draggable.js": "^2.2.2",
+        "svg.easing.js": "^2.0.0",
+        "svg.filter.js": "^2.0.2",
+        "svg.pathmorphing.js": "^0.1.3",
+        "svg.resize.js": "^1.4.3",
+        "svg.select.js": "^3.0.1"
+      }
+    },
     "node_modules/archiver": {
       "version": "5.3.2",
       "resolved": "https://registry.npmjs.org/archiver/-/archiver-5.3.2.tgz",
@@ -1122,9 +1293,9 @@
       "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="
     },
     "node_modules/autoprefixer": {
-      "version": "10.4.16",
-      "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.16.tgz",
-      "integrity": "sha512-7vd3UC6xKp0HLfua5IjZlcXvGAGy7cBAXTg2lyQ/8WpNhd6SiZ8Be+xm3FyBSYJx5GKcpRCzBh7RH4/0dnY+uQ==",
+      "version": "10.4.19",
+      "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.19.tgz",
+      "integrity": "sha512-BaENR2+zBZ8xXhM4pUaKUxlVdxZ0EZhjvbopwnXmxRUfqDmwSpC2lAi/QXvx7NRdPCo1WKEcEF6mV64si1z4Ew==",
       "dev": true,
       "funding": [
         {
@@ -1141,9 +1312,9 @@
         }
       ],
       "dependencies": {
-        "browserslist": "^4.21.10",
-        "caniuse-lite": "^1.0.30001538",
-        "fraction.js": "^4.3.6",
+        "browserslist": "^4.23.0",
+        "caniuse-lite": "^1.0.30001599",
+        "fraction.js": "^4.3.7",
         "normalize-range": "^0.1.2",
         "picocolors": "^1.0.0",
         "postcss-value-parser": "^4.2.0"
@@ -1159,11 +1330,11 @@
       }
     },
     "node_modules/axios": {
-      "version": "1.6.2",
-      "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.2.tgz",
-      "integrity": "sha512-7i24Ri4pmDRfJTR7LDBhsOTtcm+9kjX5WiY1X3wIisx6G9So3pfMkEiU7emUBe46oceVImccTEM3k6C5dbVW8A==",
+      "version": "1.6.8",
+      "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.8.tgz",
+      "integrity": "sha512-v/ZHtJDU39mDpyBoFVkETcd/uNdxrWRrg3bKpOKzXFA6Bvqopts6ALSMU3y6ijYxbw2B+wPrIv46egTzJXCLGQ==",
       "dependencies": {
-        "follow-redirects": "^1.15.0",
+        "follow-redirects": "^1.15.6",
         "form-data": "^4.0.0",
         "proxy-from-env": "^1.1.0"
       }
@@ -1215,13 +1386,13 @@
       }
     },
     "node_modules/body-parser": {
-      "version": "1.20.1",
-      "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz",
-      "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==",
+      "version": "1.20.2",
+      "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz",
+      "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==",
       "dev": true,
       "dependencies": {
         "bytes": "3.1.2",
-        "content-type": "~1.0.4",
+        "content-type": "~1.0.5",
         "debug": "2.6.9",
         "depd": "2.0.0",
         "destroy": "1.2.0",
@@ -1229,7 +1400,7 @@
         "iconv-lite": "0.4.24",
         "on-finished": "2.4.1",
         "qs": "6.11.0",
-        "raw-body": "2.5.1",
+        "raw-body": "2.5.2",
         "type-is": "~1.6.18",
         "unpipe": "1.0.0"
       },
@@ -1291,9 +1462,9 @@
       }
     },
     "node_modules/browserslist": {
-      "version": "4.22.2",
-      "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.2.tgz",
-      "integrity": "sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A==",
+      "version": "4.23.0",
+      "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz",
+      "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==",
       "dev": true,
       "funding": [
         {
@@ -1310,8 +1481,8 @@
         }
       ],
       "dependencies": {
-        "caniuse-lite": "^1.0.30001565",
-        "electron-to-chromium": "^1.4.601",
+        "caniuse-lite": "^1.0.30001587",
+        "electron-to-chromium": "^1.4.668",
         "node-releases": "^2.0.14",
         "update-browserslist-db": "^1.0.13"
       },
@@ -1355,6 +1526,12 @@
         "node": "*"
       }
     },
+    "node_modules/buffer-from": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
+      "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==",
+      "dev": true
+    },
     "node_modules/bytes": {
       "version": "3.0.0",
       "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz",
@@ -1365,14 +1542,19 @@
       }
     },
     "node_modules/call-bind": {
-      "version": "1.0.5",
-      "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz",
-      "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==",
+      "version": "1.0.7",
+      "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz",
+      "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==",
       "dev": true,
       "dependencies": {
+        "es-define-property": "^1.0.0",
+        "es-errors": "^1.3.0",
         "function-bind": "^1.1.2",
-        "get-intrinsic": "^1.2.1",
-        "set-function-length": "^1.1.1"
+        "get-intrinsic": "^1.2.4",
+        "set-function-length": "^1.2.1"
+      },
+      "engines": {
+        "node": ">= 0.4"
       },
       "funding": {
         "url": "https://github.com/sponsors/ljharb"
@@ -1388,19 +1570,19 @@
       }
     },
     "node_modules/camel-case": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz",
-      "integrity": "sha512-+MbKztAYHXPr1jNTSKQF52VpcFjwY5RkR7fxksV8Doo4KAYc5Fl4UJRgthBbTmEx8C54DqahhbLJkDwjI3PI/w==",
+      "version": "4.1.2",
+      "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz",
+      "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==",
       "dev": true,
       "dependencies": {
-        "no-case": "^2.2.0",
-        "upper-case": "^1.1.1"
+        "pascal-case": "^3.1.2",
+        "tslib": "^2.0.3"
       }
     },
     "node_modules/caniuse-lite": {
-      "version": "1.0.30001571",
-      "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001571.tgz",
-      "integrity": "sha512-tYq/6MoXhdezDLFZuCO/TKboTzuQ/xR5cFdgXPfDtM7/kchBO3b4VWghE/OAi/DV7tTdhmLjZiZBZi1fA/GheQ==",
+      "version": "1.0.30001613",
+      "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001613.tgz",
+      "integrity": "sha512-BNjJULJfOONQERivfxte7alLfeLW4QnwHvNW4wEcLEbXfV6VSCYvr+REbf2Sojv8tC1THpjPXBxWgDbq4NtLWg==",
       "dev": true,
       "funding": [
         {
@@ -1482,15 +1664,15 @@
       }
     },
     "node_modules/clean-css": {
-      "version": "4.2.4",
-      "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.4.tgz",
-      "integrity": "sha512-EJUDT7nDVFDvaQgAo2G/PJvxmp1o/c6iXLbswsBbUFXi1Nr+AjA2cKmfbKDMjMvzEe75g3P6JkaDDAKk96A85A==",
+      "version": "5.3.3",
+      "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.3.tgz",
+      "integrity": "sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==",
       "dev": true,
       "dependencies": {
         "source-map": "~0.6.0"
       },
       "engines": {
-        "node": ">= 4.0"
+        "node": ">= 10.0"
       }
     },
     "node_modules/cli-cursor": {
@@ -1610,10 +1792,13 @@
       }
     },
     "node_modules/commander": {
-      "version": "2.20.3",
-      "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
-      "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
-      "dev": true
+      "version": "10.0.1",
+      "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz",
+      "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==",
+      "dev": true,
+      "engines": {
+        "node": ">=14"
+      }
     },
     "node_modules/compress-commons": {
       "version": "4.1.2",
@@ -1723,9 +1908,9 @@
       }
     },
     "node_modules/cookie": {
-      "version": "0.5.0",
-      "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz",
-      "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==",
+      "version": "0.6.0",
+      "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz",
+      "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==",
       "dev": true,
       "engines": {
         "node": ">= 0.6"
@@ -1835,17 +2020,20 @@
       }
     },
     "node_modules/define-data-property": {
-      "version": "1.1.1",
-      "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz",
-      "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==",
+      "version": "1.1.4",
+      "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz",
+      "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==",
       "dev": true,
       "dependencies": {
-        "get-intrinsic": "^1.2.1",
-        "gopd": "^1.0.1",
-        "has-property-descriptors": "^1.0.0"
+        "es-define-property": "^1.0.0",
+        "es-errors": "^1.3.0",
+        "gopd": "^1.0.1"
       },
       "engines": {
         "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
       }
     },
     "node_modules/define-lazy-prop": {
@@ -1908,6 +2096,16 @@
         "node": ">=6.0.0"
       }
     },
+    "node_modules/dot-case": {
+      "version": "3.0.4",
+      "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz",
+      "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==",
+      "dev": true,
+      "dependencies": {
+        "no-case": "^3.0.4",
+        "tslib": "^2.0.3"
+      }
+    },
     "node_modules/dot-prop": {
       "version": "6.0.1",
       "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-6.0.1.tgz",
@@ -1930,9 +2128,9 @@
       "dev": true
     },
     "node_modules/electron-to-chromium": {
-      "version": "1.4.616",
-      "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.616.tgz",
-      "integrity": "sha512-1n7zWYh8eS0L9Uy+GskE0lkBUNK83cXTVJI0pU3mGprFsbfSdAc15VTFbo+A+Bq4pwstmL30AVcEU3Fo463lNg==",
+      "version": "1.4.750",
+      "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.750.tgz",
+      "integrity": "sha512-9ItEpeu15hW5m8jKdriL+BQrgwDTXEL9pn4SkillWFu73ZNNNQ2BKKLS+ZHv2vC9UkNhosAeyfxOf/5OSeTCPA==",
       "dev": true
     },
     "node_modules/elementtree": {
@@ -1971,6 +2169,38 @@
         "once": "^1.4.0"
       }
     },
+    "node_modules/entities": {
+      "version": "4.5.0",
+      "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz",
+      "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==",
+      "engines": {
+        "node": ">=0.12"
+      },
+      "funding": {
+        "url": "https://github.com/fb55/entities?sponsor=1"
+      }
+    },
+    "node_modules/es-define-property": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz",
+      "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==",
+      "dev": true,
+      "dependencies": {
+        "get-intrinsic": "^1.2.4"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      }
+    },
+    "node_modules/es-errors": {
+      "version": "1.3.0",
+      "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz",
+      "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==",
+      "dev": true,
+      "engines": {
+        "node": ">= 0.4"
+      }
+    },
     "node_modules/esbuild": {
       "version": "0.14.51",
       "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.51.tgz",
@@ -2409,9 +2639,9 @@
       }
     },
     "node_modules/eslint-config-prettier": {
-      "version": "8.10.0",
-      "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.10.0.tgz",
-      "integrity": "sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg==",
+      "version": "9.1.0",
+      "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz",
+      "integrity": "sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==",
       "dev": true,
       "bin": {
         "eslint-config-prettier": "bin/cli.js"
@@ -2421,37 +2651,56 @@
       }
     },
     "node_modules/eslint-plugin-vue": {
-      "version": "9.19.2",
-      "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-9.19.2.tgz",
-      "integrity": "sha512-CPDqTOG2K4Ni2o4J5wixkLVNwgctKXFu6oBpVJlpNq7f38lh9I80pRTouZSJ2MAebPJlINU/KTFSXyQfBUlymA==",
+      "version": "9.25.0",
+      "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-9.25.0.tgz",
+      "integrity": "sha512-tDWlx14bVe6Bs+Nnh3IGrD+hb11kf2nukfm6jLsmJIhmiRQ1SUaksvwY9U5MvPB0pcrg0QK0xapQkfITs3RKOA==",
       "dev": true,
       "dependencies": {
         "@eslint-community/eslint-utils": "^4.4.0",
+        "globals": "^13.24.0",
         "natural-compare": "^1.4.0",
         "nth-check": "^2.1.1",
-        "postcss-selector-parser": "^6.0.13",
-        "semver": "^7.5.4",
-        "vue-eslint-parser": "^9.3.1",
+        "postcss-selector-parser": "^6.0.15",
+        "semver": "^7.6.0",
+        "vue-eslint-parser": "^9.4.2",
         "xml-name-validator": "^4.0.0"
       },
       "engines": {
         "node": "^14.17.0 || >=16.0.0"
       },
       "peerDependencies": {
-        "eslint": "^6.2.0 || ^7.0.0 || ^8.0.0"
+        "eslint": "^6.2.0 || ^7.0.0 || ^8.0.0 || ^9.0.0"
+      }
+    },
+    "node_modules/eslint-plugin-vue/node_modules/semver": {
+      "version": "7.6.0",
+      "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
+      "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
+      "dev": true,
+      "dependencies": {
+        "lru-cache": "^6.0.0"
+      },
+      "bin": {
+        "semver": "bin/semver.js"
+      },
+      "engines": {
+        "node": ">=10"
       }
     },
     "node_modules/eslint-scope": {
-      "version": "5.1.1",
-      "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz",
-      "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==",
+      "version": "7.2.2",
+      "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz",
+      "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==",
       "dev": true,
       "dependencies": {
         "esrecurse": "^4.3.0",
-        "estraverse": "^4.1.1"
+        "estraverse": "^5.2.0"
       },
       "engines": {
-        "node": ">=8.0.0"
+        "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+      },
+      "funding": {
+        "url": "https://opencollective.com/eslint"
       }
     },
     "node_modules/eslint-utils": {
@@ -2490,31 +2739,6 @@
         "url": "https://opencollective.com/eslint"
       }
     },
-    "node_modules/eslint/node_modules/eslint-scope": {
-      "version": "7.2.2",
-      "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz",
-      "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==",
-      "dev": true,
-      "dependencies": {
-        "esrecurse": "^4.3.0",
-        "estraverse": "^5.2.0"
-      },
-      "engines": {
-        "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
-      },
-      "funding": {
-        "url": "https://opencollective.com/eslint"
-      }
-    },
-    "node_modules/eslint/node_modules/estraverse": {
-      "version": "5.3.0",
-      "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
-      "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
-      "dev": true,
-      "engines": {
-        "node": ">=4.0"
-      }
-    },
     "node_modules/eslint/node_modules/glob-parent": {
       "version": "6.0.2",
       "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
@@ -2556,15 +2780,6 @@
         "node": ">=0.10"
       }
     },
-    "node_modules/esquery/node_modules/estraverse": {
-      "version": "5.3.0",
-      "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
-      "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
-      "dev": true,
-      "engines": {
-        "node": ">=4.0"
-      }
-    },
     "node_modules/esrecurse": {
       "version": "4.3.0",
       "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz",
@@ -2577,7 +2792,7 @@
         "node": ">=4.0"
       }
     },
-    "node_modules/esrecurse/node_modules/estraverse": {
+    "node_modules/estraverse": {
       "version": "5.3.0",
       "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
       "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
@@ -2586,15 +2801,6 @@
         "node": ">=4.0"
       }
     },
-    "node_modules/estraverse": {
-      "version": "4.3.0",
-      "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
-      "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
-      "dev": true,
-      "engines": {
-        "node": ">=4.0"
-      }
-    },
     "node_modules/estree-walker": {
       "version": "2.0.2",
       "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz",
@@ -2619,17 +2825,17 @@
       }
     },
     "node_modules/express": {
-      "version": "4.18.2",
-      "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz",
-      "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==",
+      "version": "4.19.2",
+      "resolved": "https://registry.npmjs.org/express/-/express-4.19.2.tgz",
+      "integrity": "sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==",
       "dev": true,
       "dependencies": {
         "accepts": "~1.3.8",
         "array-flatten": "1.1.1",
-        "body-parser": "1.20.1",
+        "body-parser": "1.20.2",
         "content-disposition": "0.5.4",
         "content-type": "~1.0.4",
-        "cookie": "0.5.0",
+        "cookie": "0.6.0",
         "cookie-signature": "1.0.6",
         "debug": "2.6.9",
         "depd": "2.0.0",
@@ -2879,9 +3085,9 @@
       "dev": true
     },
     "node_modules/follow-redirects": {
-      "version": "1.15.5",
-      "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.5.tgz",
-      "integrity": "sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw==",
+      "version": "1.15.6",
+      "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz",
+      "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==",
       "funding": [
         {
           "type": "individual",
@@ -3000,16 +3206,20 @@
       }
     },
     "node_modules/get-intrinsic": {
-      "version": "1.2.2",
-      "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz",
-      "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==",
+      "version": "1.2.4",
+      "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz",
+      "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==",
       "dev": true,
       "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"
       },
+      "engines": {
+        "node": ">= 0.4"
+      },
       "funding": {
         "url": "https://github.com/sponsors/ljharb"
       }
@@ -3115,21 +3325,21 @@
       }
     },
     "node_modules/has-property-descriptors": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz",
-      "integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==",
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz",
+      "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==",
       "dev": true,
       "dependencies": {
-        "get-intrinsic": "^1.2.2"
+        "es-define-property": "^1.0.0"
       },
       "funding": {
         "url": "https://github.com/sponsors/ljharb"
       }
     },
     "node_modules/has-proto": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz",
-      "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==",
+      "version": "1.0.3",
+      "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz",
+      "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==",
       "dev": true,
       "engines": {
         "node": ">= 0.4"
@@ -3162,34 +3372,25 @@
         "node": ">= 0.4"
       }
     },
-    "node_modules/he": {
-      "version": "1.2.0",
-      "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz",
-      "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==",
-      "dev": true,
-      "bin": {
-        "he": "bin/he"
-      }
-    },
-    "node_modules/html-minifier": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmjs.org/html-minifier/-/html-minifier-4.0.0.tgz",
-      "integrity": "sha512-aoGxanpFPLg7MkIl/DDFYtb0iWz7jMFGqFhvEDZga6/4QTjneiD8I/NXL1x5aaoCp7FSIT6h/OhykDdPsbtMig==",
+    "node_modules/html-minifier-terser": {
+      "version": "7.2.0",
+      "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-7.2.0.tgz",
+      "integrity": "sha512-tXgn3QfqPIpGl9o+K5tpcj3/MN4SfLtsx2GWwBC3SSd0tXQGyF3gsSqad8loJgKZGM3ZxbYDd5yhiBIdWpmvLA==",
       "dev": true,
       "dependencies": {
-        "camel-case": "^3.0.0",
-        "clean-css": "^4.2.1",
-        "commander": "^2.19.0",
-        "he": "^1.2.0",
-        "param-case": "^2.1.1",
+        "camel-case": "^4.1.2",
+        "clean-css": "~5.3.2",
+        "commander": "^10.0.0",
+        "entities": "^4.4.0",
+        "param-case": "^3.0.4",
         "relateurl": "^0.2.7",
-        "uglify-js": "^3.5.1"
+        "terser": "^5.15.1"
       },
       "bin": {
-        "html-minifier": "cli.js"
+        "html-minifier-terser": "cli.js"
       },
       "engines": {
-        "node": ">=6"
+        "node": "^14.13.1 || >=16.0.0"
       }
     },
     "node_modules/http-errors": {
@@ -3241,9 +3442,9 @@
       ]
     },
     "node_modules/ignore": {
-      "version": "5.3.0",
-      "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.0.tgz",
-      "integrity": "sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==",
+      "version": "5.3.1",
+      "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz",
+      "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==",
       "dev": true,
       "engines": {
         "node": ">= 4"
@@ -3760,10 +3961,13 @@
       }
     },
     "node_modules/lower-case": {
-      "version": "1.1.4",
-      "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz",
-      "integrity": "sha512-2Fgx1Ycm599x+WGpIYwJOvsjmXFzTSc34IwDWALRA/8AopUKAVPwfJ+h5+f85BCp0PWmmJcWzEpxOpoXycMpdA==",
-      "dev": true
+      "version": "2.0.2",
+      "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz",
+      "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==",
+      "dev": true,
+      "dependencies": {
+        "tslib": "^2.0.3"
+      }
     },
     "node_modules/lru-cache": {
       "version": "6.0.0",
@@ -3778,14 +3982,11 @@
       }
     },
     "node_modules/magic-string": {
-      "version": "0.30.5",
-      "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.5.tgz",
-      "integrity": "sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==",
+      "version": "0.30.10",
+      "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.10.tgz",
+      "integrity": "sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==",
       "dependencies": {
         "@jridgewell/sourcemap-codec": "^1.4.15"
-      },
-      "engines": {
-        "node": ">=12"
       }
     },
     "node_modules/media-typer": {
@@ -3930,12 +4131,6 @@
       "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==",
       "dev": true
     },
-    "node_modules/natural-compare-lite": {
-      "version": "1.4.0",
-      "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz",
-      "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==",
-      "dev": true
-    },
     "node_modules/negotiator": {
       "version": "0.6.3",
       "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz",
@@ -3946,12 +4141,13 @@
       }
     },
     "node_modules/no-case": {
-      "version": "2.3.2",
-      "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz",
-      "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==",
+      "version": "3.0.4",
+      "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz",
+      "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==",
       "dev": true,
       "dependencies": {
-        "lower-case": "^1.1.1"
+        "lower-case": "^2.0.2",
+        "tslib": "^2.0.3"
       }
     },
     "node_modules/node-releases": {
@@ -4141,12 +4337,13 @@
       }
     },
     "node_modules/param-case": {
-      "version": "2.1.1",
-      "resolved": "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz",
-      "integrity": "sha512-eQE845L6ot89sk2N8liD8HAuH4ca6Vvr7VWAWwt7+kvvG5aBcPmmphQ68JsEG2qa9n1TykS2DLeMt363AAH8/w==",
+      "version": "3.0.4",
+      "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz",
+      "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==",
       "dev": true,
       "dependencies": {
-        "no-case": "^2.2.0"
+        "dot-case": "^3.0.4",
+        "tslib": "^2.0.3"
       }
     },
     "node_modules/parent-module": {
@@ -4170,6 +4367,16 @@
         "node": ">= 0.8"
       }
     },
+    "node_modules/pascal-case": {
+      "version": "3.1.2",
+      "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz",
+      "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==",
+      "dev": true,
+      "dependencies": {
+        "no-case": "^3.0.4",
+        "tslib": "^2.0.3"
+      }
+    },
     "node_modules/path-exists": {
       "version": "4.0.0",
       "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
@@ -4286,9 +4493,9 @@
       }
     },
     "node_modules/postcss": {
-      "version": "8.4.32",
-      "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.32.tgz",
-      "integrity": "sha512-D/kj5JNu6oo2EIy+XL/26JEDTlIbB8hw85G8StOE6L74RQAVVP5rej6wxCNqyMbR4RkPfqvezVbPw81Ngd6Kcw==",
+      "version": "8.4.38",
+      "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz",
+      "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==",
       "funding": [
         {
           "type": "opencollective",
@@ -4306,16 +4513,16 @@
       "dependencies": {
         "nanoid": "^3.3.7",
         "picocolors": "^1.0.0",
-        "source-map-js": "^1.0.2"
+        "source-map-js": "^1.2.0"
       },
       "engines": {
         "node": "^10 || ^12 || >=14"
       }
     },
     "node_modules/postcss-selector-parser": {
-      "version": "6.0.13",
-      "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz",
-      "integrity": "sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==",
+      "version": "6.0.16",
+      "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.16.tgz",
+      "integrity": "sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==",
       "dev": true,
       "dependencies": {
         "cssesc": "^3.0.0",
@@ -4341,15 +4548,15 @@
       }
     },
     "node_modules/prettier": {
-      "version": "2.8.8",
-      "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz",
-      "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==",
+      "version": "3.2.5",
+      "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.2.5.tgz",
+      "integrity": "sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==",
       "dev": true,
       "bin": {
-        "prettier": "bin-prettier.js"
+        "prettier": "bin/prettier.cjs"
       },
       "engines": {
-        "node": ">=10.13.0"
+        "node": ">=14"
       },
       "funding": {
         "url": "https://github.com/prettier/prettier?sponsor=1"
@@ -4404,9 +4611,9 @@
       }
     },
     "node_modules/quasar": {
-      "version": "2.14.2",
-      "resolved": "https://registry.npmjs.org/quasar/-/quasar-2.14.2.tgz",
-      "integrity": "sha512-f5KliWtM5BEuFsDU4yvuP+dlVIWZNrGu5VpWFsxzjpoykcP4B2HIOUiCl3mx2NCqERHd4Ts0aeioRkt9TTeExA==",
+      "version": "2.15.4",
+      "resolved": "https://registry.npmjs.org/quasar/-/quasar-2.15.4.tgz",
+      "integrity": "sha512-6Rtj0KrsVA0IV9zMZ6R7U7hOpwLS/6E06hsISVHRPn21KEm3XAwHdvy9xWz5kwqWraHRlcisFSDu/KPL4VQK1w==",
       "engines": {
         "node": ">= 10.18.1",
         "npm": ">= 6.13.4",
@@ -4456,9 +4663,9 @@
       }
     },
     "node_modules/raw-body": {
-      "version": "2.5.1",
-      "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz",
-      "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==",
+      "version": "2.5.2",
+      "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz",
+      "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==",
       "dev": true,
       "dependencies": {
         "bytes": "3.1.2",
@@ -4843,15 +5050,17 @@
       }
     },
     "node_modules/set-function-length": {
-      "version": "1.1.1",
-      "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.1.1.tgz",
-      "integrity": "sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==",
+      "version": "1.2.2",
+      "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz",
+      "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==",
       "dev": true,
       "dependencies": {
-        "define-data-property": "^1.1.1",
-        "get-intrinsic": "^1.2.1",
+        "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.0"
+        "has-property-descriptors": "^1.0.2"
       },
       "engines": {
         "node": ">= 0.4"
@@ -4897,14 +5106,18 @@
       }
     },
     "node_modules/side-channel": {
-      "version": "1.0.4",
-      "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz",
-      "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
+      "version": "1.0.6",
+      "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz",
+      "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==",
       "dev": true,
       "dependencies": {
-        "call-bind": "^1.0.0",
-        "get-intrinsic": "^1.0.2",
-        "object-inspect": "^1.9.0"
+        "call-bind": "^1.0.7",
+        "es-errors": "^1.3.0",
+        "get-intrinsic": "^1.2.4",
+        "object-inspect": "^1.13.1"
+      },
+      "engines": {
+        "node": ">= 0.4"
       },
       "funding": {
         "url": "https://github.com/sponsors/ljharb"
@@ -4952,13 +5165,23 @@
       }
     },
     "node_modules/source-map-js": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz",
-      "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==",
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz",
+      "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==",
       "engines": {
         "node": ">=0.10.0"
       }
     },
+    "node_modules/source-map-support": {
+      "version": "0.5.21",
+      "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz",
+      "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==",
+      "dev": true,
+      "dependencies": {
+        "buffer-from": "^1.0.0",
+        "source-map": "^0.6.0"
+      }
+    },
     "node_modules/stack-trace": {
       "version": "1.0.0-pre2",
       "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-1.0.0-pre2.tgz",
@@ -5068,6 +5291,89 @@
         "url": "https://github.com/sponsors/ljharb"
       }
     },
+    "node_modules/svg.draggable.js": {
+      "version": "2.2.2",
+      "resolved": "https://registry.npmjs.org/svg.draggable.js/-/svg.draggable.js-2.2.2.tgz",
+      "integrity": "sha512-JzNHBc2fLQMzYCZ90KZHN2ohXL0BQJGQimK1kGk6AvSeibuKcIdDX9Kr0dT9+UJ5O8nYA0RB839Lhvk4CY4MZw==",
+      "dependencies": {
+        "svg.js": "^2.0.1"
+      },
+      "engines": {
+        "node": ">= 0.8.0"
+      }
+    },
+    "node_modules/svg.easing.js": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/svg.easing.js/-/svg.easing.js-2.0.0.tgz",
+      "integrity": "sha512-//ctPdJMGy22YoYGV+3HEfHbm6/69LJUTAqI2/5qBvaNHZ9uUFVC82B0Pl299HzgH13rKrBgi4+XyXXyVWWthA==",
+      "dependencies": {
+        "svg.js": ">=2.3.x"
+      },
+      "engines": {
+        "node": ">= 0.8.0"
+      }
+    },
+    "node_modules/svg.filter.js": {
+      "version": "2.0.2",
+      "resolved": "https://registry.npmjs.org/svg.filter.js/-/svg.filter.js-2.0.2.tgz",
+      "integrity": "sha512-xkGBwU+dKBzqg5PtilaTb0EYPqPfJ9Q6saVldX+5vCRy31P6TlRCP3U9NxH3HEufkKkpNgdTLBJnmhDHeTqAkw==",
+      "dependencies": {
+        "svg.js": "^2.2.5"
+      },
+      "engines": {
+        "node": ">= 0.8.0"
+      }
+    },
+    "node_modules/svg.js": {
+      "version": "2.7.1",
+      "resolved": "https://registry.npmjs.org/svg.js/-/svg.js-2.7.1.tgz",
+      "integrity": "sha512-ycbxpizEQktk3FYvn/8BH+6/EuWXg7ZpQREJvgacqn46gIddG24tNNe4Son6omdXCnSOaApnpZw6MPCBA1dODA=="
+    },
+    "node_modules/svg.pathmorphing.js": {
+      "version": "0.1.3",
+      "resolved": "https://registry.npmjs.org/svg.pathmorphing.js/-/svg.pathmorphing.js-0.1.3.tgz",
+      "integrity": "sha512-49HWI9X4XQR/JG1qXkSDV8xViuTLIWm/B/7YuQELV5KMOPtXjiwH4XPJvr/ghEDibmLQ9Oc22dpWpG0vUDDNww==",
+      "dependencies": {
+        "svg.js": "^2.4.0"
+      },
+      "engines": {
+        "node": ">= 0.8.0"
+      }
+    },
+    "node_modules/svg.resize.js": {
+      "version": "1.4.3",
+      "resolved": "https://registry.npmjs.org/svg.resize.js/-/svg.resize.js-1.4.3.tgz",
+      "integrity": "sha512-9k5sXJuPKp+mVzXNvxz7U0uC9oVMQrrf7cFsETznzUDDm0x8+77dtZkWdMfRlmbkEEYvUn9btKuZ3n41oNA+uw==",
+      "dependencies": {
+        "svg.js": "^2.6.5",
+        "svg.select.js": "^2.1.2"
+      },
+      "engines": {
+        "node": ">= 0.8.0"
+      }
+    },
+    "node_modules/svg.resize.js/node_modules/svg.select.js": {
+      "version": "2.1.2",
+      "resolved": "https://registry.npmjs.org/svg.select.js/-/svg.select.js-2.1.2.tgz",
+      "integrity": "sha512-tH6ABEyJsAOVAhwcCjF8mw4crjXSI1aa7j2VQR8ZuJ37H2MBUbyeqYr5nEO7sSN3cy9AR9DUwNg0t/962HlDbQ==",
+      "dependencies": {
+        "svg.js": "^2.2.5"
+      },
+      "engines": {
+        "node": ">= 0.8.0"
+      }
+    },
+    "node_modules/svg.select.js": {
+      "version": "3.0.1",
+      "resolved": "https://registry.npmjs.org/svg.select.js/-/svg.select.js-3.0.1.tgz",
+      "integrity": "sha512-h5IS/hKkuVCbKSieR9uQCj9w+zLHoPh+ce19bBYyqF53g6mnPB8sAtIbe1s9dh2S2fCmYX2xel1Ln3PJBbK4kw==",
+      "dependencies": {
+        "svg.js": "^2.6.5"
+      },
+      "engines": {
+        "node": ">= 0.8.0"
+      }
+    },
     "node_modules/table": {
       "version": "6.8.1",
       "resolved": "https://registry.npmjs.org/table/-/table-6.8.1.tgz",
@@ -5122,6 +5428,30 @@
         "node": ">=6"
       }
     },
+    "node_modules/terser": {
+      "version": "5.30.4",
+      "resolved": "https://registry.npmjs.org/terser/-/terser-5.30.4.tgz",
+      "integrity": "sha512-xRdd0v64a8mFK9bnsKVdoNP9GQIKUAaJPTaqEQDL4w/J8WaW4sWXXoMZ+6SimPkfT5bElreXf8m9HnmPc3E1BQ==",
+      "dev": true,
+      "dependencies": {
+        "@jridgewell/source-map": "^0.3.3",
+        "acorn": "^8.8.2",
+        "commander": "^2.20.0",
+        "source-map-support": "~0.5.20"
+      },
+      "bin": {
+        "terser": "bin/terser"
+      },
+      "engines": {
+        "node": ">=10"
+      }
+    },
+    "node_modules/terser/node_modules/commander": {
+      "version": "2.20.3",
+      "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
+      "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
+      "dev": true
+    },
     "node_modules/text-table": {
       "version": "0.2.0",
       "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
@@ -5167,31 +5497,22 @@
         "node": ">=0.6"
       }
     },
-    "node_modules/tslib": {
-      "version": "2.6.2",
-      "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz",
-      "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==",
-      "dev": true
-    },
-    "node_modules/tsutils": {
-      "version": "3.21.0",
-      "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz",
-      "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==",
+    "node_modules/ts-api-utils": {
+      "version": "1.3.0",
+      "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz",
+      "integrity": "sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==",
       "dev": true,
-      "dependencies": {
-        "tslib": "^1.8.1"
-      },
       "engines": {
-        "node": ">= 6"
+        "node": ">=16"
       },
       "peerDependencies": {
-        "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta"
+        "typescript": ">=4.2.0"
       }
     },
-    "node_modules/tsutils/node_modules/tslib": {
-      "version": "1.14.1",
-      "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
-      "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
+    "node_modules/tslib": {
+      "version": "2.6.2",
+      "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz",
+      "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==",
       "dev": true
     },
     "node_modules/type-check": {
@@ -5232,29 +5553,23 @@
       }
     },
     "node_modules/typescript": {
-      "version": "4.9.5",
-      "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz",
-      "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==",
+      "version": "5.4.5",
+      "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz",
+      "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==",
       "devOptional": true,
       "bin": {
         "tsc": "bin/tsc",
         "tsserver": "bin/tsserver"
       },
       "engines": {
-        "node": ">=4.2.0"
+        "node": ">=14.17"
       }
     },
-    "node_modules/uglify-js": {
-      "version": "3.17.4",
-      "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz",
-      "integrity": "sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==",
-      "dev": true,
-      "bin": {
-        "uglifyjs": "bin/uglifyjs"
-      },
-      "engines": {
-        "node": ">=0.8.0"
-      }
+    "node_modules/undici-types": {
+      "version": "5.26.5",
+      "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz",
+      "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==",
+      "dev": true
     },
     "node_modules/universalify": {
       "version": "2.0.1",
@@ -5304,12 +5619,6 @@
         "browserslist": ">= 4.21.0"
       }
     },
-    "node_modules/upper-case": {
-      "version": "1.1.3",
-      "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz",
-      "integrity": "sha512-WRbjgmYzgXkCV7zNVpy5YgrHgbBv126rMALQQMrmzOVC4GM2waQ9x7xtm8VU+1yF2kWyPzI9zbZ48n4vSxwfSA==",
-      "dev": true
-    },
     "node_modules/uri-js": {
       "version": "4.4.1",
       "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
@@ -5344,9 +5653,9 @@
       }
     },
     "node_modules/vite": {
-      "version": "2.9.17",
-      "resolved": "https://registry.npmjs.org/vite/-/vite-2.9.17.tgz",
-      "integrity": "sha512-XxcRzra6d7xrKXH66jZUgb+srThoPu+TLJc06GifUyKq9JmjHkc1Numc8ra0h56rju2jfVWw3B3fs5l3OFMvUw==",
+      "version": "2.9.18",
+      "resolved": "https://registry.npmjs.org/vite/-/vite-2.9.18.tgz",
+      "integrity": "sha512-sAOqI5wNM9QvSEE70W3UGMdT8cyEn0+PmJMTFvTB8wB0YbYUWw3gUbY62AOyrXosGieF2htmeLATvNxpv/zNyQ==",
       "dev": true,
       "dependencies": {
         "esbuild": "^0.14.27",
@@ -5381,15 +5690,15 @@
       }
     },
     "node_modules/vue": {
-      "version": "3.3.13",
-      "resolved": "https://registry.npmjs.org/vue/-/vue-3.3.13.tgz",
-      "integrity": "sha512-LDnUpQvDgsfc0u/YgtAgTMXJlJQqjkxW1PVcOnJA5cshPleULDjHi7U45pl2VJYazSSvLH8UKcid/kzH8I0a0Q==",
+      "version": "3.4.25",
+      "resolved": "https://registry.npmjs.org/vue/-/vue-3.4.25.tgz",
+      "integrity": "sha512-HWyDqoBHMgav/OKiYA2ZQg+kjfMgLt/T0vg4cbIF7JbXAjDexRf5JRg+PWAfrAkSmTd2I8aPSXtooBFWHB98cg==",
       "dependencies": {
-        "@vue/compiler-dom": "3.3.13",
-        "@vue/compiler-sfc": "3.3.13",
-        "@vue/runtime-dom": "3.3.13",
-        "@vue/server-renderer": "3.3.13",
-        "@vue/shared": "3.3.13"
+        "@vue/compiler-dom": "3.4.25",
+        "@vue/compiler-sfc": "3.4.25",
+        "@vue/runtime-dom": "3.4.25",
+        "@vue/server-renderer": "3.4.25",
+        "@vue/shared": "3.4.25"
       },
       "peerDependencies": {
         "typescript": "*"
@@ -5401,9 +5710,9 @@
       }
     },
     "node_modules/vue-eslint-parser": {
-      "version": "9.3.2",
-      "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-9.3.2.tgz",
-      "integrity": "sha512-q7tWyCVaV9f8iQyIA5Mkj/S6AoJ9KBN8IeUSf3XEmBrOtxOZnfTg5s4KClbZBCK3GtnT/+RyCLZyDHuZwTuBjg==",
+      "version": "9.4.2",
+      "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-9.4.2.tgz",
+      "integrity": "sha512-Ry9oiGmCAK91HrKMtCrKFWmSFWvYkpGglCeFAIqDdr9zdXmMMpJOmUJS7WWsW7fX81h6mwHmUZCQQ1E0PkSwYQ==",
       "dev": true,
       "dependencies": {
         "debug": "^4.3.4",
@@ -5424,38 +5733,13 @@
         "eslint": ">=6.0.0"
       }
     },
-    "node_modules/vue-eslint-parser/node_modules/eslint-scope": {
-      "version": "7.2.2",
-      "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz",
-      "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==",
-      "dev": true,
-      "dependencies": {
-        "esrecurse": "^4.3.0",
-        "estraverse": "^5.2.0"
-      },
-      "engines": {
-        "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
-      },
-      "funding": {
-        "url": "https://opencollective.com/eslint"
-      }
-    },
-    "node_modules/vue-eslint-parser/node_modules/estraverse": {
-      "version": "5.3.0",
-      "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
-      "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
-      "dev": true,
-      "engines": {
-        "node": ">=4.0"
-      }
-    },
     "node_modules/vue-i18n": {
-      "version": "9.8.0",
-      "resolved": "https://registry.npmjs.org/vue-i18n/-/vue-i18n-9.8.0.tgz",
-      "integrity": "sha512-Izho+6PYjejsTq2mzjcRdBZ5VLRQoSuuexvR8029h5CpN03FYqiqBrShMyf2I1DKkN6kw/xmujcbvC+4QybpsQ==",
+      "version": "9.13.1",
+      "resolved": "https://registry.npmjs.org/vue-i18n/-/vue-i18n-9.13.1.tgz",
+      "integrity": "sha512-mh0GIxx0wPtPlcB1q4k277y0iKgo25xmDPWioVVYanjPufDBpvu5ySTjP5wOrSvlYQ2m1xI+CFhGdauv/61uQg==",
       "dependencies": {
-        "@intlify/core-base": "9.8.0",
-        "@intlify/shared": "9.8.0",
+        "@intlify/core-base": "9.13.1",
+        "@intlify/shared": "9.13.1",
         "@vue/devtools-api": "^6.5.0"
       },
       "engines": {
@@ -5469,11 +5753,11 @@
       }
     },
     "node_modules/vue-router": {
-      "version": "4.2.5",
-      "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.2.5.tgz",
-      "integrity": "sha512-DIUpKcyg4+PTQKfFPX88UWhlagBEBEfJ5A8XDXRJLUnZOvcpMF8o/dnL90vpVkGaPbjvXazV/rC1qBKrZlFugw==",
+      "version": "4.3.2",
+      "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.3.2.tgz",
+      "integrity": "sha512-hKQJ1vDAZ5LVkKEnHhmm1f9pMiWIBNGF5AwU67PdH7TyXCj/a4hTccuUuYCAMgJK6rO/NVYtQIEN3yL8CECa7Q==",
       "dependencies": {
-        "@vue/devtools-api": "^6.5.0"
+        "@vue/devtools-api": "^6.5.1"
       },
       "funding": {
         "url": "https://github.com/sponsors/posva"
@@ -5482,6 +5766,15 @@
         "vue": "^3.2.0"
       }
     },
+    "node_modules/vue3-apexcharts": {
+      "version": "1.5.2",
+      "resolved": "https://registry.npmjs.org/vue3-apexcharts/-/vue3-apexcharts-1.5.2.tgz",
+      "integrity": "sha512-rGbgUJDjtsyjfRF0uzwDjzt8+M7ICSRAbm1N9KCDiczW8BSpbEZuaEsJDJYnJuLFIIVXIGilYzIcjNBf6NbeYA==",
+      "peerDependencies": {
+        "apexcharts": "> 3.0.0",
+        "vue": "> 3.0.0"
+      }
+    },
     "node_modules/wcwidth": {
       "version": "1.0.1",
       "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz",
@@ -5682,9 +5975,9 @@
       "dev": true
     },
     "@babel/parser": {
-      "version": "7.23.6",
-      "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.6.tgz",
-      "integrity": "sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ=="
+      "version": "7.24.4",
+      "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.4.tgz",
+      "integrity": "sha512-zTvEBcghmeBma9QIGunWevvBAp4/Qu9Bdq+2k0Ot4fVMD6v3dsC9WOcRSKk7tRRyBM/53yKMJko9xOatGQAwSg=="
     },
     "@eslint-community/eslint-utils": {
       "version": "4.4.0",
@@ -5748,60 +6041,123 @@
       "dev": true
     },
     "@intlify/bundle-utils": {
-      "version": "2.2.2",
-      "resolved": "https://registry.npmjs.org/@intlify/bundle-utils/-/bundle-utils-2.2.2.tgz",
-      "integrity": "sha512-vngkvlIVV8ZJoyC5VqMvqJd2nvsx+qMN7pQjPiPjOrVndeiR7Dlue0k86Q8FsFUzyksW3HJZZi833ldxwbFzTA==",
+      "version": "3.4.0",
+      "resolved": "https://registry.npmjs.org/@intlify/bundle-utils/-/bundle-utils-3.4.0.tgz",
+      "integrity": "sha512-2UQkqiSAOSPEHMGWlybqWm4G2K0X+FyYho5AwXz6QklSX1EY5EDmOSxZmwscn2qmKBnp6OYsme5kUrnN9xrWzQ==",
       "dev": true,
       "requires": {
-        "@intlify/message-compiler": "^9.1.0",
-        "@intlify/shared": "^9.1.0",
+        "@intlify/message-compiler": "next",
+        "@intlify/shared": "next",
         "jsonc-eslint-parser": "^1.0.1",
-        "source-map": "^0.6.1",
+        "source-map": "0.6.1",
         "yaml-eslint-parser": "^0.3.2"
       }
     },
     "@intlify/core-base": {
-      "version": "9.8.0",
-      "resolved": "https://registry.npmjs.org/@intlify/core-base/-/core-base-9.8.0.tgz",
-      "integrity": "sha512-UxaSZVZ1DwqC/CltUZrWZNaWNhfmKtfyV4BJSt/Zt4Or/fZs1iFj0B+OekYk1+MRHfIOe3+x00uXGQI4PbO/9g==",
+      "version": "9.13.1",
+      "resolved": "https://registry.npmjs.org/@intlify/core-base/-/core-base-9.13.1.tgz",
+      "integrity": "sha512-+bcQRkJO9pcX8d0gel9ZNfrzU22sZFSA0WVhfXrf5jdJOS24a+Bp8pozuS9sBI9Hk/tGz83pgKfmqcn/Ci7/8w==",
       "requires": {
-        "@intlify/message-compiler": "9.8.0",
-        "@intlify/shared": "9.8.0"
+        "@intlify/message-compiler": "9.13.1",
+        "@intlify/shared": "9.13.1"
+      },
+      "dependencies": {
+        "@intlify/message-compiler": {
+          "version": "9.13.1",
+          "resolved": "https://registry.npmjs.org/@intlify/message-compiler/-/message-compiler-9.13.1.tgz",
+          "integrity": "sha512-SKsVa4ajYGBVm7sHMXd5qX70O2XXjm55zdZB3VeMFCvQyvLew/dLvq3MqnaIsTMF1VkkOb9Ttr6tHcMlyPDL9w==",
+          "requires": {
+            "@intlify/shared": "9.13.1",
+            "source-map-js": "^1.0.2"
+          }
+        }
       }
     },
     "@intlify/message-compiler": {
-      "version": "9.8.0",
-      "resolved": "https://registry.npmjs.org/@intlify/message-compiler/-/message-compiler-9.8.0.tgz",
-      "integrity": "sha512-McnYWhcoYmDJvssVu6QGR0shqlkJuL1HHdi5lK7fNqvQqRYaQ4lSLjYmZxwc8tRNMdIe9/KUKfyPxU9M6yCtNQ==",
+      "version": "10.0.0-alpha.3",
+      "resolved": "https://registry.npmjs.org/@intlify/message-compiler/-/message-compiler-10.0.0-alpha.3.tgz",
+      "integrity": "sha512-WjM1KAl5enpOfprfVAJ3FzwACmizZFPgyV0sn+QXoWH8BG2ahVkf7uVEqQH0mvUr2rKKaScwpzhH3wZ5F7ZdPw==",
+      "dev": true,
       "requires": {
-        "@intlify/shared": "9.8.0",
+        "@intlify/shared": "10.0.0-alpha.3",
         "source-map-js": "^1.0.2"
+      },
+      "dependencies": {
+        "@intlify/shared": {
+          "version": "10.0.0-alpha.3",
+          "resolved": "https://registry.npmjs.org/@intlify/shared/-/shared-10.0.0-alpha.3.tgz",
+          "integrity": "sha512-fi2q48i+C6sSCAt3vOj/9LD3tkr1wcvLt+ifZEHrpPiwHCyKLDYGp5qBNUHUBBA/iqFTeWdtHUbHE9z9OeTXkw==",
+          "dev": true
+        }
       }
     },
     "@intlify/shared": {
-      "version": "9.8.0",
-      "resolved": "https://registry.npmjs.org/@intlify/shared/-/shared-9.8.0.tgz",
-      "integrity": "sha512-TmgR0RCLjzrSo+W3wT0ALf9851iFMlVI9EYNGeWvZFUQTAJx0bvfsMlPdgVtV1tDNRiAfhkFsMKu6jtUY1ZLKQ=="
+      "version": "9.13.1",
+      "resolved": "https://registry.npmjs.org/@intlify/shared/-/shared-9.13.1.tgz",
+      "integrity": "sha512-u3b6BKGhE6j/JeRU6C/RL2FgyJfy6LakbtfeVF8fJXURpZZTzfh3e05J0bu0XPw447Q6/WUp3C4ajv4TMS4YsQ=="
     },
     "@intlify/vite-plugin-vue-i18n": {
-      "version": "3.4.0",
-      "resolved": "https://registry.npmjs.org/@intlify/vite-plugin-vue-i18n/-/vite-plugin-vue-i18n-3.4.0.tgz",
-      "integrity": "sha512-XXcZBgwJ+3FRu11c4ARoY9N00kElPii0/jNZ49qR045Ka7/YGCwb1Ku14BBlMSEHiHDSjLQknLwrJKSQGVZLyA==",
+      "version": "7.0.0",
+      "resolved": "https://registry.npmjs.org/@intlify/vite-plugin-vue-i18n/-/vite-plugin-vue-i18n-7.0.0.tgz",
+      "integrity": "sha512-2TbDOQ8XD+vkc0s5OFmr+IY/k4mYMC7pzvx0xGQn+cU/ev314+yi7Z7N7rWcBgiYk1WOUalbGSo3d4nJDxOOyw==",
       "dev": true,
       "requires": {
-        "@intlify/bundle-utils": "^2.2.2",
-        "@intlify/shared": "^9.1.0",
-        "@rollup/pluginutils": "^4.1.0",
+        "@intlify/bundle-utils": "^3.1.2",
+        "@intlify/shared": "next",
+        "@rollup/pluginutils": "^4.2.0",
         "debug": "^4.3.1",
         "fast-glob": "^3.2.5",
         "source-map": "0.6.1"
       }
     },
+    "@jridgewell/gen-mapping": {
+      "version": "0.3.5",
+      "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz",
+      "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==",
+      "dev": true,
+      "requires": {
+        "@jridgewell/set-array": "^1.2.1",
+        "@jridgewell/sourcemap-codec": "^1.4.10",
+        "@jridgewell/trace-mapping": "^0.3.24"
+      }
+    },
+    "@jridgewell/resolve-uri": {
+      "version": "3.1.2",
+      "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
+      "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
+      "dev": true
+    },
+    "@jridgewell/set-array": {
+      "version": "1.2.1",
+      "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz",
+      "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==",
+      "dev": true
+    },
+    "@jridgewell/source-map": {
+      "version": "0.3.6",
+      "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz",
+      "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==",
+      "dev": true,
+      "requires": {
+        "@jridgewell/gen-mapping": "^0.3.5",
+        "@jridgewell/trace-mapping": "^0.3.25"
+      }
+    },
     "@jridgewell/sourcemap-codec": {
       "version": "1.4.15",
       "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz",
       "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg=="
     },
+    "@jridgewell/trace-mapping": {
+      "version": "0.3.25",
+      "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz",
+      "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==",
+      "dev": true,
+      "requires": {
+        "@jridgewell/resolve-uri": "^3.1.0",
+        "@jridgewell/sourcemap-codec": "^1.4.14"
+      }
+    },
     "@nodelib/fs.scandir": {
       "version": "2.1.5",
       "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
@@ -5829,9 +6185,9 @@
       }
     },
     "@quasar/app-vite": {
-      "version": "1.7.1",
-      "resolved": "https://registry.npmjs.org/@quasar/app-vite/-/app-vite-1.7.1.tgz",
-      "integrity": "sha512-cs3ix7w8f7884JiTp3EW6auZ9R+Fg4qoPxEZ7VRGOrSsUg5oQtR/i91jeQk4Z96J/JUOqtcKqdqbzN4fzaFyIg==",
+      "version": "1.8.5",
+      "resolved": "https://registry.npmjs.org/@quasar/app-vite/-/app-vite-1.8.5.tgz",
+      "integrity": "sha512-OB5nU9qKIl3p7Ton9fLWkSQTv1I/7slfQl8izhZPPJZRY755Jn4Kz1exYUoEgJJ4cLSaUI/cpnVOL59pw53NEg==",
       "dev": true,
       "requires": {
         "@quasar/render-ssr-error": "^1.0.3",
@@ -5853,7 +6209,7 @@
         "express": "^4.17.3",
         "fast-glob": "3.2.12",
         "fs-extra": "^11.1.0",
-        "html-minifier": "^4.0.0",
+        "html-minifier-terser": "^7.2.0",
         "inquirer": "^8.2.1",
         "isbinaryfile": "^5.0.0",
         "kolorist": "^1.5.1",
@@ -5886,9 +6242,9 @@
       }
     },
     "@quasar/extras": {
-      "version": "1.16.9",
-      "resolved": "https://registry.npmjs.org/@quasar/extras/-/extras-1.16.9.tgz",
-      "integrity": "sha512-SlOhwzXyPQHWgQIS2ncyDdYdksCJvUYNtgsDQqzAKEG3r3d/ejOxvThle79HTK3Q6HB+gQWFG21Ux00Osr5XSw=="
+      "version": "1.16.11",
+      "resolved": "https://registry.npmjs.org/@quasar/extras/-/extras-1.16.11.tgz",
+      "integrity": "sha512-sbTBHOA+Hi7ah0P6qSm+xfRXqwJ94ct3NKA3Lkq3iNPYuHD7VXbSWtP2eA7Cu9Fd0WjVoPbngf6yFGg46U3IfQ=="
     },
     "@quasar/render-ssr-error": {
       "version": "1.0.3",
@@ -6024,10 +6380,13 @@
       "dev": true
     },
     "@types/node": {
-      "version": "12.20.55",
-      "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz",
-      "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==",
-      "dev": true
+      "version": "20.12.7",
+      "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.7.tgz",
+      "integrity": "sha512-wq0cICSkRLVaf3UGLMGItu/PtdY7oaXaI/RVU+xliKVOtRna3PRY57ZDfztpDL0n11vfymMUnXv8QwYCO7L1wg==",
+      "dev": true,
+      "requires": {
+        "undici-types": "~5.26.4"
+      }
     },
     "@types/qs": {
       "version": "6.9.11",
@@ -6042,9 +6401,9 @@
       "dev": true
     },
     "@types/semver": {
-      "version": "7.5.6",
-      "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.6.tgz",
-      "integrity": "sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==",
+      "version": "7.5.8",
+      "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz",
+      "integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==",
       "dev": true
     },
     "@types/send": {
@@ -6069,102 +6428,155 @@
       }
     },
     "@typescript-eslint/eslint-plugin": {
-      "version": "5.62.0",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz",
-      "integrity": "sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==",
+      "version": "7.7.1",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.7.1.tgz",
+      "integrity": "sha512-KwfdWXJBOviaBVhxO3p5TJiLpNuh2iyXyjmWN0f1nU87pwyvfS0EmjC6ukQVYVFJd/K1+0NWGPDXiyEyQorn0Q==",
       "dev": true,
       "requires": {
-        "@eslint-community/regexpp": "^4.4.0",
-        "@typescript-eslint/scope-manager": "5.62.0",
-        "@typescript-eslint/type-utils": "5.62.0",
-        "@typescript-eslint/utils": "5.62.0",
+        "@eslint-community/regexpp": "^4.10.0",
+        "@typescript-eslint/scope-manager": "7.7.1",
+        "@typescript-eslint/type-utils": "7.7.1",
+        "@typescript-eslint/utils": "7.7.1",
+        "@typescript-eslint/visitor-keys": "7.7.1",
         "debug": "^4.3.4",
         "graphemer": "^1.4.0",
-        "ignore": "^5.2.0",
-        "natural-compare-lite": "^1.4.0",
-        "semver": "^7.3.7",
-        "tsutils": "^3.21.0"
+        "ignore": "^5.3.1",
+        "natural-compare": "^1.4.0",
+        "semver": "^7.6.0",
+        "ts-api-utils": "^1.3.0"
+      },
+      "dependencies": {
+        "semver": {
+          "version": "7.6.0",
+          "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
+          "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
+          "dev": true,
+          "requires": {
+            "lru-cache": "^6.0.0"
+          }
+        }
       }
     },
     "@typescript-eslint/parser": {
-      "version": "5.62.0",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.62.0.tgz",
-      "integrity": "sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==",
+      "version": "7.7.1",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.7.1.tgz",
+      "integrity": "sha512-vmPzBOOtz48F6JAGVS/kZYk4EkXao6iGrD838sp1w3NQQC0W8ry/q641KU4PrG7AKNAf56NOcR8GOpH8l9FPCw==",
       "dev": true,
       "requires": {
-        "@typescript-eslint/scope-manager": "5.62.0",
-        "@typescript-eslint/types": "5.62.0",
-        "@typescript-eslint/typescript-estree": "5.62.0",
+        "@typescript-eslint/scope-manager": "7.7.1",
+        "@typescript-eslint/types": "7.7.1",
+        "@typescript-eslint/typescript-estree": "7.7.1",
+        "@typescript-eslint/visitor-keys": "7.7.1",
         "debug": "^4.3.4"
       }
     },
     "@typescript-eslint/scope-manager": {
-      "version": "5.62.0",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz",
-      "integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==",
+      "version": "7.7.1",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.7.1.tgz",
+      "integrity": "sha512-PytBif2SF+9SpEUKynYn5g1RHFddJUcyynGpztX3l/ik7KmZEv19WCMhUBkHXPU9es/VWGD3/zg3wg90+Dh2rA==",
       "dev": true,
       "requires": {
-        "@typescript-eslint/types": "5.62.0",
-        "@typescript-eslint/visitor-keys": "5.62.0"
+        "@typescript-eslint/types": "7.7.1",
+        "@typescript-eslint/visitor-keys": "7.7.1"
       }
     },
     "@typescript-eslint/type-utils": {
-      "version": "5.62.0",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz",
-      "integrity": "sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==",
+      "version": "7.7.1",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.7.1.tgz",
+      "integrity": "sha512-ZksJLW3WF7o75zaBPScdW1Gbkwhd/lyeXGf1kQCxJaOeITscoSl0MjynVvCzuV5boUz/3fOI06Lz8La55mu29Q==",
       "dev": true,
       "requires": {
-        "@typescript-eslint/typescript-estree": "5.62.0",
-        "@typescript-eslint/utils": "5.62.0",
+        "@typescript-eslint/typescript-estree": "7.7.1",
+        "@typescript-eslint/utils": "7.7.1",
         "debug": "^4.3.4",
-        "tsutils": "^3.21.0"
+        "ts-api-utils": "^1.3.0"
       }
     },
     "@typescript-eslint/types": {
-      "version": "5.62.0",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz",
-      "integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==",
+      "version": "7.7.1",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.7.1.tgz",
+      "integrity": "sha512-AmPmnGW1ZLTpWa+/2omPrPfR7BcbUU4oha5VIbSbS1a1Tv966bklvLNXxp3mrbc+P2j4MNOTfDffNsk4o0c6/w==",
       "dev": true
     },
     "@typescript-eslint/typescript-estree": {
-      "version": "5.62.0",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz",
-      "integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==",
+      "version": "7.7.1",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.7.1.tgz",
+      "integrity": "sha512-CXe0JHCXru8Fa36dteXqmH2YxngKJjkQLjxzoj6LYwzZ7qZvgsLSc+eqItCrqIop8Vl2UKoAi0StVWu97FQZIQ==",
       "dev": true,
       "requires": {
-        "@typescript-eslint/types": "5.62.0",
-        "@typescript-eslint/visitor-keys": "5.62.0",
+        "@typescript-eslint/types": "7.7.1",
+        "@typescript-eslint/visitor-keys": "7.7.1",
         "debug": "^4.3.4",
         "globby": "^11.1.0",
         "is-glob": "^4.0.3",
-        "semver": "^7.3.7",
-        "tsutils": "^3.21.0"
+        "minimatch": "^9.0.4",
+        "semver": "^7.6.0",
+        "ts-api-utils": "^1.3.0"
+      },
+      "dependencies": {
+        "brace-expansion": {
+          "version": "2.0.1",
+          "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
+          "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+          "dev": true,
+          "requires": {
+            "balanced-match": "^1.0.0"
+          }
+        },
+        "minimatch": {
+          "version": "9.0.4",
+          "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz",
+          "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==",
+          "dev": true,
+          "requires": {
+            "brace-expansion": "^2.0.1"
+          }
+        },
+        "semver": {
+          "version": "7.6.0",
+          "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
+          "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
+          "dev": true,
+          "requires": {
+            "lru-cache": "^6.0.0"
+          }
+        }
       }
     },
     "@typescript-eslint/utils": {
-      "version": "5.62.0",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz",
-      "integrity": "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==",
+      "version": "7.7.1",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.7.1.tgz",
+      "integrity": "sha512-QUvBxPEaBXf41ZBbaidKICgVL8Hin0p6prQDu6bbetWo39BKbWJxRsErOzMNT1rXvTll+J7ChrbmMCXM9rsvOQ==",
       "dev": true,
       "requires": {
-        "@eslint-community/eslint-utils": "^4.2.0",
-        "@types/json-schema": "^7.0.9",
-        "@types/semver": "^7.3.12",
-        "@typescript-eslint/scope-manager": "5.62.0",
-        "@typescript-eslint/types": "5.62.0",
-        "@typescript-eslint/typescript-estree": "5.62.0",
-        "eslint-scope": "^5.1.1",
-        "semver": "^7.3.7"
+        "@eslint-community/eslint-utils": "^4.4.0",
+        "@types/json-schema": "^7.0.15",
+        "@types/semver": "^7.5.8",
+        "@typescript-eslint/scope-manager": "7.7.1",
+        "@typescript-eslint/types": "7.7.1",
+        "@typescript-eslint/typescript-estree": "7.7.1",
+        "semver": "^7.6.0"
+      },
+      "dependencies": {
+        "semver": {
+          "version": "7.6.0",
+          "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
+          "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
+          "dev": true,
+          "requires": {
+            "lru-cache": "^6.0.0"
+          }
+        }
       }
     },
     "@typescript-eslint/visitor-keys": {
-      "version": "5.62.0",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz",
-      "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==",
+      "version": "7.7.1",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.7.1.tgz",
+      "integrity": "sha512-gBL3Eq25uADw1LQ9kVpf3hRM+DWzs0uZknHYK3hq4jcTPqVCClHGDnB6UUUV2SFeBeA4KWHWbbLqmbGcZ4FYbw==",
       "dev": true,
       "requires": {
-        "@typescript-eslint/types": "5.62.0",
-        "eslint-visitor-keys": "^3.3.0"
+        "@typescript-eslint/types": "7.7.1",
+        "eslint-visitor-keys": "^3.4.3"
       }
     },
     "@ungap/structured-clone": {
@@ -6181,49 +6593,49 @@
       "requires": {}
     },
     "@vue/compiler-core": {
-      "version": "3.3.13",
-      "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.3.13.tgz",
-      "integrity": "sha512-bwi9HShGu7uaZLOErZgsH2+ojsEdsjerbf2cMXPwmvcgZfVPZ2BVZzCVnwZBxTAYd6Mzbmf6izcUNDkWnBBQ6A==",
+      "version": "3.4.25",
+      "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.4.25.tgz",
+      "integrity": "sha512-Y2pLLopaElgWnMNolgG8w3C5nNUVev80L7hdQ5iIKPtMJvhVpG0zhnBG/g3UajJmZdvW0fktyZTotEHD1Srhbg==",
       "requires": {
-        "@babel/parser": "^7.23.5",
-        "@vue/shared": "3.3.13",
+        "@babel/parser": "^7.24.4",
+        "@vue/shared": "3.4.25",
+        "entities": "^4.5.0",
         "estree-walker": "^2.0.2",
-        "source-map-js": "^1.0.2"
+        "source-map-js": "^1.2.0"
       }
     },
     "@vue/compiler-dom": {
-      "version": "3.3.13",
-      "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.3.13.tgz",
-      "integrity": "sha512-EYRDpbLadGtNL0Gph+HoKiYqXLqZ0xSSpR5Dvnu/Ep7ggaCbjRDIus1MMxTS2Qm0koXED4xSlvTZaTnI8cYAsw==",
+      "version": "3.4.25",
+      "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.25.tgz",
+      "integrity": "sha512-Ugz5DusW57+HjllAugLci19NsDK+VyjGvmbB2TXaTcSlQxwL++2PETHx/+Qv6qFwNLzSt7HKepPe4DcTE3pBWg==",
       "requires": {
-        "@vue/compiler-core": "3.3.13",
-        "@vue/shared": "3.3.13"
+        "@vue/compiler-core": "3.4.25",
+        "@vue/shared": "3.4.25"
       }
     },
     "@vue/compiler-sfc": {
-      "version": "3.3.13",
-      "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.3.13.tgz",
-      "integrity": "sha512-DQVmHEy/EKIgggvnGRLx21hSqnr1smUS9Aq8tfxiiot8UR0/pXKHN9k78/qQ7etyQTFj5em5nruODON7dBeumw==",
-      "requires": {
-        "@babel/parser": "^7.23.5",
-        "@vue/compiler-core": "3.3.13",
-        "@vue/compiler-dom": "3.3.13",
-        "@vue/compiler-ssr": "3.3.13",
-        "@vue/reactivity-transform": "3.3.13",
-        "@vue/shared": "3.3.13",
+      "version": "3.4.25",
+      "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.4.25.tgz",
+      "integrity": "sha512-m7rryuqzIoQpOBZ18wKyq05IwL6qEpZxFZfRxlNYuIPDqywrXQxgUwLXIvoU72gs6cRdY6wHD0WVZIFE4OEaAQ==",
+      "requires": {
+        "@babel/parser": "^7.24.4",
+        "@vue/compiler-core": "3.4.25",
+        "@vue/compiler-dom": "3.4.25",
+        "@vue/compiler-ssr": "3.4.25",
+        "@vue/shared": "3.4.25",
         "estree-walker": "^2.0.2",
-        "magic-string": "^0.30.5",
-        "postcss": "^8.4.32",
-        "source-map-js": "^1.0.2"
+        "magic-string": "^0.30.10",
+        "postcss": "^8.4.38",
+        "source-map-js": "^1.2.0"
       }
     },
     "@vue/compiler-ssr": {
-      "version": "3.3.13",
-      "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.3.13.tgz",
-      "integrity": "sha512-d/P3bCeUGmkJNS1QUZSAvoCIW4fkOKK3l2deE7zrp0ypJEy+En2AcypIkqvcFQOcw3F0zt2VfMvNsA9JmExTaw==",
+      "version": "3.4.25",
+      "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.4.25.tgz",
+      "integrity": "sha512-H2ohvM/Pf6LelGxDBnfbbXFPyM4NE3hrw0e/EpwuSiYu8c819wx+SVGdJ65p/sFrYDd6OnSDxN1MB2mN07hRSQ==",
       "requires": {
-        "@vue/compiler-dom": "3.3.13",
-        "@vue/shared": "3.3.13"
+        "@vue/compiler-dom": "3.4.25",
+        "@vue/shared": "3.4.25"
       }
     },
     "@vue/devtools-api": {
@@ -6232,57 +6644,50 @@
       "integrity": "sha512-+KpckaAQyfbvshdDW5xQylLni1asvNSGme1JFs8I1+/H5pHEhqUKMEQD/qn3Nx5+/nycBq11qAEi8lk+LXI2dA=="
     },
     "@vue/reactivity": {
-      "version": "3.3.13",
-      "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.3.13.tgz",
-      "integrity": "sha512-fjzCxceMahHhi4AxUBzQqqVhuA21RJ0COaWTbIBl1PruGW1CeY97louZzLi4smpYx+CHfFPPU/CS8NybbGvPKQ==",
+      "version": "3.4.25",
+      "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.4.25.tgz",
+      "integrity": "sha512-mKbEtKr1iTxZkAG3vm3BtKHAOhuI4zzsVcN0epDldU/THsrvfXRKzq+lZnjczZGnTdh3ojd86/WrP+u9M51pWQ==",
       "requires": {
-        "@vue/shared": "3.3.13"
-      }
-    },
-    "@vue/reactivity-transform": {
-      "version": "3.3.13",
-      "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.3.13.tgz",
-      "integrity": "sha512-oWnydGH0bBauhXvh5KXUy61xr9gKaMbtsMHk40IK9M4gMuKPJ342tKFarY0eQ6jef8906m35q37wwA8DMZOm5Q==",
-      "requires": {
-        "@babel/parser": "^7.23.5",
-        "@vue/compiler-core": "3.3.13",
-        "@vue/shared": "3.3.13",
-        "estree-walker": "^2.0.2",
-        "magic-string": "^0.30.5"
+        "@vue/shared": "3.4.25"
       }
     },
     "@vue/runtime-core": {
-      "version": "3.3.13",
-      "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.3.13.tgz",
-      "integrity": "sha512-1TzA5TvGuh2zUwMJgdfvrBABWZ7y8kBwBhm7BXk8rvdx2SsgcGfz2ruv2GzuGZNvL1aKnK8CQMV/jFOrxNQUMA==",
+      "version": "3.4.25",
+      "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.4.25.tgz",
+      "integrity": "sha512-3qhsTqbEh8BMH3pXf009epCI5E7bKu28fJLi9O6W+ZGt/6xgSfMuGPqa5HRbUxLoehTNp5uWvzCr60KuiRIL0Q==",
       "requires": {
-        "@vue/reactivity": "3.3.13",
-        "@vue/shared": "3.3.13"
+        "@vue/reactivity": "3.4.25",
+        "@vue/shared": "3.4.25"
       }
     },
     "@vue/runtime-dom": {
-      "version": "3.3.13",
-      "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.3.13.tgz",
-      "integrity": "sha512-JJkpE8R/hJKXqVTgUoODwS5wqKtOsmJPEqmp90PDVGygtJ4C0PtOkcEYXwhiVEmef6xeXcIlrT3Yo5aQ4qkHhQ==",
+      "version": "3.4.25",
+      "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.4.25.tgz",
+      "integrity": "sha512-ode0sj77kuwXwSc+2Yhk8JMHZh1sZp9F/51wdBiz3KGaWltbKtdihlJFhQG4H6AY+A06zzeMLkq6qu8uDSsaoA==",
       "requires": {
-        "@vue/runtime-core": "3.3.13",
-        "@vue/shared": "3.3.13",
+        "@vue/runtime-core": "3.4.25",
+        "@vue/shared": "3.4.25",
         "csstype": "^3.1.3"
       }
     },
     "@vue/server-renderer": {
-      "version": "3.3.13",
-      "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.3.13.tgz",
-      "integrity": "sha512-vSnN+nuf6iSqTL3Qgx/9A+BT+0Zf/VJOgF5uMZrKjYPs38GMYyAU1coDyBNHauehXDaP+zl73VhwWv0vBRBHcg==",
+      "version": "3.4.25",
+      "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.4.25.tgz",
+      "integrity": "sha512-8VTwq0Zcu3K4dWV0jOwIVINESE/gha3ifYCOKEhxOj6MEl5K5y8J8clQncTcDhKF+9U765nRw4UdUEXvrGhyVQ==",
       "requires": {
-        "@vue/compiler-ssr": "3.3.13",
-        "@vue/shared": "3.3.13"
+        "@vue/compiler-ssr": "3.4.25",
+        "@vue/shared": "3.4.25"
       }
     },
     "@vue/shared": {
-      "version": "3.3.13",
-      "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.3.13.tgz",
-      "integrity": "sha512-/zYUwiHD8j7gKx2argXEMCUXVST6q/21DFU0sTfNX0URJroCe3b1UF6vLJ3lQDfLNIiiRl2ONp7Nh5UVWS6QnA=="
+      "version": "3.4.25",
+      "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.4.25.tgz",
+      "integrity": "sha512-k0yappJ77g2+KNrIaF0FFnzwLvUBLUYr8VOwz+/6vLsmItFp51AcxLL7Ey3iPd7BIRyWPOcqUjMnm7OkahXllA=="
+    },
+    "@yr/monotone-cubic-spline": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npmjs.org/@yr/monotone-cubic-spline/-/monotone-cubic-spline-1.0.3.tgz",
+      "integrity": "sha512-FQXkOta0XBSUPHndIKON2Y9JeQz5ZeMqLYZVVK93FliNBFm7LNMIZmY6FrMEB9XPcDbE2bekMbZD6kzDkxwYjA=="
     },
     "accepts": {
       "version": "1.3.8",
@@ -6361,6 +6766,20 @@
         "picomatch": "^2.0.4"
       }
     },
+    "apexcharts": {
+      "version": "3.49.0",
+      "resolved": "https://registry.npmjs.org/apexcharts/-/apexcharts-3.49.0.tgz",
+      "integrity": "sha512-2T9HnbQFLCuYRPndQLmh+bEQFoz0meUbvASaGgiSKDuYhWcLBodJtIpKql2aOtMx4B/sHrWW0dm90HsW4+h2PQ==",
+      "requires": {
+        "@yr/monotone-cubic-spline": "^1.0.3",
+        "svg.draggable.js": "^2.2.2",
+        "svg.easing.js": "^2.0.0",
+        "svg.filter.js": "^2.0.2",
+        "svg.pathmorphing.js": "^0.1.3",
+        "svg.resize.js": "^1.4.3",
+        "svg.select.js": "^3.0.1"
+      }
+    },
     "archiver": {
       "version": "5.3.2",
       "resolved": "https://registry.npmjs.org/archiver/-/archiver-5.3.2.tgz",
@@ -6456,25 +6875,25 @@
       "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="
     },
     "autoprefixer": {
-      "version": "10.4.16",
-      "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.16.tgz",
-      "integrity": "sha512-7vd3UC6xKp0HLfua5IjZlcXvGAGy7cBAXTg2lyQ/8WpNhd6SiZ8Be+xm3FyBSYJx5GKcpRCzBh7RH4/0dnY+uQ==",
+      "version": "10.4.19",
+      "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.19.tgz",
+      "integrity": "sha512-BaENR2+zBZ8xXhM4pUaKUxlVdxZ0EZhjvbopwnXmxRUfqDmwSpC2lAi/QXvx7NRdPCo1WKEcEF6mV64si1z4Ew==",
       "dev": true,
       "requires": {
-        "browserslist": "^4.21.10",
-        "caniuse-lite": "^1.0.30001538",
-        "fraction.js": "^4.3.6",
+        "browserslist": "^4.23.0",
+        "caniuse-lite": "^1.0.30001599",
+        "fraction.js": "^4.3.7",
         "normalize-range": "^0.1.2",
         "picocolors": "^1.0.0",
         "postcss-value-parser": "^4.2.0"
       }
     },
     "axios": {
-      "version": "1.6.2",
-      "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.2.tgz",
-      "integrity": "sha512-7i24Ri4pmDRfJTR7LDBhsOTtcm+9kjX5WiY1X3wIisx6G9So3pfMkEiU7emUBe46oceVImccTEM3k6C5dbVW8A==",
+      "version": "1.6.8",
+      "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.8.tgz",
+      "integrity": "sha512-v/ZHtJDU39mDpyBoFVkETcd/uNdxrWRrg3bKpOKzXFA6Bvqopts6ALSMU3y6ijYxbw2B+wPrIv46egTzJXCLGQ==",
       "requires": {
-        "follow-redirects": "^1.15.0",
+        "follow-redirects": "^1.15.6",
         "form-data": "^4.0.0",
         "proxy-from-env": "^1.1.0"
       }
@@ -6509,13 +6928,13 @@
       }
     },
     "body-parser": {
-      "version": "1.20.1",
-      "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz",
-      "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==",
+      "version": "1.20.2",
+      "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz",
+      "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==",
       "dev": true,
       "requires": {
         "bytes": "3.1.2",
-        "content-type": "~1.0.4",
+        "content-type": "~1.0.5",
         "debug": "2.6.9",
         "depd": "2.0.0",
         "destroy": "1.2.0",
@@ -6523,7 +6942,7 @@
         "iconv-lite": "0.4.24",
         "on-finished": "2.4.1",
         "qs": "6.11.0",
-        "raw-body": "2.5.1",
+        "raw-body": "2.5.2",
         "type-is": "~1.6.18",
         "unpipe": "1.0.0"
       },
@@ -6577,13 +6996,13 @@
       }
     },
     "browserslist": {
-      "version": "4.22.2",
-      "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.2.tgz",
-      "integrity": "sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A==",
+      "version": "4.23.0",
+      "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz",
+      "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==",
       "dev": true,
       "requires": {
-        "caniuse-lite": "^1.0.30001565",
-        "electron-to-chromium": "^1.4.601",
+        "caniuse-lite": "^1.0.30001587",
+        "electron-to-chromium": "^1.4.668",
         "node-releases": "^2.0.14",
         "update-browserslist-db": "^1.0.13"
       }
@@ -6604,6 +7023,12 @@
       "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==",
       "dev": true
     },
+    "buffer-from": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
+      "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==",
+      "dev": true
+    },
     "bytes": {
       "version": "3.0.0",
       "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz",
@@ -6611,14 +7036,16 @@
       "dev": true
     },
     "call-bind": {
-      "version": "1.0.5",
-      "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz",
-      "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==",
+      "version": "1.0.7",
+      "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz",
+      "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==",
       "dev": true,
       "requires": {
+        "es-define-property": "^1.0.0",
+        "es-errors": "^1.3.0",
         "function-bind": "^1.1.2",
-        "get-intrinsic": "^1.2.1",
-        "set-function-length": "^1.1.1"
+        "get-intrinsic": "^1.2.4",
+        "set-function-length": "^1.2.1"
       }
     },
     "callsites": {
@@ -6628,19 +7055,19 @@
       "dev": true
     },
     "camel-case": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz",
-      "integrity": "sha512-+MbKztAYHXPr1jNTSKQF52VpcFjwY5RkR7fxksV8Doo4KAYc5Fl4UJRgthBbTmEx8C54DqahhbLJkDwjI3PI/w==",
+      "version": "4.1.2",
+      "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz",
+      "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==",
       "dev": true,
       "requires": {
-        "no-case": "^2.2.0",
-        "upper-case": "^1.1.1"
+        "pascal-case": "^3.1.2",
+        "tslib": "^2.0.3"
       }
     },
     "caniuse-lite": {
-      "version": "1.0.30001571",
-      "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001571.tgz",
-      "integrity": "sha512-tYq/6MoXhdezDLFZuCO/TKboTzuQ/xR5cFdgXPfDtM7/kchBO3b4VWghE/OAi/DV7tTdhmLjZiZBZi1fA/GheQ==",
+      "version": "1.0.30001613",
+      "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001613.tgz",
+      "integrity": "sha512-BNjJULJfOONQERivfxte7alLfeLW4QnwHvNW4wEcLEbXfV6VSCYvr+REbf2Sojv8tC1THpjPXBxWgDbq4NtLWg==",
       "dev": true
     },
     "chalk": {
@@ -6682,9 +7109,9 @@
       "dev": true
     },
     "clean-css": {
-      "version": "4.2.4",
-      "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.4.tgz",
-      "integrity": "sha512-EJUDT7nDVFDvaQgAo2G/PJvxmp1o/c6iXLbswsBbUFXi1Nr+AjA2cKmfbKDMjMvzEe75g3P6JkaDDAKk96A85A==",
+      "version": "5.3.3",
+      "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.3.tgz",
+      "integrity": "sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==",
       "dev": true,
       "requires": {
         "source-map": "~0.6.0"
@@ -6776,9 +7203,9 @@
       }
     },
     "commander": {
-      "version": "2.20.3",
-      "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
-      "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
+      "version": "10.0.1",
+      "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz",
+      "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==",
       "dev": true
     },
     "compress-commons": {
@@ -6864,9 +7291,9 @@
       "dev": true
     },
     "cookie": {
-      "version": "0.5.0",
-      "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz",
-      "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==",
+      "version": "0.6.0",
+      "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz",
+      "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==",
       "dev": true
     },
     "cookie-signature": {
@@ -6944,14 +7371,14 @@
       }
     },
     "define-data-property": {
-      "version": "1.1.1",
-      "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz",
-      "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==",
+      "version": "1.1.4",
+      "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz",
+      "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==",
       "dev": true,
       "requires": {
-        "get-intrinsic": "^1.2.1",
-        "gopd": "^1.0.1",
-        "has-property-descriptors": "^1.0.0"
+        "es-define-property": "^1.0.0",
+        "es-errors": "^1.3.0",
+        "gopd": "^1.0.1"
       }
     },
     "define-lazy-prop": {
@@ -6995,6 +7422,16 @@
         "esutils": "^2.0.2"
       }
     },
+    "dot-case": {
+      "version": "3.0.4",
+      "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz",
+      "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==",
+      "dev": true,
+      "requires": {
+        "no-case": "^3.0.4",
+        "tslib": "^2.0.3"
+      }
+    },
     "dot-prop": {
       "version": "6.0.1",
       "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-6.0.1.tgz",
@@ -7011,9 +7448,9 @@
       "dev": true
     },
     "electron-to-chromium": {
-      "version": "1.4.616",
-      "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.616.tgz",
-      "integrity": "sha512-1n7zWYh8eS0L9Uy+GskE0lkBUNK83cXTVJI0pU3mGprFsbfSdAc15VTFbo+A+Bq4pwstmL30AVcEU3Fo463lNg==",
+      "version": "1.4.750",
+      "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.750.tgz",
+      "integrity": "sha512-9ItEpeu15hW5m8jKdriL+BQrgwDTXEL9pn4SkillWFu73ZNNNQ2BKKLS+ZHv2vC9UkNhosAeyfxOf/5OSeTCPA==",
       "dev": true
     },
     "elementtree": {
@@ -7046,6 +7483,26 @@
         "once": "^1.4.0"
       }
     },
+    "entities": {
+      "version": "4.5.0",
+      "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz",
+      "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw=="
+    },
+    "es-define-property": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz",
+      "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==",
+      "dev": true,
+      "requires": {
+        "get-intrinsic": "^1.2.4"
+      }
+    },
+    "es-errors": {
+      "version": "1.3.0",
+      "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz",
+      "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==",
+      "dev": true
+    },
     "esbuild": {
       "version": "0.14.51",
       "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.51.tgz",
@@ -7278,22 +7735,6 @@
         "text-table": "^0.2.0"
       },
       "dependencies": {
-        "eslint-scope": {
-          "version": "7.2.2",
-          "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz",
-          "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==",
-          "dev": true,
-          "requires": {
-            "esrecurse": "^4.3.0",
-            "estraverse": "^5.2.0"
-          }
-        },
-        "estraverse": {
-          "version": "5.3.0",
-          "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
-          "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
-          "dev": true
-        },
         "glob-parent": {
           "version": "6.0.2",
           "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
@@ -7306,35 +7747,47 @@
       }
     },
     "eslint-config-prettier": {
-      "version": "8.10.0",
-      "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.10.0.tgz",
-      "integrity": "sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg==",
+      "version": "9.1.0",
+      "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz",
+      "integrity": "sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==",
       "dev": true,
       "requires": {}
     },
     "eslint-plugin-vue": {
-      "version": "9.19.2",
-      "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-9.19.2.tgz",
-      "integrity": "sha512-CPDqTOG2K4Ni2o4J5wixkLVNwgctKXFu6oBpVJlpNq7f38lh9I80pRTouZSJ2MAebPJlINU/KTFSXyQfBUlymA==",
+      "version": "9.25.0",
+      "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-9.25.0.tgz",
+      "integrity": "sha512-tDWlx14bVe6Bs+Nnh3IGrD+hb11kf2nukfm6jLsmJIhmiRQ1SUaksvwY9U5MvPB0pcrg0QK0xapQkfITs3RKOA==",
       "dev": true,
       "requires": {
         "@eslint-community/eslint-utils": "^4.4.0",
+        "globals": "^13.24.0",
         "natural-compare": "^1.4.0",
         "nth-check": "^2.1.1",
-        "postcss-selector-parser": "^6.0.13",
-        "semver": "^7.5.4",
-        "vue-eslint-parser": "^9.3.1",
+        "postcss-selector-parser": "^6.0.15",
+        "semver": "^7.6.0",
+        "vue-eslint-parser": "^9.4.2",
         "xml-name-validator": "^4.0.0"
+      },
+      "dependencies": {
+        "semver": {
+          "version": "7.6.0",
+          "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
+          "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
+          "dev": true,
+          "requires": {
+            "lru-cache": "^6.0.0"
+          }
+        }
       }
     },
     "eslint-scope": {
-      "version": "5.1.1",
-      "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz",
-      "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==",
+      "version": "7.2.2",
+      "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz",
+      "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==",
       "dev": true,
       "requires": {
         "esrecurse": "^4.3.0",
-        "estraverse": "^4.1.1"
+        "estraverse": "^5.2.0"
       }
     },
     "eslint-utils": {
@@ -7378,14 +7831,6 @@
       "dev": true,
       "requires": {
         "estraverse": "^5.1.0"
-      },
-      "dependencies": {
-        "estraverse": {
-          "version": "5.3.0",
-          "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
-          "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
-          "dev": true
-        }
       }
     },
     "esrecurse": {
@@ -7395,20 +7840,12 @@
       "dev": true,
       "requires": {
         "estraverse": "^5.2.0"
-      },
-      "dependencies": {
-        "estraverse": {
-          "version": "5.3.0",
-          "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
-          "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
-          "dev": true
-        }
       }
     },
     "estraverse": {
-      "version": "4.3.0",
-      "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
-      "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
+      "version": "5.3.0",
+      "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
+      "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
       "dev": true
     },
     "estree-walker": {
@@ -7429,17 +7866,17 @@
       "dev": true
     },
     "express": {
-      "version": "4.18.2",
-      "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz",
-      "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==",
+      "version": "4.19.2",
+      "resolved": "https://registry.npmjs.org/express/-/express-4.19.2.tgz",
+      "integrity": "sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==",
       "dev": true,
       "requires": {
         "accepts": "~1.3.8",
         "array-flatten": "1.1.1",
-        "body-parser": "1.20.1",
+        "body-parser": "1.20.2",
         "content-disposition": "0.5.4",
         "content-type": "~1.0.4",
-        "cookie": "0.5.0",
+        "cookie": "0.6.0",
         "cookie-signature": "1.0.6",
         "debug": "2.6.9",
         "depd": "2.0.0",
@@ -7642,9 +8079,9 @@
       "dev": true
     },
     "follow-redirects": {
-      "version": "1.15.5",
-      "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.5.tgz",
-      "integrity": "sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw=="
+      "version": "1.15.6",
+      "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz",
+      "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA=="
     },
     "form-data": {
       "version": "4.0.0",
@@ -7717,11 +8154,12 @@
       "dev": true
     },
     "get-intrinsic": {
-      "version": "1.2.2",
-      "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz",
-      "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==",
+      "version": "1.2.4",
+      "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz",
+      "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==",
       "dev": true,
       "requires": {
+        "es-errors": "^1.3.0",
         "function-bind": "^1.1.2",
         "has-proto": "^1.0.1",
         "has-symbols": "^1.0.3",
@@ -7802,18 +8240,18 @@
       "dev": true
     },
     "has-property-descriptors": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz",
-      "integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==",
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz",
+      "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==",
       "dev": true,
       "requires": {
-        "get-intrinsic": "^1.2.2"
+        "es-define-property": "^1.0.0"
       }
     },
     "has-proto": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz",
-      "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==",
+      "version": "1.0.3",
+      "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz",
+      "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==",
       "dev": true
     },
     "has-symbols": {
@@ -7831,25 +8269,19 @@
         "function-bind": "^1.1.2"
       }
     },
-    "he": {
-      "version": "1.2.0",
-      "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz",
-      "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==",
-      "dev": true
-    },
-    "html-minifier": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmjs.org/html-minifier/-/html-minifier-4.0.0.tgz",
-      "integrity": "sha512-aoGxanpFPLg7MkIl/DDFYtb0iWz7jMFGqFhvEDZga6/4QTjneiD8I/NXL1x5aaoCp7FSIT6h/OhykDdPsbtMig==",
+    "html-minifier-terser": {
+      "version": "7.2.0",
+      "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-7.2.0.tgz",
+      "integrity": "sha512-tXgn3QfqPIpGl9o+K5tpcj3/MN4SfLtsx2GWwBC3SSd0tXQGyF3gsSqad8loJgKZGM3ZxbYDd5yhiBIdWpmvLA==",
       "dev": true,
       "requires": {
-        "camel-case": "^3.0.0",
-        "clean-css": "^4.2.1",
-        "commander": "^2.19.0",
-        "he": "^1.2.0",
-        "param-case": "^2.1.1",
+        "camel-case": "^4.1.2",
+        "clean-css": "~5.3.2",
+        "commander": "^10.0.0",
+        "entities": "^4.4.0",
+        "param-case": "^3.0.4",
         "relateurl": "^0.2.7",
-        "uglify-js": "^3.5.1"
+        "terser": "^5.15.1"
       }
     },
     "http-errors": {
@@ -7881,9 +8313,9 @@
       "dev": true
     },
     "ignore": {
-      "version": "5.3.0",
-      "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.0.tgz",
-      "integrity": "sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==",
+      "version": "5.3.1",
+      "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz",
+      "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==",
       "dev": true
     },
     "immutable": {
@@ -8285,10 +8717,13 @@
       }
     },
     "lower-case": {
-      "version": "1.1.4",
-      "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz",
-      "integrity": "sha512-2Fgx1Ycm599x+WGpIYwJOvsjmXFzTSc34IwDWALRA/8AopUKAVPwfJ+h5+f85BCp0PWmmJcWzEpxOpoXycMpdA==",
-      "dev": true
+      "version": "2.0.2",
+      "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz",
+      "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==",
+      "dev": true,
+      "requires": {
+        "tslib": "^2.0.3"
+      }
     },
     "lru-cache": {
       "version": "6.0.0",
@@ -8300,9 +8735,9 @@
       }
     },
     "magic-string": {
-      "version": "0.30.5",
-      "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.5.tgz",
-      "integrity": "sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==",
+      "version": "0.30.10",
+      "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.10.tgz",
+      "integrity": "sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==",
       "requires": {
         "@jridgewell/sourcemap-codec": "^1.4.15"
       }
@@ -8404,12 +8839,6 @@
       "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==",
       "dev": true
     },
-    "natural-compare-lite": {
-      "version": "1.4.0",
-      "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz",
-      "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==",
-      "dev": true
-    },
     "negotiator": {
       "version": "0.6.3",
       "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz",
@@ -8417,12 +8846,13 @@
       "dev": true
     },
     "no-case": {
-      "version": "2.3.2",
-      "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz",
-      "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==",
+      "version": "3.0.4",
+      "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz",
+      "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==",
       "dev": true,
       "requires": {
-        "lower-case": "^1.1.1"
+        "lower-case": "^2.0.2",
+        "tslib": "^2.0.3"
       }
     },
     "node-releases": {
@@ -8558,12 +8988,13 @@
       }
     },
     "param-case": {
-      "version": "2.1.1",
-      "resolved": "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz",
-      "integrity": "sha512-eQE845L6ot89sk2N8liD8HAuH4ca6Vvr7VWAWwt7+kvvG5aBcPmmphQ68JsEG2qa9n1TykS2DLeMt363AAH8/w==",
+      "version": "3.0.4",
+      "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz",
+      "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==",
       "dev": true,
       "requires": {
-        "no-case": "^2.2.0"
+        "dot-case": "^3.0.4",
+        "tslib": "^2.0.3"
       }
     },
     "parent-module": {
@@ -8581,6 +9012,16 @@
       "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==",
       "dev": true
     },
+    "pascal-case": {
+      "version": "3.1.2",
+      "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz",
+      "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==",
+      "dev": true,
+      "requires": {
+        "no-case": "^3.0.4",
+        "tslib": "^2.0.3"
+      }
+    },
     "path-exists": {
       "version": "4.0.0",
       "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
@@ -8646,19 +9087,19 @@
       }
     },
     "postcss": {
-      "version": "8.4.32",
-      "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.32.tgz",
-      "integrity": "sha512-D/kj5JNu6oo2EIy+XL/26JEDTlIbB8hw85G8StOE6L74RQAVVP5rej6wxCNqyMbR4RkPfqvezVbPw81Ngd6Kcw==",
+      "version": "8.4.38",
+      "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz",
+      "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==",
       "requires": {
         "nanoid": "^3.3.7",
         "picocolors": "^1.0.0",
-        "source-map-js": "^1.0.2"
+        "source-map-js": "^1.2.0"
       }
     },
     "postcss-selector-parser": {
-      "version": "6.0.13",
-      "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz",
-      "integrity": "sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==",
+      "version": "6.0.16",
+      "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.16.tgz",
+      "integrity": "sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==",
       "dev": true,
       "requires": {
         "cssesc": "^3.0.0",
@@ -8678,9 +9119,9 @@
       "dev": true
     },
     "prettier": {
-      "version": "2.8.8",
-      "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz",
-      "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==",
+      "version": "3.2.5",
+      "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.2.5.tgz",
+      "integrity": "sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==",
       "dev": true
     },
     "process-nextick-args": {
@@ -8720,9 +9161,9 @@
       }
     },
     "quasar": {
-      "version": "2.14.2",
-      "resolved": "https://registry.npmjs.org/quasar/-/quasar-2.14.2.tgz",
-      "integrity": "sha512-f5KliWtM5BEuFsDU4yvuP+dlVIWZNrGu5VpWFsxzjpoykcP4B2HIOUiCl3mx2NCqERHd4Ts0aeioRkt9TTeExA=="
+      "version": "2.15.4",
+      "resolved": "https://registry.npmjs.org/quasar/-/quasar-2.15.4.tgz",
+      "integrity": "sha512-6Rtj0KrsVA0IV9zMZ6R7U7hOpwLS/6E06hsISVHRPn21KEm3XAwHdvy9xWz5kwqWraHRlcisFSDu/KPL4VQK1w=="
     },
     "queue-microtask": {
       "version": "1.2.3",
@@ -8746,9 +9187,9 @@
       "dev": true
     },
     "raw-body": {
-      "version": "2.5.1",
-      "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz",
-      "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==",
+      "version": "2.5.2",
+      "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz",
+      "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==",
       "dev": true,
       "requires": {
         "bytes": "3.1.2",
@@ -9039,15 +9480,17 @@
       }
     },
     "set-function-length": {
-      "version": "1.1.1",
-      "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.1.1.tgz",
-      "integrity": "sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==",
+      "version": "1.2.2",
+      "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz",
+      "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==",
       "dev": true,
       "requires": {
-        "define-data-property": "^1.1.1",
-        "get-intrinsic": "^1.2.1",
+        "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.0"
+        "has-property-descriptors": "^1.0.2"
       }
     },
     "setprototypeof": {
@@ -9081,14 +9524,15 @@
       "dev": true
     },
     "side-channel": {
-      "version": "1.0.4",
-      "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz",
-      "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
+      "version": "1.0.6",
+      "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz",
+      "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==",
       "dev": true,
       "requires": {
-        "call-bind": "^1.0.0",
-        "get-intrinsic": "^1.0.2",
-        "object-inspect": "^1.9.0"
+        "call-bind": "^1.0.7",
+        "es-errors": "^1.3.0",
+        "get-intrinsic": "^1.2.4",
+        "object-inspect": "^1.13.1"
       }
     },
     "signal-exit": {
@@ -9121,9 +9565,19 @@
       "dev": true
     },
     "source-map-js": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz",
-      "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw=="
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz",
+      "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg=="
+    },
+    "source-map-support": {
+      "version": "0.5.21",
+      "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz",
+      "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==",
+      "dev": true,
+      "requires": {
+        "buffer-from": "^1.0.0",
+        "source-map": "^0.6.0"
+      }
     },
     "stack-trace": {
       "version": "1.0.0-pre2",
@@ -9195,6 +9649,70 @@
       "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
       "dev": true
     },
+    "svg.draggable.js": {
+      "version": "2.2.2",
+      "resolved": "https://registry.npmjs.org/svg.draggable.js/-/svg.draggable.js-2.2.2.tgz",
+      "integrity": "sha512-JzNHBc2fLQMzYCZ90KZHN2ohXL0BQJGQimK1kGk6AvSeibuKcIdDX9Kr0dT9+UJ5O8nYA0RB839Lhvk4CY4MZw==",
+      "requires": {
+        "svg.js": "^2.0.1"
+      }
+    },
+    "svg.easing.js": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/svg.easing.js/-/svg.easing.js-2.0.0.tgz",
+      "integrity": "sha512-//ctPdJMGy22YoYGV+3HEfHbm6/69LJUTAqI2/5qBvaNHZ9uUFVC82B0Pl299HzgH13rKrBgi4+XyXXyVWWthA==",
+      "requires": {
+        "svg.js": ">=2.3.x"
+      }
+    },
+    "svg.filter.js": {
+      "version": "2.0.2",
+      "resolved": "https://registry.npmjs.org/svg.filter.js/-/svg.filter.js-2.0.2.tgz",
+      "integrity": "sha512-xkGBwU+dKBzqg5PtilaTb0EYPqPfJ9Q6saVldX+5vCRy31P6TlRCP3U9NxH3HEufkKkpNgdTLBJnmhDHeTqAkw==",
+      "requires": {
+        "svg.js": "^2.2.5"
+      }
+    },
+    "svg.js": {
+      "version": "2.7.1",
+      "resolved": "https://registry.npmjs.org/svg.js/-/svg.js-2.7.1.tgz",
+      "integrity": "sha512-ycbxpizEQktk3FYvn/8BH+6/EuWXg7ZpQREJvgacqn46gIddG24tNNe4Son6omdXCnSOaApnpZw6MPCBA1dODA=="
+    },
+    "svg.pathmorphing.js": {
+      "version": "0.1.3",
+      "resolved": "https://registry.npmjs.org/svg.pathmorphing.js/-/svg.pathmorphing.js-0.1.3.tgz",
+      "integrity": "sha512-49HWI9X4XQR/JG1qXkSDV8xViuTLIWm/B/7YuQELV5KMOPtXjiwH4XPJvr/ghEDibmLQ9Oc22dpWpG0vUDDNww==",
+      "requires": {
+        "svg.js": "^2.4.0"
+      }
+    },
+    "svg.resize.js": {
+      "version": "1.4.3",
+      "resolved": "https://registry.npmjs.org/svg.resize.js/-/svg.resize.js-1.4.3.tgz",
+      "integrity": "sha512-9k5sXJuPKp+mVzXNvxz7U0uC9oVMQrrf7cFsETznzUDDm0x8+77dtZkWdMfRlmbkEEYvUn9btKuZ3n41oNA+uw==",
+      "requires": {
+        "svg.js": "^2.6.5",
+        "svg.select.js": "^2.1.2"
+      },
+      "dependencies": {
+        "svg.select.js": {
+          "version": "2.1.2",
+          "resolved": "https://registry.npmjs.org/svg.select.js/-/svg.select.js-2.1.2.tgz",
+          "integrity": "sha512-tH6ABEyJsAOVAhwcCjF8mw4crjXSI1aa7j2VQR8ZuJ37H2MBUbyeqYr5nEO7sSN3cy9AR9DUwNg0t/962HlDbQ==",
+          "requires": {
+            "svg.js": "^2.2.5"
+          }
+        }
+      }
+    },
+    "svg.select.js": {
+      "version": "3.0.1",
+      "resolved": "https://registry.npmjs.org/svg.select.js/-/svg.select.js-3.0.1.tgz",
+      "integrity": "sha512-h5IS/hKkuVCbKSieR9uQCj9w+zLHoPh+ce19bBYyqF53g6mnPB8sAtIbe1s9dh2S2fCmYX2xel1Ln3PJBbK4kw==",
+      "requires": {
+        "svg.js": "^2.6.5"
+      }
+    },
     "table": {
       "version": "6.8.1",
       "resolved": "https://registry.npmjs.org/table/-/table-6.8.1.tgz",
@@ -9241,6 +9759,26 @@
         "readable-stream": "^3.1.1"
       }
     },
+    "terser": {
+      "version": "5.30.4",
+      "resolved": "https://registry.npmjs.org/terser/-/terser-5.30.4.tgz",
+      "integrity": "sha512-xRdd0v64a8mFK9bnsKVdoNP9GQIKUAaJPTaqEQDL4w/J8WaW4sWXXoMZ+6SimPkfT5bElreXf8m9HnmPc3E1BQ==",
+      "dev": true,
+      "requires": {
+        "@jridgewell/source-map": "^0.3.3",
+        "acorn": "^8.8.2",
+        "commander": "^2.20.0",
+        "source-map-support": "~0.5.20"
+      },
+      "dependencies": {
+        "commander": {
+          "version": "2.20.3",
+          "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
+          "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
+          "dev": true
+        }
+      }
+    },
     "text-table": {
       "version": "0.2.0",
       "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
@@ -9277,29 +9815,19 @@
       "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==",
       "dev": true
     },
+    "ts-api-utils": {
+      "version": "1.3.0",
+      "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz",
+      "integrity": "sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==",
+      "dev": true,
+      "requires": {}
+    },
     "tslib": {
       "version": "2.6.2",
       "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz",
       "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==",
       "dev": true
     },
-    "tsutils": {
-      "version": "3.21.0",
-      "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz",
-      "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==",
-      "dev": true,
-      "requires": {
-        "tslib": "^1.8.1"
-      },
-      "dependencies": {
-        "tslib": {
-          "version": "1.14.1",
-          "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
-          "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
-          "dev": true
-        }
-      }
-    },
     "type-check": {
       "version": "0.4.0",
       "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
@@ -9326,15 +9854,15 @@
       }
     },
     "typescript": {
-      "version": "4.9.5",
-      "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz",
-      "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==",
+      "version": "5.4.5",
+      "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz",
+      "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==",
       "devOptional": true
     },
-    "uglify-js": {
-      "version": "3.17.4",
-      "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz",
-      "integrity": "sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==",
+    "undici-types": {
+      "version": "5.26.5",
+      "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz",
+      "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==",
       "dev": true
     },
     "universalify": {
@@ -9359,12 +9887,6 @@
         "picocolors": "^1.0.0"
       }
     },
-    "upper-case": {
-      "version": "1.1.3",
-      "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz",
-      "integrity": "sha512-WRbjgmYzgXkCV7zNVpy5YgrHgbBv126rMALQQMrmzOVC4GM2waQ9x7xtm8VU+1yF2kWyPzI9zbZ48n4vSxwfSA==",
-      "dev": true
-    },
     "uri-js": {
       "version": "4.4.1",
       "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
@@ -9393,9 +9915,9 @@
       "dev": true
     },
     "vite": {
-      "version": "2.9.17",
-      "resolved": "https://registry.npmjs.org/vite/-/vite-2.9.17.tgz",
-      "integrity": "sha512-XxcRzra6d7xrKXH66jZUgb+srThoPu+TLJc06GifUyKq9JmjHkc1Numc8ra0h56rju2jfVWw3B3fs5l3OFMvUw==",
+      "version": "2.9.18",
+      "resolved": "https://registry.npmjs.org/vite/-/vite-2.9.18.tgz",
+      "integrity": "sha512-sAOqI5wNM9QvSEE70W3UGMdT8cyEn0+PmJMTFvTB8wB0YbYUWw3gUbY62AOyrXosGieF2htmeLATvNxpv/zNyQ==",
       "dev": true,
       "requires": {
         "esbuild": "^0.14.27",
@@ -9406,21 +9928,21 @@
       }
     },
     "vue": {
-      "version": "3.3.13",
-      "resolved": "https://registry.npmjs.org/vue/-/vue-3.3.13.tgz",
-      "integrity": "sha512-LDnUpQvDgsfc0u/YgtAgTMXJlJQqjkxW1PVcOnJA5cshPleULDjHi7U45pl2VJYazSSvLH8UKcid/kzH8I0a0Q==",
+      "version": "3.4.25",
+      "resolved": "https://registry.npmjs.org/vue/-/vue-3.4.25.tgz",
+      "integrity": "sha512-HWyDqoBHMgav/OKiYA2ZQg+kjfMgLt/T0vg4cbIF7JbXAjDexRf5JRg+PWAfrAkSmTd2I8aPSXtooBFWHB98cg==",
       "requires": {
-        "@vue/compiler-dom": "3.3.13",
-        "@vue/compiler-sfc": "3.3.13",
-        "@vue/runtime-dom": "3.3.13",
-        "@vue/server-renderer": "3.3.13",
-        "@vue/shared": "3.3.13"
+        "@vue/compiler-dom": "3.4.25",
+        "@vue/compiler-sfc": "3.4.25",
+        "@vue/runtime-dom": "3.4.25",
+        "@vue/server-renderer": "3.4.25",
+        "@vue/shared": "3.4.25"
       }
     },
     "vue-eslint-parser": {
-      "version": "9.3.2",
-      "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-9.3.2.tgz",
-      "integrity": "sha512-q7tWyCVaV9f8iQyIA5Mkj/S6AoJ9KBN8IeUSf3XEmBrOtxOZnfTg5s4KClbZBCK3GtnT/+RyCLZyDHuZwTuBjg==",
+      "version": "9.4.2",
+      "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-9.4.2.tgz",
+      "integrity": "sha512-Ry9oiGmCAK91HrKMtCrKFWmSFWvYkpGglCeFAIqDdr9zdXmMMpJOmUJS7WWsW7fX81h6mwHmUZCQQ1E0PkSwYQ==",
       "dev": true,
       "requires": {
         "debug": "^4.3.4",
@@ -9430,44 +9952,32 @@
         "esquery": "^1.4.0",
         "lodash": "^4.17.21",
         "semver": "^7.3.6"
-      },
-      "dependencies": {
-        "eslint-scope": {
-          "version": "7.2.2",
-          "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz",
-          "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==",
-          "dev": true,
-          "requires": {
-            "esrecurse": "^4.3.0",
-            "estraverse": "^5.2.0"
-          }
-        },
-        "estraverse": {
-          "version": "5.3.0",
-          "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
-          "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
-          "dev": true
-        }
       }
     },
     "vue-i18n": {
-      "version": "9.8.0",
-      "resolved": "https://registry.npmjs.org/vue-i18n/-/vue-i18n-9.8.0.tgz",
-      "integrity": "sha512-Izho+6PYjejsTq2mzjcRdBZ5VLRQoSuuexvR8029h5CpN03FYqiqBrShMyf2I1DKkN6kw/xmujcbvC+4QybpsQ==",
+      "version": "9.13.1",
+      "resolved": "https://registry.npmjs.org/vue-i18n/-/vue-i18n-9.13.1.tgz",
+      "integrity": "sha512-mh0GIxx0wPtPlcB1q4k277y0iKgo25xmDPWioVVYanjPufDBpvu5ySTjP5wOrSvlYQ2m1xI+CFhGdauv/61uQg==",
       "requires": {
-        "@intlify/core-base": "9.8.0",
-        "@intlify/shared": "9.8.0",
+        "@intlify/core-base": "9.13.1",
+        "@intlify/shared": "9.13.1",
         "@vue/devtools-api": "^6.5.0"
       }
     },
     "vue-router": {
-      "version": "4.2.5",
-      "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.2.5.tgz",
-      "integrity": "sha512-DIUpKcyg4+PTQKfFPX88UWhlagBEBEfJ5A8XDXRJLUnZOvcpMF8o/dnL90vpVkGaPbjvXazV/rC1qBKrZlFugw==",
+      "version": "4.3.2",
+      "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.3.2.tgz",
+      "integrity": "sha512-hKQJ1vDAZ5LVkKEnHhmm1f9pMiWIBNGF5AwU67PdH7TyXCj/a4hTccuUuYCAMgJK6rO/NVYtQIEN3yL8CECa7Q==",
       "requires": {
-        "@vue/devtools-api": "^6.5.0"
+        "@vue/devtools-api": "^6.5.1"
       }
     },
+    "vue3-apexcharts": {
+      "version": "1.5.2",
+      "resolved": "https://registry.npmjs.org/vue3-apexcharts/-/vue3-apexcharts-1.5.2.tgz",
+      "integrity": "sha512-rGbgUJDjtsyjfRF0uzwDjzt8+M7ICSRAbm1N9KCDiczW8BSpbEZuaEsJDJYnJuLFIIVXIGilYzIcjNBf6NbeYA==",
+      "requires": {}
+    },
     "wcwidth": {
       "version": "1.0.1",
       "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz",
diff --git a/serverpackcreator-web-frontend/package.json b/serverpackcreator-web-frontend/package.json
index 6fea865fb..40c428729 100644
--- a/serverpackcreator-web-frontend/package.json
+++ b/serverpackcreator-web-frontend/package.json
@@ -14,26 +14,28 @@
     "build": "quasar build"
   },
   "dependencies": {
-    "axios": "^1.2.1",
-    "vue-i18n": "^9.2.2",
+    "@quasar/extras": "^1.16.11",
+    "apexcharts": "^3.49.0",
+    "axios": "^1.6.8",
     "pinia": "^2.0.11",
-    "@quasar/extras": "^1.16.4",
-    "quasar": "^2.6.0",
-    "vue": "^3.0.0",
-    "vue-router": "^4.0.0"
+    "quasar": "^2.15.4",
+    "vue": "^3.4.25",
+    "vue-i18n": "^9.13.1",
+    "vue-router": "^4.3.2",
+    "vue3-apexcharts": "^1.5.2"
   },
   "devDependencies": {
-    "@typescript-eslint/eslint-plugin": "^5.10.0",
-    "@typescript-eslint/parser": "^5.10.0",
-    "eslint": "^8.10.0",
-    "eslint-plugin-vue": "^9.0.0",
-    "eslint-config-prettier": "^8.1.0",
-    "prettier": "^2.5.1",
-    "@types/node": "^12.20.21",
-    "@intlify/vite-plugin-vue-i18n": "^3.3.1",
+    "@intlify/vite-plugin-vue-i18n": "^7.0.0",
     "@quasar/app-vite": "^1.3.0",
-    "autoprefixer": "^10.4.2",
-    "typescript": "^4.5.4"
+    "@types/node": "^20.12.7",
+    "@typescript-eslint/eslint-plugin": "^7.7.1",
+    "@typescript-eslint/parser": "^7.7.1",
+    "autoprefixer": "^10.4.19",
+    "eslint": "^8.56.0",
+    "eslint-config-prettier": "^9.1.0",
+    "eslint-plugin-vue": "^9.25.0",
+    "prettier": "^3.2.5",
+    "typescript": "^5.4.5"
   },
   "engines": {
     "node": "^18 || ^16 || ^14.19",
diff --git a/serverpackcreator-web-frontend/quasar.config.js b/serverpackcreator-web-frontend/quasar.config.js
index bd838a57e..debafd2ee 100644
--- a/serverpackcreator-web-frontend/quasar.config.js
+++ b/serverpackcreator-web-frontend/quasar.config.js
@@ -31,6 +31,7 @@ module.exports = configure(function (/* ctx */) {
     // https://v2.quasar.dev/quasar-cli-vite/boot-files
     boot: [
       'i18n',
+      'apexcharts',
       'axios'
     ],
 
diff --git a/serverpackcreator-web-frontend/src/boot/apexcharts.js b/serverpackcreator-web-frontend/src/boot/apexcharts.js
new file mode 100644
index 000000000..9d442f2dd
--- /dev/null
+++ b/serverpackcreator-web-frontend/src/boot/apexcharts.js
@@ -0,0 +1,6 @@
+import VueApexCharts from 'vue3-apexcharts'
+import { boot } from 'quasar/wrappers'
+
+export default boot(({ app }) => {
+  app.use(VueApexCharts)
+})
diff --git a/serverpackcreator-web-frontend/src/boot/axios.ts b/serverpackcreator-web-frontend/src/boot/axios.ts
index 064e0902b..690171bad 100644
--- a/serverpackcreator-web-frontend/src/boot/axios.ts
+++ b/serverpackcreator-web-frontend/src/boot/axios.ts
@@ -18,28 +18,34 @@ const baseUrl = '/api/v2/';
 const versions = axios.create({
   baseURL: baseUrl + 'versions',
   method: 'get',
-  timeout: 5000,
+  timeout: 5000
 });
 const settings = axios.create({
   baseURL: baseUrl + 'settings/',
   method: 'get',
-  timeout: 5000,
+  timeout: 5000
 });
 const events = axios.create({
   baseURL: baseUrl + 'events/',
   method: 'get',
-  timeout: 5000,
+  timeout: 5000
 });
 const serverpacks = axios.create({
   baseURL: baseUrl + 'serverpacks/',
-  method: 'get',
-  timeout: 5000,
+  method: 'get'
 });
 const modpacks = axios.create({
-  baseURL: baseUrl + 'modpacks/',
+  baseURL: baseUrl + 'modpacks/'
 });
 const runConfigs = axios.create({
-  baseURL: baseUrl + 'runconfigs/'
+  baseURL: baseUrl + 'runconfigs/',
+  method: 'get',
+  timeout: 5000
+})
+const stats = axios.create({
+  baseURL: baseUrl + '/stats/',
+  method: 'get',
+  timeout: 5000
 })
 
 export default boot(({ app }) => {
@@ -54,7 +60,8 @@ export default boot(({ app }) => {
   app.config.globalProperties.$events = events;
   app.config.globalProperties.$serverpacks = serverpacks;
   app.config.globalProperties.$modpacks = modpacks;
-  app.config.globalProperties.$runConfigs = runConfigs
+  app.config.globalProperties.$runConfigs = runConfigs;
+  app.config.globalProperties.$stats = stats;
 });
 
-export { versions, settings, events, serverpacks, modpacks, runConfigs };
+export { versions, settings, events, serverpacks, modpacks, runConfigs, stats };
diff --git a/serverpackcreator-web-frontend/src/components/ExampleComponent.vue b/serverpackcreator-web-frontend/src/components/ExampleComponent.vue
deleted file mode 100644
index 3bfd35e15..000000000
--- a/serverpackcreator-web-frontend/src/components/ExampleComponent.vue
+++ /dev/null
@@ -1,64 +0,0 @@
-<template>
-  <div>
-    <p>{{ title }}</p>
-    <ul>
-      <li v-for="todo in todos" :key="todo.id" @click="increment">
-        {{ todo.id }} - {{ todo.content }}
-      </li>
-    </ul>
-    <p>Count: {{ todoCount }} / {{ meta.totalCount }}</p>
-    <p>Active: {{ active ? 'yes' : 'no' }}</p>
-    <p>Clicks on todos: {{ clickCount }}</p>
-  </div>
-</template>
-
-<script lang="ts">
-import {
-  defineComponent,
-  PropType,
-  computed,
-  ref,
-  toRef,
-  Ref,
-} from 'vue';
-import { Todo, Meta } from './models';
-
-function useClickCount() {
-  const clickCount = ref(0);
-  function increment() {
-    clickCount.value += 1
-    return clickCount.value;
-  }
-
-  return { clickCount, increment };
-}
-
-function useDisplayTodo(todos: Ref<Todo[]>) {
-  const todoCount = computed(() => todos.value.length);
-  return { todoCount };
-}
-
-export default defineComponent({
-  name: 'ExampleComponent',
-  props: {
-    title: {
-      type: String,
-      required: true
-    },
-    todos: {
-      type: Array as PropType<Todo[]>,
-      default: () => []
-    },
-    meta: {
-      type: Object as PropType<Meta>,
-      required: true
-    },
-    active: {
-      type: Boolean
-    }
-  },
-  setup (props) {
-    return { ...useClickCount(), ...useDisplayTodo(toRef(props, 'todos')) };
-  },
-});
-</script>
diff --git a/serverpackcreator-web-frontend/src/components/HistoryTable.vue b/serverpackcreator-web-frontend/src/components/HistoryTable.vue
index 6d269dc35..a55f93ad3 100644
--- a/serverpackcreator-web-frontend/src/components/HistoryTable.vue
+++ b/serverpackcreator-web-frontend/src/components/HistoryTable.vue
@@ -2,7 +2,7 @@
   <q-table class="sticky-header-table" :rows="rows" :columns="columns" row-key="id" bordered dense :filter="filter"
            no-data-label="No history available (yet)..." title="History / Event Log"
            no-results-label="The search didn't uncover any results"
-           :pagination="initialPagination" :loading="visible">
+           :pagination="initialPagination" :loading="visible" :visible-columns="visibleColumns">
     <template v-slot:loading>
       <q-inner-loading showing color="accent"/>
     </template>
@@ -13,6 +13,32 @@
           <q-icon name="search"/>
         </template>
       </q-input>
+      <q-separator inset spaced/>
+      <q-select
+        v-model="visibleColumns"
+        multiple
+        outlined
+        dense
+        options-dense
+        :display-value="$q.lang.table.columns"
+        emit-value
+        map-options
+        :options="columns"
+        option-value="name"
+        options-cover
+        style="min-width: 150px"
+      >
+        <template v-slot:option="{ itemProps, opt, selected, toggleOption }">
+          <q-item v-bind="itemProps">
+            <q-item-section>
+              <q-item-label>{{ opt.label }}</q-item-label>
+            </q-item-section>
+            <q-item-section side>
+              <q-toggle :model-value="selected" @update:model-value="toggleOption(opt)" />
+            </q-item-section>
+          </q-item>
+        </template>
+      </q-select>
     </template>
 
     <template v-slot:header="props">
@@ -25,7 +51,6 @@
         </q-th>
       </q-tr>
     </template>
-
     <template v-slot:body="props">
       <q-tr :props="props">
         <q-td auto-width>
@@ -122,6 +147,7 @@ export default defineComponent({
       },
       rows: ref([]),
       columns,
+      visibleColumns: ref([ 'modPackId', 'serverPackId', 'status', 'message', 'timestamp', 'errors' ]),
       initialPagination: {
         sortBy: 'timestamp',
         descending: true,
diff --git a/serverpackcreator-web-frontend/src/components/ModpacksTable.vue b/serverpackcreator-web-frontend/src/components/ModpacksTable.vue
index 2043330ce..fc52e6e29 100644
--- a/serverpackcreator-web-frontend/src/components/ModpacksTable.vue
+++ b/serverpackcreator-web-frontend/src/components/ModpacksTable.vue
@@ -1,7 +1,8 @@
 <template>
   <q-table class="sticky-header-table" :rows="rows" :columns="columns" row-key="id" title="Modpacks" bordered
            dense no-data-label="No modpacks available (yet)..." :filter="filter"
-           no-results-label="The search didn't uncover any results" :pagination="initialPagination" :loading="visible">
+           no-results-label="The search didn't uncover any results" :pagination="initialPagination" :loading="visible"
+           :visible-columns="visibleColumns">
     <template v-slot:loading>
       <q-inner-loading showing color="accent"/>
     </template>
@@ -12,6 +13,32 @@
           <q-icon name="search"/>
         </template>
       </q-input>
+      <q-separator inset spaced/>
+      <q-select
+        v-model="visibleColumns"
+        multiple
+        outlined
+        dense
+        options-dense
+        :display-value="$q.lang.table.columns"
+        emit-value
+        map-options
+        :options="columns"
+        option-value="name"
+        options-cover
+        style="min-width: 150px"
+      >
+        <template v-slot:option="{ itemProps, opt, selected, toggleOption }">
+          <q-item v-bind="itemProps">
+            <q-item-section>
+              <q-item-label>{{ opt.label }}</q-item-label>
+            </q-item-section>
+            <q-item-section side>
+              <q-toggle :model-value="selected" @update:model-value="toggleOption(opt)" />
+            </q-item-section>
+          </q-item>
+        </template>
+      </q-select>
     </template>
 
     <template v-slot:header="props">
@@ -38,7 +65,7 @@
         <q-td v-for="col in props.cols" :key="col.name" :props="props" auto-width>
           <span v-if="col.name === 'download'">
             <q-btn :to="'/download/modpack/' + props.row.id" color="info" dense icon="download" round size="sm"
-                   v-if="props.row.size > 0">
+                   @click="props.row.downloads++" v-if="props.row.size > 0" >
               <q-tooltip>
                 Download modpack
               </q-tooltip>
@@ -67,7 +94,9 @@ import ServerPacksTable from 'components/ServerPacksTable.vue';
 const columns = [
   {name: 'id', label: 'Modpack ID', field: 'id', sortable: true, align: 'left'},
   {name: 'name', label: 'Name', field: 'name', sortable: false, align: 'left'},
+  {name: 'fileID', label: 'File ID', field: 'fileID', sortable: false, align: 'left'},
   {name: 'download', label: 'Download', sortable: false, align: 'center'},
+  {name: 'downloads', label: 'Downloads', field: 'downloads', sortable: true, align: 'left'},
   {name: 'projectID', label: 'Project ID', field: 'projectID', sortable: true, align: 'left'},
   {name: 'versionID', label: 'Version ID', field: 'versionID', sortable: true, align: 'left'},
   {name: 'source', label: 'Source', field: 'source', sortable: false, align: 'left'},
@@ -114,6 +143,7 @@ export default defineComponent({
       },
       rows: ref([]),
       columns,
+      visibleColumns: ref([ 'id', 'name', 'download', 'downloads', 'status', 'size', 'serverPacks', 'sha256', 'dateCreated' ]),
       initialPagination: {
         sortBy: 'id',
         descending: true,
diff --git a/serverpackcreator-web-frontend/src/components/ServerPacksTable.vue b/serverpackcreator-web-frontend/src/components/ServerPacksTable.vue
index 0ad9619ad..734b1689a 100644
--- a/serverpackcreator-web-frontend/src/components/ServerPacksTable.vue
+++ b/serverpackcreator-web-frontend/src/components/ServerPacksTable.vue
@@ -1,7 +1,8 @@
 <template>
   <q-table :rows="rows" :columns="columns" row-key="id" title="Server Packs" id="serverpacktable" :filter="filter"
            bordered dense no-data-label="No server packs available (yet)..."
-           no-results-label="The search didn't uncover any results" :pagination="initialPagination" :loading="visible">
+           no-results-label="The search didn't uncover any results" :pagination="initialPagination" :loading="visible"
+           :visible-columns="visibleColumns">
     <template v-slot:loading>
       <q-inner-loading showing color="accent"/>
     </template>
@@ -12,6 +13,32 @@
           <q-icon name="search"/>
         </template>
       </q-input>
+      <q-separator inset spaced/>
+      <q-select
+        v-model="visibleColumns"
+        multiple
+        outlined
+        dense
+        options-dense
+        :display-value="$q.lang.table.columns"
+        emit-value
+        map-options
+        :options="columns"
+        option-value="name"
+        options-cover
+        style="min-width: 150px"
+      >
+        <template v-slot:option="{ itemProps, opt, selected, toggleOption }">
+          <q-item v-bind="itemProps">
+            <q-item-section>
+              <q-item-label>{{ opt.label }}</q-item-label>
+            </q-item-section>
+            <q-item-section side>
+              <q-toggle :model-value="selected" @update:model-value="toggleOption(opt)" />
+            </q-item-section>
+          </q-item>
+        </template>
+      </q-select>
     </template>
 
     <template v-slot:header="props">
@@ -24,7 +51,6 @@
         </q-th>
       </q-tr>
     </template>
-
     <template v-slot:body="props">
       <q-tr :props="props">
         <q-td auto-width>
@@ -97,6 +123,7 @@ import RunConfigurationCard from 'components/RunConfigurationCard.vue';
 const columns = [
   {name: 'id', label: 'ServerPack ID', field: 'id', sortable: true, align: 'left'},
   {name: 'size', label: 'Size', field: 'size', sortable: false, align: 'left'},
+  {name: 'fileID', label: 'File ID', field: 'fileID', sortable: false, align: 'left'},
   {name: 'download', label: 'Download', sortable: false, align: 'center'},
   {name: 'downloads', label: 'Downloads', field: 'downloads', sortable: true, align: 'left'},
   {name: 'confirmedWorking', label: 'Confirmed Working', field: 'confirmedWorking', sortable: true, align: 'left'},
@@ -147,6 +174,7 @@ export default defineComponent({
       },
       rows: ref([]),
       columns,
+      visibleColumns: ref([ 'id', 'size', 'download', 'downloads', 'confirmedWorking', 'sha256', 'dateCreated' ]),
       initialPagination: {
         sortBy: 'id',
         descending: true,
diff --git a/serverpackcreator-web-frontend/src/components/SubmitModPackForm.vue b/serverpackcreator-web-frontend/src/components/SubmitModPackForm.vue
index 05eb97b17..38cdb90c3 100644
--- a/serverpackcreator-web-frontend/src/components/SubmitModPackForm.vue
+++ b/serverpackcreator-web-frontend/src/components/SubmitModPackForm.vue
@@ -167,7 +167,7 @@
                 >
                   <q-linear-progress v-if="progress > 0" :stripe="progress === 1" class="absolute-full full-height" :value="progress"
                                      color="positive" track-color="primary" instant-feedback>
-                    <div class="absolute-full flex flex-center">
+                    <div class="absolute-full flex-center" style="display: flex; justify-content: flex-end; margin-right: 10px;">
                       <q-badge v-if="progress < 1" color="white" text-color="accent" :label="'Uploaded: ' + Math.round(progress * 100) + '%'"/>
                       <q-badge v-else color="white" text-color="accent" label="Upload done. Checking..."/>
                     </div>
@@ -186,7 +186,7 @@
                 <q-icon name="folder_zip" @click.stop.prevent/>
               </template>
               <template v-slot:append>
-                <q-icon name="close" @click.stop.prevent="file = null" class="cursor-pointer"/>
+                <q-icon v-if="!uploading" name="close" @click.stop.prevent="file = null" class="cursor-pointer"/>
                 <q-btn dense flat icon="help_outline" round @click="zipInfo = true"/>
               </template>
 
diff --git a/serverpackcreator-web-frontend/src/components/charts/AreaTimeSeriesChart.vue b/serverpackcreator-web-frontend/src/components/charts/AreaTimeSeriesChart.vue
new file mode 100644
index 000000000..e97ad0eca
--- /dev/null
+++ b/serverpackcreator-web-frontend/src/components/charts/AreaTimeSeriesChart.vue
@@ -0,0 +1,83 @@
+<template>
+  <apexchart ref="chart1" height="300" type="area" :options="options" :series="series"></apexchart>
+</template>
+
+<script lang="ts">
+import { defineComponent } from 'vue';
+import { getCssVar } from 'quasar';
+import { stats } from 'boot/axios';
+
+export default defineComponent({
+  name: 'AreaTimeSeriesChart',
+  components: {},
+  props: {
+    endpoint: String,
+    title: String,
+    seriesName: String
+  },
+  setup () {
+    return {
+      options: {
+        chart: {
+          type: 'area'
+        },
+        yaxis: {
+          labels: {
+            formatter: (value) => { return value.toFixed(0) }
+          }
+        },
+        colors: [
+          getCssVar('primary'),
+          getCssVar('secondary'),
+          getCssVar('negative')
+        ],
+        markers: {
+          size: 4,
+          hover: {
+            sizeOffset: 6
+          }
+        },
+        xaxis: {
+          type: 'datetime',
+        },
+        noData: {
+          text: 'No data'
+        },
+        dataLabels: {
+          enabled: true
+        },
+      },
+      series: [{
+        name: 'nodatayet',
+        data: []
+      }]
+    };
+  },
+  mounted() {
+    this.uChart()
+  },
+  methods: {
+    uChart: function() {
+      stats.get(this.$props.endpoint).then(response => {
+        let data = response.data
+        let formattedData = data.map((e) => {
+          return {
+            x: Object.values(e)[1],
+            y: Object.values(e)[0]
+          }
+        })
+        this.series = [{
+          name: this.$props.seriesName,
+          data: formattedData
+        }]
+        this.$refs.chart1.updateSeries(this.series, true);
+      })
+    }
+  },
+});
+</script>
+
+
+<style scoped>
+
+</style>
diff --git a/serverpackcreator-web-frontend/src/components/charts/DiskUsageBarGraph.vue b/serverpackcreator-web-frontend/src/components/charts/DiskUsageBarGraph.vue
new file mode 100644
index 000000000..be389f6f3
--- /dev/null
+++ b/serverpackcreator-web-frontend/src/components/charts/DiskUsageBarGraph.vue
@@ -0,0 +1,128 @@
+<template>
+  <apexchart ref="chart1" height="400" type="bar" :options="options" :series="series"></apexchart>
+</template>
+
+<script lang="ts">
+import { defineComponent } from 'vue';
+import { getCssVar } from 'quasar';
+import { stats } from 'boot/axios';
+
+export default defineComponent({
+  name: 'DiskUsageBarGraph',
+  components: {},
+  props: {
+    endpoint: String,
+    title: String,
+    seriesName: String
+  },
+  setup () {
+    return {
+      options: {
+        chart: {
+          type: 'bar',
+          stacked: true,
+          stackType: '100%'
+        },
+        xaxis: {
+          categories: [
+            'Home',
+            'ModPacks',
+            'Server Packs',
+            'Properties',
+            'Configs',
+            'Server Files',
+            'Icons',
+            'Plugins',
+            'Plugin Configs',
+            'Manifests',
+            'Minecraft Server Manifests',
+            'Installer Cache',
+            'Logs',
+            'Tomcat Base',
+            'Tomcat Logs',
+            'Work',
+            'Temp'
+          ],
+        },
+        fill: {
+          opacity: 1
+        },
+        legend: {
+          position: 'right',
+          offsetX: 0,
+          offsetY: 50
+        },
+        colors: [
+          getCssVar('primary'),
+          getCssVar('secondary'),
+          getCssVar('negative')
+        ],
+        noData: {
+          text: 'No data'
+        },
+        dataLabels: {
+          enabled: true
+        },
+        yaxis: {
+          labels: {
+            formatter: (value) => { return value.toFixed(0) + '%' }
+          }
+        },
+        tooltip: {
+          y: {
+            formatter: (value) => { return value.toFixed(2) + ' GB' }
+          }
+        },
+        responsive: [{
+          breakpoint: 480,
+          options: {
+            legend: {
+              position: 'bottom',
+              offsetX: -10,
+              offsetY: 0
+            }
+          }
+        }],
+      },
+      series: []
+    };
+  },
+  mounted() {
+    this.uChart()
+  },
+  methods: {
+    uChart: function() {
+      stats.get(this.$props.endpoint).then(response => {
+        let data = response.data
+        let freeSpace = []
+        let usedSpace = []
+        let usedBySPC = []
+        for (let disk of data) {
+          freeSpace.push(disk.freeSpace / (1024**3))
+          usedSpace.push((disk.totalSpace - disk.freeSpace - disk.usedBySPC) / (1024**3))
+          usedBySPC.push(disk.usedBySPC / (1024**3))
+        }
+        let freeSeries = {
+          name: 'Free Disk Space',
+          data: freeSpace
+        }
+        let usedSeries = {
+          name: 'Used Disk Space',
+          data: usedSpace
+        }
+        let usageSeries = {
+          name: 'Used by SPC',
+          data: usedBySPC
+        }
+        this.series = [freeSeries, usedSeries, usageSeries]
+        this.$refs.chart1.updateSeries(this.series, true);
+      })
+    }
+  },
+});
+</script>
+
+
+<style scoped>
+
+</style>
diff --git a/serverpackcreator-web-frontend/src/components/charts/ModServerRunPieChart.vue b/serverpackcreator-web-frontend/src/components/charts/ModServerRunPieChart.vue
new file mode 100644
index 000000000..38500d079
--- /dev/null
+++ b/serverpackcreator-web-frontend/src/components/charts/ModServerRunPieChart.vue
@@ -0,0 +1,92 @@
+<template>
+  <apexchart ref="chart1" height="300" type="donut" :options="options" :series="series"></apexchart>
+</template>
+
+<script lang="ts">
+import { defineComponent } from 'vue';
+import { getCssVar } from 'quasar';
+import { stats } from 'boot/axios';
+
+export default defineComponent({
+  name: 'ModServerRunPieChart',
+  components: {},
+  props: {
+    endpoint: String,
+    title: String,
+    seriesName: String
+  },
+  setup () {
+    return {
+      options: {
+        chart: {
+          type: 'donut'
+        },
+        plotOptions: {
+          pie: {
+            donut: {
+              labels: {
+                show: true,
+                total: {
+                  label: 'Total',
+                  show: true,
+                  showAlways: true,
+                  formatter: function (w) {
+                    return w.globals.series[0]
+                      + w.globals.series[1]
+                      + w.globals.series[2]
+                  }
+                }
+              }
+            }
+          }
+        },
+        labels: [
+          'Modpacks',
+          'Server Packs',
+          'Run Configurations'
+        ],
+        colors: [
+          getCssVar('primary'),
+          getCssVar('secondary'),
+          getCssVar('negative')
+        ],
+        noData: {
+          text: 'No data'
+        },
+        dataLabels: {
+          enabled: true
+        },
+        responsive: [{
+          breakpoint: 480,
+          options: {
+            chart: {
+              width: 200
+            },
+            legend: {
+              position: 'bottom'
+            }
+          }
+        }]
+      },
+      series: [0, 0, 0]
+    };
+  },
+  mounted() {
+    this.uChart()
+  },
+  methods: {
+    uChart: function() {
+      stats.get(this.$props.endpoint).then(response => {
+        let data = response.data
+        this.series = [data.modPacks, data.serverPacks, data.runConfigurations]
+        this.$refs.chart1.updateSeries(this.series, true);
+      })
+    }
+  },
+});
+</script>
+
+
+<style scoped>
+
+</style>
diff --git a/serverpackcreator-web-frontend/src/pages/DownloadsPage.vue b/serverpackcreator-web-frontend/src/pages/DownloadsPage.vue
index 72430cb28..9a8b4ca4e 100644
--- a/serverpackcreator-web-frontend/src/pages/DownloadsPage.vue
+++ b/serverpackcreator-web-frontend/src/pages/DownloadsPage.vue
@@ -1,6 +1,6 @@
 <template>
-  <q-page class="col items-center justify-evenly">
-    <q-card square>
+  <q-page class="q-pa-sm">
+    <q-card rounded>
       <ModpacksTable class="table-size"/>
     </q-card>
   </q-page>
@@ -23,7 +23,7 @@ export default defineComponent({
 
 <style scoped>
 .table-size {
-  height: calc(100vh - 53px);;
+  height: calc(100vh - 67px);;
   box-sizing: border-box;
 }
 </style>
diff --git a/serverpackcreator-web-frontend/src/pages/IndexPage.vue b/serverpackcreator-web-frontend/src/pages/IndexPage.vue
index 7c9adbc09..d4002e281 100644
--- a/serverpackcreator-web-frontend/src/pages/IndexPage.vue
+++ b/serverpackcreator-web-frontend/src/pages/IndexPage.vue
@@ -1,89 +1,75 @@
 <template>
-  <q-page class="row items-center justify-evenly">
-    <q-card bordered style='max-width: 80%'>
-      <q-card-section>
-        <div class="text-h6">Welcome to ServerPackCreator!</div>
-      </q-card-section>
-
-      <q-card-section class="q-pt-none">
-        Welcome to the ServerPackCreator-Webservice, where you can generate server packs from your modpacks,
-        without having to install any software.<br>
-        <br>
-        The web-version of ServerPackCreator is a convenient way of generating a server pack with minimal effort.
-        Said minimal effort comes at a price, though! Some customization-options are not available in the web-version of
-        ServerPackCreator. For maximum customization of your server pack, make sure to download and install it to your
-        machine.<br>
-        Some options not available in the web-version are:
-        <ul>
-          <li>Custom script templates</li>
-          <li>Custom server icon</li>
-          <li>custom server properties</li>
-          <li>Custom server pack suffix</li>
-          <li>Custom script variables and values</li>
-          <li>Custom inclusions of files and / or folders</li>
-          <li>etc.</li>
-        </ul>
-        <br>
-        If you're fine with the limited options the web-version offers, feel free to proceed to the ZIP-page and upload
-        your modpack!
-      </q-card-section>
-
-      <q-separator inset />
-
-      <q-card-section>
-        The menu on the left lets you browse to the different areas of the web-version of ServerPackCreator.<br>
-        The list below gives you a small overview of what's what and what's available.<br>
-        <br>
-        I suggest checking out the <strong>Submissions</strong>-page first!
-      </q-card-section>
-
-      <q-list>
-        <IndexItem
-          v-for="item in indexItems"
-          :key="item.title"
-          v-bind="item"
-        />
-      </q-list>
-    </q-card>
+  <q-page class="q-pa-sm">
+    <div class="row q-col-gutter-sm q-py-xs">
+      <div class="col-lg-6 col-md-12 col-sm-12 col-xs-12">
+        <q-card>
+          <q-card-section>
+            <div class="text-h6">Disk Usage(s)</div>
+            <DiskUsageBarGraph endpoint="disk" series-name="Disk Usage"></DiskUsageBarGraph>
+          </q-card-section>
+        </q-card>
+      </div>
+    </div>
+    <div class="row q-col-gutter-sm q-py-xs">
+      <div class="col-lg-3 col-md-6 col-sm-12 col-xs-12">
+        <q-card>
+          <q-card-section>
+            <div class="text-h6">Modpack Uploads</div>
+            <AreaTimeSeriesChart endpoint="creation/modpacks" series-name="Modpack Uploads"></AreaTimeSeriesChart>
+          </q-card-section>
+        </q-card>
+      </div>
+      <div class="col-lg-3 col-md-6 col-sm-12 col-xs-12">
+        <q-card>
+          <q-card-section>
+            <div class="text-h6">Server Pack Creations</div>
+            <AreaTimeSeriesChart endpoint="creation/serverpacks" series-name="Server Pack Creations"></AreaTimeSeriesChart>
+          </q-card-section>
+        </q-card>
+      </div>
+      <div class="col-lg-3 col-md-6 col-sm-12 col-xs-12">
+        <q-card>
+          <q-card-section>
+            <div class="text-h6">Modpack Downloads</div>
+            <AreaTimeSeriesChart endpoint="downloads/modpacks" series-name="Modpack Downloads"></AreaTimeSeriesChart>
+          </q-card-section>
+        </q-card>
+      </div>
+      <div class="col-lg-3 col-md-6 col-sm-12 col-xs-12">
+        <q-card>
+          <q-card-section>
+            <div class="text-h6">Server Pack Downloads</div>
+            <AreaTimeSeriesChart endpoint="downloads/serverpacks" series-name="Server Pack Downloads"></AreaTimeSeriesChart>
+          </q-card-section>
+        </q-card>
+      </div>
+      <div class="col-lg-3 col-md-6 col-sm-12 col-xs-12">
+        <q-card>
+          <q-card-section>
+            <div class="text-h6">Modpacks - Server Packs - Run Configurations</div>
+            <ModServerRunPieChart endpoint="packs" ></ModServerRunPieChart>
+          </q-card-section>
+        </q-card>
+      </div>
+    </div>
   </q-page>
 </template>
 
 <script lang="ts">
 import { defineComponent } from 'vue';
-import IndexItem from 'components/IndexItem.vue';
-const indexItems = [
-  {
-    title: 'Submissions',
-    caption: 'This is where you upload a zipped modpack, or request a regeneration of an already uploaded modpack, in order to have ServerPackCreator generate a server pack from it.',
-    icon: 'upload',
-    link: 'submissions'
-  },
-  {
-    title: 'Downloads',
-    caption: 'Here you can browse available modpacks and their available server packs, and download any modpack and server pack you want.',
-    icon: 'download',
-    link: 'downloads'
-  },
-  {
-    title: 'Event Log / History',
-    caption: 'See the latest history for submitted tasks and find out whether your server pack was generated, or whether it is still waiting in the queue.',
-    icon: 'history',
-    link: 'history'
-  },
-  {
-    title: 'About ServerPackCreator',
-    caption: 'General information about this instance of the ServerPackCreator webservice, like the version, useful links, etc...',
-    icon: 'info',
-    link: 'about'
-  }
-]
+import AreaTimeSeriesChart from 'components/charts/AreaTimeSeriesChart.vue';
+import DiskUsageBarGraph from 'components/charts/DiskUsageBarGraph.vue';
+import ModServerRunPieChart from 'components/charts/ModServerRunPieChart.vue';
+
 export default defineComponent({
   name: 'IndexPage',
-  components: { IndexItem },
+  components: { ModServerRunPieChart, DiskUsageBarGraph,  AreaTimeSeriesChart },
   setup () {
     return {
-      indexItems: indexItems
+
     };
-  }
+  },
+  mounted() {},
+  methods: {},
 });
 </script>
diff --git a/serverpackcreator-web-frontend/src/pages/ModPackDownload.vue b/serverpackcreator-web-frontend/src/pages/ModPackDownload.vue
index cbc27fcc5..3697eaaa1 100644
--- a/serverpackcreator-web-frontend/src/pages/ModPackDownload.vue
+++ b/serverpackcreator-web-frontend/src/pages/ModPackDownload.vue
@@ -2,10 +2,10 @@
   <q-page class="row items-center justify-evenly">
     <q-card flat bordered class="relative-position download-modpack" v-if="visible">
       <q-card-section>
-        <transition appear enter-active-class="animated fadeIn" leave-active-class="animated fadeOut"/>
+        <transition appear enter-active-class="animated fadeIn" leave-active-class="animated fadeOut" />
       </q-card-section>
       <q-inner-loading :showing="visible">
-        <q-spinner-gears size="50px" color="accent"/>
+        <q-spinner-gears size="50px" color="accent" />
       </q-inner-loading>
     </q-card>
     <q-card flat bordered class="relative-position download-modpack" v-else-if="!visible && !available">
@@ -18,8 +18,9 @@
         <q-card-section class="q-pt-xs">
           <div class="row">
             <div class="col text-overline">ModPack {{ $route.params.id }}</div>
-            <div v-if="projectID.length > 0" class="col text-overline">| Project ID {{ projectID }}</div>
-            <div v-if="versionID.length > 0" class="col text-overline">| Version ID {{ versionID }}</div>
+            <div class="col text-overline">Source {{ source }}</div>
+            <div v-if="projectID.length > 0" class="col text-overline">Project ID {{ projectID }}</div>
+            <div v-if="versionID.length > 0" class="col text-overline">Version ID {{ versionID }}</div>
           </div>
           <div class="text-h5 q-mt-sm q-mb-xs">{{ name }}</div>
         </q-card-section>
@@ -28,7 +29,7 @@
         <q-list dense>
           <q-item clickable @click="copyToClipboard(size.toString())">
             <q-item-section side>
-              <q-icon color="accent" name="scale"/>
+              <q-icon color="accent" name="scale" />
             </q-item-section>
             <q-item-section>
               <q-item-label>Size</q-item-label>
@@ -38,7 +39,7 @@
 
           <q-item clickable @click="copyToClipboard(status)">
             <q-item-section side>
-              <q-icon color="accent" name="pending_actions"/>
+              <q-icon color="accent" name="pending_actions" />
             </q-item-section>
             <q-item-section>
               <q-item-label>Current Status</q-item-label>
@@ -48,7 +49,7 @@
 
           <q-item clickable @click="copyToClipboard(source)">
             <q-item-section side>
-              <q-icon color="accent" name="move_to_inbox"/>
+              <q-icon color="accent" name="move_to_inbox" />
             </q-item-section>
             <q-item-section>
               <q-item-label>ModPack Source</q-item-label>
@@ -58,7 +59,7 @@
 
           <q-item clickable @click="copyToClipboard(sha256)">
             <q-item-section side>
-              <q-icon color="accent" name="tag"/>
+              <q-icon color="accent" name="tag" />
             </q-item-section>
             <q-item-section>
               <q-item-label>ModPack SHA256 Hash</q-item-label>
@@ -68,7 +69,7 @@
 
           <q-item clickable @click="copyToClipboard(serverPacks.length.toString())">
             <q-item-section side>
-              <q-icon color="accent" name="dns"/>
+              <q-icon color="accent" name="dns" />
             </q-item-section>
             <q-item-section>
               <q-item-label>ServerPacks</q-item-label>
@@ -78,7 +79,7 @@
 
           <q-item clickable @click="copyToClipboard(date.formatDate(dateCreated, 'YYYY-MM-DD : HH:mm'))">
             <q-item-section side>
-              <q-icon color="accent" name="event"/>
+              <q-icon color="accent" name="event" />
             </q-item-section>
             <q-item-section>
               <q-item-label>Creation Date and Time</q-item-label>
@@ -86,14 +87,18 @@
             </q-item-section>
           </q-item>
         </q-list>
-        <q-separator vertical/>
+        <q-separator vertical />
         <q-card-actions vertical class="justify-around">
-          <q-btn size="xl" flat round color="positive" icon="download"
-                 :href="buildDownloadUrl($route.params.id)" type="a"/>
-          <q-btn size="xl" flat round color="info" icon="share" @click="copyToClipboard(location())"/>
+          <q-btn size="xl" flat round color="positive" icon="download" :loading="loading"
+                 @click="downloadWithAxios($route.params.id);this.count = false; this.canceled = true;">
+            <template v-slot:loading>
+              <q-spinner-hourglass/>
+            </template>
+          </q-btn>
+          <q-btn size="xl" flat round color="info" icon="share" @click="copyToClipboard(current())" />
         </q-card-actions>
       </q-card-section>
-      <q-separator/>
+      <q-separator />
       <q-card-section>
         <q-item>
           <q-item-section>
@@ -104,11 +109,11 @@
               {{ counter === 0 ? 'Downloading...' : 'Download starting in ' + counter }}
             </q-item-label>
             <q-item-label>
-              <q-linear-progress :value="counter / 100 * 20" rounded class="q-mt-md" animation-speed="200"/>
+              <q-linear-progress :value="counter / 100 * 20" rounded class="q-mt-md" animation-speed="200" />
             </q-item-label>
           </q-item-section>
           <q-item-section side>
-            <q-btn round color="negative" icon="cancel" @click="this.count = false; this.canceled = true;"/>
+            <q-btn v-if="this.count" round color="negative" icon="cancel" @click="this.count = false; this.canceled = true;"/>
           </q-item-section>
         </q-item>
       </q-card-section>
@@ -117,9 +122,9 @@
 </template>
 
 <script lang="ts">
-import {defineComponent, ref} from 'vue';
-import {modpacks} from 'boot/axios';
-import {date} from 'quasar';
+import { defineComponent, ref } from 'vue';
+import { modpacks } from 'boot/axios';
+import { date } from 'quasar';
 
 export default defineComponent({
   name: 'ModPackDownload',
@@ -129,8 +134,8 @@ export default defineComponent({
     }
   },
   setup() {
-    const count = ref(true)
-    const counter = ref(5)
+    const count = ref(true);
+    const counter = ref(5);
     const visible = ref(true);
     const available = ref(true);
     const showSimulatedReturnData = ref(false);
@@ -157,19 +162,17 @@ export default defineComponent({
       status: ref(''),
       versionID: ref(''),
       canceled: ref(false),
+      loading: ref(false),
       count,
       counter
     };
   },
   methods: {
-    location(): string {
+    current(): string {
       const route = this.$router.resolve({});
-      console.log(this.$route)
+      console.log(this.$route);
       return new URL(route.href, window.location.origin).href;
     },
-    buildDownloadUrl(id: number): string {
-      return '/api/v2/modpacks/download/' + id
-    },
     copyToClipboard(text: string) {
       navigator.clipboard.writeText(text);
       this.$q.notify({
@@ -184,19 +187,42 @@ export default defineComponent({
       if (this.counter > 0 && this.count) {
         setTimeout(() => {
           this.counter -= 1;
-          this.countDownTimer()
-        }, 1000)
+          this.countDownTimer();
+        }, 1000);
       } else if (this.counter === 0 && this.count && !this.canceled) {
         this.count = false;
-        window.open(window.location.origin + this.buildDownloadUrl(this.$route.params.id.toString()));
+        this.downloadWithAxios(this.$route.params.id)
       }
+    },
+    downloadWithAxios(id: string) {
+      this.loading = true
+      modpacks.get('download/' + id, {
+        responseType: 'arraybuffer'
+      }).then(response => {
+        const url = window.URL.createObjectURL(new Blob([response.data]))
+        const link = document.createElement('a')
+        link.href = url
+        link.setAttribute('download', this.name)
+        document.body.appendChild(link)
+        link.click()
+        this.loading = false
+      }).catch(error => {
+        this.$q.notify({
+          timeout: 5000,
+          progress: true,
+          icon: 'error',
+          color: 'negative',
+          message: 'Could not retrieve modpack: ' + error
+        });
+        this.loading = false
+      });
     }
   },
   mounted() {
     this.showTextLoading();
     modpacks.get(this.$route.params.id.toString()).then(response => {
       this.dateCreated = response.data.dateCreated;
-      this.name = response.data.name;
+      this.name = response.data.name.replaceAll(' ', '_');
       this.projectID = response.data.projectID;
       this.serverPacks = response.data.serverPacks;
       this.sha256 = response.data.sha256;
@@ -226,7 +252,7 @@ export default defineComponent({
 
 <style>
 .download-modpack {
-  height: 430px;
+  height: 450px;
   width: 600px;
 }
 </style>
diff --git a/serverpackcreator-web-frontend/src/pages/ServerPackDownload.vue b/serverpackcreator-web-frontend/src/pages/ServerPackDownload.vue
index a488a5455..896c3f06a 100644
--- a/serverpackcreator-web-frontend/src/pages/ServerPackDownload.vue
+++ b/serverpackcreator-web-frontend/src/pages/ServerPackDownload.vue
@@ -2,10 +2,10 @@
   <q-page class="row items-center justify-evenly">
     <q-card flat bordered class="relative-position download-serverpack" v-if="visible">
       <q-card-section>
-        <transition appear enter-active-class="animated fadeIn" leave-active-class="animated fadeOut"/>
+        <transition appear enter-active-class="animated fadeIn" leave-active-class="animated fadeOut" />
       </q-card-section>
       <q-inner-loading :showing="visible">
-        <q-spinner-gears size="50px" color="accent"/>
+        <q-spinner-gears size="50px" color="accent" />
       </q-inner-loading>
     </q-card>
     <q-card flat bordered class="relative-position download-serverpack" v-else-if="!visible && !available">
@@ -16,14 +16,17 @@
     <q-card class="relative-position download-serverpack" v-else>
       <q-card-section horizontal>
         <q-card-section class="q-pt-xs">
-          <div class="text-overline">Server Pack {{ $route.params.id }}</div>
+          <div class="row">
+            <div class="col text-overline">Server Pack {{ $route.params.id }}</div>
+          </div>
+          <div class="text-h5 q-mt-sm q-mb-xs">{{ name }}</div>
         </q-card-section>
       </q-card-section>
       <q-card-section horizontal>
         <q-list dense>
           <q-item clickable @click="copyToClipboard(size.toString())">
             <q-item-section side>
-              <q-icon color="accent" name="scale"/>
+              <q-icon color="accent" name="scale" />
             </q-item-section>
             <q-item-section>
               <q-item-label>Size</q-item-label>
@@ -33,7 +36,7 @@
 
           <q-item clickable @click="copyToClipboard(downloads.toString())">
             <q-item-section side>
-              <q-icon color="accent" name="download"/>
+              <q-icon color="accent" name="download" />
             </q-item-section>
             <q-item-section>
               <q-item-label>Downloads</q-item-label>
@@ -43,7 +46,7 @@
 
           <q-item clickable @click="copyToClipboard(confirmedWorking.toString())">
             <q-item-section side>
-              <q-icon color="accent" name="thumbs_up_down"/>
+              <q-icon color="accent" name="thumbs_up_down" />
             </q-item-section>
             <q-item-section>
               <q-item-label>Confirmed Working</q-item-label>
@@ -53,7 +56,7 @@
 
           <q-item clickable @click="copyToClipboard(date.formatDate(dateCreated, 'YYYY-MM-DD : HH:mm'))">
             <q-item-section side>
-              <q-icon color="accent" name="event"/>
+              <q-icon color="accent" name="event" />
             </q-item-section>
             <q-item-section>
               <q-item-label>Creation Date and Time</q-item-label>
@@ -63,7 +66,7 @@
 
           <q-item clickable @click="copyToClipboard(sha256)">
             <q-item-section side>
-              <q-icon color="accent" name="tag"/>
+              <q-icon color="accent" name="tag" />
             </q-item-section>
             <q-item-section>
               <q-item-label>ModPack SHA256 Hash</q-item-label>
@@ -71,14 +74,18 @@
             </q-item-section>
           </q-item>
         </q-list>
-        <q-separator vertical/>
+        <q-separator vertical />
         <q-card-actions vertical class="justify-around">
-          <q-btn size="xl" flat round color="positive" icon="download"
-                 :href="buildDownloadUrl($route.params.id)" type="a"/>
-          <q-btn size="xl" flat round color="info" icon="share" @click="copyToClipboard(location())"/>
+          <q-btn size="xl" flat round color="positive" icon="download" :loading="loading"
+                 @click="downloadWithAxios($route.params.id);this.count = false; this.canceled = true;">
+            <template v-slot:loading>
+              <q-spinner-hourglass/>
+            </template>
+          </q-btn>
+          <q-btn size="xl" flat round color="info" icon="share" @click="copyToClipboard(current())" />
         </q-card-actions>
       </q-card-section>
-      <q-separator/>
+      <q-separator />
       <q-card-section>
         <q-item>
           <q-item-section>
@@ -89,11 +96,11 @@
               {{ counter === 0 ? 'Downloading...' : 'Download starting in ' + counter }}
             </q-item-label>
             <q-item-label>
-              <q-linear-progress :value="counter / 100 * 20" rounded class="q-mt-md" animation-speed="200"/>
+              <q-linear-progress :value="counter / 100 * 20" rounded class="q-mt-md" animation-speed="200" />
             </q-item-label>
           </q-item-section>
           <q-item-section side>
-            <q-btn round color="negative" icon="cancel" @click="this.count = false; this.canceled = true;"/>
+            <q-btn v-if="this.count" round color="negative" icon="cancel" @click="this.count = false; this.canceled = true;" />
           </q-item-section>
         </q-item>
       </q-card-section>
@@ -102,9 +109,9 @@
 </template>
 
 <script lang="ts">
-import {defineComponent, ref} from 'vue';
-import {serverpacks} from 'boot/axios';
-import {date} from 'quasar';
+import { defineComponent, ref } from 'vue';
+import { modpacks, serverpacks } from 'boot/axios';
+import { date } from 'quasar';
 
 export default defineComponent({
   name: 'ServerPackDownload',
@@ -114,8 +121,8 @@ export default defineComponent({
     }
   },
   setup() {
-    const count = ref(true)
-    const counter = ref(5)
+    const count = ref(true);
+    const counter = ref(5);
     const visible = ref(true);
     const available = ref(true);
     const showSimulatedReturnData = ref(false);
@@ -132,24 +139,23 @@ export default defineComponent({
           showSimulatedReturnData.value = true;
         }, 3000);
       },
+      name: ref(''),
       size: ref(0),
       downloads: ref(0),
       confirmedWorking: ref(0),
       dateCreated: ref(0),
       sha256: ref(''),
       canceled: ref(false),
+      loading: ref(false),
       count,
       counter
     };
   },
   methods: {
-    location(): string {
+    current(): string {
       const route = this.$router.resolve({});
       return new URL(route.href, window.location.origin).href;
     },
-    buildDownloadUrl(id: number): string {
-      return '/api/v2/serverpacks/download/' + id
-    },
     copyToClipboard(text: string) {
       navigator.clipboard.writeText(text);
       this.$q.notify({
@@ -164,12 +170,35 @@ export default defineComponent({
       if (this.counter > 0 && this.count) {
         setTimeout(() => {
           this.counter -= 1;
-          this.countDownTimer()
-        }, 1000)
+          this.countDownTimer();
+        }, 1000);
       } else if (this.counter === 0 && this.count && !this.canceled) {
         this.count = false;
-        window.open(window.location.origin + this.buildDownloadUrl(this.$route.params.id.toString()));
+        this.downloadWithAxios(this.$route.params.id)
       }
+    },
+    downloadWithAxios(id: string) {
+      this.loading = true
+      serverpacks.get('download/' + id, {
+        responseType: 'arraybuffer'
+      }).then(response => {
+        const url = window.URL.createObjectURL(new Blob([response.data]))
+        const link = document.createElement('a')
+        link.href = url
+        link.setAttribute('download', this.name)
+        document.body.appendChild(link)
+        link.click()
+        this.loading = false
+      }).catch(error => {
+        this.$q.notify({
+          timeout: 5000,
+          progress: true,
+          icon: 'error',
+          color: 'negative',
+          message: 'Could not retrieve server pack: ' + error
+        });
+        this.loading = false
+      });
     }
   },
   mounted() {
@@ -196,13 +225,24 @@ export default defineComponent({
         message: 'Could not retrieve server pack: ' + error
       });
     });
+    modpacks.get('byserverpack/' + this.$route.params.id.toString()).then(response => {
+      this.name = response.data.name.replaceAll(' ', '_').replace('.zip', '_server_pack.zip')
+    }).catch(error => {
+      this.$q.notify({
+        timeout: 5000,
+        progress: true,
+        icon: 'error',
+        color: 'negative',
+        message: 'Could not retrieve modpack: ' + error
+      });
+    })
   }
 });
 </script>
 
 <style>
 .download-serverpack {
-  height: 350px;
+  height: 400px;
   width: 600px;
 }
 </style>
diff --git a/serverpackcreator-web/build.gradle.kts b/serverpackcreator-web/build.gradle.kts
index 862cf7654..29c655168 100644
--- a/serverpackcreator-web/build.gradle.kts
+++ b/serverpackcreator-web/build.gradle.kts
@@ -29,21 +29,25 @@ configurations {
 
 dependencies {
     api(project(":serverpackcreator-api"))
-    api("org.jetbrains.kotlin:kotlin-reflect:1.9.10")
-    api("com.fasterxml.jackson.module:jackson-module-kotlin:2.14.2")
-    api("org.springframework.boot:spring-boot-starter-web:3.1.0")
-    api("org.springframework.boot:spring-boot-starter-log4j2:3.0.4")
-    api("org.springframework.boot:spring-boot-starter-data-jpa:3.0.4")
-    api("org.postgresql:postgresql:42.6.0")
-    api("org.javassist:javassist:3.29.2-GA")
-    testImplementation("org.junit.jupiter:junit-jupiter-api:5.9.3")
-    testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine:5.9.3")
-    testRuntimeOnly("com.h2database:h2:2.2.220")
-    testImplementation("org.springframework.boot:spring-boot-starter-test:3.1.0")
-    developmentOnly("org.springframework.boot:spring-boot-devtools:3.0.4")
+    api("org.jetbrains.kotlin:kotlin-reflect:1.9.23")
+    api("com.fasterxml.jackson.module:jackson-module-kotlin:2.17.0")
+    api("org.springframework.boot:spring-boot-starter-web:3.2.4")
+    api("org.springframework.boot:spring-boot-starter-log4j2:3.2.4")
+    api("org.springframework.boot:spring-boot-starter-data-jpa:3.2.5")
+    api("org.postgresql:postgresql:42.7.3")
+    api("org.javassist:javassist:3.30.2-GA")
+    testImplementation("org.junit.jupiter:junit-jupiter-api:5.10.2")
+    testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine:5.10.2")
+    testRuntimeOnly("com.h2database:h2:2.2.224")
+    testImplementation("org.springframework.boot:spring-boot-starter-test:3.2.4")
+    developmentOnly("org.springframework.boot:spring-boot-devtools:3.2.5")
     //developmentOnly("org.springdoc:springdoc-openapi-starter-webmvc-ui:2.2.0")
 }
 
+tasks.bootJar {
+    dependsOn(":serverpackcreator-api:processTestResources")
+}
+
 tasks.clean {
     doFirst {
         delete {
@@ -55,6 +59,7 @@ tasks.clean {
 }
 
 tasks.test {
+    dependsOn(":serverpackcreator-api:processTestResources")
     systemProperty("java.util.logging.manager","org.jboss.logmanager.LogManager")
     doFirst {
         val tests = File(projectDir,"tests").absoluteFile
diff --git a/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/WebService.kt b/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/WebService.kt
index 5c98534e8..528c9f9f6 100644
--- a/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/WebService.kt
+++ b/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/WebService.kt
@@ -1,4 +1,4 @@
-/* Copyright (C) 2023  Griefed
+/* Copyright (C) 2024  Griefed
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
@@ -27,19 +27,25 @@ import org.springframework.boot.autoconfigure.domain.EntityScan
 import org.springframework.boot.context.properties.EnableConfigurationProperties
 import org.springframework.context.ConfigurableApplicationContext
 import org.springframework.scheduling.annotation.EnableScheduling
+import java.io.File
 
 @SpringBootApplication
 @EnableConfigurationProperties
 @EntityScan(value = ["de.griefed.serverpackcreator.web"])
 @EnableScheduling
 class WebService(private val api: ApiWrapper) {
-    private val log = cachedLoggerOf(this.javaClass)
+    private val log by lazy { cachedLoggerOf(this.javaClass) }
 
     fun start(args: Array<String>): ConfigurableApplicationContext {
+        val userHome = System.getProperty("user.home")
         val lastIndex = "--spring.config.location=classpath:/application.properties," +
                 "classpath:/serverpackcreator.properties," +
                 "optional:file:./serverpackcreator.properties," +
-                "optional:file:${api.apiProperties.serverPackCreatorPropertiesFile.absolutePath}"
+                "optional:file:./overrides.properties," +
+                "optional:file:${api.apiProperties.serverPackCreatorPropertiesFile.absolutePath},"+
+                "optional:file:${api.apiProperties.overridesPropertiesFile.absolutePath}," +
+                "optional:file:${File(userHome,"serverpackcreator.properties").absolutePath}," +
+                "optional:file:${File(userHome,"overrides.properties").absolutePath}"
         val springArgs = if (args.isEmpty()) {
             arrayOf(lastIndex)
         } else {
diff --git a/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/data/ModPackView.kt b/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/data/ModPackView.kt
deleted file mode 100644
index 9766ed9af..000000000
--- a/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/data/ModPackView.kt
+++ /dev/null
@@ -1,39 +0,0 @@
-/* Copyright (C) 2024  Griefed
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301
- * USA
- *
- * The full license can be found at https:github.com/Griefed/ServerPackCreator/blob/main/LICENSE
- */
-package de.griefed.serverpackcreator.web.data
-
-import de.griefed.serverpackcreator.web.modpack.ModpackSource
-import de.griefed.serverpackcreator.web.modpack.ModpackStatus
-import org.springframework.data.web.ProjectedPayload
-import java.sql.Timestamp
-
-@ProjectedPayload
-interface ModPackView {
-    var id: Int
-    var projectID: String
-    var versionID: String
-    var dateCreated: Timestamp
-    var name: String
-    var size: Double
-    var status: ModpackStatus
-    var source: ModpackSource
-    var sha256: String
-    var serverPacks: MutableList<ServerPack>
-}
\ No newline at end of file
diff --git a/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/data/ServerPackView.kt b/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/data/ServerPackView.kt
deleted file mode 100644
index d822d421e..000000000
--- a/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/data/ServerPackView.kt
+++ /dev/null
@@ -1,34 +0,0 @@
-/* Copyright (C) 2024  Griefed
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301
- * USA
- *
- * The full license can be found at https:github.com/Griefed/ServerPackCreator/blob/main/LICENSE
- */
-package de.griefed.serverpackcreator.web.data
-
-import org.springframework.data.web.ProjectedPayload
-import java.sql.Timestamp
-
-@ProjectedPayload
-interface ServerPackView {
-    var id: Int
-    var size: Double
-    var downloads: Int
-    var confirmedWorking: Int
-    var dateCreated: Timestamp
-    var sha256: String
-    var runConfiguration: RunConfiguration
-}
\ No newline at end of file
diff --git a/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/data/ModPack.kt b/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/modpack/ModPack.kt
similarity index 86%
rename from serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/data/ModPack.kt
rename to serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/modpack/ModPack.kt
index 6e957aaa9..38de779dd 100644
--- a/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/data/ModPack.kt
+++ b/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/modpack/ModPack.kt
@@ -17,10 +17,10 @@
  *
  * The full license can be found at https:github.com/Griefed/ServerPackCreator/blob/main/LICENSE
  */
-package de.griefed.serverpackcreator.web.data
+package de.griefed.serverpackcreator.web.modpack
 
-import de.griefed.serverpackcreator.web.modpack.ModpackSource
-import de.griefed.serverpackcreator.web.modpack.ModpackStatus
+import de.griefed.serverpackcreator.api.ModpackSource
+import de.griefed.serverpackcreator.web.serverpack.ServerPack
 import jakarta.persistence.*
 import org.hibernate.annotations.Cascade
 import org.hibernate.annotations.CascadeType
@@ -52,7 +52,13 @@ class ModPack {
     var size: Int = 0
 
     @Column
-    var status: ModpackStatus = ModpackStatus.QUEUED
+    var downloads: Int? = 0
+        get() {
+            return field ?: 0
+        }
+
+    @Column
+    var status: ModPackStatus = ModPackStatus.QUEUED
 
     @Column
     var source: ModpackSource = ModpackSource.ZIP
@@ -92,6 +98,6 @@ class ModPack {
     }
 
     override fun toString(): String {
-        return "ModPack(id=$id, projectID='$projectID', versionID='$versionID', dateCreated=$dateCreated, name='$name', size=$size, status=$status, source=$source, fileID=$fileID, sha256=$sha256, serverPacks=$serverPacks)"
+        return "ModPack(id=$id, projectID='$projectID', versionID='$versionID', dateCreated=$dateCreated, name='$name', size=$size, downloads=$downloads, status=$status, source=$source, fileID=$fileID, sha256=$sha256, serverPacks=$serverPacks)"
     }
 }
\ No newline at end of file
diff --git a/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/modpack/ModpackController.kt b/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/modpack/ModPackController.kt
similarity index 84%
rename from serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/modpack/ModpackController.kt
rename to serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/modpack/ModPackController.kt
index 83ac6b543..684c4a982 100644
--- a/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/modpack/ModpackController.kt
+++ b/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/modpack/ModPackController.kt
@@ -19,14 +19,11 @@
  */
 package de.griefed.serverpackcreator.web.modpack
 
-import de.griefed.serverpackcreator.web.data.ModPackView
-import de.griefed.serverpackcreator.web.data.ServerPack
-import de.griefed.serverpackcreator.web.data.ZipResponse
-import de.griefed.serverpackcreator.web.runconfiguration.RunConfigurationService
+import de.griefed.serverpackcreator.web.serverpack.ServerPack
+import de.griefed.serverpackcreator.web.serverpack.runconfiguration.RunConfigurationService
 import de.griefed.serverpackcreator.web.storage.StorageException
 import de.griefed.serverpackcreator.web.task.TaskDetail
 import de.griefed.serverpackcreator.web.task.TaskExecutionServiceImpl
-import org.apache.logging.log4j.kotlin.KotlinLogger
 import org.apache.logging.log4j.kotlin.cachedLoggerOf
 import org.springframework.beans.factory.annotation.Autowired
 import org.springframework.core.io.ByteArrayResource
@@ -41,24 +38,27 @@ import org.springframework.web.multipart.MultipartFile
 @RestController
 @CrossOrigin(origins = ["*"])
 @RequestMapping("/api/v2/modpacks")
-class ModpackController @Autowired constructor(
-    private val modpackService: ModpackService,
+class ModPackController @Autowired constructor(
+    private val modpackService: ModPackService,
     private val runConfigurationService: RunConfigurationService,
     private val taskExecutionServiceImpl: TaskExecutionServiceImpl
 ) {
-    private val logger: KotlinLogger = cachedLoggerOf(this.javaClass)
+    private val log by lazy { cachedLoggerOf(this.javaClass) }
 
     @GetMapping("/download/{id:[0-9]+}", produces = ["application/zip"])
     @ResponseBody
     fun downloadModpack(@PathVariable id: Int): ResponseEntity<Resource> {
         val modpack = modpackService.getModpack(id)
         if (modpack.isEmpty) {
+            log.warn("Modpack with ID $id not found")
             return ResponseEntity.notFound().build()
         }
         val modpackArchive = modpackService.getModPackArchive(modpack.get())
         if (modpackArchive.isEmpty) {
+            log.warn("No archive found for modpack with ID $id")
             return ResponseEntity.notFound().build()
         }
+        modpackService.updateDownloadStats(modpack.get())
         return ResponseEntity.ok()
             .contentType(MediaType.parseMediaType("application/zip"))
             .header(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=\"${modpack.get().name}\"")
@@ -89,7 +89,7 @@ class ModpackController @Autowired constructor(
                 modPackId = null,
                 runConfigId = null,
                 serverPackId = null,
-                status = ModpackStatus.ERROR
+                status = ModPackStatus.ERROR
             )
             return ResponseEntity.badRequest().header(HttpHeaders.CONTENT_TYPE, MimeTypeUtils.APPLICATION_JSON_VALUE)
                 .body(zipResponse)
@@ -108,7 +108,7 @@ class ModpackController @Autowired constructor(
                 modPackId = modpack.id,
                 runConfigId = taskDetail.runConfiguration?.id,
                 serverPackId = null,
-                status = ModpackStatus.QUEUED
+                status = ModPackStatus.QUEUED
             )
             return ResponseEntity.ok().header(HttpHeaders.CONTENT_TYPE, MimeTypeUtils.APPLICATION_JSON_VALUE)
                 .body(zipResponse)
@@ -119,7 +119,7 @@ class ModpackController @Autowired constructor(
                 modPackId = ex.id,
                 runConfigId = runConfig.id,
                 serverPackId = null,
-                status = ModpackStatus.ERROR
+                status = ModPackStatus.ERROR
             )
             return ResponseEntity.badRequest().header(HttpHeaders.CONTENT_TYPE, MimeTypeUtils.APPLICATION_JSON_VALUE)
                 .body(zipResponse)
@@ -147,12 +147,12 @@ class ModpackController @Autowired constructor(
                         modPackId = modPackID,
                         runConfigId = null,
                         serverPackId = null,
-                        status = ModpackStatus.ERROR
+                        status = ModPackStatus.ERROR
                     )
                 )
         }
         val taskDetail = TaskDetail(modpack.get())
-        taskDetail.modpack.status = ModpackStatus.QUEUED
+        taskDetail.modpack.status = ModPackStatus.QUEUED
         taskDetail.runConfiguration = runConfigurationService.createRunConfig(
             minecraftVersion, modloader, modloaderVersion, startArgs, clientMods, whiteListMods
         )
@@ -171,7 +171,7 @@ class ModpackController @Autowired constructor(
                         modPackId = modPackID,
                         runConfigId = taskDetail.runConfiguration!!.id,
                         serverPackId = serverpack.id,
-                        status = ModpackStatus.GENERATED
+                        status = ModPackStatus.GENERATED
                     )
                 )
         }
@@ -184,14 +184,14 @@ class ModpackController @Autowired constructor(
                     modPackId = modPackID,
                     runConfigId = taskDetail.runConfiguration?.id,
                     serverPackId = null,
-                    status = ModpackStatus.QUEUED
+                    status = ModPackStatus.QUEUED
                 )
             )
     }
 
     @GetMapping("/all", produces = ["application/json"])
     @ResponseBody
-    fun getAllModPacks(): ResponseEntity<List<ModPackView>> {
+    fun getAllModPacks(): ResponseEntity<List<ModPack>> {
         return ResponseEntity.ok().header(HttpHeaders.CONTENT_TYPE, MimeTypeUtils.APPLICATION_JSON_VALUE).body(
             modpackService.getModpacks()
         )
@@ -199,10 +199,24 @@ class ModpackController @Autowired constructor(
 
     @GetMapping("/{id:[0-9]+}", produces = ["application/json"])
     @ResponseBody
-    fun getModpack(@PathVariable id: Int): ResponseEntity<ModPackView> {
-        return if (modpackService.getModpackView(id).isPresent) {
+    fun getModpack(@PathVariable id: Int): ResponseEntity<ModPack> {
+        val pack = modpackService.getModpack(id)
+        return if (pack.isPresent) {
             ResponseEntity.ok().header(HttpHeaders.CONTENT_TYPE, MimeTypeUtils.APPLICATION_JSON_VALUE).body(
-                modpackService.getModpackView(id).get()
+                pack.get()
+            )
+        } else {
+            ResponseEntity.notFound().header(HttpHeaders.CONTENT_TYPE, MimeTypeUtils.APPLICATION_JSON_VALUE).build()
+        }
+    }
+
+    @GetMapping("byserverpack/{id:[0-9]+}", produces = ["application/json"])
+    @ResponseBody
+    fun getModPackByServerPack(@PathVariable id: Int): ResponseEntity<ModPack> {
+        val pack = modpackService.getByServerPack(id)
+        return if (pack.isPresent) {
+            ResponseEntity.ok().header(HttpHeaders.CONTENT_TYPE, MimeTypeUtils.APPLICATION_JSON_VALUE).body(
+                pack.get()
             )
         } else {
             ResponseEntity.notFound().header(HttpHeaders.CONTENT_TYPE, MimeTypeUtils.APPLICATION_JSON_VALUE).build()
diff --git a/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/modpack/ModPackDownload.kt b/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/modpack/ModPackDownload.kt
new file mode 100644
index 000000000..592db0c16
--- /dev/null
+++ b/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/modpack/ModPackDownload.kt
@@ -0,0 +1,18 @@
+package de.griefed.serverpackcreator.web.modpack
+
+import jakarta.persistence.*
+import org.hibernate.annotations.CreationTimestamp
+import java.sql.Timestamp
+
+@Entity
+class ModPackDownload(@ManyToOne var modPack: ModPack) {
+
+    @Id
+    @GeneratedValue
+    @Column(updatable = false, nullable = false)
+    var id: Int = 0
+
+    @CreationTimestamp
+    @Column
+    var downloadedAt: Timestamp? = null
+}
\ No newline at end of file
diff --git a/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/modpack/ModPackDownloadRepository.kt b/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/modpack/ModPackDownloadRepository.kt
new file mode 100644
index 000000000..921575c01
--- /dev/null
+++ b/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/modpack/ModPackDownloadRepository.kt
@@ -0,0 +1,9 @@
+package de.griefed.serverpackcreator.web.modpack
+
+import org.springframework.data.jpa.repository.JpaRepository
+import org.springframework.stereotype.Repository
+
+@Repository
+interface ModPackDownloadRepository : JpaRepository<ModPackDownload, Int> {
+    fun findAllByModPack(modPack: ModPack): List<ModPackDownload>
+}
\ No newline at end of file
diff --git a/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/modpack/ModpackRepository.kt b/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/modpack/ModPackRepository.kt
similarity index 72%
rename from serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/modpack/ModpackRepository.kt
rename to serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/modpack/ModPackRepository.kt
index 21747272d..7950fa415 100644
--- a/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/modpack/ModpackRepository.kt
+++ b/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/modpack/ModPackRepository.kt
@@ -19,18 +19,13 @@
  */
 package de.griefed.serverpackcreator.web.modpack
 
-import de.griefed.serverpackcreator.web.data.ModPack
-import de.griefed.serverpackcreator.web.data.ModPackView
-import de.griefed.serverpackcreator.web.data.ServerPack
-import org.springframework.data.domain.Sort
+import de.griefed.serverpackcreator.web.serverpack.ServerPack
 import org.springframework.data.jpa.repository.JpaRepository
 import org.springframework.stereotype.Repository
+
 import java.util.*
 
 @Repository
-interface ModpackRepository : JpaRepository<ModPack, Int> {
-    fun findAllProjectedBy(): MutableList<ModPackView>
-    fun findAllProjectedBy(sort: Sort): MutableList<ModPackView>
-    fun findProjectedById(id: Int) : Optional<ModPackView>
+interface ModPackRepository : JpaRepository<ModPack, Int> {
     fun findByServerPacksContains(serverPack: ServerPack): Optional<ModPack>
 }
\ No newline at end of file
diff --git a/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/modpack/ModpackService.kt b/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/modpack/ModPackService.kt
similarity index 76%
rename from serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/modpack/ModpackService.kt
rename to serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/modpack/ModPackService.kt
index 4ac06c27d..b854db022 100644
--- a/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/modpack/ModpackService.kt
+++ b/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/modpack/ModPackService.kt
@@ -21,11 +21,11 @@ package de.griefed.serverpackcreator.web.modpack
 
 import de.griefed.serverpackcreator.api.ApiProperties
 import de.griefed.serverpackcreator.api.ConfigurationHandler
+import de.griefed.serverpackcreator.api.ModpackSource
 import de.griefed.serverpackcreator.api.PackConfig
-import de.griefed.serverpackcreator.web.data.ModPack
-import de.griefed.serverpackcreator.web.data.ModPackView
-import de.griefed.serverpackcreator.web.data.RunConfiguration
-import de.griefed.serverpackcreator.web.data.ServerPack
+import de.griefed.serverpackcreator.web.serverpack.ServerPack
+import de.griefed.serverpackcreator.web.serverpack.ServerPackRepository
+import de.griefed.serverpackcreator.web.serverpack.customizing.RunConfiguration
 import de.griefed.serverpackcreator.web.storage.StorageException
 import de.griefed.serverpackcreator.web.storage.StorageSystem
 import org.springframework.beans.factory.annotation.Autowired
@@ -38,14 +38,35 @@ import java.nio.file.Path
 import java.util.*
 
 @Service
-class ModpackService @Autowired constructor(
-    private val modpackRepository: ModpackRepository,
+class ModPackService @Autowired constructor(
+    private val modpackRepository: ModPackRepository,
     private val configurationHandler: ConfigurationHandler,
+    private val modPackDownloadRepository: ModPackDownloadRepository,
+    private val serverPackRepository: ServerPackRepository,
     apiProperties: ApiProperties,
 ) {
     private val rootLocation: Path = apiProperties.modpacksDirectory.toPath()
     private val storage: StorageSystem = StorageSystem(rootLocation)
 
+    /**
+     * Increment the download counter for a given modpack entry in the database identified by the
+     * database id.
+     *
+     * @param id The database id of the modpack.
+     * @author Griefed
+     */
+    fun updateDownloadStats(modPack: ModPack): Optional<ModPack> {
+        val request = modpackRepository.findById(modPack.id)
+        if (request.isPresent) {
+            val pack = request.get()
+            pack.downloads = pack.downloads!! + 1
+            modPackDownloadRepository.save(ModPackDownload(modPack))
+            return Optional.of(modpackRepository.save(pack))
+        } else {
+            return Optional.empty()
+        }
+    }
+
     /**
      * Store the multipart-file to disk. If a match in SHA256 hashes is found, a [StorageException] is thrown to prevent
      * duplicates and save storage.
@@ -55,7 +76,7 @@ class ModpackService @Autowired constructor(
     @Throws(StorageException::class)
     fun saveZipModpack(file: MultipartFile): ModPack {
         val modpack = ModPack()
-        modpack.status = ModpackStatus.QUEUED
+        modpack.status = ModPackStatus.QUEUED
         modpack.source = ModpackSource.ZIP
         val savedFile = storage.store(file).get()
         val check = configurationHandler.checkZipArchive(savedFile.file.toString())
@@ -88,12 +109,17 @@ class ModpackService @Autowired constructor(
         return modpackRepository.findById(id)
     }
 
-    fun getModpackView(id: Int): Optional<ModPackView> {
-        return modpackRepository.findProjectedById(id)
+    fun getModpacks(): List<ModPack> {
+        return modpackRepository.findAll(Sort.by(Sort.Direction.DESC, "dateCreated"))
     }
 
-    fun getModpacks(): List<ModPackView> {
-        return modpackRepository.findAllProjectedBy(Sort.by(Sort.Direction.DESC, "dateCreated"))
+    fun getByServerPack(id: Int) : Optional<ModPack> {
+        val serverPack = serverPackRepository.findById(id)
+        return if (serverPack.isPresent) {
+            getByServerPack(serverPack.get())
+        } else {
+            Optional.empty()
+        }
     }
 
     fun getByServerPack(serverPack: ServerPack) : Optional<ModPack> {
@@ -105,7 +131,7 @@ class ModpackService @Autowired constructor(
         packConfig.modpackDir = rootLocation.resolve("${modpack.fileID}.zip").normalize().toFile().absolutePath
         packConfig.setClientMods(runConfiguration.clientMods.map { it.mod }.toMutableList())
         packConfig.setModsWhitelist(runConfiguration.whitelistedMods.map { it.mod }.toMutableList())
-        if (modpack.status == ModpackStatus.GENERATING) {
+        if (modpack.status == ModPackStatus.GENERATING) {
             packConfig.inclusions.addAll(configurationHandler.suggestInclusions(packConfig.modpackDir))
         }
         packConfig.minecraftVersion = runConfiguration.minecraftVersion
diff --git a/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/modpack/ModpackStatus.kt b/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/modpack/ModPackStatus.kt
similarity index 97%
rename from serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/modpack/ModpackStatus.kt
rename to serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/modpack/ModPackStatus.kt
index 7f25ba74a..cf0e9a2b2 100644
--- a/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/modpack/ModpackStatus.kt
+++ b/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/modpack/ModPackStatus.kt
@@ -19,6 +19,6 @@
  */
 package de.griefed.serverpackcreator.web.modpack
 
-enum class ModpackStatus {
+enum class ModPackStatus {
     QUEUED, CHECKING, CHECKED, GENERATING, GENERATED, ERROR
 }
\ No newline at end of file
diff --git a/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/data/ZipResponse.kt b/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/modpack/ZipResponse.kt
similarity index 93%
rename from serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/data/ZipResponse.kt
rename to serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/modpack/ZipResponse.kt
index df9f4536a..8eac6a9a8 100644
--- a/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/data/ZipResponse.kt
+++ b/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/modpack/ZipResponse.kt
@@ -17,9 +17,7 @@
  *
  * The full license can be found at https:github.com/Griefed/ServerPackCreator/blob/main/LICENSE
  */
-package de.griefed.serverpackcreator.web.data
-
-import de.griefed.serverpackcreator.web.modpack.ModpackStatus
+package de.griefed.serverpackcreator.web.modpack
 
 class ZipResponse(
     val message: String,
@@ -27,7 +25,7 @@ class ZipResponse(
     val modPackId: Int?,
     val runConfigId: Int?,
     val serverPackId: Int?,
-    val status: ModpackStatus?
+    val status: ModPackStatus?
 ) {
     override fun equals(other: Any?): Boolean {
         if (this === other) return true
diff --git a/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/scheduling/DatabaseCleanupSchedule.kt b/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/scheduling/DatabaseCleanupSchedule.kt
index 45196c0b1..73ec8d746 100644
--- a/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/scheduling/DatabaseCleanupSchedule.kt
+++ b/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/scheduling/DatabaseCleanupSchedule.kt
@@ -20,9 +20,9 @@
 package de.griefed.serverpackcreator.web.scheduling
 
 import de.griefed.serverpackcreator.api.ApiProperties
-import de.griefed.serverpackcreator.web.modpack.ModpackRepository
-import de.griefed.serverpackcreator.web.modpack.ModpackService
-import de.griefed.serverpackcreator.web.modpack.ModpackStatus
+import de.griefed.serverpackcreator.web.modpack.ModPackRepository
+import de.griefed.serverpackcreator.web.modpack.ModPackService
+import de.griefed.serverpackcreator.web.modpack.ModPackStatus
 import de.griefed.serverpackcreator.web.serverpack.ServerPackRepository
 import org.apache.logging.log4j.kotlin.cachedLoggerOf
 import org.springframework.beans.factory.annotation.Autowired
@@ -33,12 +33,12 @@ import kotlin.io.path.listDirectoryEntries
 
 @Service
 class DatabaseCleanupSchedule @Autowired constructor(
-    private val modpackRepository: ModpackRepository,
-    private val modpackService: ModpackService,
+    private val modpackRepository: ModPackRepository,
+    private val modpackService: ModPackService,
     private val serverPackRepository: ServerPackRepository,
     apiProperties: ApiProperties
 ) {
-    private val log = cachedLoggerOf(this.javaClass)
+    private val log by lazy { cachedLoggerOf(this.javaClass) }
     private val modPackRoot: Path = apiProperties.modpacksDirectory.toPath()
     private val serverPackRoot: Path = apiProperties.serverPacksDirectory.toPath()
 
@@ -47,7 +47,7 @@ class DatabaseCleanupSchedule @Autowired constructor(
         log.info("Cleaning database...")
         val modpackFiles = modPackRoot.listDirectoryEntries().map { it.toFile() }
         for (modpack in modpackRepository.findAll()) {
-            if (modpack.status == ModpackStatus.ERROR) {
+            if (modpack.status == ModPackStatus.ERROR) {
                 modpackService.deleteModpack(modpack.id)
                 log.info("Deleted Modpack: ${modpack.id}-${modpack.name}")
             } else if (modpackFiles.find { modpackFile -> modpackFile.name.contains(modpack.fileID!!.toString(), ignoreCase = true) } == null) {
diff --git a/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/scheduling/FileCleanupSchedule.kt b/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/scheduling/FileCleanupSchedule.kt
index 9aaa3bc1a..b968b5b82 100644
--- a/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/scheduling/FileCleanupSchedule.kt
+++ b/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/scheduling/FileCleanupSchedule.kt
@@ -21,7 +21,7 @@ package de.griefed.serverpackcreator.web.scheduling
 
 import de.griefed.serverpackcreator.api.ApiProperties
 import de.griefed.serverpackcreator.api.utilities.common.deleteQuietly
-import de.griefed.serverpackcreator.web.modpack.ModpackRepository
+import de.griefed.serverpackcreator.web.modpack.ModPackRepository
 import de.griefed.serverpackcreator.web.serverpack.ServerPackRepository
 import org.apache.logging.log4j.kotlin.cachedLoggerOf
 import org.springframework.beans.factory.annotation.Autowired
@@ -32,11 +32,11 @@ import kotlin.io.path.listDirectoryEntries
 
 @Service
 class FileCleanupSchedule @Autowired constructor(
-    private val modpackRepository: ModpackRepository,
+    private val modpackRepository: ModPackRepository,
     private val serverPackRepository: ServerPackRepository,
     apiProperties: ApiProperties
 ) {
-    private val log = cachedLoggerOf(this.javaClass)
+    private val log by lazy { cachedLoggerOf(this.javaClass) }
     private val modPackRoot: Path = apiProperties.modpacksDirectory.toPath()
     private val serverPackRoot: Path = apiProperties.serverPacksDirectory.toPath()
 
diff --git a/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/scheduling/VersionRefreshSchedule.kt b/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/scheduling/VersionRefreshSchedule.kt
index de81ca4ce..bac94d5dd 100644
--- a/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/scheduling/VersionRefreshSchedule.kt
+++ b/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/scheduling/VersionRefreshSchedule.kt
@@ -35,7 +35,7 @@ import javax.xml.parsers.ParserConfigurationException
  */
 @Service
 class VersionRefreshSchedule @Autowired constructor(private val versionMeta: VersionMeta) {
-    private val log = cachedLoggerOf(this.javaClass)
+    private val log by lazy { cachedLoggerOf(this.javaClass) }
 
     @Scheduled(cron = "\${de.griefed.serverpackcreator.spring.schedules.versions.refresh}")
     private fun refreshVersionLister() {
diff --git a/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/data/ServerPack.kt b/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/serverpack/ServerPack.kt
similarity index 95%
rename from serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/data/ServerPack.kt
rename to serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/serverpack/ServerPack.kt
index 7e1f3b62f..ddd3b52d8 100644
--- a/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/data/ServerPack.kt
+++ b/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/serverpack/ServerPack.kt
@@ -17,8 +17,9 @@
  *
  * The full license can be found at https:github.com/Griefed/ServerPackCreator/blob/main/LICENSE
  */
-package de.griefed.serverpackcreator.web.data
+package de.griefed.serverpackcreator.web.serverpack
 
+import de.griefed.serverpackcreator.web.serverpack.customizing.RunConfiguration
 import jakarta.persistence.*
 import org.hibernate.annotations.CreationTimestamp
 import java.sql.Timestamp
diff --git a/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/serverpack/ServerPackController.kt b/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/serverpack/ServerPackController.kt
index 582b497a9..452e8cfbd 100644
--- a/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/serverpack/ServerPackController.kt
+++ b/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/serverpack/ServerPackController.kt
@@ -19,9 +19,7 @@
  */
 package de.griefed.serverpackcreator.web.serverpack
 
-import de.griefed.serverpackcreator.web.data.ServerPack
-import de.griefed.serverpackcreator.web.data.ServerPackView
-import de.griefed.serverpackcreator.web.modpack.ModpackService
+import de.griefed.serverpackcreator.web.modpack.ModPackService
 import org.springframework.beans.factory.annotation.Autowired
 import org.springframework.core.io.ByteArrayResource
 import org.springframework.core.io.Resource
@@ -33,7 +31,7 @@ import org.springframework.web.bind.annotation.*
 
 /**
  * RestController for everything server pack related, like downloads.<br></br> All requests are in
- * `/api/v1/packs`.
+ * `/api/v2/serverpacks`.
  *
  * @author Griefed
  */
@@ -42,7 +40,7 @@ import org.springframework.web.bind.annotation.*
 @RequestMapping("/api/v2/serverpacks")
 class ServerPackController @Autowired constructor(
     private val serverPackService: ServerPackService,
-    private val modpackService: ModpackService
+    private val modpackService: ModPackService
 ) {
 
     /**
@@ -62,7 +60,7 @@ class ServerPackController @Autowired constructor(
                 ResponseEntity.notFound().build()
             } else {
                 val modPack = modpackService.getByServerPack(serverPack.get())
-                serverPackService.updateDownloadCounter(id)
+                serverPackService.updateDownloadStats(id)
                 val fileName = modPack.get().name.replace(".zip","",ignoreCase = true)
                 ResponseEntity.ok()
                     .contentType(MediaType.parseMediaType("application/zip"))
@@ -114,7 +112,7 @@ class ServerPackController @Autowired constructor(
      */
     @GetMapping("/all", produces = ["application/json"])
     @ResponseBody
-    fun getAllServerPacks(): ResponseEntity<List<ServerPackView>> {
+    fun getAllServerPacks(): ResponseEntity<List<ServerPack>> {
         return ResponseEntity.ok().header(HttpHeaders.CONTENT_TYPE, MimeTypeUtils.APPLICATION_JSON_VALUE).body(
             serverPackService.getServerPacks()
         )
@@ -122,10 +120,10 @@ class ServerPackController @Autowired constructor(
 
     @GetMapping("/{id:[0-9]+}", produces = ["application/json"])
     @ResponseBody
-    fun getServerPack(@PathVariable id: Int): ResponseEntity<ServerPackView> {
-        return if (serverPackService.getServerPackView(id).isPresent) {
+    fun getServerPack(@PathVariable id: Int): ResponseEntity<ServerPack> {
+        return if (serverPackService.getServerPack(id).isPresent) {
             ResponseEntity.ok().header(HttpHeaders.CONTENT_TYPE, MimeTypeUtils.APPLICATION_JSON_VALUE).body(
-                serverPackService.getServerPackView(id).get()
+                serverPackService.getServerPack(id).get()
             )
         } else {
             ResponseEntity.notFound().build()
diff --git a/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/serverpack/ServerPackDownload.kt b/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/serverpack/ServerPackDownload.kt
new file mode 100644
index 000000000..39268f0be
--- /dev/null
+++ b/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/serverpack/ServerPackDownload.kt
@@ -0,0 +1,18 @@
+package de.griefed.serverpackcreator.web.serverpack
+
+import jakarta.persistence.*
+import org.hibernate.annotations.CreationTimestamp
+import java.sql.Timestamp
+
+@Entity
+class ServerPackDownload(@ManyToOne var serverPack: ServerPack) {
+
+    @Id
+    @GeneratedValue
+    @Column(updatable = false, nullable = false)
+    var id: Int = 0
+
+    @CreationTimestamp
+    @Column
+    var downloadedAt: Timestamp? = null
+}
\ No newline at end of file
diff --git a/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/serverpack/ServerPackDownloadRepository.kt b/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/serverpack/ServerPackDownloadRepository.kt
new file mode 100644
index 000000000..d26b9facd
--- /dev/null
+++ b/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/serverpack/ServerPackDownloadRepository.kt
@@ -0,0 +1,9 @@
+package de.griefed.serverpackcreator.web.serverpack
+
+import org.springframework.data.jpa.repository.JpaRepository
+import org.springframework.stereotype.Repository
+
+@Repository
+interface ServerPackDownloadRepository : JpaRepository<ServerPackDownload, Int> {
+    fun findAllByServerPack(serverPack: ServerPack): List<ServerPackDownload>
+}
\ No newline at end of file
diff --git a/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/serverpack/ServerPackRepository.kt b/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/serverpack/ServerPackRepository.kt
index 39194cdc6..0336c1a36 100644
--- a/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/serverpack/ServerPackRepository.kt
+++ b/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/serverpack/ServerPackRepository.kt
@@ -19,16 +19,8 @@
  */
 package de.griefed.serverpackcreator.web.serverpack
 
-import de.griefed.serverpackcreator.web.data.ServerPack
-import de.griefed.serverpackcreator.web.data.ServerPackView
-import org.springframework.data.domain.Sort
 import org.springframework.data.jpa.repository.JpaRepository
 import org.springframework.stereotype.Repository
-import java.util.*
 
 @Repository
-interface ServerPackRepository : JpaRepository<ServerPack, Int> {
-    fun findAllProjectedBy(): MutableList<ServerPackView>
-    fun findAllProjectedBy(sort: Sort): MutableList<ServerPackView>
-    fun findProjectedById(id: Int): Optional<ServerPackView>
-}
\ No newline at end of file
+interface ServerPackRepository : JpaRepository<ServerPack, Int>
\ No newline at end of file
diff --git a/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/serverpack/ServerPackService.kt b/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/serverpack/ServerPackService.kt
index 921567560..987bbff83 100644
--- a/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/serverpack/ServerPackService.kt
+++ b/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/serverpack/ServerPackService.kt
@@ -20,10 +20,7 @@
 package de.griefed.serverpackcreator.web.serverpack
 
 import de.griefed.serverpackcreator.api.ApiProperties
-import de.griefed.serverpackcreator.web.data.ServerPack
-import de.griefed.serverpackcreator.web.data.ServerPackView
 import de.griefed.serverpackcreator.web.storage.StorageSystem
-import org.apache.logging.log4j.kotlin.cachedLoggerOf
 import org.springframework.beans.factory.annotation.Autowired
 import org.springframework.data.domain.Sort
 import org.springframework.http.ResponseEntity
@@ -42,10 +39,10 @@ import kotlin.io.path.moveTo
 @Service
 class ServerPackService @Autowired constructor(
     private val serverPackRepository: ServerPackRepository,
+    private val serverPackDownloadRepository: ServerPackDownloadRepository,
     messageDigestInstance: MessageDigest,
     apiProperties: ApiProperties
 ) {
-    private val log = cachedLoggerOf(this.javaClass)
     private val rootLocation: Path = apiProperties.serverPacksDirectory.toPath()
     private val storage: StorageSystem = StorageSystem(rootLocation, messageDigestInstance)
 
@@ -60,11 +57,12 @@ class ServerPackService @Autowired constructor(
      * @param id The database id of the server pack.
      * @author Griefed
      */
-    fun updateDownloadCounter(id: Int): Optional<ServerPack> {
+    fun updateDownloadStats(id: Int): Optional<ServerPack> {
         val request = serverPackRepository.findById(id)
         if (request.isPresent) {
             val pack = request.get()
             pack.downloads++
+            serverPackDownloadRepository.save(ServerPackDownload(pack))
             return Optional.of(serverPackRepository.save(pack))
         } else {
             return Optional.empty()
@@ -78,7 +76,7 @@ class ServerPackService @Autowired constructor(
      * @param serverPack The server pack for which to update the download counter.
      * @author Griefed
      */
-    fun updateDownloadCounter(serverPack: ServerPack) {
+    fun updateDownloadStats(serverPack: ServerPack) {
         serverPack.downloads++
         serverPackRepository.save(serverPack)
     }
@@ -117,8 +115,8 @@ class ServerPackService @Autowired constructor(
      * @return List ServerPackModel. Returns a list of all available server packs.
      * @author Griefed
      */
-    fun getServerPacks(): List<ServerPackView> {
-        return serverPackRepository.findAllProjectedBy(Sort.by(Sort.Direction.DESC, "dateCreated"))
+    fun getServerPacks(): List<ServerPack> {
+        return serverPackRepository.findAll(Sort.by(Sort.Direction.DESC, "dateCreated"))
     }
 
     /**
@@ -178,7 +176,7 @@ class ServerPackService @Autowired constructor(
         return storage.load(id)
     }
 
-    fun getServerPackView(id: Int): Optional<ServerPackView> {
-        return serverPackRepository.findProjectedById(id)
+    fun getServerPackView(id: Int): Optional<ServerPack> {
+        return serverPackRepository.findById(id)
     }
 }
diff --git a/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/data/ClientMod.kt b/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/serverpack/customizing/ClientMod.kt
similarity index 96%
rename from serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/data/ClientMod.kt
rename to serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/serverpack/customizing/ClientMod.kt
index d14a4fdd8..0b0ee7c3c 100644
--- a/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/data/ClientMod.kt
+++ b/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/serverpack/customizing/ClientMod.kt
@@ -17,7 +17,7 @@
  *
  * The full license can be found at https:github.com/Griefed/ServerPackCreator/blob/main/LICENSE
  */
-package de.griefed.serverpackcreator.web.data
+package de.griefed.serverpackcreator.web.serverpack.customizing
 
 import jakarta.persistence.Column
 import jakarta.persistence.Entity
diff --git a/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/customizing/ClientModRepository.kt b/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/serverpack/customizing/ClientModRepository.kt
similarity index 90%
rename from serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/customizing/ClientModRepository.kt
rename to serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/serverpack/customizing/ClientModRepository.kt
index f110392e9..525af8c64 100644
--- a/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/customizing/ClientModRepository.kt
+++ b/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/serverpack/customizing/ClientModRepository.kt
@@ -17,9 +17,8 @@
  *
  * The full license can be found at https:github.com/Griefed/ServerPackCreator/blob/main/LICENSE
  */
-package de.griefed.serverpackcreator.web.customizing
+package de.griefed.serverpackcreator.web.serverpack.customizing
 
-import de.griefed.serverpackcreator.web.data.ClientMod
 import org.springframework.stereotype.Repository
 
 @Repository
diff --git a/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/customizing/ModRepository.kt b/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/serverpack/customizing/ModRepository.kt
similarity index 94%
rename from serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/customizing/ModRepository.kt
rename to serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/serverpack/customizing/ModRepository.kt
index dcc2927b9..2053b6872 100644
--- a/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/customizing/ModRepository.kt
+++ b/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/serverpack/customizing/ModRepository.kt
@@ -17,7 +17,7 @@
  *
  * The full license can be found at https:github.com/Griefed/ServerPackCreator/blob/main/LICENSE
  */
-package de.griefed.serverpackcreator.web.customizing
+package de.griefed.serverpackcreator.web.serverpack.customizing
 
 import org.springframework.data.jpa.repository.JpaRepository
 import org.springframework.data.repository.NoRepositoryBean
diff --git a/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/data/RunConfiguration.kt b/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/serverpack/customizing/RunConfiguration.kt
similarity index 98%
rename from serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/data/RunConfiguration.kt
rename to serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/serverpack/customizing/RunConfiguration.kt
index 3452ba070..175beadd2 100644
--- a/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/data/RunConfiguration.kt
+++ b/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/serverpack/customizing/RunConfiguration.kt
@@ -17,7 +17,7 @@
  *
  * The full license can be found at https:github.com/Griefed/ServerPackCreator/blob/main/LICENSE
  */
-package de.griefed.serverpackcreator.web.data
+package de.griefed.serverpackcreator.web.serverpack.customizing
 
 import jakarta.persistence.*
 
diff --git a/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/data/StartArgument.kt b/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/serverpack/customizing/StartArgument.kt
similarity index 92%
rename from serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/data/StartArgument.kt
rename to serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/serverpack/customizing/StartArgument.kt
index bd4e6b744..c762ec8e7 100644
--- a/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/data/StartArgument.kt
+++ b/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/serverpack/customizing/StartArgument.kt
@@ -1,4 +1,4 @@
-package de.griefed.serverpackcreator.web.data
+package de.griefed.serverpackcreator.web.serverpack.customizing
 
 import jakarta.persistence.Column
 import jakarta.persistence.Entity
diff --git a/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/customizing/StartArgumentRepository.kt b/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/serverpack/customizing/StartArgumentRepository.kt
similarity index 91%
rename from serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/customizing/StartArgumentRepository.kt
rename to serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/serverpack/customizing/StartArgumentRepository.kt
index 7610bb23c..890ee6676 100644
--- a/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/customizing/StartArgumentRepository.kt
+++ b/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/serverpack/customizing/StartArgumentRepository.kt
@@ -17,9 +17,8 @@
  *
  * The full license can be found at https:github.com/Griefed/ServerPackCreator/blob/main/LICENSE
  */
-package de.griefed.serverpackcreator.web.customizing
+package de.griefed.serverpackcreator.web.serverpack.customizing
 
-import de.griefed.serverpackcreator.web.data.StartArgument
 import org.springframework.data.jpa.repository.JpaRepository
 import org.springframework.stereotype.Repository
 import java.util.*
diff --git a/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/data/WhitelistedMod.kt b/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/serverpack/customizing/WhitelistedMod.kt
similarity index 96%
rename from serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/data/WhitelistedMod.kt
rename to serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/serverpack/customizing/WhitelistedMod.kt
index 1d7daa956..e21e5740c 100644
--- a/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/data/WhitelistedMod.kt
+++ b/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/serverpack/customizing/WhitelistedMod.kt
@@ -17,7 +17,7 @@
  *
  * The full license can be found at https:github.com/Griefed/ServerPackCreator/blob/main/LICENSE
  */
-package de.griefed.serverpackcreator.web.data
+package de.griefed.serverpackcreator.web.serverpack.customizing
 
 import jakarta.persistence.Column
 import jakarta.persistence.Entity
diff --git a/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/customizing/WhitelistedModRepository.kt b/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/serverpack/customizing/WhitelistedModRepository.kt
similarity index 89%
rename from serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/customizing/WhitelistedModRepository.kt
rename to serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/serverpack/customizing/WhitelistedModRepository.kt
index 47f897834..9d5367239 100644
--- a/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/customizing/WhitelistedModRepository.kt
+++ b/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/serverpack/customizing/WhitelistedModRepository.kt
@@ -17,9 +17,8 @@
  *
  * The full license can be found at https:github.com/Griefed/ServerPackCreator/blob/main/LICENSE
  */
-package de.griefed.serverpackcreator.web.customizing
+package de.griefed.serverpackcreator.web.serverpack.customizing
 
-import de.griefed.serverpackcreator.web.data.WhitelistedMod
 import org.springframework.stereotype.Repository
 
 @Repository
diff --git a/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/runconfiguration/RunConfigurationController.kt b/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/serverpack/runconfiguration/RunConfigurationController.kt
similarity index 93%
rename from serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/runconfiguration/RunConfigurationController.kt
rename to serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/serverpack/runconfiguration/RunConfigurationController.kt
index 2a7a1aa12..5d49e9169 100644
--- a/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/runconfiguration/RunConfigurationController.kt
+++ b/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/serverpack/runconfiguration/RunConfigurationController.kt
@@ -17,9 +17,9 @@
  *
  * The full license can be found at https:github.com/Griefed/ServerPackCreator/blob/main/LICENSE
  */
-package de.griefed.serverpackcreator.web.runconfiguration
+package de.griefed.serverpackcreator.web.serverpack.runconfiguration
 
-import de.griefed.serverpackcreator.web.data.RunConfiguration
+import de.griefed.serverpackcreator.web.serverpack.customizing.RunConfiguration
 import org.springframework.beans.factory.annotation.Autowired
 import org.springframework.http.HttpHeaders
 import org.springframework.http.ResponseEntity
diff --git a/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/runconfiguration/RunConfigurationRepository.kt b/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/serverpack/runconfiguration/RunConfigurationRepository.kt
similarity index 83%
rename from serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/runconfiguration/RunConfigurationRepository.kt
rename to serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/serverpack/runconfiguration/RunConfigurationRepository.kt
index 150b6865d..4437f240a 100644
--- a/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/runconfiguration/RunConfigurationRepository.kt
+++ b/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/serverpack/runconfiguration/RunConfigurationRepository.kt
@@ -17,12 +17,12 @@
  *
  * The full license can be found at https:github.com/Griefed/ServerPackCreator/blob/main/LICENSE
  */
-package de.griefed.serverpackcreator.web.runconfiguration
+package de.griefed.serverpackcreator.web.serverpack.runconfiguration
 
-import de.griefed.serverpackcreator.web.data.ClientMod
-import de.griefed.serverpackcreator.web.data.RunConfiguration
-import de.griefed.serverpackcreator.web.data.StartArgument
-import de.griefed.serverpackcreator.web.data.WhitelistedMod
+import de.griefed.serverpackcreator.web.serverpack.customizing.ClientMod
+import de.griefed.serverpackcreator.web.serverpack.customizing.RunConfiguration
+import de.griefed.serverpackcreator.web.serverpack.customizing.StartArgument
+import de.griefed.serverpackcreator.web.serverpack.customizing.WhitelistedMod
 import org.springframework.data.jpa.repository.JpaRepository
 import org.springframework.stereotype.Repository
 import java.util.*
diff --git a/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/runconfiguration/RunConfigurationService.kt b/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/serverpack/runconfiguration/RunConfigurationService.kt
similarity index 91%
rename from serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/runconfiguration/RunConfigurationService.kt
rename to serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/serverpack/runconfiguration/RunConfigurationService.kt
index 5d9e12139..64b8414c1 100644
--- a/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/runconfiguration/RunConfigurationService.kt
+++ b/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/serverpack/runconfiguration/RunConfigurationService.kt
@@ -17,16 +17,10 @@
  *
  * The full license can be found at https:github.com/Griefed/ServerPackCreator/blob/main/LICENSE
  */
-package de.griefed.serverpackcreator.web.runconfiguration
+package de.griefed.serverpackcreator.web.serverpack.runconfiguration
 
 import de.griefed.serverpackcreator.api.ApiProperties
-import de.griefed.serverpackcreator.web.customizing.ClientModRepository
-import de.griefed.serverpackcreator.web.customizing.StartArgumentRepository
-import de.griefed.serverpackcreator.web.customizing.WhitelistedModRepository
-import de.griefed.serverpackcreator.web.data.ClientMod
-import de.griefed.serverpackcreator.web.data.RunConfiguration
-import de.griefed.serverpackcreator.web.data.StartArgument
-import de.griefed.serverpackcreator.web.data.WhitelistedMod
+import de.griefed.serverpackcreator.web.serverpack.customizing.*
 import org.springframework.beans.factory.annotation.Autowired
 import org.springframework.stereotype.Service
 import java.util.*
@@ -131,14 +125,16 @@ class RunConfigurationService @Autowired constructor(
         clientMods: MutableList<ClientMod>,
         whitelistedMods: MutableList<WhitelistedMod>
     ): RunConfiguration {
-        return save(RunConfiguration(
+        return save(
+            RunConfiguration(
             minecraftVersion = minecraftVersion,
             modloader = modloader,
             modloaderVersion = modloaderVersion,
             startArgs = startArgs,
             clientMods = clientMods,
             whitelistedMods = whitelistedMods
-        ))
+        )
+        )
     }
 
     fun load(id: Int): Optional<RunConfiguration> {
diff --git a/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/stats/StatsController.kt b/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/stats/StatsController.kt
new file mode 100644
index 000000000..2221c3f93
--- /dev/null
+++ b/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/stats/StatsController.kt
@@ -0,0 +1,107 @@
+package de.griefed.serverpackcreator.web.stats
+
+import de.griefed.serverpackcreator.web.modpack.ModPackDownload
+import de.griefed.serverpackcreator.web.serverpack.ServerPackDownload
+import de.griefed.serverpackcreator.web.stats.creation.AmountPerDate
+import de.griefed.serverpackcreator.web.stats.creation.CreationStatsService
+import de.griefed.serverpackcreator.web.stats.disk.DiskStatsData
+import de.griefed.serverpackcreator.web.stats.disk.DiskStatsService
+import de.griefed.serverpackcreator.web.stats.downloads.DownloadStatsService
+import de.griefed.serverpackcreator.web.stats.packs.AmountStatsData
+import de.griefed.serverpackcreator.web.stats.packs.AmountStatsService
+import org.springframework.beans.factory.annotation.Autowired
+import org.springframework.http.HttpHeaders
+import org.springframework.http.ResponseEntity
+import org.springframework.util.MimeTypeUtils
+import org.springframework.web.bind.annotation.*
+
+@RestController
+@CrossOrigin(origins = ["*"])
+@RequestMapping("/api/v2/stats")
+class StatsController @Autowired constructor(
+    private val downloadStatsService: DownloadStatsService,
+    private val diskStatsService: DiskStatsService,
+    private val creationStatsService: CreationStatsService,
+    private val amountStatsService: AmountStatsService
+) {
+
+    @GetMapping("/downloads/modpacks")
+    @ResponseBody
+    fun modPackDownloads(): ResponseEntity<List<AmountPerDate>> {
+        return ResponseEntity.ok().header(HttpHeaders.CONTENT_TYPE, MimeTypeUtils.APPLICATION_JSON_VALUE).body(
+            downloadStatsService.modPackDownloads()
+        )
+    }
+
+    @GetMapping("/downloads/serverpacks")
+    @ResponseBody
+    fun serverPackDownloads(): ResponseEntity<List<AmountPerDate>> {
+        return ResponseEntity.ok().header(HttpHeaders.CONTENT_TYPE, MimeTypeUtils.APPLICATION_JSON_VALUE).body(
+            downloadStatsService.serverPackDownloads()
+        )
+    }
+
+    @GetMapping("/downloads/modpacks/history")
+    @ResponseBody
+    fun modPackDownloadHistory(): ResponseEntity<List<ModPackDownload>> {
+        return ResponseEntity.ok().header(HttpHeaders.CONTENT_TYPE, MimeTypeUtils.APPLICATION_JSON_VALUE).body(
+            downloadStatsService.allModPackDownloadsHistory()
+        )
+    }
+
+    @GetMapping("/downloads/serverpacks/history")
+    @ResponseBody
+    fun serverPackDownloadHistory(): ResponseEntity<List<ServerPackDownload>> {
+        return ResponseEntity.ok().header(HttpHeaders.CONTENT_TYPE, MimeTypeUtils.APPLICATION_JSON_VALUE).body(
+            downloadStatsService.allServerPackDownloadsHistory()
+        )
+    }
+
+    @GetMapping("/downloads/modpacks/{modPackID}")
+    @ResponseBody
+    fun allDownloadsForModPack(@PathVariable modPackID: Int): ResponseEntity<List<ModPackDownload>> {
+        return ResponseEntity.ok().header(HttpHeaders.CONTENT_TYPE, MimeTypeUtils.APPLICATION_JSON_VALUE).body(
+            downloadStatsService.downloadHistoryForModPack(modPackID)
+        )
+    }
+
+    @GetMapping("/downloads/modpacks/{serverPackID}")
+    @ResponseBody
+    fun allDownloadsForServerPack(@PathVariable serverPackID: Int): ResponseEntity<List<ServerPackDownload>> {
+        return ResponseEntity.ok().header(HttpHeaders.CONTENT_TYPE, MimeTypeUtils.APPLICATION_JSON_VALUE).body(
+            downloadStatsService.downloadHistoryForServerPack(serverPackID)
+        )
+    }
+
+    @GetMapping("/disk")
+    @ResponseBody
+    fun diskStats(): ResponseEntity<List<DiskStatsData>> {
+        return ResponseEntity.ok().header(HttpHeaders.CONTENT_TYPE, MimeTypeUtils.APPLICATION_JSON_VALUE).body(
+            diskStatsService.stats
+        )
+    }
+
+    @GetMapping("/creation/modpacks")
+    @ResponseBody
+    fun modPacksCreationTimes(): ResponseEntity<List<AmountPerDate>> {
+        return ResponseEntity.ok().header(HttpHeaders.CONTENT_TYPE, MimeTypeUtils.APPLICATION_JSON_VALUE).body(
+            creationStatsService.getModpackTimeStamps()
+        )
+    }
+
+    @GetMapping("/creation/serverpacks")
+    @ResponseBody
+    fun serverPacksCreationTimes(): ResponseEntity<List<AmountPerDate>> {
+        return ResponseEntity.ok().header(HttpHeaders.CONTENT_TYPE, MimeTypeUtils.APPLICATION_JSON_VALUE).body(
+            creationStatsService.getServerPackTimeStamps()
+        )
+    }
+
+    @GetMapping("/packs")
+    @ResponseBody
+    fun amountStats(): ResponseEntity<AmountStatsData> {
+        return ResponseEntity.ok().header(HttpHeaders.CONTENT_TYPE, MimeTypeUtils.APPLICATION_JSON_VALUE).body(
+            amountStatsService.stats
+        )
+    }
+}
\ No newline at end of file
diff --git a/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/stats/creation/AmountPerDate.kt b/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/stats/creation/AmountPerDate.kt
new file mode 100644
index 000000000..751387b71
--- /dev/null
+++ b/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/stats/creation/AmountPerDate.kt
@@ -0,0 +1,3 @@
+package de.griefed.serverpackcreator.web.stats.creation
+
+data class AmountPerDate(val creations: Int, val date: String)
diff --git a/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/stats/creation/CreationStatsService.kt b/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/stats/creation/CreationStatsService.kt
new file mode 100644
index 000000000..4d0fe4e82
--- /dev/null
+++ b/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/stats/creation/CreationStatsService.kt
@@ -0,0 +1,50 @@
+package de.griefed.serverpackcreator.web.stats.creation
+
+import de.griefed.serverpackcreator.web.modpack.ModPackService
+import de.griefed.serverpackcreator.web.serverpack.ServerPackService
+import org.springframework.beans.factory.annotation.Autowired
+import org.springframework.stereotype.Service
+import java.time.LocalDateTime
+
+@Service
+class CreationStatsService @Autowired constructor(
+    private val serverPackService: ServerPackService,
+    private val modpackService: ModPackService
+) {
+
+    fun getModpackTimeStamps(): List<AmountPerDate> {
+        val dates = mutableListOf<LocalDateTime>()
+        for (pack in modpackService.getModpacks()) {
+            dates.add(pack.dateCreated!!.toLocalDateTime())
+        }
+        return count(dates)
+    }
+
+    fun getServerPackTimeStamps(): List<AmountPerDate> {
+        val dates = mutableListOf<LocalDateTime>()
+        for (pack in serverPackService.getServerPacks()) {
+            dates.add(pack.dateCreated!!.toLocalDateTime())
+        }
+        return count(dates)
+    }
+
+    private fun count(dates: List<LocalDateTime>): List<AmountPerDate> {
+        val creations = mutableListOf<AmountPerDate>()
+        for (date in dates) {
+            //skip if the date was already checked
+            if (creations.any { it.date == dateToString(date) }) {
+                continue
+            }
+            val dateStr = dateToString(date)
+            val count = dates.count { stamp ->
+                dateToString(stamp) == dateStr
+            }
+            creations.add(AmountPerDate(count, dateStr))
+        }
+        return creations
+    }
+
+    private fun dateToString(date: LocalDateTime): String {
+        return "${date.year}-${date.monthValue}-${date.dayOfMonth}"
+    }
+}
\ No newline at end of file
diff --git a/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/stats/disk/DiskStatsData.kt b/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/stats/disk/DiskStatsData.kt
new file mode 100644
index 000000000..32e44f06a
--- /dev/null
+++ b/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/stats/disk/DiskStatsData.kt
@@ -0,0 +1,10 @@
+package de.griefed.serverpackcreator.web.stats.disk
+
+data class DiskStatsData(
+    val identifier: String,
+    val dirName: String,
+    val rootName: String,
+    val totalSpace: Long,
+    val freeSpace: Long,
+    val usedBySPC: Long
+)
diff --git a/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/stats/disk/DiskStatsService.kt b/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/stats/disk/DiskStatsService.kt
new file mode 100644
index 000000000..a6e1855a0
--- /dev/null
+++ b/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/stats/disk/DiskStatsService.kt
@@ -0,0 +1,59 @@
+package de.griefed.serverpackcreator.web.stats.disk
+
+import de.griefed.serverpackcreator.api.ApiProperties
+import de.griefed.serverpackcreator.api.utilities.common.size
+import org.springframework.beans.factory.annotation.Autowired
+import org.springframework.stereotype.Service
+import java.io.File
+import java.util.*
+
+@Service
+class DiskStatsService @Autowired constructor(
+    private val apiProperties: ApiProperties
+) {
+    val stats: MutableList<DiskStatsData> = mutableListOf()
+
+    init {
+        val task = object : TimerTask() {
+            override fun run() {
+                refreshStats()
+            }
+        }
+        val timer = Timer("DiskStatsTimer")
+        timer.scheduleAtFixedRate(task, 0, 300000L)
+    }
+
+    private fun refreshStats() {
+        stats.clear()
+        stats.addAll(computeStats())
+    }
+
+    private fun computeStats(): List<DiskStatsData> {
+        val stats = mutableListOf<DiskStatsData>()
+        stats.add(computeStatsFromDirectory(apiProperties.homeDirectory, "Home"))
+        stats.add(computeStatsFromDirectory(apiProperties.modpacksDirectory, "ModPacks"))
+        stats.add(computeStatsFromDirectory(apiProperties.serverPacksDirectory, "Server Packs"))
+        stats.add(computeStatsFromDirectory(apiProperties.propertiesDirectory, "Properties"))
+        stats.add(computeStatsFromDirectory(apiProperties.configsDirectory, "Configs"))
+        stats.add(computeStatsFromDirectory(apiProperties.serverFilesDirectory, "Server Files"))
+        stats.add(computeStatsFromDirectory(apiProperties.iconsDirectory, "Icons"))
+        stats.add(computeStatsFromDirectory(apiProperties.pluginsDirectory, "Plugins"))
+        stats.add(computeStatsFromDirectory(apiProperties.pluginsConfigsDirectory, "Plugin Configs"))
+        stats.add(computeStatsFromDirectory(apiProperties.manifestsDirectory, "Manifests"))
+        stats.add(computeStatsFromDirectory(apiProperties.minecraftServerManifestsDirectory, "MC Server Manifests"))
+        stats.add(computeStatsFromDirectory(apiProperties.installerCacheDirectory, "Installer Cache"))
+        stats.add(computeStatsFromDirectory(apiProperties.logsDirectory, "Logs"))
+        stats.add(computeStatsFromDirectory(apiProperties.tomcatBaseDirectory, "Tomcat Base"))
+        stats.add(computeStatsFromDirectory(apiProperties.tomcatLogsDirectory, "Tomcat Logs"))
+        stats.add(computeStatsFromDirectory(apiProperties.workDirectory, "Work"))
+        stats.add(computeStatsFromDirectory(apiProperties.tempDirectory, "Temp"))
+        return stats
+    }
+
+    private fun computeStatsFromDirectory(directory: File, identifier: String): DiskStatsData {
+        val root: File = directory.absoluteFile.toPath().root.toFile()
+        val directorySize = directory.size()
+        val stats = DiskStatsData(identifier, directory.name, root.toString(), root.totalSpace, root.freeSpace, directorySize.toLong())
+        return stats
+    }
+}
\ No newline at end of file
diff --git a/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/stats/downloads/DownloadStatsService.kt b/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/stats/downloads/DownloadStatsService.kt
new file mode 100644
index 000000000..6af445281
--- /dev/null
+++ b/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/stats/downloads/DownloadStatsService.kt
@@ -0,0 +1,93 @@
+package de.griefed.serverpackcreator.web.stats.downloads
+
+import de.griefed.serverpackcreator.web.modpack.ModPack
+import de.griefed.serverpackcreator.web.modpack.ModPackDownload
+import de.griefed.serverpackcreator.web.modpack.ModPackDownloadRepository
+import de.griefed.serverpackcreator.web.modpack.ModPackRepository
+import de.griefed.serverpackcreator.web.serverpack.ServerPack
+import de.griefed.serverpackcreator.web.serverpack.ServerPackDownload
+import de.griefed.serverpackcreator.web.serverpack.ServerPackDownloadRepository
+import de.griefed.serverpackcreator.web.serverpack.ServerPackRepository
+import de.griefed.serverpackcreator.web.stats.creation.AmountPerDate
+import org.springframework.beans.factory.annotation.Autowired
+import org.springframework.stereotype.Service
+import java.time.LocalDateTime
+
+@Service
+class DownloadStatsService @Autowired constructor(
+    private val modPackDownloadRepository: ModPackDownloadRepository,
+    private val serverPackDownloadRepository: ServerPackDownloadRepository,
+    private val modpackRepository: ModPackRepository,
+    private val serverPackRepository: ServerPackRepository,
+) {
+
+    fun modPackDownloads(): List<AmountPerDate> {
+        val dates = mutableListOf<LocalDateTime>()
+        for (download in modPackDownloadRepository.findAll().filter { it.downloadedAt != null }) {
+            dates.add(download.downloadedAt!!.toLocalDateTime())
+        }
+        return count(dates)
+    }
+
+    fun serverPackDownloads(): List<AmountPerDate> {
+        val dates = mutableListOf<LocalDateTime>()
+        for (download in serverPackDownloadRepository.findAll().filter { it.downloadedAt != null }) {
+            dates.add(download.downloadedAt!!.toLocalDateTime())
+        }
+        return count(dates)
+    }
+
+    private fun count(dates: List<LocalDateTime>): List<AmountPerDate> {
+        val creations = mutableListOf<AmountPerDate>()
+        for (date in dates) {
+            //skip if the date was already checked
+            if (creations.any { it.date == dateToString(date) }) {
+                continue
+            }
+            val dateStr = dateToString(date)
+            val count = dates.count { stamp ->
+                dateToString(stamp) == dateStr
+            }
+            creations.add(AmountPerDate(count, dateStr))
+        }
+        return creations
+    }
+
+    private fun dateToString(date: LocalDateTime): String {
+        return "${date.year}-${date.monthValue}-${date.dayOfMonth}"
+    }
+
+    fun allModPackDownloadsHistory(): List<ModPackDownload> {
+        return modPackDownloadRepository.findAll()
+    }
+
+    fun allServerPackDownloadsHistory(): List<ServerPackDownload> {
+        return serverPackDownloadRepository.findAll()
+    }
+
+    fun downloadHistoryForModPack(modPackID: Int): List<ModPackDownload> {
+        val pack = modpackRepository.findById(modPackID)
+        return if (pack.isPresent) {
+            downloadHistoryForModPack(pack.get())
+        } else {
+            listOf()
+        }
+    }
+
+    fun downloadHistoryForModPack(modPack: ModPack): List<ModPackDownload> {
+        return modPackDownloadRepository.findAllByModPack(modPack)
+    }
+
+    fun downloadHistoryForServerPack(serverPackID: Int): List<ServerPackDownload> {
+        val pack = serverPackRepository.findById(serverPackID)
+        return if (pack.isPresent) {
+            downloadHistoryForServerPack(pack.get())
+        } else {
+            listOf()
+        }
+    }
+
+    fun downloadHistoryForServerPack(serverPack: ServerPack): List<ServerPackDownload> {
+        return serverPackDownloadRepository.findAllByServerPack(serverPack)
+    }
+}
\ No newline at end of file
diff --git a/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/stats/packs/AmountStatsData.kt b/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/stats/packs/AmountStatsData.kt
new file mode 100644
index 000000000..07b85ff16
--- /dev/null
+++ b/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/stats/packs/AmountStatsData.kt
@@ -0,0 +1,3 @@
+package de.griefed.serverpackcreator.web.stats.packs
+
+data class AmountStatsData(val modPacks: Int, val serverPacks: Int, val runConfigurations: Int)
diff --git a/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/stats/packs/AmountStatsService.kt b/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/stats/packs/AmountStatsService.kt
new file mode 100644
index 000000000..f0587c8f3
--- /dev/null
+++ b/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/stats/packs/AmountStatsService.kt
@@ -0,0 +1,19 @@
+package de.griefed.serverpackcreator.web.stats.packs
+
+import de.griefed.serverpackcreator.web.modpack.ModPackRepository
+import de.griefed.serverpackcreator.web.serverpack.ServerPackRepository
+import de.griefed.serverpackcreator.web.serverpack.runconfiguration.RunConfigurationRepository
+import org.springframework.beans.factory.annotation.Autowired
+import org.springframework.stereotype.Service
+
+@Service
+class AmountStatsService @Autowired constructor(
+    private val serverPackRepository: ServerPackRepository,
+    private val modpackRepository: ModPackRepository,
+    private val runConfigurationRepository: RunConfigurationRepository
+) {
+    val stats: AmountStatsData
+        get() {
+            return AmountStatsData(modpackRepository.findAll().size, serverPackRepository.findAll().size, runConfigurationRepository.findAll().size)
+        }
+}
\ No newline at end of file
diff --git a/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/storage/FileSystemStorageService.kt b/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/storage/FileSystemStorageService.kt
index 7615100e3..efb70ac65 100644
--- a/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/storage/FileSystemStorageService.kt
+++ b/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/storage/FileSystemStorageService.kt
@@ -20,8 +20,6 @@
 package de.griefed.serverpackcreator.web.storage
 
 import de.griefed.serverpackcreator.api.utilities.common.size
-import de.griefed.serverpackcreator.web.data.SavedFile
-import org.apache.logging.log4j.kotlin.KotlinLogger
 import org.apache.logging.log4j.kotlin.cachedLoggerOf
 import org.bouncycastle.util.encoders.Hex
 import org.springframework.util.FileSystemUtils
@@ -37,7 +35,7 @@ class FileSystemStorageService(private val rootLocation: Path, private val messa
 
     constructor(rootLocation: Path) : this(rootLocation, MessageDigest.getInstance("SHA-256"))
 
-    private val logger: KotlinLogger = cachedLoggerOf(this.javaClass)
+    private val log by lazy { cachedLoggerOf(this.javaClass) }
 
     @Throws(StorageException::class)
     fun store(file: MultipartFile): Optional<SavedFile> {
@@ -52,7 +50,7 @@ class FileSystemStorageService(private val rootLocation: Path, private val messa
                 throw StorageException("Cannot store file outside current directory.")
             }
             file.transferTo(destinationFile)
-            logger.debug("Stored file to $destinationFile.")
+            log.debug("Stored file to $destinationFile.")
             val sha256 = String(Hex.encode(messageDigestInstance.digest(destinationFile.toFile().readBytes())))
             return Optional.of(
                 SavedFile(
@@ -73,7 +71,7 @@ class FileSystemStorageService(private val rootLocation: Path, private val messa
         return if (file != null && file.exists()) {
             Optional.of(file)
         } else {
-            logger.warn("Filesystem does not contain a file for $id.")
+            log.warn("Filesystem does not contain a file for $id.")
             Optional.empty()
         }
     }
diff --git a/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/data/SavedFile.kt b/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/storage/SavedFile.kt
similarity index 95%
rename from serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/data/SavedFile.kt
rename to serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/storage/SavedFile.kt
index a0f9cd5c4..4422c358d 100644
--- a/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/data/SavedFile.kt
+++ b/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/storage/SavedFile.kt
@@ -17,7 +17,7 @@
  *
  * The full license can be found at https:github.com/Griefed/ServerPackCreator/blob/main/LICENSE
  */
-package de.griefed.serverpackcreator.web.data
+package de.griefed.serverpackcreator.web.storage
 
 import java.nio.file.Path
 
diff --git a/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/storage/StorageSystem.kt b/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/storage/StorageSystem.kt
index b7e1c6498..002236192 100644
--- a/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/storage/StorageSystem.kt
+++ b/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/storage/StorageSystem.kt
@@ -19,8 +19,6 @@
  */
 package de.griefed.serverpackcreator.web.storage
 
-import de.griefed.serverpackcreator.web.data.SavedFile
-import org.apache.logging.log4j.kotlin.KotlinLogger
 import org.apache.logging.log4j.kotlin.cachedLoggerOf
 import org.springframework.web.multipart.MultipartFile
 import java.io.File
@@ -29,7 +27,7 @@ import java.security.MessageDigest
 import java.util.*
 
 class StorageSystem(private val fileSystemStorageService: FileSystemStorageService) {
-    private val logger: KotlinLogger = cachedLoggerOf(this.javaClass)
+    private val log by lazy { cachedLoggerOf(this.javaClass) }
 
     constructor(rootLocation: Path, messageDigest: MessageDigest) : this(
         FileSystemStorageService(rootLocation, messageDigest)
@@ -48,7 +46,7 @@ class StorageSystem(private val fileSystemStorageService: FileSystemStorageServi
         if (fileSys.isPresent) {
             return fileSys
         }
-        logger.error("File with ID $id could not be found.")
+        log.error("File with ID $id could not be found.")
         return Optional.empty()
     }
 
diff --git a/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/data/ErrorEntry.kt b/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/task/ErrorEntry.kt
similarity index 97%
rename from serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/data/ErrorEntry.kt
rename to serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/task/ErrorEntry.kt
index 01fb1d760..c200cef51 100644
--- a/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/data/ErrorEntry.kt
+++ b/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/task/ErrorEntry.kt
@@ -17,7 +17,7 @@
  *
  * The full license can be found at https:github.com/Griefed/ServerPackCreator/blob/main/LICENSE
  */
-package de.griefed.serverpackcreator.web.data
+package de.griefed.serverpackcreator.web.task
 
 import jakarta.persistence.Column
 import jakarta.persistence.Entity
diff --git a/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/task/ErrorRepository.kt b/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/task/ErrorRepository.kt
index 7ec62647e..55e03ab2c 100644
--- a/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/task/ErrorRepository.kt
+++ b/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/task/ErrorRepository.kt
@@ -19,7 +19,6 @@
  */
 package de.griefed.serverpackcreator.web.task
 
-import de.griefed.serverpackcreator.web.data.ErrorEntry
 import org.springframework.data.jpa.repository.JpaRepository
 import org.springframework.stereotype.Repository
 import java.util.*
diff --git a/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/task/EventController.kt b/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/task/EventController.kt
index 8d715e00c..13f4b2391 100644
--- a/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/task/EventController.kt
+++ b/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/task/EventController.kt
@@ -19,8 +19,7 @@
  */
 package de.griefed.serverpackcreator.web.task
 
-import de.griefed.serverpackcreator.web.data.QueueEvent
-import de.griefed.serverpackcreator.web.modpack.ModpackStatus
+import de.griefed.serverpackcreator.web.modpack.ModPackStatus
 import org.springframework.beans.factory.annotation.Autowired
 import org.springframework.http.HttpHeaders
 import org.springframework.http.ResponseEntity
@@ -55,7 +54,7 @@ class EventController @Autowired constructor(private val eventService: EventServ
 
     @GetMapping("/status/{status:[A-Z]+}", produces = ["application/json"])
     @ResponseBody
-    fun getStatusEvents(@PathVariable status: ModpackStatus): ResponseEntity<List<QueueEvent>> {
+    fun getStatusEvents(@PathVariable status: ModPackStatus): ResponseEntity<List<QueueEvent>> {
         return ResponseEntity.ok().header(HttpHeaders.CONTENT_TYPE, MimeTypeUtils.APPLICATION_JSON_VALUE)
             .body(eventService.loadAllByStatus(status))
     }
diff --git a/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/task/EventService.kt b/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/task/EventService.kt
index fa7ce25b8..017d0d469 100644
--- a/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/task/EventService.kt
+++ b/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/task/EventService.kt
@@ -19,9 +19,7 @@
  */
 package de.griefed.serverpackcreator.web.task
 
-import de.griefed.serverpackcreator.web.data.ErrorEntry
-import de.griefed.serverpackcreator.web.data.QueueEvent
-import de.griefed.serverpackcreator.web.modpack.ModpackStatus
+import de.griefed.serverpackcreator.web.modpack.ModPackStatus
 import org.springframework.beans.factory.annotation.Autowired
 import org.springframework.data.domain.Sort
 import org.springframework.stereotype.Service
@@ -35,7 +33,7 @@ class EventService @Autowired constructor(
     fun submit(
         modPackId: Int?,
         serverPackId: Int?,
-        status: ModpackStatus?,
+        status: ModPackStatus?,
         message: String,
         errors: List<String>? = null
     ) {
@@ -71,7 +69,7 @@ class EventService @Autowired constructor(
         return queueEventRepository.findAllByServerPackId(serverPackId)
     }
 
-    fun loadAllByStatus(status: ModpackStatus): MutableList<QueueEvent> {
+    fun loadAllByStatus(status: ModPackStatus): MutableList<QueueEvent> {
         return queueEventRepository.findAllByStatus(status)
     }
 }
\ No newline at end of file
diff --git a/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/data/QueueEvent.kt b/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/task/QueueEvent.kt
similarity index 94%
rename from serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/data/QueueEvent.kt
rename to serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/task/QueueEvent.kt
index c93424d5c..3ba7a7b81 100644
--- a/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/data/QueueEvent.kt
+++ b/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/task/QueueEvent.kt
@@ -17,9 +17,9 @@
  *
  * The full license can be found at https:github.com/Griefed/ServerPackCreator/blob/main/LICENSE
  */
-package de.griefed.serverpackcreator.web.data
+package de.griefed.serverpackcreator.web.task
 
-import de.griefed.serverpackcreator.web.modpack.ModpackStatus
+import de.griefed.serverpackcreator.web.modpack.ModPackStatus
 import jakarta.persistence.*
 import org.hibernate.annotations.CreationTimestamp
 import java.sql.Timestamp
@@ -39,7 +39,7 @@ class QueueEvent() {
     var serverPackId: Int? = null
 
     @Column
-    var status: ModpackStatus? = null
+    var status: ModPackStatus? = null
 
     @Column
     var message: String = ""
@@ -54,7 +54,7 @@ class QueueEvent() {
     constructor(
         modPackId: Int,
         serverPackId: Int?,
-        status: ModpackStatus?,
+        status: ModPackStatus?,
         message: String,
         timestamp: Timestamp?,
         errors: MutableList<ErrorEntry>
diff --git a/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/task/QueueEventRepository.kt b/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/task/QueueEventRepository.kt
index 42ef50b94..2936678eb 100644
--- a/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/task/QueueEventRepository.kt
+++ b/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/task/QueueEventRepository.kt
@@ -19,8 +19,7 @@
  */
 package de.griefed.serverpackcreator.web.task
 
-import de.griefed.serverpackcreator.web.data.QueueEvent
-import de.griefed.serverpackcreator.web.modpack.ModpackStatus
+import de.griefed.serverpackcreator.web.modpack.ModPackStatus
 import org.springframework.data.jpa.repository.JpaRepository
 import org.springframework.stereotype.Repository
 
@@ -28,5 +27,5 @@ import org.springframework.stereotype.Repository
 interface QueueEventRepository : JpaRepository<QueueEvent, Int> {
     fun findAllByModPackId(modPackId: Int): MutableList<QueueEvent>
     fun findAllByServerPackId(serverPackId: Int): MutableList<QueueEvent>
-    fun findAllByStatus(status: ModpackStatus): MutableList<QueueEvent>
+    fun findAllByStatus(status: ModPackStatus): MutableList<QueueEvent>
 }
\ No newline at end of file
diff --git a/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/task/TaskDetail.kt b/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/task/TaskDetail.kt
index bf60871a5..152941e36 100644
--- a/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/task/TaskDetail.kt
+++ b/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/task/TaskDetail.kt
@@ -20,9 +20,9 @@
 package de.griefed.serverpackcreator.web.task
 
 import de.griefed.serverpackcreator.api.PackConfig
-import de.griefed.serverpackcreator.web.data.ModPack
-import de.griefed.serverpackcreator.web.data.RunConfiguration
-import de.griefed.serverpackcreator.web.data.ServerPack
+import de.griefed.serverpackcreator.web.modpack.ModPack
+import de.griefed.serverpackcreator.web.serverpack.ServerPack
+import de.griefed.serverpackcreator.web.serverpack.customizing.RunConfiguration
 import java.io.File
 
 class TaskDetail(val modpack: ModPack) {
diff --git a/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/task/TaskExecutionService.kt b/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/task/TaskExecutionService.kt
index ff99d281b..a513e5c8d 100644
--- a/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/task/TaskExecutionService.kt
+++ b/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/task/TaskExecutionService.kt
@@ -19,7 +19,7 @@
  */
 package de.griefed.serverpackcreator.web.task
 
-import de.griefed.serverpackcreator.web.data.ModPack
+import de.griefed.serverpackcreator.web.modpack.ModPack
 
 interface TaskExecutionService {
     fun submitTaskInQueue(taskDetail: TaskDetail)
diff --git a/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/task/TaskExecutionServiceImpl.kt b/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/task/TaskExecutionServiceImpl.kt
index 705ab0894..48795ad87 100644
--- a/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/task/TaskExecutionServiceImpl.kt
+++ b/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/task/TaskExecutionServiceImpl.kt
@@ -23,14 +23,12 @@ import de.griefed.serverpackcreator.api.ConfigurationHandler
 import de.griefed.serverpackcreator.api.ServerPackHandler
 import de.griefed.serverpackcreator.api.utilities.common.deleteQuietly
 import de.griefed.serverpackcreator.api.utilities.common.size
-import de.griefed.serverpackcreator.web.data.ModPack
-import de.griefed.serverpackcreator.web.data.ServerPack
-import de.griefed.serverpackcreator.web.modpack.ModpackService
-import de.griefed.serverpackcreator.web.modpack.ModpackSource
-import de.griefed.serverpackcreator.web.modpack.ModpackStatus
+import de.griefed.serverpackcreator.web.modpack.ModPack
+import de.griefed.serverpackcreator.web.modpack.ModPackService
+import de.griefed.serverpackcreator.web.modpack.ModPackStatus
+import de.griefed.serverpackcreator.web.serverpack.ServerPack
 import de.griefed.serverpackcreator.web.serverpack.ServerPackService
 import de.griefed.serverpackcreator.web.storage.StorageException
-import org.apache.logging.log4j.kotlin.KotlinLogger
 import org.apache.logging.log4j.kotlin.cachedLoggerOf
 import org.bouncycastle.util.encoders.Hex
 import org.springframework.beans.factory.annotation.Autowired
@@ -42,7 +40,7 @@ import java.util.concurrent.LinkedBlockingDeque
 
 @Service
 class TaskExecutionServiceImpl @Autowired constructor(
-    private val modpackService: ModpackService,
+    private val modpackService: ModPackService,
     private val serverPackService: ServerPackService,
     private val configurationHandler: ConfigurationHandler,
     private val serverPackHandler: ServerPackHandler,
@@ -50,7 +48,7 @@ class TaskExecutionServiceImpl @Autowired constructor(
     private val eventService: EventService
 ) :
     TaskExecutionService {
-    private val logger: KotlinLogger = cachedLoggerOf(this.javaClass)
+    private val log by lazy { cachedLoggerOf(this.javaClass) }
     private val blockingQueue: BlockingQueue<TaskDetail> = LinkedBlockingDeque()
 
     init {
@@ -65,21 +63,21 @@ class TaskExecutionServiceImpl @Autowired constructor(
             while (true) {
                 try {
                     if (!blockingQueue.isEmpty()) {
-                        logger.info("Processing Next Task from Queue")
+                        log.info("Processing Next Task from Queue")
                         val taskDetail = blockingQueue.take()
                         processTask(taskDetail)
                     } else {
                         Thread.sleep(1000)
                     }
                 } catch (e: InterruptedException) {
-                    logger.error("There was an error while processing ", e)
+                    log.error("There was an error while processing ", e)
                     Thread.currentThread().interrupt()
                 }
             }
         }
         thread.name = "GenerationThread"
         thread.start()
-        logger.info("Worker Thread ${thread.name} initiated successfully")
+        log.info("Worker Thread ${thread.name} initiated successfully")
     }
 
     /**
@@ -96,19 +94,12 @@ class TaskExecutionServiceImpl @Autowired constructor(
     }
 
     private fun processTask(taskDetail: TaskDetail) {
-        logger.info("Running on Thread ${Thread.currentThread().name}")
+        log.info("Running on Thread ${Thread.currentThread().name}")
         when (taskDetail.modpack.status) {
-            ModpackStatus.QUEUED -> checkModpack(taskDetail)
-            ModpackStatus.CHECKED -> {
-                if (taskDetail.modpack.source == ModpackSource.ZIP) {
-                    generateFromZip(taskDetail)
-                } else {
-                    generateFromModrinth(taskDetail.modpack)
-                }
-            }
-
-            ModpackStatus.GENERATED, ModpackStatus.ERROR -> finishing(taskDetail)
-            else -> logger.error("${taskDetail.modpack.status} does not merit unique processing.")
+            ModPackStatus.QUEUED -> checkModpack(taskDetail)
+            ModPackStatus.CHECKED -> generateFromZip(taskDetail)
+            ModPackStatus.GENERATED, ModPackStatus.ERROR -> finishing(taskDetail)
+            else -> log.error("${taskDetail.modpack.status} does not merit unique processing.")
         }
     }
 
@@ -130,16 +121,16 @@ class TaskExecutionServiceImpl @Autowired constructor(
             )
         }
         Runtime.getRuntime().gc()
-        logger.info("Remaining tasks in queue: ${getQueueSize()}")
+        log.info("Remaining tasks in queue: ${getQueueSize()}")
     }
 
     private fun checkModpack(taskDetail: TaskDetail) {
-        logger.info("Performing Modpack check for modpack : ${taskDetail.modpack.id}")
+        log.info("Performing Modpack check for modpack : ${taskDetail.modpack.id}")
         val zipFile = modpackService.getModPackArchive(taskDetail.modpack)
         if (zipFile.isEmpty) {
             throw StorageException("ModPack-file for ${taskDetail.modpack.id} not found.")
         }
-        taskDetail.modpack.status = ModpackStatus.CHECKING
+        taskDetail.modpack.status = ModPackStatus.CHECKING
         eventService.submit(
             taskDetail.modpack.id,
             taskDetail.serverPack?.id,
@@ -151,8 +142,13 @@ class TaskExecutionServiceImpl @Autowired constructor(
         taskDetail.modPackFile = File(packConfig.modpackDir)
         val check = configurationHandler.checkConfiguration(packConfig)
         if (check.allChecksPassed) {
-            taskDetail.modpack.status = ModpackStatus.CHECKED
+            taskDetail.modpack.status = ModPackStatus.CHECKED
             taskDetail.packConfig = packConfig
+            if (packConfig.projectID != null && packConfig.versionID != null) {
+                taskDetail.modpack.projectID = packConfig.projectID!!
+                taskDetail.modpack.versionID = packConfig.versionID!!
+                taskDetail.modpack.source = packConfig.source
+            }
             eventService.submit(
                 taskDetail.modpack.id,
                 taskDetail.serverPack?.id,
@@ -160,7 +156,7 @@ class TaskExecutionServiceImpl @Autowired constructor(
                 "ModPack checks passed."
             )
         } else {
-            taskDetail.modpack.status = ModpackStatus.ERROR
+            taskDetail.modpack.status = ModPackStatus.ERROR
             eventService.submit(
                 taskDetail.modpack.id,
                 taskDetail.serverPack?.id,
@@ -173,15 +169,9 @@ class TaskExecutionServiceImpl @Autowired constructor(
         submitTaskInQueue(taskDetail)
     }
 
-    private fun generateFromModrinth(modpack: ModPack) {
-        logger.info("Server Pack will be generated from Modrinth modpack : ${modpack.id}")
-        logger.warn("Modrinth API will be available in Milestone 6.")
-        /*logger.info("Server Pack generated.")*/
-    }
-
     private fun generateFromZip(taskDetail: TaskDetail) {
-        logger.info("Server Pack will be generated from uploaded, zipped, modpack : ${taskDetail.modpack.id}")
-        taskDetail.modpack.status = ModpackStatus.GENERATING
+        log.info("Server Pack will be generated from uploaded, zipped, modpack : ${taskDetail.modpack.id}")
+        taskDetail.modpack.status = ModPackStatus.GENERATING
         eventService.submit(
             taskDetail.modpack.id,
             taskDetail.serverPack?.id,
@@ -206,7 +196,7 @@ class TaskExecutionServiceImpl @Autowired constructor(
             serverPack.sha256 = String(Hex.encode(messageDigestInstance.digest(serverPackFile.readBytes())))
             serverPackService.saveServerPack(serverPack)
             taskDetail.modpack.serverPacks.addLast(serverPack)
-            taskDetail.modpack.status = ModpackStatus.GENERATED
+            taskDetail.modpack.status = ModPackStatus.GENERATED
             eventService.submit(
                 taskDetail.modpack.id,
                 taskDetail.serverPack?.id,
@@ -218,7 +208,7 @@ class TaskExecutionServiceImpl @Autowired constructor(
             File(destination).deleteQuietly()
             File(taskDetail.packConfig!!.modpackDir).deleteQuietly()
         } else {
-            taskDetail.modpack.status = ModpackStatus.ERROR
+            taskDetail.modpack.status = ModPackStatus.ERROR
             eventService.submit(
                 taskDetail.modpack.id,
                 taskDetail.serverPack?.id,
@@ -228,7 +218,7 @@ class TaskExecutionServiceImpl @Autowired constructor(
         }
         modpackService.saveModpack(taskDetail.modpack)
         submitTaskInQueue(taskDetail)
-        logger.info("Server Pack generated.")
+        log.info("Server Pack generated.")
     }
 
     /**
diff --git a/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/data/VersionMetaResponse.kt b/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/versions/VersionMetaResponse.kt
similarity index 95%
rename from serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/data/VersionMetaResponse.kt
rename to serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/versions/VersionMetaResponse.kt
index 40b0c49b1..7caf3beb9 100644
--- a/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/data/VersionMetaResponse.kt
+++ b/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/versions/VersionMetaResponse.kt
@@ -17,7 +17,7 @@
  *
  * The full license can be found at https:github.com/Griefed/ServerPackCreator/blob/main/LICENSE
  */
-package de.griefed.serverpackcreator.web.data
+package de.griefed.serverpackcreator.web.versions
 
 class VersionMetaResponse(
     val minecraft: List<String>,
diff --git a/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/VersionsController.kt b/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/versions/VersionsController.kt
similarity index 98%
rename from serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/VersionsController.kt
rename to serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/versions/VersionsController.kt
index f989707e0..bb7f61b4e 100644
--- a/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/VersionsController.kt
+++ b/serverpackcreator-web/src/main/kotlin/de/griefed/serverpackcreator/web/versions/VersionsController.kt
@@ -17,10 +17,9 @@
  *
  * The full license can be found at https:github.com/Griefed/ServerPackCreator/blob/main/LICENSE
  */
-package de.griefed.serverpackcreator.web
+package de.griefed.serverpackcreator.web.versions
 
 import de.griefed.serverpackcreator.api.versionmeta.VersionMeta
-import de.griefed.serverpackcreator.web.data.VersionMetaResponse
 import org.springframework.beans.factory.annotation.Autowired
 import org.springframework.http.HttpHeaders
 import org.springframework.http.ResponseEntity
diff --git a/serverpackcreator-web/src/main/resources/application.properties b/serverpackcreator-web/src/main/resources/application.properties
index 9381d26b4..c8e7adebd 100644
--- a/serverpackcreator-web/src/main/resources/application.properties
+++ b/serverpackcreator-web/src/main/resources/application.properties
@@ -26,4 +26,4 @@ spring.transaction.default-timeout=3600
 spring.servlet.multipart.max-file-size=5000MB
 spring.servlet.multipart.max-request-size=5000MB
 spring.jpa.properties.hibernate.jdbc.use_streams_for_binary=true
-spring.config.import=classpath:/application.properties,classpath:/serverpackcreator.properties,optional:file:./serverpackcreator.properties
\ No newline at end of file
+spring.config.import=classpath:/application.properties,classpath:/serverpackcreator.properties,optional:file:./serverpackcreator.properties,optional:file:./overrides.properties
\ No newline at end of file
diff --git a/serverpackcreator-web/src/test/kotlin/de/griefed/serverpackcreator/web/WebServiceTest.kt b/serverpackcreator-web/src/test/kotlin/de/griefed/serverpackcreator/web/WebServiceTest.kt
index 0a96e248d..6a19de46b 100644
--- a/serverpackcreator-web/src/test/kotlin/de/griefed/serverpackcreator/web/WebServiceTest.kt
+++ b/serverpackcreator-web/src/test/kotlin/de/griefed/serverpackcreator/web/WebServiceTest.kt
@@ -14,7 +14,7 @@ class WebServiceTest internal constructor() {
             ApiWrapper.api(
                 File(
                     File("").absoluteFile.parent,
-                    "serverpackcreator-api/src/jvmTest/resources/serverpackcreator.properties"
+                    "serverpackcreator-api/src/test/resources/serverpackcreator.properties"
                 )
             )
         )
diff --git a/serverpackcreator-web/src/test/resources/log4j2.xml b/serverpackcreator-web/src/test/resources/log4j2.xml
index 318b1c6b6..d3fa2dcbf 100644
--- a/serverpackcreator-web/src/test/resources/log4j2.xml
+++ b/serverpackcreator-web/src/test/resources/log4j2.xml
@@ -35,22 +35,6 @@
             <DefaultRolloverStrategy max="5" />
         </RollingFile>
 
-        <RollingFile name="InstallerLogger" fileName="${log-path}/modloader_installer.log" filePattern="${archive}/modloader_installer.log.%i">
-            <PatternLayout>
-                <Charset>
-                    ${charset}
-                </Charset>
-                <Pattern>
-                    ${pattern}
-                </Pattern>
-            </PatternLayout>
-            <Policies>
-                <OnStartupTriggeringPolicy />
-                <SizeBasedTriggeringPolicy size="10 MB" />
-            </Policies>
-            <DefaultRolloverStrategy max="5" />
-        </RollingFile>
-
         <RollingFile name="PluginsLogger" fileName="${log-path}/plugins.log" filePattern="${archive}/plugins.log.%i">
             <PatternLayout>
                 <Charset>
@@ -79,10 +63,6 @@
             <AppenderRef ref="ApplicationLogger" level="${log-level-spc}" />
         </Logger>
 
-        <Logger name="InstallerLogger" level="ALL" additivity="false">
-            <AppenderRef ref="InstallerLogger" level="${log-level-spc}" />
-        </Logger>
-
         <Logger name="PluginsLogger" level="ALL" additivity="false">
             <AppenderRef ref="PluginsLogger" level="${log-level-spc}" />
         </Logger>
diff --git a/spc.install4j b/spc.install4j
new file mode 100644
index 000000000..313a43ae4
--- /dev/null
+++ b/spc.install4j
@@ -0,0 +1,2313 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<install4j version="10.0.7" transformSequenceNumber="10">
+  <directoryPresets config="./img" />
+  <application name="ServerPackCreator" applicationId="3565-3228-6904-0931" mediaDir="./media" compression="9" lzmaCompression="true" commonExternalFiles="true" shrinkRuntime="false" shortName="SPC" publisher="Griefed" publisherWeb="https://serverpackcreator.de" version="${compiler:projectVersion}" allPathsRelative="true" autoSave="true" macVolumeId="521d0a10ddf6d897" javaMinVersion="21">
+    <variables>
+      <variable name="projectDir" value="F:\GitLab\ServerPackCreator" description="Project directory of ServerPackCreator on your system" />
+      <variable name="projectVersion" value="dev" description="The version with which to build this installer." />
+      <variable name="projectYear" value="2024" />
+    </variables>
+    <jreBundles jdkProviderId="Zulu" release="21/21.0.3">
+      <modules>
+        <defaultModules set="all" />
+      </modules>
+    </jreBundles>
+  </application>
+  <files defaultOverwriteMode="1" defaultUninstallMode="2" launcherOverwriteMode="1" defaultFileMode="755">
+    <mountPoints>
+      <mountPoint id="26" />
+    </mountPoints>
+    <entries>
+      <fileEntry mountPoint="26" file="${compiler:projectDir}/CHANGELOG.md" overwriteMode="1" uninstallMode="2" overrideFileMode="true" overrideOverwriteMode="true" overrideUninstallMode="true" />
+      <fileEntry mountPoint="26" file="${compiler:projectDir}/serverpackcreator-api/src/main/resources/log4j2.xml" />
+      <fileEntry mountPoint="26" file="${compiler:projectDir}/serverpackcreator-api/src/main/resources/serverpackcreator.properties" overwriteMode="1" uninstallMode="2" overrideFileMode="true" overrideOverwriteMode="true" overrideUninstallMode="true" />
+      <fileEntry mountPoint="26" file="${compiler:projectDir}/CODE_OF_CONDUCT.md" overwriteMode="1" uninstallMode="2" overrideFileMode="true" overrideOverwriteMode="true" overrideUninstallMode="true" />
+      <fileEntry mountPoint="26" file="${compiler:projectDir}/CONTRIBUTING.md" overwriteMode="1" uninstallMode="2" overrideFileMode="true" overrideOverwriteMode="true" overrideUninstallMode="true" />
+      <fileEntry mountPoint="26" file="${compiler:projectDir}/HELP.md" overwriteMode="1" uninstallMode="2" overrideFileMode="true" overrideOverwriteMode="true" overrideUninstallMode="true" />
+      <fileEntry mountPoint="26" file="${compiler:projectDir}/LICENSE" overwriteMode="1" uninstallMode="2" overrideFileMode="true" overrideOverwriteMode="true" overrideUninstallMode="true" />
+      <fileEntry mountPoint="26" file="${compiler:projectDir}/README.md" overwriteMode="1" uninstallMode="2" overrideFileMode="true" overrideOverwriteMode="true" overrideUninstallMode="true" />
+      <fileEntry mountPoint="26" file="${compiler:projectDir}/SECURITY.md" overwriteMode="1" uninstallMode="2" overrideFileMode="true" overrideOverwriteMode="true" overrideUninstallMode="true" />
+      <dirEntry mountPoint="26" file="${compiler:projectDir}/serverpackcreator-app/build/libs" overwriteMode="1" fileMode="755" uninstallMode="2" overrideFileMode="true" overrideOverwriteMode="true" overrideUninstallMode="true" subDirectory="libs" excludeSuffixes="plain.jar" />
+    </entries>
+  </files>
+  <launchers>
+    <launcher name="ServerPackCreator-GUI" id="183" excludeFromMenu="true" icnsFile="${compiler:projectDir}/img/app.icns">
+      <executable name="ServerPackCreator-GUI" iconSet="true" iconFile="${compiler:projectDir}/img/icon.ico" redirectStderr="false" stderrFile="error.log${installer:sys.installationDir}/logs/run.log" stderrMode="append" stdoutFile="error.log${installer:sys.installationDir}/logs/run.log" stdoutMode="append" executableMode="gui" singleInstance="true" checkConsoleParameter="true" globalSingleInstance="true" windowsSessionSingleInstance="false">
+        <versionInfo include="true" fileDescription="Create server packs from Minecraft modpacks." legalCopyright="Copyright (C) ${compiler:projectYear} Griefed" internalName="ServerPackCreator" />
+      </executable>
+      <java mainClass="org.springframework.boot.loader.launch.JarLauncher" arguments="-gui">
+        <classPath>
+          <scanDirectory location="." failOnError="false" />
+        </classPath>
+        <modulePath>
+          <directory location="lib" failOnError="false" />
+        </modulePath>
+      </java>
+      <iconImageFiles>
+        <file path="${compiler:projectDir}/img/app.png" />
+      </iconImageFiles>
+    </launcher>
+    <launcher name="ServerPackCreator" id="232" excludeFromMenu="true" icnsFile="${compiler:projectDir}/img/app.icns">
+      <executable name="ServerPackCreator" iconSet="true" iconFile="${compiler:projectDir}/img/icon.ico" redirectStderr="false" stderrFile="error.log${installer:sys.installationDir}/logs/run.log" stderrMode="append" stdoutFile="error.log${installer:sys.installationDir}/logs/run.log" stdoutMode="append" executableMode="console" singleInstance="true" checkConsoleParameter="true" globalSingleInstance="true">
+        <versionInfo include="true" fileDescription="Create server packs from Minecraft modpacks." legalCopyright="Copyright (C) ${compiler:projectYear} Griefed" internalName="ServerPackCreator" />
+      </executable>
+      <java mainClass="org.springframework.boot.loader.launch.JarLauncher">
+        <classPath>
+          <scanDirectory location="." failOnError="false" />
+        </classPath>
+        <modulePath>
+          <directory location="lib" failOnError="false" />
+        </modulePath>
+      </java>
+      <iconImageFiles>
+        <file path="${compiler:projectDir}/img/app.png" />
+      </iconImageFiles>
+    </launcher>
+    <launcher name="ServerPackCreator-WEB" id="234" excludeFromMenu="true" icnsFile="${compiler:projectDir}/img/app.icns">
+      <executable name="ServerPackCreator-WEB" iconSet="true" iconFile="${compiler:projectDir}/img/icon.ico" redirectStderr="false" stderrFile="~/ServerPackCreator/serverpackcreator.log" stderrMode="append" stdoutFile="~/ServerPackCreator/serverpackcreator.log" stdoutMode="append" executableMode="service" singleInstance="true" checkConsoleParameter="true" globalSingleInstance="true" dpiAware="false">
+        <versionInfo include="true" fileDescription="Create server packs from Minecraft modpacks." legalCopyright="Copyright (C) ${compiler:projectYear} Griefed" internalName="ServerPackCreator" />
+      </executable>
+      <java mainClass="org.springframework.boot.loader.launch.JarLauncher" arguments="-web">
+        <classPath>
+          <scanDirectory location="." failOnError="false" />
+        </classPath>
+        <modulePath>
+          <directory location="lib" failOnError="false" />
+        </modulePath>
+      </java>
+      <iconImageFiles>
+        <file path="${compiler:projectDir}/img/app.png" />
+      </iconImageFiles>
+    </launcher>
+  </launchers>
+  <installerGui>
+    <applications>
+      <application id="installer" beanClass="com.install4j.runtime.beans.applications.InstallerApplication">
+        <serializedBean>
+          <property name="customIconImageFiles">
+            <add>
+              <object class="com.install4j.api.beans.ExternalFile">
+                <string>${compiler:projectDir}/img/install_16x16.png</string>
+              </object>
+            </add>
+            <add>
+              <object class="com.install4j.api.beans.ExternalFile">
+                <string>${compiler:projectDir}/img/install_32x32.png</string>
+              </object>
+            </add>
+            <add>
+              <object class="com.install4j.api.beans.ExternalFile">
+                <string>${compiler:projectDir}/img/install_48x48.png</string>
+              </object>
+            </add>
+            <add>
+              <object class="com.install4j.api.beans.ExternalFile">
+                <string>${compiler:projectDir}/img/install_128x128.png</string>
+              </object>
+            </add>
+            <add>
+              <object class="com.install4j.api.beans.ExternalFile">
+                <string>${compiler:projectDir}/img/install_256x256.png</string>
+              </object>
+            </add>
+            <add>
+              <object class="com.install4j.api.beans.ExternalFile">
+                <string>${compiler:projectDir}/img/install_512x512.png</string>
+              </object>
+            </add>
+          </property>
+          <property name="frameWidth" type="int" value="600" />
+          <property name="useCustomIcon" type="boolean" value="true" />
+        </serializedBean>
+        <startup>
+          <screen id="1" beanClass="com.install4j.runtime.beans.screens.StartupScreen" rollbackBarrierExitCode="0">
+            <actions>
+              <action id="22" beanClass="com.install4j.runtime.beans.actions.misc.RequestPrivilegesAction" actionElevationType="none" rollbackBarrierExitCode="0">
+                <serializedBean>
+                  <property name="failIfNotObtainedLinux" type="boolean" value="true" />
+                  <property name="linuxPrivilegeRequirement" type="enum" class="com.install4j.runtime.beans.actions.misc.PrivilegeRequirement" value="OBTAIN" />
+                  <property name="obtainIfAdminMac" type="boolean" value="true" />
+                  <property name="obtainIfNormalMac" type="boolean" value="true" />
+                  <property name="obtainIfNormalWin" type="boolean" value="true" />
+                </serializedBean>
+              </action>
+            </actions>
+          </screen>
+        </startup>
+        <screens>
+          <screen id="2" beanClass="com.install4j.runtime.beans.screens.WelcomeScreen" styleId="7" rollbackBarrierExitCode="0">
+            <styleOverrides>
+              <styleOverride name="Customize banner image" enabled="true">
+                <group id="46" beanClass="com.install4j.runtime.beans.groups.VerticalFormComponentGroup" useExternalParametrization="true" externalParametrizationName="Customize banner image" externalParametrizationMode="include">
+                  <serializedBean>
+                    <property name="backgroundColor">
+                      <object class="com.install4j.runtime.beans.LightOrDarkColor">
+                        <object class="java.awt.Color">
+                          <int>255</int>
+                          <int>255</int>
+                          <int>255</int>
+                          <int>255</int>
+                        </object>
+                        <object class="java.awt.Color">
+                          <int>49</int>
+                          <int>52</int>
+                          <int>53</int>
+                          <int>255</int>
+                        </object>
+                      </object>
+                    </property>
+                    <property name="borderSides">
+                      <object class="com.install4j.runtime.beans.formcomponents.BorderSides">
+                        <property name="bottom" type="boolean" value="true" />
+                      </object>
+                    </property>
+                    <property name="imageAnchor" type="enum" class="com.install4j.api.beans.Anchor" value="NORTH" />
+                    <property name="imageEdgeBackgroundColor">
+                      <object class="com.install4j.runtime.beans.LightOrDarkColor">
+                        <object class="java.awt.Color">
+                          <int>0</int>
+                          <int>6</int>
+                          <int>16</int>
+                          <int>255</int>
+                        </object>
+                        <object class="java.awt.Color">
+                          <int>0</int>
+                          <int>6</int>
+                          <int>16</int>
+                          <int>255</int>
+                        </object>
+                      </object>
+                    </property>
+                    <property name="imageEdgeBorder" type="boolean" value="true" />
+                    <property name="imageFile">
+                      <object class="com.install4j.api.beans.ExternalFile">
+                        <string>${compiler:projectDir}/img/banner_installer.png</string>
+                      </object>
+                    </property>
+                    <property name="insets">
+                      <object class="java.awt.Insets">
+                        <int>5</int>
+                        <int>10</int>
+                        <int>10</int>
+                        <int>10</int>
+                      </object>
+                    </property>
+                  </serializedBean>
+                  <externalParametrizationPropertyNames>
+                    <propertyName>imageAnchor</propertyName>
+                    <propertyName>imageEdgeBackgroundColor</propertyName>
+                    <propertyName>imageFile</propertyName>
+                  </externalParametrizationPropertyNames>
+                </group>
+              </styleOverride>
+            </styleOverrides>
+            <actions>
+              <action id="7" beanClass="com.install4j.runtime.beans.actions.misc.LoadResponseFileAction" rollbackBarrierExitCode="0" multiExec="true">
+                <serializedBean>
+                  <property name="excludedVariables" type="array" elementType="string" length="1">
+                    <element index="0">sys.installationDir</element>
+                  </property>
+                </serializedBean>
+                <condition>context.getBooleanVariable("sys.confirmedUpdateInstallation")</condition>
+              </action>
+            </actions>
+            <formComponents>
+              <formComponent id="3" beanClass="com.install4j.runtime.beans.formcomponents.MultilineLabelComponent">
+                <serializedBean>
+                  <property name="labelText" type="string">${form:welcomeMessage}</property>
+                </serializedBean>
+                <visibilityScript>!context.isConsole()</visibilityScript>
+              </formComponent>
+              <formComponent id="4" beanClass="com.install4j.runtime.beans.formcomponents.ConsoleHandlerFormComponent">
+                <serializedBean>
+                  <property name="consoleScript">
+                    <object class="com.install4j.api.beans.ScriptProperty">
+                      <property name="value" type="string">String message = context.getMessage("ConsoleWelcomeLabel", context.getApplicationName());
+return console.askOkCancel(message, true);
+</property>
+                    </object>
+                  </property>
+                </serializedBean>
+              </formComponent>
+              <formComponent id="5" beanClass="com.install4j.runtime.beans.formcomponents.UpdateAlertComponent" useExternalParametrization="true" externalParametrizationName="Update Alert" externalParametrizationMode="include">
+                <externalParametrizationPropertyNames>
+                  <propertyName>updateCheck</propertyName>
+                </externalParametrizationPropertyNames>
+              </formComponent>
+              <formComponent id="6" beanClass="com.install4j.runtime.beans.formcomponents.MultilineLabelComponent" insetTop="20">
+                <serializedBean>
+                  <property name="labelText" type="string">${i18n:ClickNext}</property>
+                </serializedBean>
+              </formComponent>
+            </formComponents>
+          </screen>
+          <screen id="320" beanClass="com.install4j.runtime.beans.screens.LicenseScreen" rollbackBarrierExitCode="0">
+            <formComponents>
+              <formComponent id="321" beanClass="com.install4j.runtime.beans.formcomponents.MultilineLabelComponent">
+                <serializedBean>
+                  <property name="labelText" type="string">${i18n:LicenseLabel3}</property>
+                </serializedBean>
+              </formComponent>
+              <formComponent id="322" beanClass="com.install4j.runtime.beans.formcomponents.LicenseComponent" useExternalParametrization="true" externalParametrizationName="License Agreement" externalParametrizationMode="include">
+                <serializedBean>
+                  <property name="displayedTextFile" id="LocalizedExternalFile0">
+                    <property name="languageIdToExternalFile">
+                      <entry>
+                        <string>en</string>
+                        <object class="com.install4j.api.beans.ExternalFile">
+                          <string>${compiler:projectDir}/licenses/LICENSE-AGREEMENT.txt</string>
+                        </object>
+                      </entry>
+                    </property>
+                  </property>
+                  <property name="fillVertical" type="boolean" value="true" />
+                  <property name="readAllRequired" type="boolean" value="true" />
+                </serializedBean>
+                <externalParametrizationPropertyNames>
+                  <propertyName>textSource</propertyName>
+                  <propertyName>displayedText</propertyName>
+                  <propertyName>displayedTextFile</propertyName>
+                  <propertyName>variableName</propertyName>
+                  <propertyName>acceptInitiallySelected</propertyName>
+                  <propertyName>readAllRequired</propertyName>
+                </externalParametrizationPropertyNames>
+              </formComponent>
+            </formComponents>
+          </screen>
+          <screen id="8" beanClass="com.install4j.runtime.beans.screens.InstallationDirectoryScreen" actionElevationType="none" rollbackBarrierExitCode="0">
+            <condition>!context.getBooleanVariable("sys.confirmedUpdateInstallation")</condition>
+            <actions>
+              <action id="11" beanClass="com.install4j.runtime.beans.actions.misc.LoadResponseFileAction" rollbackBarrierExitCode="0" multiExec="true">
+                <serializedBean>
+                  <property name="excludedVariables" type="array" elementType="string" length="1">
+                    <element index="0">sys.installationDir</element>
+                  </property>
+                </serializedBean>
+                <condition>context.getVariable("sys.responseFile") == null</condition>
+              </action>
+              <action id="252" beanClass="com.install4j.runtime.beans.actions.registry.LoadInstallerVariablesAction" commentSet="true" comment="This action loads the installer variables from the preference store that have been saved by the &quot;Save installer variables to the Java preference store&quot; action on the &quot;Installation&quot; screen. &#xA;&#xA;It overrides installer variables that are loaded from the response file. The response file holds the settings as they were last made in the installer, but the settings that are actually usd by the application live in the preference store." actionElevationType="elevated" rollbackBarrierExitCode="0" multiExec="true">
+                <serializedBean>
+                  <property name="packageName" type="string">${compiler:sys.applicationId}</property>
+                </serializedBean>
+              </action>
+            </actions>
+            <formComponents>
+              <formComponent id="9" beanClass="com.install4j.runtime.beans.formcomponents.MultilineLabelComponent" insetBottom="25">
+                <serializedBean>
+                  <property name="labelText" type="string">${i18n:SelectDirLabel(${compiler:sys.fullName})}</property>
+                </serializedBean>
+              </formComponent>
+              <formComponent id="10" beanClass="com.install4j.runtime.beans.formcomponents.InstallationDirectoryChooserComponent" useExternalParametrization="true" externalParametrizationName="Installation Directory Chooser" externalParametrizationMode="include">
+                <serializedBean>
+                  <property name="requestFocus" type="boolean" value="true" />
+                </serializedBean>
+                <externalParametrizationPropertyNames>
+                  <propertyName>allowSpacesOnUnix</propertyName>
+                  <propertyName>checkFreeSpace</propertyName>
+                  <propertyName>checkWritable</propertyName>
+                  <propertyName>existingDirWarning</propertyName>
+                  <propertyName>manualEntryAllowed</propertyName>
+                  <propertyName>showFreeDiskSpace</propertyName>
+                  <propertyName>showRequiredDiskSpace</propertyName>
+                  <propertyName>standardValidation</propertyName>
+                  <propertyName>suggestAppDir</propertyName>
+                  <propertyName>validateApplicationId</propertyName>
+                  <propertyName>validationScript</propertyName>
+                </externalParametrizationPropertyNames>
+              </formComponent>
+            </formComponents>
+          </screen>
+          <screen name="Configure Webservice" id="48" beanClass="com.install4j.runtime.beans.screens.FormScreen" enabled="false">
+            <serializedBean>
+              <property name="subTitle" type="string">Please choose options for the webservice</property>
+              <property name="title" type="string">Webservice Options</property>
+            </serializedBean>
+            <validation>if (!context.getBooleanVariable("specialUserAccount")) {
+    context.setVariable("serviceAccount", "NT AUTHORITY\\System");
+    context.setVariable("servicePassword", "");
+}
+return true;</validation>
+            <formComponents>
+              <formComponent id="49" beanClass="com.install4j.runtime.beans.formcomponents.MultilineHtmlLabelComponent">
+                <serializedBean>
+                  <property name="labelHtml" type="string">ServerPackCreator can be run as a webservice to generate server packs from your browser.</property>
+                </serializedBean>
+              </formComponent>
+              <formComponent id="50" beanClass="com.install4j.runtime.beans.formcomponents.CheckboxComponent">
+                <serializedBean>
+                  <property name="checkboxText" type="string">Install ServerPackCreator webservice</property>
+                  <property name="coupledComponentIds">
+                    <add type="string">51</add>
+                  </property>
+                  <property name="variableName" type="string">installService</property>
+                </serializedBean>
+              </formComponent>
+              <group id="51" beanClass="com.install4j.runtime.beans.groups.VerticalFormComponentGroup">
+                <serializedBean>
+                  <property name="insets">
+                    <object class="java.awt.Insets">
+                      <int>0</int>
+                      <int>20</int>
+                      <int>0</int>
+                      <int>0</int>
+                    </object>
+                  </property>
+                  <property name="visibilityScript">
+                    <object class="com.install4j.api.beans.ScriptProperty">
+                      <property name="value" type="string" />
+                    </object>
+                  </property>
+                </serializedBean>
+                <beans>
+                  <group id="57" beanClass="com.install4j.runtime.beans.groups.VerticalFormComponentGroup">
+                    <beans>
+                      <group id="67" beanClass="com.install4j.runtime.beans.groups.HorizontalFormComponentGroup">
+                        <beans>
+                          <formComponent name="Database Host" id="62" beanClass="com.install4j.runtime.beans.formcomponents.TextfieldComponent">
+                            <serializedBean>
+                              <property name="helpText" type="string">Hostname on which your database runs.</property>
+                              <property name="initialText" type="string">localhost</property>
+                              <property name="labelFontStyle" type="enum" class="com.install4j.runtime.beans.formcomponents.FontStyle" value="BOLD" />
+                              <property name="labelFontType" type="enum" class="com.install4j.runtime.beans.formcomponents.FontType" value="DERIVED" />
+                              <property name="labelText" type="string">Database Host</property>
+                              <property name="variableName" type="string">databaseHost</property>
+                            </serializedBean>
+                          </formComponent>
+                          <formComponent name="Database Port" id="63" beanClass="com.install4j.runtime.beans.formcomponents.IntegerTextfieldComponent">
+                            <serializedBean>
+                              <property name="helpText" type="string">Port at which the database listens at on the database host.</property>
+                              <property name="initialText" type="string">5432</property>
+                              <property name="labelFontStyle" type="enum" class="com.install4j.runtime.beans.formcomponents.FontStyle" value="BOLD" />
+                              <property name="labelFontType" type="enum" class="com.install4j.runtime.beans.formcomponents.FontType" value="DERIVED" />
+                              <property name="labelText" type="string">Database Port</property>
+                              <property name="variableName" type="string">databasePort</property>
+                            </serializedBean>
+                          </formComponent>
+                        </beans>
+                      </group>
+                      <formComponent name="Database Name" id="64" beanClass="com.install4j.runtime.beans.formcomponents.TextfieldComponent">
+                        <serializedBean>
+                          <property name="helpText" type="string">The database to use with the webservice. </property>
+                          <property name="initialText" type="string">serverpackcreator</property>
+                          <property name="labelFontStyle" type="enum" class="com.install4j.runtime.beans.formcomponents.FontStyle" value="BOLD" />
+                          <property name="labelFontType" type="enum" class="com.install4j.runtime.beans.formcomponents.FontType" value="DERIVED" />
+                          <property name="labelText" type="string">Database Name</property>
+                          <property name="variableName" type="string">databaseName</property>
+                        </serializedBean>
+                      </formComponent>
+                      <group id="68" beanClass="com.install4j.runtime.beans.groups.HorizontalFormComponentGroup">
+                        <beans>
+                          <formComponent name="Database Username" id="65" beanClass="com.install4j.runtime.beans.formcomponents.TextfieldComponent">
+                            <serializedBean>
+                              <property name="helpText" type="string">Username with which the database will be accessed.</property>
+                              <property name="labelFontStyle" type="enum" class="com.install4j.runtime.beans.formcomponents.FontStyle" value="BOLD" />
+                              <property name="labelFontType" type="enum" class="com.install4j.runtime.beans.formcomponents.FontType" value="DERIVED" />
+                              <property name="labelText" type="string">Database Username</property>
+                              <property name="variableName" type="string">databaseUser</property>
+                            </serializedBean>
+                          </formComponent>
+                          <formComponent name="Database Password" id="66" beanClass="com.install4j.runtime.beans.formcomponents.PasswordComponent">
+                            <serializedBean>
+                              <property name="helpText" type="string">Password used to access the database.</property>
+                              <property name="labelFontStyle" type="enum" class="com.install4j.runtime.beans.formcomponents.FontStyle" value="BOLD" />
+                              <property name="labelFontType" type="enum" class="com.install4j.runtime.beans.formcomponents.FontType" value="DERIVED" />
+                              <property name="labelText" type="string">Database Password</property>
+                              <property name="variableName" type="string">databasePassword</property>
+                            </serializedBean>
+                          </formComponent>
+                        </beans>
+                      </group>
+                      <formComponent name="WebService Port" id="78" beanClass="com.install4j.runtime.beans.formcomponents.IntegerTextfieldComponent">
+                        <serializedBean>
+                          <property name="helpText" type="string">Port at which the webservice will be available at. Example: http://localhost:8080</property>
+                          <property name="initialText" type="string">8080</property>
+                          <property name="labelFontStyle" type="enum" class="com.install4j.runtime.beans.formcomponents.FontStyle" value="BOLD" />
+                          <property name="labelFontType" type="enum" class="com.install4j.runtime.beans.formcomponents.FontType" value="DERIVED" />
+                          <property name="labelText" type="string">Webservice Port</property>
+                          <property name="variableName" type="string">webservicePort</property>
+                        </serializedBean>
+                      </formComponent>
+                    </beans>
+                  </group>
+                </beans>
+              </group>
+            </formComponents>
+          </screen>
+          <screen name="Select Home-Directory" id="328" beanClass="com.install4j.runtime.beans.screens.FormScreen" rollbackBarrierExitCode="0">
+            <serializedBean>
+              <property name="subTitle" type="string">Configure ServerPackCreatos new home</property>
+              <property name="title" type="string">Home-Directory</property>
+            </serializedBean>
+            <formComponents>
+              <formComponent id="329" beanClass="com.install4j.runtime.beans.formcomponents.MultilineLabelComponent" insetBottom="25" useExternalParametrization="true" externalParametrizationName="Header" externalParametrizationMode="include">
+                <serializedBean>
+                  <property name="hideIfBlank" type="boolean" value="true" />
+                  <property name="labelText" type="string">Set the home-directory in which ServerPackCreator will create and store initial data as well as created data. Initial data are files such as manifests and templates, created data are files such as generated server packs.
+
+If you are installing this on a multi-user system and intend other users to use ServerPackCreator, choose a directory to which all users have access to.</property>
+                </serializedBean>
+                <visibilityScript>!context.isConsole()</visibilityScript>
+                <externalParametrizationPropertyNames>
+                  <propertyName>labelText</propertyName>
+                </externalParametrizationPropertyNames>
+              </formComponent>
+              <formComponent id="330" beanClass="com.install4j.runtime.beans.formcomponents.DirectoryChooserComponent" useExternalParametrization="true" externalParametrizationName="Directory" externalParametrizationMode="include">
+                <serializedBean>
+                  <property name="helpText" type="string">An existing directory where ServerPackCreatos data will be stored in, such as server packs, manifest, templates etc.</property>
+                  <property name="initialFile" type="string">${installer:sys.userHome}</property>
+                  <property name="labelFontStyle" type="enum" class="com.install4j.runtime.beans.formcomponents.FontStyle" value="BOLD" />
+                  <property name="labelFontType" type="enum" class="com.install4j.runtime.beans.formcomponents.FontType" value="DERIVED" />
+                  <property name="labelText" type="string">Home-Directory</property>
+                  <property name="nextOnEnter" type="boolean" value="true" />
+                  <property name="onlyWritable" type="boolean" value="true" />
+                  <property name="variableName" type="string">homeDirectory</property>
+                </serializedBean>
+                <externalParametrizationPropertyNames>
+                  <propertyName>directoryDescription</propertyName>
+                  <propertyName>initialFile</propertyName>
+                  <propertyName>onlyWritable</propertyName>
+                  <propertyName>standardDirectoryName</propertyName>
+                  <propertyName>standardValidation</propertyName>
+                  <propertyName>validationScript</propertyName>
+                  <propertyName>variableName</propertyName>
+                </externalParametrizationPropertyNames>
+              </formComponent>
+              <formComponent id="333" beanClass="com.install4j.runtime.beans.formcomponents.LabelComponent">
+                <serializedBean>
+                  <property name="labelColor">
+                    <object class="java.awt.Color">
+                      <int>255</int>
+                      <int>0</int>
+                      <int>0</int>
+                      <int>255</int>
+                    </object>
+                  </property>
+                  <property name="labelFontStyle" type="enum" class="com.install4j.runtime.beans.formcomponents.FontStyle" value="BOLD" />
+                  <property name="labelFontType" type="enum" class="com.install4j.runtime.beans.formcomponents.FontType" value="DERIVED" />
+                  <property name="labelText" type="string">Caution!</property>
+                </serializedBean>
+              </formComponent>
+              <formComponent id="332" beanClass="com.install4j.runtime.beans.formcomponents.MultilineLabelComponent" insetBottom="25" useExternalParametrization="true" externalParametrizationName="Header" externalParametrizationMode="include">
+                <serializedBean>
+                  <property name="hideIfBlank" type="boolean" value="true" />
+                  <property name="labelText" type="string">Changing the home-directory after installation requires manual editing of ${installer:sys.installationDir}${installer:sys.fileSeparator}serverpackcreator.properties. Choose wisely!</property>
+                </serializedBean>
+                <visibilityScript>!context.isConsole()</visibilityScript>
+                <externalParametrizationPropertyNames>
+                  <propertyName>labelText</propertyName>
+                </externalParametrizationPropertyNames>
+              </formComponent>
+            </formComponents>
+          </screen>
+          <screen id="47" beanClass="com.install4j.runtime.beans.screens.StandardProgramGroupScreen">
+            <serializedBean>
+              <property name="programGroupName" type="string">${compiler:sys.fullName}</property>
+            </serializedBean>
+            <condition>!context.getBooleanVariable("sys.confirmedUpdateInstallation")</condition>
+          </screen>
+          <screen id="341" beanClass="com.install4j.runtime.beans.screens.AdditionalConfirmationsScreen" rollbackBarrierExitCode="0">
+            <formComponents>
+              <formComponent id="342" beanClass="com.install4j.runtime.beans.formcomponents.MultilineLabelComponent" insetBottom="10">
+                <serializedBean>
+                  <property name="labelText" type="string">${form:confirmationMessage}</property>
+                </serializedBean>
+                <visibilityScript>!context.isConsole()</visibilityScript>
+              </formComponent>
+              <formComponent name="Add an executable to the dock" id="343" beanClass="com.install4j.runtime.beans.formcomponents.CheckboxComponent">
+                <serializedBean>
+                  <property name="checkboxText" type="string">${i18n:AddToDock}</property>
+                  <property name="initiallySelected" type="boolean" value="true" />
+                  <property name="variableName" type="string">addToDockAction</property>
+                </serializedBean>
+                <visibilityScript>Util.isMacOS()</visibilityScript>
+              </formComponent>
+              <formComponent name="Add a desktop link" id="345" beanClass="com.install4j.runtime.beans.formcomponents.CheckboxComponent">
+                <serializedBean>
+                  <property name="checkboxText" type="string">${i18n:CreateDesktopIcon}</property>
+                  <property name="initiallySelected" type="boolean" value="true" />
+                  <property name="variableName" type="string">createDesktopLinkAction</property>
+                </serializedBean>
+              </formComponent>
+            </formComponents>
+          </screen>
+          <screen id="15" beanClass="com.install4j.runtime.beans.screens.InstallationScreen" actionElevationType="elevated" rollbackBarrier="true" rollbackBarrierExitCode="0">
+            <actions>
+              <group name="Stop Services" id="69" beanClass="com.install4j.runtime.beans.groups.ActionGroup" enabled="false">
+                <serializedBean>
+                  <property name="conditionExpression">
+                    <object class="com.install4j.api.beans.ScriptProperty">
+                      <property name="value" type="string">context.getBooleanVariable("installService")</property>
+                    </object>
+                  </property>
+                </serializedBean>
+                <beans>
+                  <action id="70" beanClass="com.install4j.runtime.beans.actions.control.SetMessageAction" actionElevationType="none">
+                    <serializedBean>
+                      <property name="statusMessage" type="string">${i18n:StatusStoppingServices}</property>
+                      <property name="useDetail" type="boolean" value="true" />
+                      <property name="useStatus" type="boolean" value="true" />
+                    </serializedBean>
+                  </action>
+                  <action id="71" beanClass="com.install4j.runtime.beans.actions.control.SetProgressAction" actionElevationType="none">
+                    <serializedBean>
+                      <property name="progressChangeType" type="enum" class="com.install4j.runtime.beans.actions.control.ProgressChangeType" value="SET_INDETERMINATE" />
+                    </serializedBean>
+                  </action>
+                  <action id="72" beanClass="com.install4j.runtime.beans.actions.services.StopServiceAction" commentSet="true" comment="This action is necessary otherwise the following &quot;Delete a file an directories&quot; action might fail on Windows, since the files that are to be deleted might be in use.&#xA;&#xA;Otherwise, you do not have to stop services explicitly, the &quot;Uninstall files&quot; action will stop all services." actionElevationType="elevated">
+                    <serializedBean>
+                      <property name="executable">
+                        <object class="java.io.File">
+                          <string>ServerPackCreator-WEB</string>
+                        </object>
+                      </property>
+                      <property name="launcherId" type="string">234</property>
+                      <property name="serviceName" type="string">ServerPackCreator-Webservice</property>
+                    </serializedBean>
+                  </action>
+                  <action id="73" beanClass="com.install4j.runtime.beans.actions.control.SetProgressAction" actionElevationType="none">
+                    <serializedBean>
+                      <property name="progressChangeType" type="enum" class="com.install4j.runtime.beans.actions.control.ProgressChangeType" value="SET_DETERMINATE" />
+                    </serializedBean>
+                  </action>
+                </beans>
+              </group>
+              <action id="294" beanClass="com.install4j.runtime.beans.actions.control.SleepAction" actionElevationType="none" rollbackBarrierExitCode="0" />
+              <action id="74" beanClass="com.install4j.runtime.beans.actions.misc.CheckRunningProcessesAction" commentSet="true" comment="Note that the &quot;Install Files&quot; action always checks that no process that are started from affected files are running. However, if you want to give your users the ability to close the applications automatically, you have to add this action before the &quot;Install Files&quot; action." actionElevationType="none" failureStrategy="quit">
+                <serializedBean>
+                  <property name="closeStrategy" type="enum" class="com.install4j.runtime.beans.actions.misc.CloseStrategy" value="ASK_FOR_CLOSE_AND_TERMINATE" />
+                </serializedBean>
+              </action>
+              <action id="295" beanClass="com.install4j.runtime.beans.actions.control.SleepAction" actionElevationType="none" rollbackBarrierExitCode="0" />
+              <action id="17" beanClass="com.install4j.runtime.beans.actions.InstallFilesAction" actionElevationType="elevated" rollbackBarrierExitCode="0" failureStrategy="quit" errorMessage="${i18n:FileCorrupted}" />
+              <action id="18" beanClass="com.install4j.runtime.beans.actions.desktop.CreateProgramGroupAction" enabled="false" actionElevationType="elevated" rollbackBarrierExitCode="0">
+                <serializedBean>
+                  <property name="addUninstaller" type="boolean" value="true" />
+                  <property name="categories" type="string">Application;Utilitiy;FileTools;Java</property>
+                  <property name="programGroupEntryConfigs">
+                    <add>
+                      <object class="com.install4j.runtime.beans.screens.components.ProgramGroupFileConfig">
+                        <property name="iconFile">
+                          <object class="com.install4j.api.beans.ExternalFile">
+                            <string>${compiler:projectDir}/img/icon.ico</string>
+                          </object>
+                        </property>
+                        <property name="name" type="string">Run ServerPackCreator</property>
+                        <property name="runAsAdministrator" type="boolean" value="true" />
+                        <property name="target">
+                          <object class="java.io.File">
+                            <string>ServerPackCreator</string>
+                          </object>
+                        </property>
+                      </object>
+                    </add>
+                    <add>
+                      <object class="com.install4j.runtime.beans.screens.components.ProgramGroupFileConfig">
+                        <property name="name" type="string">README</property>
+                        <property name="target">
+                          <object class="java.io.File">
+                            <string>README.md</string>
+                          </object>
+                        </property>
+                      </object>
+                    </add>
+                    <add>
+                      <object class="com.install4j.runtime.beans.screens.components.ProgramGroupFileConfig">
+                        <property name="name" type="string">Change Log</property>
+                        <property name="target">
+                          <object class="java.io.File">
+                            <string>CHANGELOG.md</string>
+                          </object>
+                        </property>
+                      </object>
+                    </add>
+                  </property>
+                  <property name="uninstallerMenuName" type="string">${i18n:UninstallerMenuEntry(${compiler:sys.fullName})}</property>
+                </serializedBean>
+              </action>
+              <action id="352" beanClass="com.install4j.runtime.beans.actions.desktop.CreateStartMenuEntryAction" actionElevationType="elevated" rollbackBarrierExitCode="0">
+                <serializedBean>
+                  <property name="additionalDesktopFileEntries" type="string">Exec=sudo -i sh -c "${installer:sys.installationDir}/ServerPackCreator"
+Terminal=true
+Comment=Create server packs from Minecraft modpacks.
+Categories=Application;Utility;FileTools;Java</property>
+                  <property name="categories" type="string">Application;Utilitiy;FileTools;Java</property>
+                  <property name="entryName" type="string">ServerPackCreator</property>
+                  <property name="file">
+                    <object class="java.io.File">
+                      <string>ServerPackCreator</string>
+                    </object>
+                  </property>
+                  <property name="icon">
+                    <object class="com.install4j.api.beans.ExternalFile">
+                      <string>${compiler:projectDir}/img/icon.ico</string>
+                    </object>
+                  </property>
+                  <property name="runAsAdministrator" type="boolean" value="true" />
+                  <property name="unixIconFile">
+                    <object class="com.install4j.api.beans.ExternalFile">
+                      <string>${compiler:projectDir}/img/icon.png</string>
+                    </object>
+                  </property>
+                </serializedBean>
+                <condition>!context.getBooleanVariable("sys.programGroupDisabled")</condition>
+              </action>
+              <action id="19" beanClass="com.install4j.runtime.beans.actions.desktop.RegisterAddRemoveAction" actionElevationType="elevated" rollbackBarrierExitCode="0">
+                <serializedBean>
+                  <property name="icon">
+                    <object class="com.install4j.api.beans.ExternalFile">
+                      <string>${compiler:projectDir}/img/icon.ico</string>
+                    </object>
+                  </property>
+                  <property name="iconSource" type="enum" class="com.install4j.runtime.beans.actions.desktop.IconSource" value="CUSTOM" />
+                  <property name="itemName" type="string">${compiler:sys.fullName} ${compiler:sys.version}</property>
+                </serializedBean>
+              </action>
+              <group name="Prepare Webservice" id="77" beanClass="com.install4j.runtime.beans.groups.ActionGroup" enabled="false">
+                <serializedBean>
+                  <property name="conditionExpression">
+                    <object class="com.install4j.api.beans.ScriptProperty">
+                      <property name="value" type="string">context.getBooleanVariable("installService")</property>
+                    </object>
+                  </property>
+                </serializedBean>
+                <beans>
+                  <action name="Install webservice" id="75" beanClass="com.install4j.runtime.beans.actions.services.InstallServiceAction" actionElevationType="elevated">
+                    <serializedBean>
+                      <property name="accountNameOrSid" type="string">${installer:serviceAccount}</property>
+                      <property name="autoStart" type="boolean" value="false" />
+                      <property name="description" type="string">Webservice to generate server packs from your browser.</property>
+                      <property name="executable">
+                        <object class="java.io.File">
+                          <string>ServerPackCreator-WEB</string>
+                        </object>
+                      </property>
+                      <property name="launcherId" type="string">234</property>
+                      <property name="macosIdentifier" type="string">de.griefed.serverpackcreator</property>
+                      <property name="password" type="string">${installer:servicePassword}</property>
+                      <property name="serviceAccount" type="enum" class="com.install4j.runtime.beans.actions.services.ServiceAccount" value="OTHER" />
+                      <property name="serviceName" type="string">ServerPackCreator-Webservice</property>
+                      <property name="windowsDisplayName" type="string">ServerPackCreator-Webservice</property>
+                    </serializedBean>
+                    <condition>context.getBooleanVariable("installService")</condition>
+                  </action>
+                  <action name="Set Webservice properties" id="327" beanClass="com.install4j.runtime.beans.actions.properties.WritePropertiesFileAction" actionElevationType="elevated" rollbackBarrierExitCode="0" errorMessage="Couldn't writer properties!">
+                    <serializedBean>
+                      <property name="encoding" type="enum" class="com.install4j.runtime.beans.actions.properties.PropertiesFileEncoding" value="JAVA_PROPERTIES" />
+                      <property name="file">
+                        <object class="java.io.File">
+                          <string>${installer:sys.installationDir}/serverpackcreator.properties</string>
+                        </object>
+                      </property>
+                      <property name="propertiesSortMode" type="enum" class="com.install4j.runtime.beans.actions.properties.PropertiesSortMode" value="KEYS_ALPHABETICALLY" />
+                      <property name="sourcePropertyDefinitions" type="string">spring.datasource.url=jdbc\:postgresql\://${installer:databaseHost}\:${installer:databasePort}/${installer:databaseName}
+spring.datasource.username=${installer:databaseUser}
+spring.datasource.password=${installer:databasePassword}
+server.port=${installer:webservicePort}</property>
+                      <property name="updateExistingComments" type="boolean" value="true" />
+                      <property name="updateExistingKeys" type="boolean" value="true" />
+                    </serializedBean>
+                    <condition>context.getBooleanVariable("installService")</condition>
+                  </action>
+                </beans>
+              </group>
+              <action name="Set home-directory property" id="331" beanClass="com.install4j.runtime.beans.actions.properties.WritePropertiesFileAction" actionElevationType="elevated" rollbackBarrierExitCode="0" errorMessage="Couldn't writer properties!">
+                <serializedBean>
+                  <property name="encoding" type="enum" class="com.install4j.runtime.beans.actions.properties.PropertiesFileEncoding" value="JAVA_PROPERTIES" />
+                  <property name="file">
+                    <object class="java.io.File">
+                      <string>${installer:sys.installationDir}/serverpackcreator.properties</string>
+                    </object>
+                  </property>
+                  <property name="propertiesSortMode" type="enum" class="com.install4j.runtime.beans.actions.properties.PropertiesSortMode" value="KEYS_ALPHABETICALLY" />
+                  <property name="sourcePropertyDefinitions" type="string">de.griefed.serverpackcreator.home=${installer:homeDirectory}</property>
+                  <property name="updateExistingComments" type="boolean" value="true" />
+                  <property name="updateExistingKeys" type="boolean" value="true" />
+                </serializedBean>
+              </action>
+              <action name="Set Log Path" id="337" beanClass="com.install4j.runtime.beans.actions.text.ModifyTextFileAction" actionElevationType="elevated" rollbackBarrierExitCode="0">
+                <serializedBean>
+                  <property name="encoding" type="string">UTF-8</property>
+                  <property name="files" type="array" class="java.io.File" length="1">
+                    <element index="0">
+                      <object class="java.io.File">
+                        <string>${installer:sys.installationDir}/log4j2.xml</string>
+                      </object>
+                    </element>
+                  </property>
+                  <property name="replaceValue" type="string">&lt;Property name="log-path"&gt;${installer:homeDirectory}\logs&lt;/Property&gt;</property>
+                  <property name="searchValue" type="string">&lt;Property name="log-path"&gt;logs&lt;/Property&gt;</property>
+                </serializedBean>
+              </action>
+              <action name="Set Log Level" id="338" beanClass="com.install4j.runtime.beans.actions.text.ModifyTextFileAction" actionElevationType="elevated" rollbackBarrierExitCode="0">
+                <serializedBean>
+                  <property name="encoding" type="string">UTF-8</property>
+                  <property name="files" type="array" class="java.io.File" length="1">
+                    <element index="0">
+                      <object class="java.io.File">
+                        <string>${installer:sys.installationDir}/log4j2.xml</string>
+                      </object>
+                    </element>
+                  </property>
+                  <property name="replaceValue" type="string">&lt;Property name="log-level-spc"&gt;DEBUG&lt;/Property&gt;</property>
+                  <property name="searchValue" type="string">&lt;Property name="log-level-spc"&gt;INFO&lt;/Property&gt;</property>
+                </serializedBean>
+                <condition>context.getCompilerVariable("projectVersion").contains("dev") || context.getCompilerVariable("projectVersion").contains("alpha") || context.getCompilerVariable("projectVersion").contains("beta") </condition>
+              </action>
+              <action id="254" beanClass="com.install4j.runtime.beans.actions.registry.SaveInstallerVariablesAction" commentSet="true" comment="The launchers will access the user-defined greeting by loading the installer variables saved to the preference store by this action. They do this through a helper class provided by the install4j API.&#xA;&#xA;Another way would have been to load the variable from the automatically created response file (through the same helper class). However, we want to save the settings on a per-user basis." actionElevationType="elevated" rollbackBarrierExitCode="0">
+                <serializedBean>
+                  <property name="installerVariables" type="array" elementType="string" length="9">
+                    <element index="0">databaseHost</element>
+                    <element index="1">databaseName</element>
+                    <element index="2">databasePort</element>
+                    <element index="3">databaseUser</element>
+                    <element index="4">installService</element>
+                    <element index="5">serviceAccount</element>
+                    <element index="6">specialUserAccount</element>
+                    <element index="7">sys.installationDir</element>
+                    <element index="8">:webservicePort</element>
+                  </property>
+                  <property name="packageName" type="string">${compiler:sys.applicationId}</property>
+                </serializedBean>
+              </action>
+              <action id="346" beanClass="com.install4j.runtime.beans.actions.desktop.CreateDesktopLinkAction" actionElevationType="elevated" rollbackBarrierExitCode="0">
+                <serializedBean>
+                  <property name="additionalDesktopFileEntries" type="string">Exec=sudo -i sh -c "${installer:sys.installationDir}/ServerPackCreator"
+Terminal=true
+Comment=Create server packs from Minecraft modpacks.
+Categories=Utility;FileTools;Java</property>
+                  <property name="allUsers" type="boolean" value="false" />
+                  <property name="description" type="string">Create server packs from Minecraft modpacks.</property>
+                  <property name="file">
+                    <object class="java.io.File">
+                      <string>ServerPackCreator-GUI</string>
+                    </object>
+                  </property>
+                  <property name="name" type="string">${compiler:sys.fullName}</property>
+                  <property name="runAsAdministrator" type="boolean" value="true" />
+                  <property name="unixIconFile">
+                    <object class="com.install4j.api.beans.ExternalFile">
+                      <string>${compiler:projectDir}/img/app.png</string>
+                    </object>
+                  </property>
+                  <property name="winIconFile">
+                    <object class="com.install4j.api.beans.ExternalFile">
+                      <string>${compiler:projectDir}/img/icon.ico</string>
+                    </object>
+                  </property>
+                </serializedBean>
+                <textOverrides>
+                  <property name="allUsers" value="${installer:sys.programGroupAllUsers}" />
+                </textOverrides>
+                <condition>context.getBooleanVariable("createDesktopLinkAction")</condition>
+              </action>
+              <action id="340" beanClass="com.install4j.runtime.beans.actions.desktop.AddToDockAction" actionElevationType="none" rollbackBarrierExitCode="0">
+                <serializedBean>
+                  <property name="executable">
+                    <object class="java.io.File">
+                      <string>ServerPackCreator-GUI</string>
+                    </object>
+                  </property>
+                </serializedBean>
+                <condition>context.getBooleanVariable("addToDockAction")</condition>
+              </action>
+            </actions>
+            <formComponents>
+              <formComponent id="16" beanClass="com.install4j.runtime.beans.formcomponents.ProgressComponent">
+                <serializedBean>
+                  <property name="initialStatusMessage" type="string">${i18n:WizardPreparing}</property>
+                </serializedBean>
+              </formComponent>
+            </formComponents>
+          </screen>
+          <screen id="20" beanClass="com.install4j.runtime.beans.screens.FinishedScreen" styleId="7" rollbackBarrierExitCode="0" finishScreen="true">
+            <styleOverrides>
+              <styleOverride name="Customize banner image" enabled="true">
+                <group id="80" beanClass="com.install4j.runtime.beans.groups.VerticalFormComponentGroup" useExternalParametrization="true" externalParametrizationName="Customize banner image" externalParametrizationMode="include">
+                  <serializedBean>
+                    <property name="backgroundColor">
+                      <object class="com.install4j.runtime.beans.LightOrDarkColor">
+                        <object class="java.awt.Color">
+                          <int>255</int>
+                          <int>255</int>
+                          <int>255</int>
+                          <int>255</int>
+                        </object>
+                        <object class="java.awt.Color">
+                          <int>49</int>
+                          <int>52</int>
+                          <int>53</int>
+                          <int>255</int>
+                        </object>
+                      </object>
+                    </property>
+                    <property name="borderSides">
+                      <object class="com.install4j.runtime.beans.formcomponents.BorderSides">
+                        <property name="bottom" type="boolean" value="true" />
+                      </object>
+                    </property>
+                    <property name="imageAnchor" type="enum" class="com.install4j.api.beans.Anchor" value="WEST" />
+                    <property name="imageEdgeBackgroundColor">
+                      <object class="com.install4j.runtime.beans.LightOrDarkColor">
+                        <object class="java.awt.Color">
+                          <int>0</int>
+                          <int>6</int>
+                          <int>16</int>
+                          <int>255</int>
+                        </object>
+                        <object class="java.awt.Color">
+                          <int>0</int>
+                          <int>6</int>
+                          <int>16</int>
+                          <int>255</int>
+                        </object>
+                      </object>
+                    </property>
+                    <property name="imageEdgeBorder" type="boolean" value="true" />
+                    <property name="imageFile">
+                      <object class="com.install4j.api.beans.ExternalFile">
+                        <string>${compiler:projectDir}/img/banner_installer_fin.png</string>
+                      </object>
+                    </property>
+                    <property name="insets">
+                      <object class="java.awt.Insets">
+                        <int>5</int>
+                        <int>10</int>
+                        <int>10</int>
+                        <int>10</int>
+                      </object>
+                    </property>
+                  </serializedBean>
+                  <externalParametrizationPropertyNames>
+                    <propertyName>imageAnchor</propertyName>
+                    <propertyName>imageEdgeBackgroundColor</propertyName>
+                    <propertyName>imageFile</propertyName>
+                  </externalParametrizationPropertyNames>
+                </group>
+              </styleOverride>
+            </styleOverrides>
+            <actions>
+              <action id="81" beanClass="com.install4j.runtime.beans.actions.finish.ExecuteLauncherAction" actionElevationType="elevated">
+                <serializedBean>
+                  <property name="launcherId" type="string">232</property>
+                </serializedBean>
+                <condition>context.getBooleanVariable("executeLauncherAction") &amp;&amp; context.isGui()</condition>
+              </action>
+              <action id="79" beanClass="com.install4j.runtime.beans.actions.services.StartServiceAction" enabled="false" actionElevationType="elevated">
+                <serializedBean>
+                  <property name="executable">
+                    <object class="java.io.File">
+                      <string>ServerPackCreator-WEB</string>
+                    </object>
+                  </property>
+                  <property name="launcherId" type="string">234</property>
+                  <property name="serviceName" type="string">ServerPackCreator Webservice</property>
+                </serializedBean>
+                <condition>context.getBooleanVariable("executeServiceAction")</condition>
+              </action>
+              <action id="264" beanClass="com.install4j.runtime.beans.actions.misc.CreateResponseFileAction" actionElevationType="elevated" rollbackBarrierExitCode="0">
+                <serializedBean>
+                  <property name="excludedVariables" type="array" elementType="string" length="2">
+                    <element index="0">databasePassword</element>
+                    <element index="1">servicePassword</element>
+                  </property>
+                  <property name="file">
+                    <object class="java.io.File">
+                      <string>${installer:sys.installationDir}/varfile</string>
+                    </object>
+                  </property>
+                </serializedBean>
+              </action>
+            </actions>
+            <formComponents>
+              <formComponent id="21" beanClass="com.install4j.runtime.beans.formcomponents.MultilineLabelComponent" insetBottom="10">
+                <serializedBean>
+                  <property name="labelText" type="string">${form:finishedMessage}</property>
+                </serializedBean>
+              </formComponent>
+              <formComponent name="Execute Launcher" id="82" beanClass="com.install4j.runtime.beans.formcomponents.CheckboxComponent">
+                <serializedBean>
+                  <property name="checkboxText" type="string">${i18n:RunEntryExec("${compiler:sys.fullName}")}</property>
+                  <property name="initiallySelected" type="boolean" value="true" />
+                  <property name="variableName" type="string">executeLauncherAction</property>
+                </serializedBean>
+                <visibilityScript>context.isGui()</visibilityScript>
+              </formComponent>
+              <formComponent name="Execute Service" id="319" beanClass="com.install4j.runtime.beans.formcomponents.CheckboxComponent">
+                <serializedBean>
+                  <property name="checkboxText" type="string">${i18n:RunEntryExec("${compiler:sys.fullName}")} Service</property>
+                  <property name="variableName" type="string">executeServiceAction</property>
+                </serializedBean>
+                <visibilityScript>context.isGui() &amp;&amp; context.getBooleanVariable("installService")</visibilityScript>
+              </formComponent>
+            </formComponents>
+          </screen>
+        </screens>
+      </application>
+      <application id="uninstaller" beanClass="com.install4j.runtime.beans.applications.UninstallerApplication">
+        <serializedBean>
+          <property name="customIconImageFiles">
+            <add>
+              <object class="com.install4j.api.beans.ExternalFile">
+                <string>${compiler:projectDir}/img/uninstall_16x16.png</string>
+              </object>
+            </add>
+            <add>
+              <object class="com.install4j.api.beans.ExternalFile">
+                <string>${compiler:projectDir}/img/uninstall_32x32.png</string>
+              </object>
+            </add>
+            <add>
+              <object class="com.install4j.api.beans.ExternalFile">
+                <string>${compiler:projectDir}/img/uninstall_48x48.png</string>
+              </object>
+            </add>
+            <add>
+              <object class="com.install4j.api.beans.ExternalFile">
+                <string>${compiler:projectDir}/img/uninstall_128x128.png</string>
+              </object>
+            </add>
+            <add>
+              <object class="com.install4j.api.beans.ExternalFile">
+                <string>${compiler:projectDir}/img/uninstall_256x256.png</string>
+              </object>
+            </add>
+            <add>
+              <object class="com.install4j.api.beans.ExternalFile">
+                <string>${compiler:projectDir}/img/uninstall_512x512.png</string>
+              </object>
+            </add>
+          </property>
+          <property name="customMacosExecutableName" type="string">${i18n:UninstallerMenuEntry(${compiler:sys.fullName})}</property>
+          <property name="frameWidth" type="int" value="600" />
+          <property name="unixMode" type="string">755</property>
+          <property name="useCustomIcon" type="boolean" value="true" />
+          <property name="useCustomMacosExecutableName" type="boolean" value="true" />
+        </serializedBean>
+        <startup>
+          <screen id="23" beanClass="com.install4j.runtime.beans.screens.StartupScreen" rollbackBarrierExitCode="0">
+            <actions>
+              <action id="33" beanClass="com.install4j.runtime.beans.actions.misc.LoadResponseFileAction" rollbackBarrierExitCode="0" multiExec="true">
+                <condition>context.getVariable("sys.responseFile") == null</condition>
+              </action>
+              <action id="34" beanClass="com.install4j.runtime.beans.actions.misc.RequireInstallerPrivilegesAction" actionElevationType="none" rollbackBarrierExitCode="0" />
+            </actions>
+          </screen>
+        </startup>
+        <screens>
+          <screen id="24" beanClass="com.install4j.runtime.beans.screens.UninstallWelcomeScreen" styleId="7" rollbackBarrierExitCode="0">
+            <styleOverrides>
+              <styleOverride name="Customize banner image" enabled="true">
+                <group id="83" beanClass="com.install4j.runtime.beans.groups.VerticalFormComponentGroup" useExternalParametrization="true" externalParametrizationName="Customize banner image" externalParametrizationMode="include">
+                  <serializedBean>
+                    <property name="backgroundColor">
+                      <object class="com.install4j.runtime.beans.LightOrDarkColor">
+                        <object class="java.awt.Color">
+                          <int>255</int>
+                          <int>255</int>
+                          <int>255</int>
+                          <int>255</int>
+                        </object>
+                        <object class="java.awt.Color">
+                          <int>49</int>
+                          <int>52</int>
+                          <int>53</int>
+                          <int>255</int>
+                        </object>
+                      </object>
+                    </property>
+                    <property name="borderSides">
+                      <object class="com.install4j.runtime.beans.formcomponents.BorderSides">
+                        <property name="bottom" type="boolean" value="true" />
+                      </object>
+                    </property>
+                    <property name="imageAnchor" type="enum" class="com.install4j.api.beans.Anchor" value="WEST" />
+                    <property name="imageEdgeBackgroundColor">
+                      <object class="com.install4j.runtime.beans.LightOrDarkColor">
+                        <object class="java.awt.Color">
+                          <int>0</int>
+                          <int>6</int>
+                          <int>16</int>
+                          <int>255</int>
+                        </object>
+                        <object class="java.awt.Color">
+                          <int>0</int>
+                          <int>6</int>
+                          <int>16</int>
+                          <int>255</int>
+                        </object>
+                      </object>
+                    </property>
+                    <property name="imageEdgeBorder" type="boolean" value="true" />
+                    <property name="imageFile">
+                      <object class="com.install4j.api.beans.ExternalFile">
+                        <string>${compiler:projectDir}/img/banner_installer_fin.png</string>
+                      </object>
+                    </property>
+                    <property name="insets">
+                      <object class="java.awt.Insets">
+                        <int>5</int>
+                        <int>10</int>
+                        <int>10</int>
+                        <int>10</int>
+                      </object>
+                    </property>
+                  </serializedBean>
+                  <externalParametrizationPropertyNames>
+                    <propertyName>imageAnchor</propertyName>
+                    <propertyName>imageEdgeBackgroundColor</propertyName>
+                    <propertyName>imageFile</propertyName>
+                  </externalParametrizationPropertyNames>
+                </group>
+              </styleOverride>
+            </styleOverrides>
+            <formComponents>
+              <formComponent id="25" beanClass="com.install4j.runtime.beans.formcomponents.MultilineLabelComponent" insetBottom="10">
+                <serializedBean>
+                  <property name="labelText" type="string">${form:welcomeMessage}</property>
+                </serializedBean>
+                <visibilityScript>!context.isConsole()</visibilityScript>
+              </formComponent>
+              <formComponent id="26" beanClass="com.install4j.runtime.beans.formcomponents.ConsoleHandlerFormComponent">
+                <serializedBean>
+                  <property name="consoleScript">
+                    <object class="com.install4j.api.beans.ScriptProperty">
+                      <property name="value" type="string">String message = context.getMessage("ConfirmUninstall", context.getApplicationName());
+return console.askYesNo(message, true);
+</property>
+                    </object>
+                  </property>
+                </serializedBean>
+              </formComponent>
+            </formComponents>
+          </screen>
+          <screen name="Service options" id="272" beanClass="com.install4j.runtime.beans.screens.FormScreen" enabled="false">
+            <serializedBean>
+              <property name="subTitle" type="string">Please choose options for the webservice</property>
+              <property name="title" type="string">Webservice Options</property>
+            </serializedBean>
+            <validation>if (!context.getBooleanVariable("specialUserAccount")) {
+    context.setVariable("serviceAccount", "NT AUTHORITY\\System");
+    context.setVariable("servicePassword", "");
+}
+return true;</validation>
+            <formComponents>
+              <formComponent id="273" beanClass="com.install4j.runtime.beans.formcomponents.MultilineHtmlLabelComponent">
+                <serializedBean>
+                  <property name="labelHtml" type="string">Delete the ServerPackCreator directory in your users home-directory, if it exists?</property>
+                </serializedBean>
+              </formComponent>
+              <formComponent id="274" beanClass="com.install4j.runtime.beans.formcomponents.CheckboxComponent">
+                <serializedBean>
+                  <property name="checkboxText" type="string">Delete Home-Directory</property>
+                  <property name="variableName" type="string">deleteHome</property>
+                </serializedBean>
+              </formComponent>
+            </formComponents>
+          </screen>
+          <screen id="27" beanClass="com.install4j.runtime.beans.screens.UninstallationScreen" rollbackBarrierExitCode="0">
+            <actions>
+              <link id="84" targetId="69" />
+              <action id="293" beanClass="com.install4j.runtime.beans.actions.control.SleepAction" actionElevationType="none" rollbackBarrierExitCode="0" />
+              <action id="29" beanClass="com.install4j.runtime.beans.actions.UninstallFilesAction" actionElevationType="elevated" rollbackBarrierExitCode="0" />
+            </actions>
+            <formComponents>
+              <formComponent id="28" beanClass="com.install4j.runtime.beans.formcomponents.ProgressComponent">
+                <serializedBean>
+                  <property name="initialStatusMessage" type="string">${i18n:UninstallerPreparing}</property>
+                </serializedBean>
+              </formComponent>
+            </formComponents>
+          </screen>
+          <screen id="32" beanClass="com.install4j.runtime.beans.screens.UninstallFailureScreen" rollbackBarrierExitCode="0" finishScreen="true" />
+          <screen id="30" beanClass="com.install4j.runtime.beans.screens.UninstallSuccessScreen" styleId="7" rollbackBarrierExitCode="0" finishScreen="true">
+            <styleOverrides>
+              <styleOverride name="Customize banner image" enabled="true">
+                <group id="86" beanClass="com.install4j.runtime.beans.groups.VerticalFormComponentGroup" useExternalParametrization="true" externalParametrizationName="Customize banner image" externalParametrizationMode="include">
+                  <serializedBean>
+                    <property name="backgroundColor">
+                      <object class="com.install4j.runtime.beans.LightOrDarkColor">
+                        <object class="java.awt.Color">
+                          <int>255</int>
+                          <int>255</int>
+                          <int>255</int>
+                          <int>255</int>
+                        </object>
+                        <object class="java.awt.Color">
+                          <int>49</int>
+                          <int>52</int>
+                          <int>53</int>
+                          <int>255</int>
+                        </object>
+                      </object>
+                    </property>
+                    <property name="borderSides">
+                      <object class="com.install4j.runtime.beans.formcomponents.BorderSides">
+                        <property name="bottom" type="boolean" value="true" />
+                      </object>
+                    </property>
+                    <property name="imageAnchor" type="enum" class="com.install4j.api.beans.Anchor" value="WEST" />
+                    <property name="imageEdgeBackgroundColor">
+                      <object class="com.install4j.runtime.beans.LightOrDarkColor">
+                        <object class="java.awt.Color">
+                          <int>0</int>
+                          <int>6</int>
+                          <int>16</int>
+                          <int>255</int>
+                        </object>
+                        <object class="java.awt.Color">
+                          <int>0</int>
+                          <int>6</int>
+                          <int>16</int>
+                          <int>255</int>
+                        </object>
+                      </object>
+                    </property>
+                    <property name="imageEdgeBorder" type="boolean" value="true" />
+                    <property name="imageFile">
+                      <object class="com.install4j.api.beans.ExternalFile">
+                        <string>${compiler:projectDir}/img/banner_installer_fin.png</string>
+                      </object>
+                    </property>
+                    <property name="insets">
+                      <object class="java.awt.Insets">
+                        <int>5</int>
+                        <int>10</int>
+                        <int>10</int>
+                        <int>10</int>
+                      </object>
+                    </property>
+                  </serializedBean>
+                  <externalParametrizationPropertyNames>
+                    <propertyName>imageAnchor</propertyName>
+                    <propertyName>imageEdgeBackgroundColor</propertyName>
+                    <propertyName>imageFile</propertyName>
+                  </externalParametrizationPropertyNames>
+                </group>
+              </styleOverride>
+            </styleOverrides>
+            <formComponents>
+              <formComponent id="31" beanClass="com.install4j.runtime.beans.formcomponents.MultilineLabelComponent" insetBottom="10">
+                <serializedBean>
+                  <property name="labelText" type="string">${form:successMessage}</property>
+                </serializedBean>
+              </formComponent>
+            </formComponents>
+          </screen>
+        </screens>
+      </application>
+      <application name="Standalone update downloader" id="87" beanClass="com.install4j.runtime.beans.applications.CustomApplication" enabled="false" launchInNewProcess="false">
+        <serializedBean>
+          <property name="customIconImageFiles">
+            <add>
+              <object class="com.install4j.api.beans.ExternalFile">
+                <string>${compiler:sys.install4jHome}/resource/updater_16.png</string>
+              </object>
+            </add>
+            <add>
+              <object class="com.install4j.api.beans.ExternalFile">
+                <string>${compiler:sys.install4jHome}/resource/updater_32.png</string>
+              </object>
+            </add>
+            <add>
+              <object class="com.install4j.api.beans.ExternalFile">
+                <string>${compiler:sys.install4jHome}/resource/updater_48.png</string>
+              </object>
+            </add>
+            <add>
+              <object class="com.install4j.api.beans.ExternalFile">
+                <string>${compiler:sys.install4jHome}/resource/updater_128.png</string>
+              </object>
+            </add>
+            <add>
+              <object class="com.install4j.api.beans.ExternalFile">
+                <string>${compiler:sys.install4jHome}/resource/updater_256.png</string>
+              </object>
+            </add>
+          </property>
+          <property name="executableName" type="string">ServerPackCreator_update</property>
+          <property name="useCustomIcon" type="boolean" value="true" />
+          <property name="windowTitle" type="string">${i18n:updater.WindowTitle("${compiler:sys.fullName}")}</property>
+        </serializedBean>
+        <startup>
+          <screen id="88" beanClass="com.install4j.runtime.beans.screens.StartupScreen" rollbackBarrierExitCode="0" />
+        </startup>
+        <screens>
+          <screen name="Welcome" id="89" beanClass="com.install4j.runtime.beans.screens.FormScreen" styleId="7">
+            <serializedBean>
+              <property name="title" type="string">${i18n:updater.WelcomeTitle("${compiler:sys.fullName}")}</property>
+            </serializedBean>
+            <styleOverrides>
+              <styleOverride name="Customize banner image" enabled="true">
+                <group id="149" beanClass="com.install4j.runtime.beans.groups.VerticalFormComponentGroup" useExternalParametrization="true" externalParametrizationName="Customize banner image" externalParametrizationMode="include">
+                  <serializedBean>
+                    <property name="backgroundColor">
+                      <object class="com.install4j.runtime.beans.LightOrDarkColor">
+                        <object class="java.awt.Color">
+                          <int>255</int>
+                          <int>255</int>
+                          <int>255</int>
+                          <int>255</int>
+                        </object>
+                        <object class="java.awt.Color">
+                          <int>49</int>
+                          <int>52</int>
+                          <int>53</int>
+                          <int>255</int>
+                        </object>
+                      </object>
+                    </property>
+                    <property name="borderSides">
+                      <object class="com.install4j.runtime.beans.formcomponents.BorderSides">
+                        <property name="bottom" type="boolean" value="true" />
+                      </object>
+                    </property>
+                    <property name="imageAnchor" type="enum" class="com.install4j.api.beans.Anchor" value="WEST" />
+                    <property name="imageEdgeBackgroundColor">
+                      <object class="com.install4j.runtime.beans.LightOrDarkColor">
+                        <object class="java.awt.Color">
+                          <int>0</int>
+                          <int>6</int>
+                          <int>16</int>
+                          <int>255</int>
+                        </object>
+                        <object class="java.awt.Color">
+                          <int>0</int>
+                          <int>6</int>
+                          <int>16</int>
+                          <int>255</int>
+                        </object>
+                      </object>
+                    </property>
+                    <property name="imageEdgeBorder" type="boolean" value="true" />
+                    <property name="imageFile">
+                      <object class="com.install4j.api.beans.ExternalFile">
+                        <string>${compiler:projectDir}/img/banner_installer_fin.png</string>
+                      </object>
+                    </property>
+                    <property name="insets">
+                      <object class="java.awt.Insets">
+                        <int>5</int>
+                        <int>10</int>
+                        <int>10</int>
+                        <int>10</int>
+                      </object>
+                    </property>
+                  </serializedBean>
+                  <externalParametrizationPropertyNames>
+                    <propertyName>imageAnchor</propertyName>
+                    <propertyName>imageEdgeBackgroundColor</propertyName>
+                    <propertyName>imageFile</propertyName>
+                  </externalParametrizationPropertyNames>
+                </group>
+              </styleOverride>
+            </styleOverrides>
+            <formComponents>
+              <formComponent id="90" beanClass="com.install4j.runtime.beans.formcomponents.MultilineLabelComponent" insetBottom="20" useExternalParametrization="true" externalParametrizationName="Header" externalParametrizationMode="include">
+                <serializedBean>
+                  <property name="hideIfBlank" type="boolean" value="true" />
+                  <property name="labelText" type="string">${i18n:updater.WelcomeInfoText("${compiler:sys.fullName}")}</property>
+                </serializedBean>
+                <visibilityScript>!context.isConsole()</visibilityScript>
+                <externalParametrizationPropertyNames>
+                  <propertyName>labelText</propertyName>
+                </externalParametrizationPropertyNames>
+              </formComponent>
+            </formComponents>
+          </screen>
+          <screen name="Check for update" id="91" beanClass="com.install4j.runtime.beans.screens.FormScreen">
+            <serializedBean>
+              <property name="subTitle" type="string">${i18n:updater.CheckForUpdateSubtitle}</property>
+              <property name="title" type="string">${i18n:updater.CheckForUpdateTitle}</property>
+            </serializedBean>
+            <postActivation>context.getWizardContext().setControlButtonVisible(ControlButtonType.NEXT, false);
+context.getWizardContext().setControlButtonVisible(ControlButtonType.PREVIOUS, false);
+context.goForward(1, true, true);
+</postActivation>
+            <actions>
+              <action id="92" beanClass="com.install4j.runtime.beans.actions.control.SetProgressAction" actionElevationType="none">
+                <serializedBean>
+                  <property name="progressChangeType" type="enum" class="com.install4j.runtime.beans.actions.control.ProgressChangeType" value="SET_INDETERMINATE" />
+                </serializedBean>
+              </action>
+              <action id="93" beanClass="com.install4j.runtime.beans.actions.update.CheckForUpdateAction" actionElevationType="none" failureStrategy="quit">
+                <serializedBean>
+                  <property name="url" type="string">${compiler:sys.updatesUrl}</property>
+                  <property name="variable" type="string">updateDescriptor</property>
+                </serializedBean>
+              </action>
+              <action id="94" beanClass="com.install4j.runtime.beans.actions.control.SleepAction" actionElevationType="none" />
+              <action name="Update descriptor entry" id="95" beanClass="com.install4j.runtime.beans.actions.control.SetVariableAction">
+                <serializedBean>
+                  <property name="script">
+                    <object class="com.install4j.api.beans.ScriptProperty">
+                      <property name="value" type="string">((UpdateDescriptor)context.getVariable("updateDescriptor")).getPossibleUpdateEntry()</property>
+                    </object>
+                  </property>
+                  <property name="variableName" type="string">updateDescriptorEntry</property>
+                </serializedBean>
+              </action>
+              <group name="Update available" id="96" beanClass="com.install4j.runtime.beans.groups.ActionGroup">
+                <serializedBean>
+                  <property name="conditionExpression">
+                    <object class="com.install4j.api.beans.ScriptProperty">
+                      <property name="value" type="string">context.getVariable("updateDescriptorEntry") != null</property>
+                    </object>
+                  </property>
+                </serializedBean>
+                <beans>
+                  <action name="New version" id="97" beanClass="com.install4j.runtime.beans.actions.control.SetVariableAction">
+                    <serializedBean>
+                      <property name="script">
+                        <object class="com.install4j.api.beans.ScriptProperty">
+                          <property name="value" type="string">((UpdateDescriptorEntry)context.getVariable("updateDescriptorEntry")).getNewVersion()</property>
+                        </object>
+                      </property>
+                      <property name="variableName" type="string">updaterNewVersion</property>
+                    </serializedBean>
+                  </action>
+                  <action name="Download size" id="98" beanClass="com.install4j.runtime.beans.actions.control.SetVariableAction">
+                    <serializedBean>
+                      <property name="script">
+                        <object class="com.install4j.api.beans.ScriptProperty">
+                          <property name="value" type="string">((UpdateDescriptorEntry)context.getVariable("updateDescriptorEntry")).getFileSizeVerbose()</property>
+                        </object>
+                      </property>
+                      <property name="variableName" type="string">updaterDownloadSize</property>
+                    </serializedBean>
+                  </action>
+                  <action name="Comment" id="99" beanClass="com.install4j.runtime.beans.actions.control.SetVariableAction">
+                    <serializedBean>
+                      <property name="script">
+                        <object class="com.install4j.api.beans.ScriptProperty">
+                          <property name="value" type="string">((UpdateDescriptorEntry)context.getVariable("updateDescriptorEntry")).getComment()</property>
+                        </object>
+                      </property>
+                      <property name="variableName" type="string">updaterComment</property>
+                    </serializedBean>
+                  </action>
+                  <action name="Download URL" id="100" beanClass="com.install4j.runtime.beans.actions.control.SetVariableAction">
+                    <serializedBean>
+                      <property name="script">
+                        <object class="com.install4j.api.beans.ScriptProperty">
+                          <property name="value" type="string">((UpdateDescriptorEntry)context.getVariable("updateDescriptorEntry")).getURL().toExternalForm()</property>
+                        </object>
+                      </property>
+                      <property name="variableName" type="string">updaterDownloadUrl</property>
+                    </serializedBean>
+                  </action>
+                  <action name="Archive" id="101" beanClass="com.install4j.runtime.beans.actions.control.SetVariableAction">
+                    <serializedBean>
+                      <property name="script">
+                        <object class="com.install4j.api.beans.ScriptProperty">
+                          <property name="value" type="string">((UpdateDescriptorEntry)context.getVariable("updateDescriptorEntry")).isArchive() ? Boolean.TRUE : Boolean.FALSE</property>
+                        </object>
+                      </property>
+                      <property name="variableName" type="string">isArchive</property>
+                    </serializedBean>
+                  </action>
+                  <action name="DMG" id="102" beanClass="com.install4j.runtime.beans.actions.control.SetVariableAction">
+                    <serializedBean>
+                      <property name="script">
+                        <object class="com.install4j.api.beans.ScriptProperty">
+                          <property name="value" type="string">((UpdateDescriptorEntry)context.getVariable("updateDescriptorEntry")).getFileName().toLowerCase().endsWith(".dmg")</property>
+                        </object>
+                      </property>
+                      <property name="variableName" type="string">isDmg</property>
+                    </serializedBean>
+                  </action>
+                </beans>
+              </group>
+            </actions>
+            <formComponents>
+              <formComponent id="103" beanClass="com.install4j.runtime.beans.formcomponents.ProgressComponent" useExternalParametrization="true" externalParametrizationName="Directory" externalParametrizationMode="include">
+                <serializedBean>
+                  <property name="initialStatusMessage" type="string">${i18n:updater.CheckForUpdateLabel}</property>
+                </serializedBean>
+                <externalParametrizationPropertyNames>
+                  <propertyName>statusVisible</propertyName>
+                  <propertyName>initialStatusMessage</propertyName>
+                </externalParametrizationPropertyNames>
+              </formComponent>
+            </formComponents>
+          </screen>
+          <group name="Up to date" id="104" beanClass="com.install4j.runtime.beans.groups.ScreenGroup">
+            <serializedBean>
+              <property name="conditionExpression">
+                <object class="com.install4j.api.beans.ScriptProperty">
+                  <property name="value" type="string">context.getVariable("updateDescriptorEntry") == null</property>
+                </object>
+              </property>
+            </serializedBean>
+            <beans>
+              <screen name="Up to date notification" id="105" beanClass="com.install4j.runtime.beans.screens.FormScreen" styleId="7" finishScreen="true">
+                <serializedBean>
+                  <property name="title" type="string">${i18n:updater.UpToDateTitle}</property>
+                </serializedBean>
+                <styleOverrides>
+                  <styleOverride name="Customize banner image" enabled="true">
+                    <group id="150" beanClass="com.install4j.runtime.beans.groups.VerticalFormComponentGroup" useExternalParametrization="true" externalParametrizationName="Customize banner image" externalParametrizationMode="include">
+                      <serializedBean>
+                        <property name="backgroundColor">
+                          <object class="com.install4j.runtime.beans.LightOrDarkColor">
+                            <object class="java.awt.Color">
+                              <int>255</int>
+                              <int>255</int>
+                              <int>255</int>
+                              <int>255</int>
+                            </object>
+                            <object class="java.awt.Color">
+                              <int>49</int>
+                              <int>52</int>
+                              <int>53</int>
+                              <int>255</int>
+                            </object>
+                          </object>
+                        </property>
+                        <property name="borderSides">
+                          <object class="com.install4j.runtime.beans.formcomponents.BorderSides">
+                            <property name="bottom" type="boolean" value="true" />
+                          </object>
+                        </property>
+                        <property name="imageAnchor" type="enum" class="com.install4j.api.beans.Anchor" value="WEST" />
+                        <property name="imageEdgeBackgroundColor">
+                          <object class="com.install4j.runtime.beans.LightOrDarkColor">
+                            <object class="java.awt.Color">
+                              <int>0</int>
+                              <int>6</int>
+                              <int>16</int>
+                              <int>255</int>
+                            </object>
+                            <object class="java.awt.Color">
+                              <int>0</int>
+                              <int>6</int>
+                              <int>16</int>
+                              <int>255</int>
+                            </object>
+                          </object>
+                        </property>
+                        <property name="imageEdgeBorder" type="boolean" value="true" />
+                        <property name="imageFile">
+                          <object class="com.install4j.api.beans.ExternalFile">
+                            <string>${compiler:projectDir}/img/banner_installer_fin.png</string>
+                          </object>
+                        </property>
+                        <property name="insets">
+                          <object class="java.awt.Insets">
+                            <int>5</int>
+                            <int>10</int>
+                            <int>10</int>
+                            <int>10</int>
+                          </object>
+                        </property>
+                      </serializedBean>
+                      <externalParametrizationPropertyNames>
+                        <propertyName>imageAnchor</propertyName>
+                        <propertyName>imageEdgeBackgroundColor</propertyName>
+                        <propertyName>imageFile</propertyName>
+                      </externalParametrizationPropertyNames>
+                    </group>
+                  </styleOverride>
+                </styleOverrides>
+                <formComponents>
+                  <formComponent id="106" beanClass="com.install4j.runtime.beans.formcomponents.MultilineLabelComponent" insetBottom="20" useExternalParametrization="true" externalParametrizationName="Header" externalParametrizationMode="include">
+                    <serializedBean>
+                      <property name="hideIfBlank" type="boolean" value="true" />
+                      <property name="labelText" type="string">${i18n:updater.UpToDateInfoText("${compiler:sys.fullName}")}</property>
+                    </serializedBean>
+                    <visibilityScript>!context.isConsole()</visibilityScript>
+                    <externalParametrizationPropertyNames>
+                      <propertyName>labelText</propertyName>
+                    </externalParametrizationPropertyNames>
+                  </formComponent>
+                </formComponents>
+              </screen>
+            </beans>
+          </group>
+          <group name="Update available" id="107" beanClass="com.install4j.runtime.beans.groups.ScreenGroup">
+            <serializedBean>
+              <property name="conditionExpression">
+                <object class="com.install4j.api.beans.ScriptProperty">
+                  <property name="value" type="string">context.getVariable("updateDescriptorEntry") != null</property>
+                </object>
+              </property>
+            </serializedBean>
+            <beans>
+              <screen name="New version available" id="108" beanClass="com.install4j.runtime.beans.screens.FormScreen">
+                <serializedBean>
+                  <property name="subTitle" type="string">${i18n:updater.NewVersionAvailableSubtitle("${compiler:sys.fullName}")}</property>
+                  <property name="title" type="string">${i18n:updater.NewVersionAvailableTitle}</property>
+                </serializedBean>
+                <condition>!context.getBooleanVariable("skipNewVersionAvailable")</condition>
+                <formComponents>
+                  <formComponent id="109" beanClass="com.install4j.runtime.beans.formcomponents.KeyValuePairComponent">
+                    <serializedBean>
+                      <property name="labelText" type="string">${i18n:updater.CurrentVersionLabel}</property>
+                      <property name="valueLabelColor">
+                        <object class="java.awt.Color">
+                          <int>128</int>
+                          <int>0</int>
+                          <int>0</int>
+                          <int>255</int>
+                        </object>
+                      </property>
+                      <property name="valueLabelFontStyle" type="enum" class="com.install4j.runtime.beans.formcomponents.FontStyle" value="BOLD" />
+                      <property name="valueLabelFontType" type="enum" class="com.install4j.runtime.beans.formcomponents.FontType" value="DERIVED" />
+                      <property name="valueLabelText" type="string">${installer:sys.version}</property>
+                    </serializedBean>
+                  </formComponent>
+                  <group id="110" beanClass="com.install4j.runtime.beans.groups.HorizontalFormComponentGroup">
+                    <beans>
+                      <formComponent id="111" beanClass="com.install4j.runtime.beans.formcomponents.KeyValuePairComponent">
+                        <serializedBean>
+                          <property name="labelText" type="string">${i18n:updater.NewVersionLabel}</property>
+                          <property name="valueLabelColor">
+                            <object class="java.awt.Color">
+                              <int>0</int>
+                              <int>128</int>
+                              <int>0</int>
+                              <int>255</int>
+                            </object>
+                          </property>
+                          <property name="valueLabelFontStyle" type="enum" class="com.install4j.runtime.beans.formcomponents.FontStyle" value="BOLD" />
+                          <property name="valueLabelFontType" type="enum" class="com.install4j.runtime.beans.formcomponents.FontType" value="DERIVED" />
+                          <property name="valueLabelText" type="string">${installer:updaterNewVersion}</property>
+                        </serializedBean>
+                      </formComponent>
+                      <formComponent id="112" beanClass="com.install4j.runtime.beans.formcomponents.HyperlinkActionLabelComponent" insetLeft="5">
+                        <serializedBean>
+                          <property name="actionScript">
+                            <object class="com.install4j.api.beans.ScriptProperty">
+                              <property name="value" type="string">context.goForward(1, false, false);</property>
+                            </object>
+                          </property>
+                          <property name="hyperlinkText" type="string">${i18n:updater.ShowComments}</property>
+                        </serializedBean>
+                        <visibilityScript> ((String)context.getVariable("updaterComment")).length() &gt; 0</visibilityScript>
+                      </formComponent>
+                    </beans>
+                  </group>
+                  <formComponent id="113" beanClass="com.install4j.runtime.beans.formcomponents.SpacerComponent" />
+                  <formComponent id="114" beanClass="com.install4j.runtime.beans.formcomponents.MultilineLabelComponent">
+                    <serializedBean>
+                      <property name="labelText" type="string">${i18n:updater.DownloadLocationLabel}</property>
+                    </serializedBean>
+                  </formComponent>
+                  <formComponent id="115" beanClass="com.install4j.runtime.beans.formcomponents.DirectoryChooserComponent">
+                    <serializedBean>
+                      <property name="initialFile" type="string">${installer:sys.downloadsDir}</property>
+                      <property name="labelText" type="string">${i18n:updater.DownloadToLabel}</property>
+                      <property name="manualEntryAllowed" type="boolean" value="false" />
+                      <property name="variableName" type="string">updaterDownloadLocation</property>
+                    </serializedBean>
+                  </formComponent>
+                  <formComponent id="116" beanClass="com.install4j.runtime.beans.formcomponents.KeyValuePairComponent">
+                    <serializedBean>
+                      <property name="labelText" type="string">${i18n:updater.DownloadSizeLabel}</property>
+                      <property name="valueLabelText" type="string">${installer:updaterDownloadSize}</property>
+                    </serializedBean>
+                  </formComponent>
+                </formComponents>
+              </screen>
+              <screen name="Update message" id="117" beanClass="com.install4j.runtime.beans.screens.FormScreen">
+                <serializedBean>
+                  <property name="scrollable" type="boolean" value="false" />
+                  <property name="subTitle" type="string">${i18n:updater.CommentsSubTitle}</property>
+                  <property name="title" type="string">${i18n:updater.CommentsTitle}</property>
+                </serializedBean>
+                <condition>false // This screen is only shown if the user clicks the "Show comments" hyperlink label in the previous screen.
+</condition>
+                <validation>if (context.isConsole()) {
+    context.goBackInHistory(1);
+}
+return true;</validation>
+                <postActivation>WizardContext wizardContext = context.getWizardContext();
+wizardContext.setControlButtonVisible(ControlButtonType.NEXT, false);
+wizardContext.setControlButtonVisible(ControlButtonType.CANCEL, false);</postActivation>
+                <formComponents>
+                  <formComponent id="118" beanClass="com.install4j.runtime.beans.formcomponents.MultilineLabelComponent" useExternalParametrization="true" externalParametrizationName="Header" externalParametrizationMode="include">
+                    <serializedBean>
+                      <property name="hideIfBlank" type="boolean" value="true" />
+                      <property name="labelText" type="string">${i18n:updater.CommentsLabel}</property>
+                    </serializedBean>
+                    <visibilityScript>!context.isConsole()</visibilityScript>
+                    <externalParametrizationPropertyNames>
+                      <propertyName>labelText</propertyName>
+                    </externalParametrizationPropertyNames>
+                  </formComponent>
+                  <formComponent id="119" beanClass="com.install4j.runtime.beans.formcomponents.HtmlDisplayFormComponent" useExternalParametrization="true" externalParametrizationName="HTML display" externalParametrizationMode="include">
+                    <serializedBean>
+                      <property name="displayedText" type="string">${installer:updaterComment}</property>
+                      <property name="fillVertical" type="boolean" value="true" />
+                      <property name="textSource" type="enum" class="com.install4j.runtime.beans.screens.components.TextSource" value="DIRECT" />
+                    </serializedBean>
+                    <externalParametrizationPropertyNames>
+                      <propertyName>textSource</propertyName>
+                      <propertyName>displayedText</propertyName>
+                      <propertyName>displayedTextFile</propertyName>
+                      <propertyName>variableName</propertyName>
+                    </externalParametrizationPropertyNames>
+                  </formComponent>
+                  <formComponent id="120" beanClass="com.install4j.runtime.beans.formcomponents.ConsoleHandlerFormComponent">
+                    <serializedBean>
+                      <property name="consoleScript">
+                        <object class="com.install4j.api.beans.ScriptProperty">
+                          <property name="value" type="string">console.waitForEnter();
+return true;
+</property>
+                        </object>
+                      </property>
+                    </serializedBean>
+                  </formComponent>
+                </formComponents>
+              </screen>
+              <screen name="Download new version" id="121" beanClass="com.install4j.runtime.beans.screens.FormScreen">
+                <serializedBean>
+                  <property name="subTitle" type="string">${i18n:updater.DownloadSubTitle}</property>
+                  <property name="title" type="string">${i18n:updater.DownloadTitle}</property>
+                </serializedBean>
+                <postActivation>context.getWizardContext().setControlButtonVisible(ControlButtonType.NEXT, false);
+context.getWizardContext().setControlButtonVisible(ControlButtonType.PREVIOUS, false);
+context.goForward(1, true, true);
+</postActivation>
+                <actions>
+                  <action name="Download location" id="122" beanClass="com.install4j.runtime.beans.actions.control.SetVariableAction">
+                    <serializedBean>
+                      <property name="script">
+                        <object class="com.install4j.api.beans.ScriptProperty">
+                          <property name="value" type="string">context.getVariable("updaterDownloadLocation") + File.separator + ((UpdateDescriptorEntry)context.getVariable("updateDescriptorEntry")).getFileName()</property>
+                        </object>
+                      </property>
+                      <property name="variableName" type="string">updaterDownloadFile</property>
+                    </serializedBean>
+                  </action>
+                  <action id="123" beanClass="com.install4j.runtime.beans.actions.net.DownloadFileAction" actionElevationType="elevated" failureStrategy="quit">
+                    <serializedBean>
+                      <property name="targetFile">
+                        <object class="java.io.File">
+                          <string>${installer:updaterDownloadFile}</string>
+                        </object>
+                      </property>
+                      <property name="url" type="string">${installer:updaterDownloadUrl}</property>
+                    </serializedBean>
+                  </action>
+                  <action id="124" beanClass="com.install4j.runtime.beans.actions.files.SetModeAction" actionElevationType="elevated">
+                    <serializedBean>
+                      <property name="files" type="array" class="java.io.File" length="1">
+                        <element index="0">
+                          <object class="java.io.File">
+                            <string>${installer:updaterDownloadFile}</string>
+                          </object>
+                        </element>
+                      </property>
+                      <property name="mode" type="string">755</property>
+                    </serializedBean>
+                  </action>
+                </actions>
+                <formComponents>
+                  <formComponent id="125" beanClass="com.install4j.runtime.beans.formcomponents.ProgressComponent" useExternalParametrization="true" externalParametrizationName="Directory" externalParametrizationMode="include">
+                    <externalParametrizationPropertyNames>
+                      <propertyName>statusVisible</propertyName>
+                      <propertyName>initialStatusMessage</propertyName>
+                    </externalParametrizationPropertyNames>
+                  </formComponent>
+                </formComponents>
+              </screen>
+              <group name="Finish" id="126" beanClass="com.install4j.runtime.beans.groups.ScreenGroup">
+                <beans>
+                  <screen name="Finish" id="127" beanClass="com.install4j.runtime.beans.screens.FormScreen" styleId="7" finishScreen="true">
+                    <serializedBean>
+                      <property name="title" type="string">${i18n:updater.FinishTitle}</property>
+                    </serializedBean>
+                    <styleOverrides>
+                      <styleOverride name="Customize banner image" enabled="true">
+                        <group id="151" beanClass="com.install4j.runtime.beans.groups.VerticalFormComponentGroup" useExternalParametrization="true" externalParametrizationName="Customize banner image" externalParametrizationMode="include">
+                          <serializedBean>
+                            <property name="backgroundColor">
+                              <object class="com.install4j.runtime.beans.LightOrDarkColor">
+                                <object class="java.awt.Color">
+                                  <int>255</int>
+                                  <int>255</int>
+                                  <int>255</int>
+                                  <int>255</int>
+                                </object>
+                                <object class="java.awt.Color">
+                                  <int>49</int>
+                                  <int>52</int>
+                                  <int>53</int>
+                                  <int>255</int>
+                                </object>
+                              </object>
+                            </property>
+                            <property name="borderSides">
+                              <object class="com.install4j.runtime.beans.formcomponents.BorderSides">
+                                <property name="bottom" type="boolean" value="true" />
+                              </object>
+                            </property>
+                            <property name="imageAnchor" type="enum" class="com.install4j.api.beans.Anchor" value="WEST" />
+                            <property name="imageEdgeBackgroundColor">
+                              <object class="com.install4j.runtime.beans.LightOrDarkColor">
+                                <object class="java.awt.Color">
+                                  <int>0</int>
+                                  <int>6</int>
+                                  <int>16</int>
+                                  <int>255</int>
+                                </object>
+                                <object class="java.awt.Color">
+                                  <int>0</int>
+                                  <int>6</int>
+                                  <int>16</int>
+                                  <int>255</int>
+                                </object>
+                              </object>
+                            </property>
+                            <property name="imageEdgeBorder" type="boolean" value="true" />
+                            <property name="imageFile">
+                              <object class="com.install4j.api.beans.ExternalFile">
+                                <string>${compiler:projectDir}/img/banner_installer_fin.png</string>
+                              </object>
+                            </property>
+                            <property name="insets">
+                              <object class="java.awt.Insets">
+                                <int>5</int>
+                                <int>10</int>
+                                <int>10</int>
+                                <int>10</int>
+                              </object>
+                            </property>
+                          </serializedBean>
+                          <externalParametrizationPropertyNames>
+                            <propertyName>imageAnchor</propertyName>
+                            <propertyName>imageEdgeBackgroundColor</propertyName>
+                            <propertyName>imageFile</propertyName>
+                          </externalParametrizationPropertyNames>
+                        </group>
+                      </styleOverride>
+                    </styleOverrides>
+                    <condition>!(context.getBooleanVariable("isArchive") &amp;&amp; context.getBooleanVariable("isDmg"))</condition>
+                    <actions>
+                      <group name="Execute installer" id="128" beanClass="com.install4j.runtime.beans.groups.ActionGroup">
+                        <serializedBean>
+                          <property name="conditionExpression">
+                            <object class="com.install4j.api.beans.ScriptProperty">
+                              <property name="value" type="string">!context.getBooleanVariable("isArchive") &amp;&amp; ((Integer)context.getVariable("updaterLaunchSelection")).intValue() == 0</property>
+                            </object>
+                          </property>
+                        </serializedBean>
+                        <beans>
+                          <action name="Set installer arguments" id="129" beanClass="com.install4j.runtime.beans.actions.control.SetVariableAction">
+                            <serializedBean>
+                              <property name="script">
+                                <object class="com.install4j.api.beans.ScriptProperty">
+                                  <property name="value" type="string">List&lt;String&gt; args = new ArrayList&lt;String&gt;();
+String installationDirectory = context.getInstallationDirectory().getPath();
+if (context.isUnattended()) {
+    args.add("-q");
+    args.add("-wait");
+    args.add("20");
+    ProgressInterface progressInterface = context.getProgressInterface();
+    if (progressInterface.isUnattendedProgressDialog()) {
+        if (progressInterface.isAlertsShown()) {
+            args.add("-alerts");
+        }
+        args.add("-splash");
+        args.add("Installing");
+    }
+} else if (context.isConsole()) {
+    args.add("-c");
+}
+ args.add("-dir");
+ args.add(installationDirectory);
+ 
+ return args.toArray(new String[args.size()]);
+</property>
+                                </object>
+                              </property>
+                              <property name="variableName" type="string">installerArguments</property>
+                            </serializedBean>
+                          </action>
+                          <action id="130" beanClass="com.install4j.runtime.beans.actions.update.ShutdownCallingLauncherAction" actionElevationType="none" />
+                          <action id="131" beanClass="com.install4j.runtime.beans.actions.misc.RunExecutableAction" actionElevationType="elevated" failureStrategy="quit" errorMessage="${i18n:updater.LaunchError}">
+                            <serializedBean>
+                              <property name="arguments" type="array" elementType="string" length="1">
+                                <element index="0">${installer:installerArguments}</element>
+                              </property>
+                              <property name="executable">
+                                <object class="java.io.File">
+                                  <string>${installer:updaterDownloadFile}</string>
+                                </object>
+                              </property>
+                              <property name="workingDirectory">
+                                <object class="java.io.File">
+                                  <string>${installer:updaterDownloadLocation}</string>
+                                </object>
+                              </property>
+                            </serializedBean>
+                          </action>
+                        </beans>
+                      </group>
+                    </actions>
+                    <formComponents>
+                      <formComponent id="132" beanClass="com.install4j.runtime.beans.formcomponents.MultilineLabelComponent" insetBottom="20" useExternalParametrization="true" externalParametrizationName="Header" externalParametrizationMode="include">
+                        <serializedBean>
+                          <property name="hideIfBlank" type="boolean" value="true" />
+                        </serializedBean>
+                        <visibilityScript>!context.isConsole()</visibilityScript>
+                        <externalParametrizationPropertyNames>
+                          <propertyName>labelText</propertyName>
+                        </externalParametrizationPropertyNames>
+                      </formComponent>
+                      <formComponent id="133" beanClass="com.install4j.runtime.beans.formcomponents.MultilineLabelComponent" insetBottom="20" useExternalParametrization="true" externalParametrizationName="Header" externalParametrizationMode="include">
+                        <serializedBean>
+                          <property name="hideIfBlank" type="boolean" value="true" />
+                          <property name="labelText" type="string">${i18n:updater.FinishInfoText("${compiler:sys.fullName}")}</property>
+                        </serializedBean>
+                        <visibilityScript>!context.isConsole()</visibilityScript>
+                        <externalParametrizationPropertyNames>
+                          <propertyName>labelText</propertyName>
+                        </externalParametrizationPropertyNames>
+                      </formComponent>
+                      <formComponent id="134" beanClass="com.install4j.runtime.beans.formcomponents.LabelComponent">
+                        <serializedBean>
+                          <property name="labelText" type="string">${i18n:updater.LaunchUpdaterQuestion}</property>
+                        </serializedBean>
+                      </formComponent>
+                      <formComponent id="135" beanClass="com.install4j.runtime.beans.formcomponents.SpacerComponent">
+                        <serializedBean>
+                          <property name="height" type="int" value="5" />
+                        </serializedBean>
+                      </formComponent>
+                      <formComponent id="136" beanClass="com.install4j.runtime.beans.formcomponents.RadiobuttonsComponent">
+                        <serializedBean>
+                          <property name="radioButtonLabels" type="array" elementType="string" length="2">
+                            <element index="0">${i18n:updater.LaunchUpdaterLabel}</element>
+                            <element index="1">${i18n:updater.DoNotLaunchUpdaterLabel}</element>
+                          </property>
+                          <property name="variableName" type="string">updaterLaunchSelection</property>
+                        </serializedBean>
+                        <visibilityScript>!context.getBooleanVariable("isArchive")</visibilityScript>
+                      </formComponent>
+                      <formComponent id="137" beanClass="com.install4j.runtime.beans.formcomponents.HyperlinkActionLabelComponent">
+                        <serializedBean>
+                          <property name="actionScript">
+                            <object class="com.install4j.api.beans.ScriptProperty">
+                              <property name="value" type="string">Util.showPath((String)context.getVariable("updaterDownloadFile"));</property>
+                            </object>
+                          </property>
+                          <property name="hyperlinkText" type="string">${i18n:updater.OpenContainingFolderLabel}</property>
+                        </serializedBean>
+                        <visibilityScript>!context.isConsole()</visibilityScript>
+                      </formComponent>
+                      <formComponent id="138" beanClass="com.install4j.runtime.beans.formcomponents.ProgressComponent">
+                        <serializedBean>
+                          <property name="detailVisible" type="boolean" value="false" />
+                          <property name="hideInitially" type="boolean" value="true" />
+                        </serializedBean>
+                      </formComponent>
+                    </formComponents>
+                  </screen>
+                  <screen name="Finish DMG Archive" id="139" beanClass="com.install4j.runtime.beans.screens.FormScreen" styleId="7" finishScreen="true">
+                    <serializedBean>
+                      <property name="title" type="string">${i18n:updater.FinishTitle}</property>
+                    </serializedBean>
+                    <styleOverrides>
+                      <styleOverride name="Customize banner image" enabled="true">
+                        <group id="152" beanClass="com.install4j.runtime.beans.groups.VerticalFormComponentGroup" useExternalParametrization="true" externalParametrizationName="Customize banner image" externalParametrizationMode="include">
+                          <serializedBean>
+                            <property name="backgroundColor">
+                              <object class="com.install4j.runtime.beans.LightOrDarkColor">
+                                <object class="java.awt.Color">
+                                  <int>255</int>
+                                  <int>255</int>
+                                  <int>255</int>
+                                  <int>255</int>
+                                </object>
+                                <object class="java.awt.Color">
+                                  <int>49</int>
+                                  <int>52</int>
+                                  <int>53</int>
+                                  <int>255</int>
+                                </object>
+                              </object>
+                            </property>
+                            <property name="borderSides">
+                              <object class="com.install4j.runtime.beans.formcomponents.BorderSides">
+                                <property name="bottom" type="boolean" value="true" />
+                              </object>
+                            </property>
+                            <property name="imageAnchor" type="enum" class="com.install4j.api.beans.Anchor" value="WEST" />
+                            <property name="imageEdgeBackgroundColor">
+                              <object class="com.install4j.runtime.beans.LightOrDarkColor">
+                                <object class="java.awt.Color">
+                                  <int>0</int>
+                                  <int>6</int>
+                                  <int>16</int>
+                                  <int>255</int>
+                                </object>
+                                <object class="java.awt.Color">
+                                  <int>0</int>
+                                  <int>6</int>
+                                  <int>16</int>
+                                  <int>255</int>
+                                </object>
+                              </object>
+                            </property>
+                            <property name="imageEdgeBorder" type="boolean" value="true" />
+                            <property name="imageFile">
+                              <object class="com.install4j.api.beans.ExternalFile">
+                                <string>${compiler:projectDir}/img/banner_installer_fin.png</string>
+                              </object>
+                            </property>
+                            <property name="insets">
+                              <object class="java.awt.Insets">
+                                <int>5</int>
+                                <int>10</int>
+                                <int>10</int>
+                                <int>10</int>
+                              </object>
+                            </property>
+                          </serializedBean>
+                          <externalParametrizationPropertyNames>
+                            <propertyName>imageAnchor</propertyName>
+                            <propertyName>imageEdgeBackgroundColor</propertyName>
+                            <propertyName>imageFile</propertyName>
+                          </externalParametrizationPropertyNames>
+                        </group>
+                      </styleOverride>
+                    </styleOverrides>
+                    <condition>context.getBooleanVariable("isArchive") &amp;&amp; context.getBooleanVariable("isDmg")</condition>
+                    <actions>
+                      <group name="Execute installer" id="140" beanClass="com.install4j.runtime.beans.groups.ActionGroup">
+                        <serializedBean>
+                          <property name="conditionExpression">
+                            <object class="com.install4j.api.beans.ScriptProperty">
+                              <property name="value" type="string">context.getBooleanVariable("updaterOpenDmg")</property>
+                            </object>
+                          </property>
+                        </serializedBean>
+                        <beans>
+                          <action id="141" beanClass="com.install4j.runtime.beans.actions.update.ShutdownCallingLauncherAction" actionElevationType="none" />
+                          <action name="Open DMG" id="142" beanClass="com.install4j.runtime.beans.actions.control.RunScriptAction">
+                            <serializedBean>
+                              <property name="script">
+                                <object class="com.install4j.api.beans.ScriptProperty">
+                                  <property name="value" type="string">Util.showPath((String)context.getVariable("updaterDownloadFile"));
+return true;</property>
+                                </object>
+                              </property>
+                            </serializedBean>
+                          </action>
+                        </beans>
+                      </group>
+                    </actions>
+                    <formComponents>
+                      <formComponent id="143" beanClass="com.install4j.runtime.beans.formcomponents.MultilineLabelComponent" insetBottom="20" useExternalParametrization="true" externalParametrizationName="Header" externalParametrizationMode="include">
+                        <serializedBean>
+                          <property name="hideIfBlank" type="boolean" value="true" />
+                        </serializedBean>
+                        <visibilityScript>!context.isConsole()</visibilityScript>
+                        <externalParametrizationPropertyNames>
+                          <propertyName>labelText</propertyName>
+                        </externalParametrizationPropertyNames>
+                      </formComponent>
+                      <formComponent id="144" beanClass="com.install4j.runtime.beans.formcomponents.MultilineLabelComponent" insetBottom="20" useExternalParametrization="true" externalParametrizationName="Header" externalParametrizationMode="include">
+                        <serializedBean>
+                          <property name="hideIfBlank" type="boolean" value="true" />
+                          <property name="labelText" type="string">${i18n:updater.FinishInfoText("${compiler:sys.fullName}")}</property>
+                        </serializedBean>
+                        <visibilityScript>!context.isConsole()</visibilityScript>
+                        <externalParametrizationPropertyNames>
+                          <propertyName>labelText</propertyName>
+                        </externalParametrizationPropertyNames>
+                      </formComponent>
+                      <formComponent id="145" beanClass="com.install4j.runtime.beans.formcomponents.LabelComponent">
+                        <serializedBean>
+                          <property name="labelText" type="string">${i18n:updater.LaunchUpdaterQuestion}</property>
+                        </serializedBean>
+                      </formComponent>
+                      <formComponent id="146" beanClass="com.install4j.runtime.beans.formcomponents.SpacerComponent">
+                        <serializedBean>
+                          <property name="height" type="int" value="5" />
+                        </serializedBean>
+                      </formComponent>
+                      <formComponent id="147" beanClass="com.install4j.runtime.beans.formcomponents.CheckboxComponent">
+                        <serializedBean>
+                          <property name="checkboxText" type="string">${i18n:updater.OpenContainingFolderLabel}</property>
+                          <property name="initiallySelected" type="boolean" value="true" />
+                          <property name="variableName" type="string">updaterOpenDmg</property>
+                        </serializedBean>
+                      </formComponent>
+                      <formComponent id="148" beanClass="com.install4j.runtime.beans.formcomponents.ProgressComponent">
+                        <serializedBean>
+                          <property name="detailVisible" type="boolean" value="false" />
+                          <property name="hideInitially" type="boolean" value="true" />
+                        </serializedBean>
+                      </formComponent>
+                    </formComponents>
+                  </screen>
+                </beans>
+              </group>
+            </beans>
+          </group>
+        </screens>
+      </application>
+    </applications>
+    <styles defaultStyleId="1">
+      <style name="Standard" id="1" beanClass="com.install4j.runtime.beans.styles.FormStyle">
+        <formComponents>
+          <formComponent name="Header" id="2" beanClass="com.install4j.runtime.beans.styles.NestedStyleComponent" insetTop="0" insetBottom="0">
+            <serializedBean>
+              <property name="styleId" type="string">14</property>
+            </serializedBean>
+          </formComponent>
+          <group name="Main" id="3" beanClass="com.install4j.runtime.beans.groups.VerticalFormComponentGroup">
+            <beans>
+              <formComponent id="4" beanClass="com.install4j.runtime.beans.styles.ContentComponent" insetTop="10" insetLeft="20" insetBottom="10" insetRight="20" />
+              <formComponent name="Watermark" id="5" beanClass="com.install4j.runtime.beans.formcomponents.SeparatorComponent" insetTop="0" insetLeft="5" insetBottom="0" useExternalParametrization="true" externalParametrizationName="Custom watermark" externalParametrizationMode="include">
+                <serializedBean>
+                  <property name="enabledTitleText" type="boolean" value="false" />
+                  <property name="labelText" type="string">Copyright (C) ${compiler:projectYear} by Griefed</property>
+                </serializedBean>
+                <externalParametrizationPropertyNames>
+                  <propertyName>labelText</propertyName>
+                </externalParametrizationPropertyNames>
+              </formComponent>
+              <formComponent name="Footer" id="6" beanClass="com.install4j.runtime.beans.styles.NestedStyleComponent" insetTop="0" insetBottom="0">
+                <serializedBean>
+                  <property name="styleId" type="string">18</property>
+                </serializedBean>
+              </formComponent>
+            </beans>
+          </group>
+        </formComponents>
+      </style>
+      <style name="Banner" id="7" beanClass="com.install4j.runtime.beans.styles.FormStyle">
+        <formComponents>
+          <group id="8" beanClass="com.install4j.runtime.beans.groups.VerticalFormComponentGroup" useExternalParametrization="true" externalParametrizationName="Customize banner image" externalParametrizationMode="include">
+            <serializedBean>
+              <property name="backgroundColor">
+                <object class="com.install4j.runtime.beans.LightOrDarkColor">
+                  <object class="java.awt.Color">
+                    <int>255</int>
+                    <int>255</int>
+                    <int>255</int>
+                    <int>255</int>
+                  </object>
+                  <object class="java.awt.Color">
+                    <int>49</int>
+                    <int>52</int>
+                    <int>53</int>
+                    <int>255</int>
+                  </object>
+                </object>
+              </property>
+              <property name="borderSides">
+                <object class="com.install4j.runtime.beans.formcomponents.BorderSides">
+                  <property name="bottom" type="boolean" value="true" />
+                </object>
+              </property>
+              <property name="imageAnchor" type="enum" class="com.install4j.api.beans.Anchor" value="WEST" />
+              <property name="imageEdgeBackgroundColor">
+                <object class="com.install4j.runtime.beans.LightOrDarkColor">
+                  <object class="java.awt.Color">
+                    <int>25</int>
+                    <int>143</int>
+                    <int>220</int>
+                    <int>255</int>
+                  </object>
+                  <object class="java.awt.Color">
+                    <int>0</int>
+                    <int>74</int>
+                    <int>151</int>
+                    <int>255</int>
+                  </object>
+                </object>
+              </property>
+              <property name="imageEdgeBorder" type="boolean" value="true" />
+              <property name="imageFile">
+                <object class="com.install4j.api.beans.ExternalFile">
+                  <string>${compiler:projectDir}/img/banner_installer_fin.png</string>
+                </object>
+              </property>
+              <property name="insets">
+                <object class="java.awt.Insets">
+                  <int>5</int>
+                  <int>10</int>
+                  <int>10</int>
+                  <int>10</int>
+                </object>
+              </property>
+            </serializedBean>
+            <beans>
+              <formComponent id="9" beanClass="com.install4j.runtime.beans.styles.ScreenTitleComponent" insetTop="0">
+                <serializedBean>
+                  <property name="labelFontSizePercent" type="int" value="130" />
+                  <property name="labelFontStyle" type="enum" class="com.install4j.runtime.beans.formcomponents.FontStyle" value="BOLD" />
+                  <property name="labelFontType" type="enum" class="com.install4j.runtime.beans.formcomponents.FontType" value="DERIVED" />
+                </serializedBean>
+              </formComponent>
+              <formComponent id="10" beanClass="com.install4j.runtime.beans.formcomponents.SeparatorComponent" />
+              <formComponent id="11" beanClass="com.install4j.runtime.beans.styles.ContentComponent" insetTop="10" insetBottom="0" />
+            </beans>
+            <externalParametrizationPropertyNames>
+              <propertyName>imageAnchor</propertyName>
+              <propertyName>imageEdgeBackgroundColor</propertyName>
+              <propertyName>imageFile</propertyName>
+            </externalParametrizationPropertyNames>
+          </group>
+          <formComponent id="12" beanClass="com.install4j.runtime.beans.styles.NestedStyleComponent" insetBottom="0">
+            <serializedBean>
+              <property name="styleId" type="string">18</property>
+            </serializedBean>
+          </formComponent>
+        </formComponents>
+      </style>
+      <group name="Style components" id="13" beanClass="com.install4j.runtime.beans.groups.StyleGroup">
+        <beans>
+          <style name="Standard header" id="14" beanClass="com.install4j.runtime.beans.styles.FormStyle">
+            <serializedBean>
+              <property name="fillVertical" type="boolean" value="false" />
+              <property name="standalone" type="boolean" value="false" />
+              <property name="verticalAnchor" type="enum" class="com.install4j.api.beans.Anchor" value="NORTH" />
+            </serializedBean>
+            <formComponents>
+              <group id="15" beanClass="com.install4j.runtime.beans.groups.VerticalFormComponentGroup" useExternalParametrization="true" externalParametrizationName="Customize title bar" externalParametrizationMode="include">
+                <serializedBean>
+                  <property name="backgroundColor">
+                    <object class="com.install4j.runtime.beans.LightOrDarkColor">
+                      <object class="java.awt.Color">
+                        <int>255</int>
+                        <int>255</int>
+                        <int>255</int>
+                        <int>255</int>
+                      </object>
+                      <object class="java.awt.Color">
+                        <int>49</int>
+                        <int>52</int>
+                        <int>53</int>
+                        <int>255</int>
+                      </object>
+                    </object>
+                  </property>
+                  <property name="borderSides">
+                    <object class="com.install4j.runtime.beans.formcomponents.BorderSides">
+                      <property name="bottom" type="boolean" value="true" />
+                    </object>
+                  </property>
+                  <property name="imageAnchor" type="enum" class="com.install4j.api.beans.Anchor" value="NORTHEAST" />
+                  <property name="imageEdgeBorderWidth" type="int" value="2" />
+                  <property name="imageFile">
+                    <object class="com.install4j.api.beans.ExternalFile">
+                      <string>icon:${installer:sys.installerApplicationMode}_header.png</string>
+                    </object>
+                  </property>
+                  <property name="imageInsets">
+                    <object class="java.awt.Insets">
+                      <int>0</int>
+                      <int>5</int>
+                      <int>1</int>
+                      <int>1</int>
+                    </object>
+                  </property>
+                  <property name="insets">
+                    <object class="java.awt.Insets">
+                      <int>0</int>
+                      <int>20</int>
+                      <int>0</int>
+                      <int>10</int>
+                    </object>
+                  </property>
+                </serializedBean>
+                <beans>
+                  <formComponent name="Title" id="16" beanClass="com.install4j.runtime.beans.styles.ScreenTitleComponent">
+                    <serializedBean>
+                      <property name="labelFontStyle" type="enum" class="com.install4j.runtime.beans.formcomponents.FontStyle" value="BOLD" />
+                      <property name="labelFontType" type="enum" class="com.install4j.runtime.beans.formcomponents.FontType" value="DERIVED" />
+                    </serializedBean>
+                  </formComponent>
+                  <formComponent name="Subtitle" id="17" beanClass="com.install4j.runtime.beans.styles.ScreenTitleComponent" insetLeft="8">
+                    <serializedBean>
+                      <property name="titleType" type="enum" class="com.install4j.runtime.beans.styles.TitleType" value="SUB_TITLE" />
+                    </serializedBean>
+                  </formComponent>
+                </beans>
+                <externalParametrizationPropertyNames>
+                  <propertyName>backgroundColor</propertyName>
+                  <propertyName>foregroundColor</propertyName>
+                  <propertyName>imageAnchor</propertyName>
+                  <propertyName>imageFile</propertyName>
+                  <propertyName>imageOverlap</propertyName>
+                </externalParametrizationPropertyNames>
+              </group>
+            </formComponents>
+          </style>
+          <style name="Standard footer" id="18" beanClass="com.install4j.runtime.beans.styles.FormStyle">
+            <serializedBean>
+              <property name="fillVertical" type="boolean" value="false" />
+              <property name="standalone" type="boolean" value="false" />
+              <property name="verticalAnchor" type="enum" class="com.install4j.api.beans.Anchor" value="SOUTH" />
+            </serializedBean>
+            <formComponents>
+              <group id="19" beanClass="com.install4j.runtime.beans.groups.HorizontalFormComponentGroup">
+                <serializedBean>
+                  <property name="alignFirstLabel" type="boolean" value="false" />
+                  <property name="insets">
+                    <object class="java.awt.Insets">
+                      <int>3</int>
+                      <int>5</int>
+                      <int>8</int>
+                      <int>5</int>
+                    </object>
+                  </property>
+                </serializedBean>
+                <beans>
+                  <formComponent id="20" beanClass="com.install4j.runtime.beans.formcomponents.SpringComponent" />
+                  <formComponent name="Back button" id="21" beanClass="com.install4j.runtime.beans.styles.StandardControlButtonComponent">
+                    <serializedBean>
+                      <property name="buttonText" type="string">&lt; ${i18n:ButtonBack}</property>
+                      <property name="controlButtonType" type="enum" class="com.install4j.api.context.ControlButtonType" value="PREVIOUS" />
+                    </serializedBean>
+                  </formComponent>
+                  <formComponent name="Next button" id="22" beanClass="com.install4j.runtime.beans.styles.StandardControlButtonComponent">
+                    <serializedBean>
+                      <property name="buttonText" type="string">${i18n:ButtonNext} &gt;</property>
+                      <property name="controlButtonType" type="enum" class="com.install4j.api.context.ControlButtonType" value="NEXT" />
+                    </serializedBean>
+                  </formComponent>
+                  <formComponent name="Cancel button" id="23" beanClass="com.install4j.runtime.beans.styles.StandardControlButtonComponent" insetLeft="5">
+                    <serializedBean>
+                      <property name="buttonText" type="string">${i18n:ButtonCancel}</property>
+                      <property name="controlButtonType" type="enum" class="com.install4j.api.context.ControlButtonType" value="CANCEL" />
+                    </serializedBean>
+                  </formComponent>
+                </beans>
+              </group>
+            </formComponents>
+          </style>
+        </beans>
+      </group>
+    </styles>
+  </installerGui>
+  <mediaSets>
+    <windows name="Windows 64-bit" id="154" mediaFileName="${compiler:sys.shortName}_${compiler:sys.platform}_${compiler:sys.version}" installDir="ServerPackCreator" architecture="64">
+      <jreBundle usePack200="false">
+        <modules>
+          <defaultModules set="all" />
+        </modules>
+      </jreBundle>
+    </windows>
+    <unixInstaller name="Unix Installer" id="159" installDir="serverpackcreator">
+      <jreBundle usePack200="false">
+        <modules>
+          <defaultModules set="all" />
+        </modules>
+      </jreBundle>
+    </unixInstaller>
+    <macosArchive name="macOS Single Bundle Archive" id="158" architecture="universal" launcherId="183">
+      <jreBundle>
+        <modules>
+          <defaultModules set="all" />
+        </modules>
+      </jreBundle>
+    </macosArchive>
+  </mediaSets>
+</install4j>
-- 
GitLab