commit b8a0234ad2360f5fc0c91dab7f452c1a33af6d44 Author: Mario Date: Thu May 7 11:54:11 2026 +0200 Initaler Commit diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..398e814 --- /dev/null +++ b/.gitignore @@ -0,0 +1,74 @@ +# ── Gradle ────────────────────────────────────────────────────────────────── +.gradle/ +**/build/ +gradle-app.setting +!gradle/wrapper/gradle-wrapper.jar +!**/gradle/wrapper/gradle-wrapper.jar + +# ── Kompilate & Archive ────────────────────────────────────────────────────── +*.class +*.jar +!gradle/wrapper/gradle-wrapper.jar +!**/gradle/wrapper/gradle-wrapper.jar + +# ── Laufzeit-Konfiguration (benutzerspezifisch, nicht ins Repo) ────────────── +/config/ +/blight-game/config/ +/blight-editor/config/ +/blight-editor/editor-assets/ + +# ── JVM-Crashdumps & Logs ──────────────────────────────────────────────────── +hs_err_pid*.log +replay_pid*.log +*.log +nohup.out + +# ── Native Bibliotheken (werden beim Build extrahiert) ─────────────────────── +*.so +*.dll +*.dylib +*.jnilib + +# ── IntelliJ IDEA ──────────────────────────────────────────────────────────── +.idea/ +*.iml +*.ipr +*.iws +out/ + +# ── Eclipse ────────────────────────────────────────────────────────────────── +.project +.classpath +.settings/ +*.launch +.factorypath + +# ── NetBeans ───────────────────────────────────────────────────────────────── +nbproject/ +nbactions.xml +nb-configuration.xml + +# ── VS Code ────────────────────────────────────────────────────────────────── +.vscode/ + +# ── macOS ──────────────────────────────────────────────────────────────────── +.DS_Store +.AppleDouble +.LSOverride + +# ── Windows ────────────────────────────────────────────────────────────────── +Thumbs.db +desktop.ini +ehthumbs.db + +# ── Linux ──────────────────────────────────────────────────────────────────── +*~ +.fuse_hidden* + +# ── Editor-Backup & Temporärdateien ───────────────────────────────────────── +*.swp +*.swo +*.tmp +*.temp +*.bak +*.orig diff --git a/.metadata/.lock b/.metadata/.lock new file mode 100644 index 0000000..e69de29 diff --git a/.metadata/.lock_info b/.metadata/.lock_info new file mode 100644 index 0000000..02c94a1 --- /dev/null +++ b/.metadata/.lock_info @@ -0,0 +1,5 @@ +#Thu May 07 06:27:32 CEST 2026 +display=\:0 +host=mario-mint +process-id=5833 +user=mario diff --git a/.metadata/.mylyn/repositories.xml.zip b/.metadata/.mylyn/repositories.xml.zip new file mode 100644 index 0000000..8fe740d Binary files /dev/null and b/.metadata/.mylyn/repositories.xml.zip differ diff --git a/.metadata/.plugins/org.eclipse.buildship.core/gradle/versions.json b/.metadata/.plugins/org.eclipse.buildship.core/gradle/versions.json new file mode 100644 index 0000000..ac54edc --- /dev/null +++ b/.metadata/.plugins/org.eclipse.buildship.core/gradle/versions.json @@ -0,0 +1,8288 @@ +[ { + "version" : "9.5.1-20260506020515+0000", + "buildTime" : "20260506020515+0000", + "commitId" : "b040c334940608c621fdbb778381ebdae66606d4", + "current" : false, + "snapshot" : true, + "nightly" : false, + "releaseNightly" : true, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions-snapshots/gradle-9.5.1-20260506020515+0000-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions-snapshots/gradle-9.5.1-20260506020515+0000-bin.zip.sha256", + "checksum" : "ac52cb57303ce63a3131a7c079776ba70fc2b3e317dd311a27c092c96dc953f4", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions-snapshots/gradle-9.5.1-20260506020515+0000-wrapper.jar.sha256", + "wrapperChecksum" : "497c8c2a7e5031f6aa847f88104aa80a93532ec32ee17bdb8d1d2f67a194a9c7" +}, { + "version" : "9.6.0-20260506005135+0000", + "buildTime" : "20260506005135+0000", + "commitId" : "44a190b8db5f6911020cba90f7a2642c02eba7bb", + "current" : false, + "snapshot" : true, + "nightly" : true, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions-snapshots/gradle-9.6.0-20260506005135+0000-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions-snapshots/gradle-9.6.0-20260506005135+0000-bin.zip.sha256", + "checksum" : "b746b4a02191ca19a49a8d492e371328b65d251f5aa463d9f68f96349d969546", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions-snapshots/gradle-9.6.0-20260506005135+0000-wrapper.jar.sha256", + "wrapperChecksum" : "497c8c2a7e5031f6aa847f88104aa80a93532ec32ee17bdb8d1d2f67a194a9c7" +}, { + "version" : "9.5.0", + "buildTime" : "20260428120530+0000", + "commitId" : "3fe117d68f3907790f3809f121aa36303a9151f8", + "current" : true, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-9.5.0-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-9.5.0-bin.zip.sha256", + "checksum" : "553c78f50dafcd54d65b9a444649057857469edf836431389695608536d6b746", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-9.5.0-wrapper.jar.sha256", + "wrapperChecksum" : "497c8c2a7e5031f6aa847f88104aa80a93532ec32ee17bdb8d1d2f67a194a9c7" +}, { + "version" : "9.5.0-rc-4", + "buildTime" : "20260423134125+0000", + "commitId" : "0ad6dd8e143455707e444aa7e3d38327a3366513", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "9.5.0", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-9.5.0-rc-4-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-9.5.0-rc-4-bin.zip.sha256", + "checksum" : "cfbecb094daf3caab652ba49c80be5b5499f00ff8a27316a9aa7da8258580bb3", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-9.5.0-rc-4-wrapper.jar.sha256", + "wrapperChecksum" : "497c8c2a7e5031f6aa847f88104aa80a93532ec32ee17bdb8d1d2f67a194a9c7" +}, { + "version" : "9.6.0-milestone-1", + "buildTime" : "20260421092316+0000", + "commitId" : "aec782af05a4c94a3dec185903ef0b45acf99892", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "9.6.0", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-9.6.0-milestone-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-9.6.0-milestone-1-bin.zip.sha256", + "checksum" : "8bf1cd7dcadb6d5de70aecf4548465c05973a2a3db8063c72db667314405bee3", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-9.6.0-milestone-1-wrapper.jar.sha256", + "wrapperChecksum" : "497c8c2a7e5031f6aa847f88104aa80a93532ec32ee17bdb8d1d2f67a194a9c7" +}, { + "version" : "9.5.0-rc-3", + "buildTime" : "20260417122400+0000", + "commitId" : "0a75a301d6307692e72dd5010ae559e5422188a1", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "9.5.0", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-9.5.0-rc-3-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-9.5.0-rc-3-bin.zip.sha256", + "checksum" : "13329f9b478ea0c74f80da2d4a02cdf09aaed679167f3e6d57f4067c0442374d", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-9.5.0-rc-3-wrapper.jar.sha256", + "wrapperChecksum" : "497c8c2a7e5031f6aa847f88104aa80a93532ec32ee17bdb8d1d2f67a194a9c7" +}, { + "version" : "9.5.0-rc-2", + "buildTime" : "20260409133555+0000", + "commitId" : "b5a7d7a5cf90fe2ff4b78fc920fc0ea137991377", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "9.5.0", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-9.5.0-rc-2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-9.5.0-rc-2-bin.zip.sha256", + "checksum" : "f0effd0ab258b23da888a94cae8602447f8824c65a61dc14e4014f9acdb09950", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-9.5.0-rc-2-wrapper.jar.sha256", + "wrapperChecksum" : "497c8c2a7e5031f6aa847f88104aa80a93532ec32ee17bdb8d1d2f67a194a9c7" +}, { + "version" : "9.5.0-rc-1", + "buildTime" : "20260330120715+0000", + "commitId" : "6a1704c113de068f7e9a6744245c7eb4bc5091d0", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "9.5.0", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-9.5.0-rc-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-9.5.0-rc-1-bin.zip.sha256", + "checksum" : "66d79b10eb939c954bf1ac3be9d9cde985301b56058d49542286c35782ae1e74", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-9.5.0-rc-1-wrapper.jar.sha256", + "wrapperChecksum" : "497c8c2a7e5031f6aa847f88104aa80a93532ec32ee17bdb8d1d2f67a194a9c7" +}, { + "version" : "9.4.1", + "buildTime" : "20260319084628+0000", + "commitId" : "2d6327017519d23b96af35865dc997fcb544fb40", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-9.4.1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-9.4.1-bin.zip.sha256", + "checksum" : "2ab2958f2a1e51120c326cad6f385153bb11ee93b3c216c5fccebfdfbb7ec6cb", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-9.4.1-wrapper.jar.sha256", + "wrapperChecksum" : "55243ef57851f12b070ad14f7f5bb8302daceeebc5bce5ece5fa6edb23e1145c" +}, { + "version" : "9.5.0-milestone-7", + "buildTime" : "20260315084051+0000", + "commitId" : "812c56a2fbbd51caf1865e37dbfb8e169137ab13", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "9.5.0", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-9.5.0-milestone-7-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-9.5.0-milestone-7-bin.zip.sha256", + "checksum" : "be0a8f2e9f1c0f4d4764cc8903afcbce6c1134df8b980ae517583b18a0fce57b", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-9.5.0-milestone-7-wrapper.jar.sha256", + "wrapperChecksum" : "7ef3d73bd95c047814d76ec8324f72deefb96593eb9ce87aa06ecdcdaba7ffe8" +}, { + "version" : "9.4.0", + "buildTime" : "20260304103600+0000", + "commitId" : "b631911858264c0b6e4d6603d677ff5218766cee", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-9.4.0-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-9.4.0-bin.zip.sha256", + "checksum" : "60ea723356d81263e8002fec0fcf9e2b0eee0c0850c7a3d7ab0a63f2ccc601f3", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-9.4.0-wrapper.jar.sha256", + "wrapperChecksum" : "55243ef57851f12b070ad14f7f5bb8302daceeebc5bce5ece5fa6edb23e1145c" +}, { + "version" : "9.4.0-rc-2", + "buildTime" : "20260227092055+0000", + "commitId" : "b5fe9efed6cae7b9f2fbdb2d380fb69af16bb752", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "9.4.0", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-9.4.0-rc-2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-9.4.0-rc-2-bin.zip.sha256", + "checksum" : "1386475e18bc4b8f885d9573b1194b44462e7ab2b9afb6d70ad9f39cdfaf2d6e", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-9.4.0-rc-2-wrapper.jar.sha256", + "wrapperChecksum" : "55243ef57851f12b070ad14f7f5bb8302daceeebc5bce5ece5fa6edb23e1145c" +}, { + "version" : "9.5.0-milestone-6", + "buildTime" : "20260306150512+0000", + "commitId" : "56c1a30b99058762ff8e655058dcf0404e20d0ad", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "9.5.0", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-9.5.0-milestone-6-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-9.5.0-milestone-6-bin.zip.sha256", + "checksum" : "b159ac78e31ec3ac1ea6c32457b136c0d6d85c8bde533054d919be768d205866", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-9.5.0-milestone-6-wrapper.jar.sha256", + "wrapperChecksum" : "7ef3d73bd95c047814d76ec8324f72deefb96593eb9ce87aa06ecdcdaba7ffe8" +}, { + "version" : "9.5.0-milestone-5", + "buildTime" : "20260227090120+0000", + "commitId" : "7928ff898563f1f324eb29a5b1d40d43798fe992", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "9.5.0", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-9.5.0-milestone-5-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-9.5.0-milestone-5-bin.zip.sha256", + "checksum" : "1bacc1c689e2c1e109208ce941a7695d2edeba5cbfc4bc2a99524147c02e6e35", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-9.5.0-milestone-5-wrapper.jar.sha256", + "wrapperChecksum" : "55243ef57851f12b070ad14f7f5bb8302daceeebc5bce5ece5fa6edb23e1145c" +}, { + "version" : "9.5.0-milestone-4", + "buildTime" : "20260226092909+0000", + "commitId" : "84fcf1dafd5cd2c8502c58c2fdbbca9bb2468257", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "9.5.0", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-9.5.0-milestone-4-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-9.5.0-milestone-4-bin.zip.sha256", + "checksum" : "56d75507accf46250ab19d11eb222bcb72a2a8bc70a7abea23c4edbaa7f2b2ad", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-9.5.0-milestone-4-wrapper.jar.sha256", + "wrapperChecksum" : "55243ef57851f12b070ad14f7f5bb8302daceeebc5bce5ece5fa6edb23e1145c" +}, { + "version" : "9.5.0-milestone-3", + "buildTime" : "20260216080935+0000", + "commitId" : "8e03e4fe12db77236cde88285c9fc04f4e89d0c1", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "9.5.0", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-9.5.0-milestone-3-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-9.5.0-milestone-3-bin.zip.sha256", + "checksum" : "3721d2a837d9836a104a5e47fcf644fafed81eb14f4405ecebf9044d6a44a2c4", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-9.5.0-milestone-3-wrapper.jar.sha256", + "wrapperChecksum" : "55243ef57851f12b070ad14f7f5bb8302daceeebc5bce5ece5fa6edb23e1145c" +}, { + "version" : "9.5.0-milestone-2", + "buildTime" : "20260211140745+0000", + "commitId" : "c6762aa64d21254851c842b7d89f9d08e33a5344", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "9.5.0", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-9.5.0-milestone-2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-9.5.0-milestone-2-bin.zip.sha256", + "checksum" : "afcaf8f53216d213ffca406d913fd651678397ff1ff9a0e0cd165c55c35c1954", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-9.5.0-milestone-2-wrapper.jar.sha256", + "wrapperChecksum" : "55243ef57851f12b070ad14f7f5bb8302daceeebc5bce5ece5fa6edb23e1145c" +}, { + "version" : "9.4.0-rc-1", + "buildTime" : "20260208025655+0000", + "commitId" : "a2da7f311fe4699328dbcef381bc459c2f757e3e", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "9.4.0", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-9.4.0-rc-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-9.4.0-rc-1-bin.zip.sha256", + "checksum" : "2341e5f62ce4ce9d1f51395b47428a6d53e972bc0a3f9d2bf2da5a294610c703", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-9.4.0-rc-1-wrapper.jar.sha256", + "wrapperChecksum" : "55243ef57851f12b070ad14f7f5bb8302daceeebc5bce5ece5fa6edb23e1145c" +}, { + "version" : "9.3.1", + "buildTime" : "20260129141501+0000", + "commitId" : "44f4e8d3122ee6e7cbf5a248d7e20b4ca666bda3", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-9.3.1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-9.3.1-bin.zip.sha256", + "checksum" : "b266d5ff6b90eada6dc3b20cb090e3731302e553a27c5d3e4df1f0d76beaff06", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-9.3.1-wrapper.jar.sha256", + "wrapperChecksum" : "b3a875ddc1f044746e1b1a55f645584505f4a10438c1afea9f15e92a7c42ec13" +}, { + "version" : "9.5.0-milestone-1", + "buildTime" : "20260129132921+0000", + "commitId" : "6e1fb6d39530a68fd3d52eb274324eab142baa5b", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "9.5.0", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-9.5.0-milestone-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-9.5.0-milestone-1-bin.zip.sha256", + "checksum" : "aa937f5607d8729dbcd99cfb923c73cf7d54051cb1d73be41566e3865c876269", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-9.5.0-milestone-1-wrapper.jar.sha256", + "wrapperChecksum" : "55243ef57851f12b070ad14f7f5bb8302daceeebc5bce5ece5fa6edb23e1145c" +}, { + "version" : "8.14.4", + "buildTime" : "20260123163023+0000", + "commitId" : "ad5ff774b4b0e9a8a0cf1a14ca70d7230003c3ad", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-8.14.4-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-8.14.4-bin.zip.sha256", + "checksum" : "f1771298a70f6db5a29daf62378c4e18a17fc33c9ba6b14362e0cdf40610380d", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-8.14.4-wrapper.jar.sha256", + "wrapperChecksum" : "7d3a4ac4de1c32b59bc6a4eb8ecb8e612ccd0cf1ae1e99f66902da64df296172" +}, { + "version" : "9.4.0-milestone-5", + "buildTime" : "20260123123336+0000", + "commitId" : "dd2cf7f3826b2da07d8d6de488a2d1bc5651ca7d", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "9.4.0", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-9.4.0-milestone-5-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-9.4.0-milestone-5-bin.zip.sha256", + "checksum" : "9426691ebe1a0db4729a181d86b38234b44ed48a013b4f106fa090eacb13c2eb", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-9.4.0-milestone-5-wrapper.jar.sha256", + "wrapperChecksum" : "55243ef57851f12b070ad14f7f5bb8302daceeebc5bce5ece5fa6edb23e1145c" +}, { + "version" : "9.3.0", + "buildTime" : "20260116111422+0000", + "commitId" : "701205ed2f78811508466c8e1952304c2ea869f5", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-9.3.0-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-9.3.0-bin.zip.sha256", + "checksum" : "0d585f69da091fc5b2beced877feab55a3064d43b8a1d46aeb07996b0915e0e0", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-9.3.0-wrapper.jar.sha256", + "wrapperChecksum" : "b3a875ddc1f044746e1b1a55f645584505f4a10438c1afea9f15e92a7c42ec13" +}, { + "version" : "9.3.0-rc-3", + "buildTime" : "20260112110023+0000", + "commitId" : "8dd290bb13b269e80427d1c5ac5ba071dd77c211", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "9.3.0", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-9.3.0-rc-3-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-9.3.0-rc-3-bin.zip.sha256", + "checksum" : "d18ae4e38c4572d1e1546d585110c807f13476223e063b40324f891bf7b5e39c", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-9.3.0-rc-3-wrapper.jar.sha256", + "wrapperChecksum" : "b3a875ddc1f044746e1b1a55f645584505f4a10438c1afea9f15e92a7c42ec13" +}, { + "version" : "9.4.0-milestone-4", + "buildTime" : "20251226090225+0000", + "commitId" : "5478a4a62071a9f97660cb5f99abac82cb85eab7", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "9.4.0", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-9.4.0-milestone-4-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-9.4.0-milestone-4-bin.zip.sha256", + "checksum" : "599f4cb180b3780ca83859e84b072b951156f0af4554d7d21654cc4429c47284", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-9.4.0-milestone-4-wrapper.jar.sha256", + "wrapperChecksum" : "08f6dc44dc11cd44fdf485274f3262acd459acbcbc3c1160da2d530cecc9d1ad" +}, { + "version" : "9.3.0-rc-2", + "buildTime" : "20251224090548+0000", + "commitId" : "02c7d66609684db888d7324300770ad59c295291", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "9.3.0", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-9.3.0-rc-2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-9.3.0-rc-2-bin.zip.sha256", + "checksum" : "a3c1f84c0519f57a3cf6b0c8f9e2a80ece6e75aadb554ead218a4c71d4f2a901", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-9.3.0-rc-2-wrapper.jar.sha256", + "wrapperChecksum" : "b3a875ddc1f044746e1b1a55f645584505f4a10438c1afea9f15e92a7c42ec13" +}, { + "version" : "9.4.0-milestone-3", + "buildTime" : "20251202075550+0000", + "commitId" : "8d9cbbb408ff3c4cd499ac46c358cff1fc490227", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "9.4.0", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-9.4.0-milestone-3-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-9.4.0-milestone-3-bin.zip.sha256", + "checksum" : "2c2402e0741735bf96742d834ccc236d1b6ebef8f3b249df059a0f19cce07efc", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-9.4.0-milestone-3-wrapper.jar.sha256", + "wrapperChecksum" : "b3a875ddc1f044746e1b1a55f645584505f4a10438c1afea9f15e92a7c42ec13" +}, { + "version" : "9.3.0-rc-1", + "buildTime" : "20251128163838+0000", + "commitId" : "7103de78a66088931f83b1eea19b299af989c114", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "9.3.0", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-9.3.0-rc-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-9.3.0-rc-1-bin.zip.sha256", + "checksum" : "e03f4a72f4fa7160823cf9d602c8e06f9be818c454536bdf13739fe96902c21c", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-9.3.0-rc-1-wrapper.jar.sha256", + "wrapperChecksum" : "b3a875ddc1f044746e1b1a55f645584505f4a10438c1afea9f15e92a7c42ec13" +}, { + "version" : "9.3.0-milestone-2", + "buildTime" : "20251126100558+0000", + "commitId" : "590ab5b91ff01acdafce939cdf6a6c8a21c0760a", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "9.3.0", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-9.3.0-milestone-2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-9.3.0-milestone-2-bin.zip.sha256", + "checksum" : "aefd1d28321c1c5f700f11c697acfb7d0318ae88f3f1b71d0ecbdadfd7eadbb6", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-9.3.0-milestone-2-wrapper.jar.sha256", + "wrapperChecksum" : "b3a875ddc1f044746e1b1a55f645584505f4a10438c1afea9f15e92a7c42ec13" +}, { + "version" : "9.4.0-milestone-2", + "buildTime" : "20251121214025+0000", + "commitId" : "9fe2118fed52d1925a19acf16fed9be083cd449a", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "9.4.0", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-9.4.0-milestone-2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-9.4.0-milestone-2-bin.zip.sha256", + "checksum" : "279f47796403c4dc7660a4e126948ba9813fa0ae776762f1b28f32b4fce46625", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-9.4.0-milestone-2-wrapper.jar.sha256", + "wrapperChecksum" : "b3a875ddc1f044746e1b1a55f645584505f4a10438c1afea9f15e92a7c42ec13" +}, { + "version" : "9.4.0-milestone-1", + "buildTime" : "20251119221522+0000", + "commitId" : "ad03b1c1840b420d7bd866835e399610c2f31510", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "9.4.0", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-9.4.0-milestone-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-9.4.0-milestone-1-bin.zip.sha256", + "checksum" : "12d4bad5c207a83f8a28a9939bafead9bf37225b3cb2a15c774422eaa5246419", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-9.4.0-milestone-1-wrapper.jar.sha256", + "wrapperChecksum" : "b3a875ddc1f044746e1b1a55f645584505f4a10438c1afea9f15e92a7c42ec13" +}, { + "version" : "9.2.1", + "buildTime" : "20251117134048+0000", + "commitId" : "30ecdc708db275e8f8769ea0620f6dd919a58f76", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-9.2.1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-9.2.1-bin.zip.sha256", + "checksum" : "72f44c9f8ebcb1af43838f45ee5c4aa9c5444898b3468ab3f4af7b6076c5bc3f", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-9.2.1-wrapper.jar.sha256", + "wrapperChecksum" : "423cb469ccc0ecc31f0e4e1c309976198ccb734cdcbb7029d4bda0f18f57e8d9" +}, { + "version" : "9.3.0-milestone-1", + "buildTime" : "20251104131839+0000", + "commitId" : "d28b435db30c93c2501d0434266a9026fc4d2483", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "9.3.0", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-9.3.0-milestone-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-9.3.0-milestone-1-bin.zip.sha256", + "checksum" : "b53d70b79bc4652f66e7f85a50b8a12537171ddee64b3fdc761921bde7761c19", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-9.3.0-milestone-1-wrapper.jar.sha256", + "wrapperChecksum" : "d652a0436e78e0cd4d00f52057fcf2179163762a71a02370ec7623ab8f84c334" +}, { + "version" : "9.2.0", + "buildTime" : "20251029135323+0000", + "commitId" : "d9d6bbce03b3d88c67ef5a0ff31f7ae5e332d6bf", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-9.2.0-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-9.2.0-bin.zip.sha256", + "checksum" : "df67a32e86e3276d011735facb1535f64d0d88df84fa87521e90becc2d735444", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-9.2.0-wrapper.jar.sha256", + "wrapperChecksum" : "423cb469ccc0ecc31f0e4e1c309976198ccb734cdcbb7029d4bda0f18f57e8d9" +}, { + "version" : "9.2.0-rc-3", + "buildTime" : "20251024101831+0000", + "commitId" : "8a6b6c9294de54f1eae1b62e4155ee02153f1f6c", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "9.2.0", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-9.2.0-rc-3-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-9.2.0-rc-3-bin.zip.sha256", + "checksum" : "8f29578613e216bde733f1a160076ae7b889b46f9802c731e20f0c43c4586fae", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-9.2.0-rc-3-wrapper.jar.sha256", + "wrapperChecksum" : "423cb469ccc0ecc31f0e4e1c309976198ccb734cdcbb7029d4bda0f18f57e8d9" +}, { + "version" : "9.2.0-rc-2", + "buildTime" : "20251017103705+0000", + "commitId" : "2759e2f4d683d6d48b2da682aee1ed15d5242462", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "9.2.0", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-9.2.0-rc-2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-9.2.0-rc-2-bin.zip.sha256", + "checksum" : "054e3862d342ba9965127f80e1c56048bff2228e6d548ddd604b739c329893af", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-9.2.0-rc-2-wrapper.jar.sha256", + "wrapperChecksum" : "423cb469ccc0ecc31f0e4e1c309976198ccb734cdcbb7029d4bda0f18f57e8d9" +}, { + "version" : "9.2.0-rc-1", + "buildTime" : "20251003125514+0000", + "commitId" : "17156c692b5e460d4e68b0b4342c0c7872a4a6d9", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "9.2.0", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-9.2.0-rc-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-9.2.0-rc-1-bin.zip.sha256", + "checksum" : "2fdde961d051e8fc4c9918aa40d3eee24fd9f1d32f705f517af9c89d758af3be", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-9.2.0-rc-1-wrapper.jar.sha256", + "wrapperChecksum" : "423cb469ccc0ecc31f0e4e1c309976198ccb734cdcbb7029d4bda0f18f57e8d9" +}, { + "version" : "9.1.0", + "buildTime" : "20250918130556+0000", + "commitId" : "e45a8dbf2470c2e2474ccc25be9f49331406a07e", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-9.1.0-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-9.1.0-bin.zip.sha256", + "checksum" : "a17ddd85a26b6a7f5ddb71ff8b05fc5104c0202c6e64782429790c933686c806", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-9.1.0-wrapper.jar.sha256", + "wrapperChecksum" : "76805e32c009c0cf0dd5d206bddc9fb22ea42e84db904b764f3047de095493f3" +}, { + "version" : "9.2.0-milestone-2", + "buildTime" : "20250918081430+0000", + "commitId" : "136322a57afae21682616403597aeb7b900277a2", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "9.2.0", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-9.2.0-milestone-2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-9.2.0-milestone-2-bin.zip.sha256", + "checksum" : "264492cfe4471ed1290a23af27a94b45343bb548b40f6512a130f4e416ffdc1b", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-9.2.0-milestone-2-wrapper.jar.sha256", + "wrapperChecksum" : "423cb469ccc0ecc31f0e4e1c309976198ccb734cdcbb7029d4bda0f18f57e8d9" +}, { + "version" : "9.2.0-milestone-1", + "buildTime" : "20250916093851+0000", + "commitId" : "fdecc3c95828bb9a1c1bb6114483fe5b16f9159d", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "9.2.0", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-9.2.0-milestone-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-9.2.0-milestone-1-bin.zip.sha256", + "checksum" : "b4d2b27513235176e11a079aa8afa5a1d858c14a02130cc9754b20071d244fa7", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-9.2.0-milestone-1-wrapper.jar.sha256", + "wrapperChecksum" : "423cb469ccc0ecc31f0e4e1c309976198ccb734cdcbb7029d4bda0f18f57e8d9" +}, { + "version" : "9.1.0-rc-4", + "buildTime" : "20250915153701+0000", + "commitId" : "769a0dee8eb81a087a64b7286b5e0ef3ca945723", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "9.1.0", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-9.1.0-rc-4-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-9.1.0-rc-4-bin.zip.sha256", + "checksum" : "91b3bb52f09bab37df8f922d47d7df6ba76c00a52494a75feafad956f4d2a360", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-9.1.0-rc-4-wrapper.jar.sha256", + "wrapperChecksum" : "76805e32c009c0cf0dd5d206bddc9fb22ea42e84db904b764f3047de095493f3" +}, { + "version" : "9.1.0-rc-3", + "buildTime" : "20250908083750+0000", + "commitId" : "e8b16b23493d8480116e5cf66a06296794c3d1f5", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "9.1.0", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-9.1.0-rc-3-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-9.1.0-rc-3-bin.zip.sha256", + "checksum" : "6f13d82a9943498b6651a1d8b9903a663dee9a752be8e3480b6c44f0c89d9dac", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-9.1.0-rc-3-wrapper.jar.sha256", + "wrapperChecksum" : "76805e32c009c0cf0dd5d206bddc9fb22ea42e84db904b764f3047de095493f3" +}, { + "version" : "9.1.0-rc-2", + "buildTime" : "20250902143701+0000", + "commitId" : "80fea90a8e4c089ceb397f17f935538c00398324", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "9.1.0", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-9.1.0-rc-2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-9.1.0-rc-2-bin.zip.sha256", + "checksum" : "366fb4c50aa898723a9d5f07a164d4134eb264c1749a07766819be8649792be9", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-9.1.0-rc-2-wrapper.jar.sha256", + "wrapperChecksum" : "76805e32c009c0cf0dd5d206bddc9fb22ea42e84db904b764f3047de095493f3" +}, { + "version" : "9.1.0-rc-1", + "buildTime" : "20250813123732+0000", + "commitId" : "d99e08080200de174ff11b3a06689d996d338ad7", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "9.1.0", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-9.1.0-rc-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-9.1.0-rc-1-bin.zip.sha256", + "checksum" : "f80a20ef870555c9aae51c4d1868b6a31608296a0fd4f8de69a2687243b90f6f", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-9.1.0-rc-1-wrapper.jar.sha256", + "wrapperChecksum" : "76805e32c009c0cf0dd5d206bddc9fb22ea42e84db904b764f3047de095493f3" +}, { + "version" : "9.0.0", + "buildTime" : "20250731163512+0000", + "commitId" : "328772c6bae126949610a8beb59cb227ee580241", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-9.0.0-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-9.0.0-bin.zip.sha256", + "checksum" : "8fad3d78296ca518113f3d29016617c7f9367dc005f932bd9d93bf45ba46072b", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-9.0.0-wrapper.jar.sha256", + "wrapperChecksum" : "76805e32c009c0cf0dd5d206bddc9fb22ea42e84db904b764f3047de095493f3" +}, { + "version" : "9.0.0-rc-4", + "buildTime" : "20250728151002+0000", + "commitId" : "a0a6deb6f9937f9e9894a4460f4158267a13ad03", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "9.0.0", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-9.0.0-rc-4-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-9.0.0-rc-4-bin.zip.sha256", + "checksum" : "f09991ce63e889bf8a5f579a467a82bdf7621bc93d59cd2f8fe5982f39f28e2a", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-9.0.0-rc-4-wrapper.jar.sha256", + "wrapperChecksum" : "76805e32c009c0cf0dd5d206bddc9fb22ea42e84db904b764f3047de095493f3" +}, { + "version" : "9.0.0-rc-3", + "buildTime" : "20250717124800+0000", + "commitId" : "2db9560bb68c367a265b10516c856c840f9bed8d", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "9.0.0", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-9.0.0-rc-3-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-9.0.0-rc-3-bin.zip.sha256", + "checksum" : "19ce31d8a4f2e59a99931cc13834c70c0e502804851c0640f31a1af9a7d5b003", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-9.0.0-rc-3-wrapper.jar.sha256", + "wrapperChecksum" : "76805e32c009c0cf0dd5d206bddc9fb22ea42e84db904b764f3047de095493f3" +}, { + "version" : "9.0.0-rc-2", + "buildTime" : "20250711152331+0000", + "commitId" : "2ae39f19925c59560b0b708b9eda586857cddb81", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "9.0.0", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-9.0.0-rc-2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-9.0.0-rc-2-bin.zip.sha256", + "checksum" : "4223eafcc72c463e99bad60333a90c974a89aa359ee683e4f329330e513a3736", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-9.0.0-rc-2-wrapper.jar.sha256", + "wrapperChecksum" : "76805e32c009c0cf0dd5d206bddc9fb22ea42e84db904b764f3047de095493f3" +}, { + "version" : "9.0.0-milestone-10", + "buildTime" : "20250708052607+0000", + "commitId" : "fd90cd1f4415bd77322abacfd66147724c432cde", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "9.0.0", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-9.0.0-milestone-10-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-9.0.0-milestone-10-bin.zip.sha256", + "checksum" : "0e2ac1877ee872cf65c2d8aa6a6aefcfd57226421d54c29937d21f492fdbde86", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-9.0.0-milestone-10-wrapper.jar.sha256", + "wrapperChecksum" : "76805e32c009c0cf0dd5d206bddc9fb22ea42e84db904b764f3047de095493f3" +}, { + "version" : "8.14.3", + "buildTime" : "20250704131544+0000", + "commitId" : "e5ee1df3d88b8ca3a8074787a94f373e3090e1db", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-8.14.3-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-8.14.3-bin.zip.sha256", + "checksum" : "bd71102213493060956ec229d946beee57158dbd89d0e62b91bca0fa2c5f3531", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-8.14.3-wrapper.jar.sha256", + "wrapperChecksum" : "7d3a4ac4de1c32b59bc6a4eb8ecb8e612ccd0cf1ae1e99f66902da64df296172" +}, { + "version" : "7.6.6", + "buildTime" : "20250704103426+0000", + "commitId" : "c0be2570bd17666c8955ca5b66363f671f50bbd7", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-7.6.6-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-7.6.6-bin.zip.sha256", + "checksum" : "673d9776f303bc7048fc3329d232d6ebf1051b07893bd9d11616fad9a8673be0", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-7.6.6-wrapper.jar.sha256", + "wrapperChecksum" : "14dfa961b6704bb3decdea06502781edaa796a82e6da41cd2e1962b14fbe21a3" +}, { + "version" : "9.0.0-rc-1", + "buildTime" : "20250618075324+0000", + "commitId" : "8493ac58b4a7baddb64080d415b11659be78dbea", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "9.0.0", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-9.0.0-rc-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-9.0.0-rc-1-bin.zip.sha256", + "checksum" : "5086034b0656a79fee07a04cfadc103984b075ac85d3a20748649671283be1bb", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-9.0.0-rc-1-wrapper.jar.sha256", + "wrapperChecksum" : "76805e32c009c0cf0dd5d206bddc9fb22ea42e84db904b764f3047de095493f3" +}, { + "version" : "8.14.2", + "buildTime" : "20250605133201+0000", + "commitId" : "30db2a3bdfffa9f8b40e798095675f9dab990a9a", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-8.14.2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-8.14.2-bin.zip.sha256", + "checksum" : "7197a12f450794931532469d4ff21a59ea2c1cd59a3ec3f89c035c3c420a6999", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-8.14.2-wrapper.jar.sha256", + "wrapperChecksum" : "7d3a4ac4de1c32b59bc6a4eb8ecb8e612ccd0cf1ae1e99f66902da64df296172" +}, { + "version" : "7.6.5", + "buildTime" : "20250604130222+0000", + "commitId" : "13a09d0cc61025596acd4acf05d1980a79838906", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-7.6.5-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-7.6.5-bin.zip.sha256", + "checksum" : "b812fec0edb7d27e0ae35955887bb2954536fa3e44edaf481150da058e154d9a", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-7.6.5-wrapper.jar.sha256", + "wrapperChecksum" : "14dfa961b6704bb3decdea06502781edaa796a82e6da41cd2e1962b14fbe21a3" +}, { + "version" : "9.0.0-milestone-9", + "buildTime" : "20250526083131+0000", + "commitId" : "1ceb6a55a8b9f772540ea2655f7ec71cf71e773d", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "9.0.0", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-9.0.0-milestone-9-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-9.0.0-milestone-9-bin.zip.sha256", + "checksum" : "f682abba2db33587373c58f558c9387b25f7ea592298b57defbf33fc5488c43d", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-9.0.0-milestone-9-wrapper.jar.sha256", + "wrapperChecksum" : "76805e32c009c0cf0dd5d206bddc9fb22ea42e84db904b764f3047de095493f3" +}, { + "version" : "8.14.1", + "buildTime" : "20250522134409+0000", + "commitId" : "c174b82566a79e3575bac8c7648c7b36cd815e94", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-8.14.1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-8.14.1-bin.zip.sha256", + "checksum" : "845952a9d6afa783db70bb3b0effaae45ae5542ca2bb7929619e8af49cb634cf", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-8.14.1-wrapper.jar.sha256", + "wrapperChecksum" : "7d3a4ac4de1c32b59bc6a4eb8ecb8e612ccd0cf1ae1e99f66902da64df296172" +}, { + "version" : "9.0.0-milestone-8", + "buildTime" : "20250516073511+0000", + "commitId" : "2de7d5ba412c2a9e33f43076dfc4560488359ad2", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "9.0.0", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-9.0.0-milestone-8-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-9.0.0-milestone-8-bin.zip.sha256", + "checksum" : "9a69d11f90bb8b689b171889437d99a5925d17e7507413472ab45fbbc3949ef9", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-9.0.0-milestone-8-wrapper.jar.sha256", + "wrapperChecksum" : "f98ed44dd3f067fa699b5c34661be67c7f0097ea58b0017255141a08d2eb5f87" +}, { + "version" : "9.0-milestone-7", + "buildTime" : "20250513065613+0000", + "commitId" : "3c890746756262d3778e12eaa5155d661d7cbdf2", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "9.0", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-9.0-milestone-7-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-9.0-milestone-7-bin.zip.sha256", + "checksum" : "8e8fc68b78a272aa8da4e6fd608502874f7b9d29257fe1345c7209b725cb7565", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-9.0-milestone-7-wrapper.jar.sha256", + "wrapperChecksum" : "f98ed44dd3f067fa699b5c34661be67c7f0097ea58b0017255141a08d2eb5f87" +}, { + "version" : "9.0-milestone-6", + "buildTime" : "20250508062448+0000", + "commitId" : "0436db0122ff0c2c8f9ae3db45371f2c067ebfbd", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "9.0", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-9.0-milestone-6-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-9.0-milestone-6-bin.zip.sha256", + "checksum" : "47177c00fc3574e3557902ed9f4bab073597d22c6d9a3fcde8bf8bbc8286f220", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-9.0-milestone-6-wrapper.jar.sha256", + "wrapperChecksum" : "f98ed44dd3f067fa699b5c34661be67c7f0097ea58b0017255141a08d2eb5f87" +}, { + "version" : "9.0-milestone-5", + "buildTime" : "20250429093659+0000", + "commitId" : "34d31f8f53af29e93357bc88a9a47a1a8001a4ef", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "9.0", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-9.0-milestone-5-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-9.0-milestone-5-bin.zip.sha256", + "checksum" : "d9f0549d640c07389b2d83717a9ae4ca9a49ed2120f95d14015da227ecba16fc", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-9.0-milestone-5-wrapper.jar.sha256", + "wrapperChecksum" : "c605ee1b011c0da3bc468735530c1d43ea3ede0fb8ce978b5479c7f688343ef5" +}, { + "version" : "9.0-milestone-4", + "buildTime" : "20250428144937+0000", + "commitId" : "ad8b92fc649c0f2efe95287bc43e61a5c0cf618a", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "9.0", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-9.0-milestone-4-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-9.0-milestone-4-bin.zip.sha256", + "checksum" : "ad3873e76d4127629e605d8551fa2b1f893b59d9171138c9463bd5c2001981a9", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-9.0-milestone-4-wrapper.jar.sha256", + "wrapperChecksum" : "c605ee1b011c0da3bc468735530c1d43ea3ede0fb8ce978b5479c7f688343ef5" +}, { + "version" : "8.14", + "buildTime" : "20250425092908+0000", + "commitId" : "34c560e3be961658a6fbcd7170ec2443a228b109", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-8.14-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-8.14-bin.zip.sha256", + "checksum" : "61ad310d3c7d3e5da131b76bbf22b5a4c0786e9d892dae8c1658d4b484de3caa", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-8.14-wrapper.jar.sha256", + "wrapperChecksum" : "7d3a4ac4de1c32b59bc6a4eb8ecb8e612ccd0cf1ae1e99f66902da64df296172" +}, { + "version" : "8.14-rc-3", + "buildTime" : "20250423120032+0000", + "commitId" : "8afb1d3427f2721ac7aaa95c1b82c73651870d49", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "8.14", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-8.14-rc-3-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-8.14-rc-3-bin.zip.sha256", + "checksum" : "d6442642e2f9d920bad96115c91e30a38afd6cdce61f9043ee45e2ab1e1a2972", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-8.14-rc-3-wrapper.jar.sha256", + "wrapperChecksum" : "7d3a4ac4de1c32b59bc6a4eb8ecb8e612ccd0cf1ae1e99f66902da64df296172" +}, { + "version" : "9.0-milestone-3", + "buildTime" : "20250422030543+0000", + "commitId" : "b86fa516155d1d3baef664ba5288ad578b337b07", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "9.0", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-9.0-milestone-3-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-9.0-milestone-3-bin.zip.sha256", + "checksum" : "d9a2c448ef8adb196c65deda1b9680060372528946aed78c7bf24c0ab6443518", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-9.0-milestone-3-wrapper.jar.sha256", + "wrapperChecksum" : "c605ee1b011c0da3bc468735530c1d43ea3ede0fb8ce978b5479c7f688343ef5" +}, { + "version" : "8.14-rc-2", + "buildTime" : "20250417124738+0000", + "commitId" : "c6a073de26dd590617441ea3805bc2743fb315eb", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "8.14", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-8.14-rc-2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-8.14-rc-2-bin.zip.sha256", + "checksum" : "64caf15a08354b01c3c32de0e433179e6678041e8dfe8aa2a27da06ec81c7e35", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-8.14-rc-2-wrapper.jar.sha256", + "wrapperChecksum" : "7d3a4ac4de1c32b59bc6a4eb8ecb8e612ccd0cf1ae1e99f66902da64df296172" +}, { + "version" : "9.0-milestone-2", + "buildTime" : "20250414083159+0000", + "commitId" : "ce1ff4a2ca36b5f7959f30e211eb2025b9433c89", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "9.0", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-9.0-milestone-2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-9.0-milestone-2-bin.zip.sha256", + "checksum" : "19507539796ff63011c87493b926038e2028b94f200f3ba02e5c776e1cdc20ca", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-9.0-milestone-2-wrapper.jar.sha256", + "wrapperChecksum" : "c605ee1b011c0da3bc468735530c1d43ea3ede0fb8ce978b5479c7f688343ef5" +}, { + "version" : "9.0-milestone-1", + "buildTime" : "20250410115011+0000", + "commitId" : "db647b24a4039507bbcac1273883745322ae84c3", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "9.0", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-9.0-milestone-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-9.0-milestone-1-bin.zip.sha256", + "checksum" : "6963d0abe43cacb1e159bbc28a0e4e80c1622c0384549c3792257981d89d37ed", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-9.0-milestone-1-wrapper.jar.sha256", + "wrapperChecksum" : "9687bf4e8beb2c293cfd1393cbf2854ef68f921757302116033f476289abf7b0" +}, { + "version" : "8.14-rc-1", + "buildTime" : "20250409084650+0000", + "commitId" : "266969fceec7f1ad8c1d39e1354d963ce2857269", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "8.14", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-8.14-rc-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-8.14-rc-1-bin.zip.sha256", + "checksum" : "ea87df6204bb94a432cf58d9a915408b1588a8bf146643a347e31fabd7b0e5a8", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-8.14-rc-1-wrapper.jar.sha256", + "wrapperChecksum" : "7d3a4ac4de1c32b59bc6a4eb8ecb8e612ccd0cf1ae1e99f66902da64df296172" +}, { + "version" : "8.14-milestone-8", + "buildTime" : "20250408011208+0000", + "commitId" : "31bca59472c3050181a775f6ca54e5337b8a75e3", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "8.14", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-8.14-milestone-8-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-8.14-milestone-8-bin.zip.sha256", + "checksum" : "6b6e36374f80d3e5594d9fda7040bf45e1e4617ecb95529f4f5cae77d4c6cd8f", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-8.14-milestone-8-wrapper.jar.sha256", + "wrapperChecksum" : "81a82aaea5abcc8ff68b3dfcb58b3c3c429378efd98e7433460610fecd7ae45f" +}, { + "version" : "8.14-milestone-7", + "buildTime" : "20250324073617+0000", + "commitId" : "48de48758fc3bc62eccebd723f68f9b8d8173e66", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "8.14", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-8.14-milestone-7-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-8.14-milestone-7-bin.zip.sha256", + "checksum" : "13c012a0343d1d310966e6ee1347b3a9b90f210f06a1b1e54ce57fbea8a1233d", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-8.14-milestone-7-wrapper.jar.sha256", + "wrapperChecksum" : "81a82aaea5abcc8ff68b3dfcb58b3c3c429378efd98e7433460610fecd7ae45f" +}, { + "version" : "8.14-milestone-5", + "buildTime" : "20250320082137+0000", + "commitId" : "9728ad5ef05b47255083a31f83ed0fbc3f5035e3", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "8.14", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-8.14-milestone-5-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-8.14-milestone-5-bin.zip.sha256", + "checksum" : "4d7f406f60d84969fb10722f627067cd7a505da593a64afc5769ca7b96b65109", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-8.14-milestone-5-wrapper.jar.sha256", + "wrapperChecksum" : "81a82aaea5abcc8ff68b3dfcb58b3c3c429378efd98e7433460610fecd7ae45f" +}, { + "version" : "8.14-milestone-4", + "buildTime" : "20250306073633+0000", + "commitId" : "2f19ff9006b6e7d3d81d614ee87ee6a1f251a3b0", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "8.14", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-8.14-milestone-4-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-8.14-milestone-4-bin.zip.sha256", + "checksum" : "c348e50e30d188490f99bc7bd9a27262f2bf2b63b6df29a126660fbf8dc64a10", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-8.14-milestone-4-wrapper.jar.sha256", + "wrapperChecksum" : "81a82aaea5abcc8ff68b3dfcb58b3c3c429378efd98e7433460610fecd7ae45f" +}, { + "version" : "8.13", + "buildTime" : "20250225092214+0000", + "commitId" : "073314332697ba45c16c0a0ce1891fa6794179ff", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-8.13-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-8.13-bin.zip.sha256", + "checksum" : "20f1b1176237254a6fc204d8434196fa11a4cfb387567519c61556e8710aed78", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-8.13-wrapper.jar.sha256", + "wrapperChecksum" : "81a82aaea5abcc8ff68b3dfcb58b3c3c429378efd98e7433460610fecd7ae45f" +}, { + "version" : "8.14-milestone-3", + "buildTime" : "20250221141330+0000", + "commitId" : "8b48d0ed4b1711a8c7a8ce63183970b23c1e9490", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "8.14", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-8.14-milestone-3-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-8.14-milestone-3-bin.zip.sha256", + "checksum" : "b232697f41807f172f991dfb78e5013b6ed71d8c7d0256b2d93df41eba18c5cd", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-8.14-milestone-3-wrapper.jar.sha256", + "wrapperChecksum" : "81a82aaea5abcc8ff68b3dfcb58b3c3c429378efd98e7433460610fecd7ae45f" +}, { + "version" : "8.13-rc-2", + "buildTime" : "20250220142623+0000", + "commitId" : "160d52df5c7663f9854ab7fddf0123a8f044c530", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "8.13", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-8.13-rc-2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-8.13-rc-2-bin.zip.sha256", + "checksum" : "264353f17a13391626fc8d0e86ae8023f30ea334a470caae0cfee02fe6cd1f3d", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-8.13-rc-2-wrapper.jar.sha256", + "wrapperChecksum" : "81a82aaea5abcc8ff68b3dfcb58b3c3c429378efd98e7433460610fecd7ae45f" +}, { + "version" : "8.14-milestone-2", + "buildTime" : "20250220124058+0000", + "commitId" : "affa639ae530da704951a05c80cef66583558ace", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "8.14", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-8.14-milestone-2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-8.14-milestone-2-bin.zip.sha256", + "checksum" : "2db4c39174c3dc0ced756b60b2b8d151eb0d12b65e539c91ac7f7d36b7e7dd2d", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-8.14-milestone-2-wrapper.jar.sha256", + "wrapperChecksum" : "81a82aaea5abcc8ff68b3dfcb58b3c3c429378efd98e7433460610fecd7ae45f" +}, { + "version" : "8.14-milestone-1", + "buildTime" : "20250214133101+0000", + "commitId" : "dc47699e834411a85029a51a0723e2381afced09", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "8.14", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-8.14-milestone-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-8.14-milestone-1-bin.zip.sha256", + "checksum" : "0978afc2b32e0f05dbe881681de850a2413f85f6ebe96848719e2b710b9fbde7", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-8.14-milestone-1-wrapper.jar.sha256", + "wrapperChecksum" : "81a82aaea5abcc8ff68b3dfcb58b3c3c429378efd98e7433460610fecd7ae45f" +}, { + "version" : "8.13-rc-1", + "buildTime" : "20250212094604+0000", + "commitId" : "e1568ff83ddecf64248260376da957b986d625e7", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "8.13", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-8.13-rc-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-8.13-rc-1-bin.zip.sha256", + "checksum" : "3b3565efd2df2dd999774b6ef8ea571878c5532cbac6dbaaeb4b2731f42e6704", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-8.13-rc-1-wrapper.jar.sha256", + "wrapperChecksum" : "81a82aaea5abcc8ff68b3dfcb58b3c3c429378efd98e7433460610fecd7ae45f" +}, { + "version" : "8.12.1", + "buildTime" : "20250124125512+0000", + "commitId" : "0b1ee1ff81d1f4a26574ff4a362ac9180852b140", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-8.12.1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-8.12.1-bin.zip.sha256", + "checksum" : "8d97a97984f6cbd2b85fe4c60a743440a347544bf18818048e611f5288d46c94", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-8.12.1-wrapper.jar.sha256", + "wrapperChecksum" : "2db75c40782f5e8ba1fc278a5574bab070adccb2d21ca5a6e5ed840888448046" +}, { + "version" : "8.13-milestone-3", + "buildTime" : "20250121164636+0000", + "commitId" : "008d02e96f845b2d5a628758831c97d305983d68", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "8.13", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-8.13-milestone-3-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-8.13-milestone-3-bin.zip.sha256", + "checksum" : "f22cfbc3bd7e2e762910ed22926614b11af5af23456cec8730cde390b3e6da58", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-8.13-milestone-3-wrapper.jar.sha256", + "wrapperChecksum" : "2db75c40782f5e8ba1fc278a5574bab070adccb2d21ca5a6e5ed840888448046" +}, { + "version" : "8.12.1-milestone-1", + "buildTime" : "20250121110021+0000", + "commitId" : "6d9f96d13ea6d230832feb4bf74b71af5df083d6", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "8.12.1", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-8.12.1-milestone-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-8.12.1-milestone-1-bin.zip.sha256", + "checksum" : "003255422dfe4b7306412cd39a120a4382d5db51df9acac33f997b2cb54c4ccd", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-8.12.1-milestone-1-wrapper.jar.sha256", + "wrapperChecksum" : "2db75c40782f5e8ba1fc278a5574bab070adccb2d21ca5a6e5ed840888448046" +}, { + "version" : "8.13-milestone-2", + "buildTime" : "20250110085439+0000", + "commitId" : "bf974bdd5b1a046611eb50a5ec863c07f7630bfd", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "8.13", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-8.13-milestone-2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-8.13-milestone-2-bin.zip.sha256", + "checksum" : "e8b04d5491ad67bb5e2cd6a3168631dde9b5ab8d0faf5ed1fd3081526cded0ea", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-8.13-milestone-2-wrapper.jar.sha256", + "wrapperChecksum" : "2db75c40782f5e8ba1fc278a5574bab070adccb2d21ca5a6e5ed840888448046" +}, { + "version" : "8.13-milestone-1", + "buildTime" : "20250109202014+0000", + "commitId" : "017df4898587f8decd1ee7dae2dd33f94c9f5a8a", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "8.13", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-8.13-milestone-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-8.13-milestone-1-bin.zip.sha256", + "checksum" : "524079334d60703b233cab4a467574eac0208783ae00c70ef722d349e3db3623", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-8.13-milestone-1-wrapper.jar.sha256", + "wrapperChecksum" : "2db75c40782f5e8ba1fc278a5574bab070adccb2d21ca5a6e5ed840888448046" +}, { + "version" : "8.12", + "buildTime" : "20241220154653+0000", + "commitId" : "a3cacb207fec727859be9354c1937da2e59004c1", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-8.12-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-8.12-bin.zip.sha256", + "checksum" : "7a00d51fb93147819aab76024feece20b6b84e420694101f276be952e08bef03", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-8.12-wrapper.jar.sha256", + "wrapperChecksum" : "2db75c40782f5e8ba1fc278a5574bab070adccb2d21ca5a6e5ed840888448046" +}, { + "version" : "8.12-rc-2", + "buildTime" : "20241217162852+0000", + "commitId" : "98f15d7fbb920b0d3b5388dd0a3e6fb244302f8f", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "8.12", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-8.12-rc-2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-8.12-rc-2-bin.zip.sha256", + "checksum" : "4c403eac4e3957107a6e954ae2b59ba6cf9823f683276f1f9e20ef79b8d350a2", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-8.12-rc-2-wrapper.jar.sha256", + "wrapperChecksum" : "2db75c40782f5e8ba1fc278a5574bab070adccb2d21ca5a6e5ed840888448046" +}, { + "version" : "8.12-rc-1", + "buildTime" : "20241212152352+0000", + "commitId" : "e385beb86216461fe39ad37767b95bb0fa6ff777", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "8.12", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-8.12-rc-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-8.12-rc-1-bin.zip.sha256", + "checksum" : "4d9d7ad4cf8842f279649213d2f87d8f7e9a03ae75ac4389517aa574b1404b2a", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-8.12-rc-1-wrapper.jar.sha256", + "wrapperChecksum" : "2db75c40782f5e8ba1fc278a5574bab070adccb2d21ca5a6e5ed840888448046" +}, { + "version" : "8.11.1", + "buildTime" : "20241120165646+0000", + "commitId" : "481cb05a490e0ef9f8620f7873b83bd8a72e7c39", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-8.11.1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-8.11.1-bin.zip.sha256", + "checksum" : "f397b287023acdba1e9f6fc5ea72d22dd63669d59ed4a289a29b1a76eee151c6", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-8.11.1-wrapper.jar.sha256", + "wrapperChecksum" : "2db75c40782f5e8ba1fc278a5574bab070adccb2d21ca5a6e5ed840888448046" +}, { + "version" : "8.11", + "buildTime" : "20241111135801+0000", + "commitId" : "b2ef976169a05b3c76d04f0fa76a940859f96fa4", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-8.11-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-8.11-bin.zip.sha256", + "checksum" : "57dafb5c2622c6cc08b993c85b7c06956a2f53536432a30ead46166dbca0f1e9", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-8.11-wrapper.jar.sha256", + "wrapperChecksum" : "2db75c40782f5e8ba1fc278a5574bab070adccb2d21ca5a6e5ed840888448046" +}, { + "version" : "8.11-rc-3", + "buildTime" : "20241107134628+0000", + "commitId" : "ca3040e548f099c5c879ec2ef93f2f0496551d4b", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "8.11", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-8.11-rc-3-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-8.11-rc-3-bin.zip.sha256", + "checksum" : "8e4b38e068e5d73272498ce4743d86adccebfdadaa4233dd15bfb6c6b82b9152", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-8.11-rc-3-wrapper.jar.sha256", + "wrapperChecksum" : "2db75c40782f5e8ba1fc278a5574bab070adccb2d21ca5a6e5ed840888448046" +}, { + "version" : "8.11-rc-2", + "buildTime" : "20241031150259+0000", + "commitId" : "484cebf8e46e7e0150107705c7ef8d62d72af447", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "8.11", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-8.11-rc-2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-8.11-rc-2-bin.zip.sha256", + "checksum" : "7565ee2f3d2193fce6e752f474be66eb0c6252f0c9ef792a8bffda6e7fd31b36", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-8.11-rc-2-wrapper.jar.sha256", + "wrapperChecksum" : "2db75c40782f5e8ba1fc278a5574bab070adccb2d21ca5a6e5ed840888448046" +}, { + "version" : "8.11-rc-1", + "buildTime" : "20241017104024+0000", + "commitId" : "4eab5987e618554d2d5e51fbc7b1dd1a3c7e8cb8", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "8.11", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-8.11-rc-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-8.11-rc-1-bin.zip.sha256", + "checksum" : "2522b1593704b6b26e03cb2dec86d792b1c6ca5c33d10e078fab7a146354130e", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-8.11-rc-1-wrapper.jar.sha256", + "wrapperChecksum" : "2db75c40782f5e8ba1fc278a5574bab070adccb2d21ca5a6e5ed840888448046" +}, { + "version" : "8.11-milestone-1", + "buildTime" : "20241006083426+0000", + "commitId" : "4a6676a6310b36abe94e9451436a8621e113728a", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "8.11", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-8.11-milestone-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-8.11-milestone-1-bin.zip.sha256", + "checksum" : "2c406ba10eaed701b69d01de924dfaf36106d4764e2090175d103b2e7acba211", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-8.11-milestone-1-wrapper.jar.sha256", + "wrapperChecksum" : "2db75c40782f5e8ba1fc278a5574bab070adccb2d21ca5a6e5ed840888448046" +}, { + "version" : "8.10.2", + "buildTime" : "20240923212839+0000", + "commitId" : "415adb9e06a516c44b391edff552fd42139443f7", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-8.10.2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-8.10.2-bin.zip.sha256", + "checksum" : "31c55713e40233a8303827ceb42ca48a47267a0ad4bab9177123121e71524c26", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-8.10.2-wrapper.jar.sha256", + "wrapperChecksum" : "2db75c40782f5e8ba1fc278a5574bab070adccb2d21ca5a6e5ed840888448046" +}, { + "version" : "8.10.2-milestone-1", + "buildTime" : "20240919234735+0000", + "commitId" : "c3ea2131e78003a1506533a3ddc952014217cee3", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "8.10.2", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-8.10.2-milestone-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-8.10.2-milestone-1-bin.zip.sha256", + "checksum" : "b6650db1f41b146b4a780c2a183e14602a6cf861a7797d97ea530fb1384d6336", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-8.10.2-milestone-1-wrapper.jar.sha256", + "wrapperChecksum" : "2db75c40782f5e8ba1fc278a5574bab070adccb2d21ca5a6e5ed840888448046" +}, { + "version" : "8.10.1", + "buildTime" : "20240909074256+0000", + "commitId" : "8716158d3ec8c59e38f87a67f1f311f297b79576", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-8.10.1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-8.10.1-bin.zip.sha256", + "checksum" : "1541fa36599e12857140465f3c91a97409b4512501c26f9631fb113e392c5bd1", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-8.10.1-wrapper.jar.sha256", + "wrapperChecksum" : "2db75c40782f5e8ba1fc278a5574bab070adccb2d21ca5a6e5ed840888448046" +}, { + "version" : "8.10", + "buildTime" : "20240814110745+0000", + "commitId" : "fef2edbed8af1022cefaf44d4c0514c5f89d7b78", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-8.10-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-8.10-bin.zip.sha256", + "checksum" : "5b9c5eb3f9fc2c94abaea57d90bd78747ca117ddbbf96c859d3741181a12bf2a", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-8.10-wrapper.jar.sha256", + "wrapperChecksum" : "2db75c40782f5e8ba1fc278a5574bab070adccb2d21ca5a6e5ed840888448046" +}, { + "version" : "8.10-rc-1", + "buildTime" : "20240808060755+0000", + "commitId" : "4f143ee84909970e5148c38b3ac7db3ff826a022", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "8.10", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-8.10-rc-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-8.10-rc-1-bin.zip.sha256", + "checksum" : "de2ad3b249d89af001ce3dace548f8149675c692ef8bccf271444985b590d284", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-8.10-rc-1-wrapper.jar.sha256", + "wrapperChecksum" : "2db75c40782f5e8ba1fc278a5574bab070adccb2d21ca5a6e5ed840888448046" +}, { + "version" : "8.9", + "buildTime" : "20240711143741+0000", + "commitId" : "d536ef36a19186ccc596d8817123e5445f30fef8", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-8.9-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-8.9-bin.zip.sha256", + "checksum" : "d725d707bfabd4dfdc958c624003b3c80accc03f7037b5122c4b1d0ef15cecab", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-8.9-wrapper.jar.sha256", + "wrapperChecksum" : "498495120a03b9a6ab5d155f5de3c8f0d986a449153702fb80fc80e134484f17" +}, { + "version" : "8.9-rc-2", + "buildTime" : "20240705153825+0000", + "commitId" : "fcee8d48f54051165ef816487636dfc0aa4c88a0", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "8.9", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-8.9-rc-2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-8.9-rc-2-bin.zip.sha256", + "checksum" : "c2b58a752b82346a89a9d5384ba0882d9c3f0c29e0700c8e050002b81d6d4ff9", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-8.9-rc-2-wrapper.jar.sha256", + "wrapperChecksum" : "498495120a03b9a6ab5d155f5de3c8f0d986a449153702fb80fc80e134484f17" +}, { + "version" : "8.9-rc-1", + "buildTime" : "20240621131308+0000", + "commitId" : "a667c19ff4d039304aa43268948139dc9ca6baa6", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "8.9", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-8.9-rc-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-8.9-rc-1-bin.zip.sha256", + "checksum" : "3ae7f7d3d433936b546c13505bb55adbae7708e715bfc4cf36cfc22650e6a881", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-8.9-rc-1-wrapper.jar.sha256", + "wrapperChecksum" : "498495120a03b9a6ab5d155f5de3c8f0d986a449153702fb80fc80e134484f17" +}, { + "version" : "8.8", + "buildTime" : "20240531214656+0000", + "commitId" : "4bd1b3d3fc3f31db5a26eecb416a165b8cc36082", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-8.8-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-8.8-bin.zip.sha256", + "checksum" : "a4b4158601f8636cdeeab09bd76afb640030bb5b144aafe261a5e8af027dc612", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-8.8-wrapper.jar.sha256", + "wrapperChecksum" : "cb0da6751c2b753a16ac168bb354870ebb1e162e9083f116729cec9c781156b8" +}, { + "version" : "8.8-rc-2", + "buildTime" : "20240527070937+0000", + "commitId" : "d0f4982aba27e390b46c383277db130abfc1b44e", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "8.8", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-8.8-rc-2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-8.8-rc-2-bin.zip.sha256", + "checksum" : "b50250702d1b238f797c0778259f8b58714d5d16fbfec41fb19135bf86c64fe8", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-8.8-rc-2-wrapper.jar.sha256", + "wrapperChecksum" : "cb0da6751c2b753a16ac168bb354870ebb1e162e9083f116729cec9c781156b8" +}, { + "version" : "8.8-rc-1", + "buildTime" : "20240426151958+0000", + "commitId" : "000ef8587278729b8ea91c89b1c527ba0164338a", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "8.8", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-8.8-rc-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-8.8-rc-1-bin.zip.sha256", + "checksum" : "a2e1cfee7ffdeee86015b85b2dd2a435032c40eedc01d8172285556c7d8fea13", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-8.8-rc-1-wrapper.jar.sha256", + "wrapperChecksum" : "cb0da6751c2b753a16ac168bb354870ebb1e162e9083f116729cec9c781156b8" +}, { + "version" : "8.7", + "buildTime" : "20240322155246+0000", + "commitId" : "650af14d7653aa949fce5e886e685efc9cf97c10", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-8.7-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-8.7-bin.zip.sha256", + "checksum" : "544c35d6bd849ae8a5ed0bcea39ba677dc40f49df7d1835561582da2009b961d", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-8.7-wrapper.jar.sha256", + "wrapperChecksum" : "cb0da6751c2b753a16ac168bb354870ebb1e162e9083f116729cec9c781156b8" +}, { + "version" : "8.7-rc-4", + "buildTime" : "20240320140334+0000", + "commitId" : "b9db7ce7ad5d1f2adf1928955ae926329262cf82", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "8.7", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-8.7-rc-4-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-8.7-rc-4-bin.zip.sha256", + "checksum" : "a14ad975075d5d2dcc1fa1667e622597c6f8721e2ca42dff54ebe40c07eb1bc5", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-8.7-rc-4-wrapper.jar.sha256", + "wrapperChecksum" : "cb0da6751c2b753a16ac168bb354870ebb1e162e9083f116729cec9c781156b8" +}, { + "version" : "8.7-rc-3", + "buildTime" : "20240311171310+0000", + "commitId" : "ab30a66001c3476658e07c46e1a9c5e862aed438", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "8.7", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-8.7-rc-3-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-8.7-rc-3-bin.zip.sha256", + "checksum" : "f0183d411f68b72d37112e47b539c6d91d1870842f5f2ce9cffefa0a7756ae52", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-8.7-rc-3-wrapper.jar.sha256", + "wrapperChecksum" : "cb0da6751c2b753a16ac168bb354870ebb1e162e9083f116729cec9c781156b8" +}, { + "version" : "8.7-rc-2", + "buildTime" : "20240229125337+0000", + "commitId" : "cf4549b56c9b4d7c453795158e19a544b2a0dd60", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "8.7", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-8.7-rc-2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-8.7-rc-2-bin.zip.sha256", + "checksum" : "3348170800c324fc97ff201fdc139ad465c073ab19760cfe22a872b5b858560f", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-8.7-rc-2-wrapper.jar.sha256", + "wrapperChecksum" : "cb0da6751c2b753a16ac168bb354870ebb1e162e9083f116729cec9c781156b8" +}, { + "version" : "8.7-rc-1", + "buildTime" : "20240222213949+0000", + "commitId" : "6cd7d3cf5929e1bd9f917b7dc67d03cd65d22d08", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "8.7", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-8.7-rc-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-8.7-rc-1-bin.zip.sha256", + "checksum" : "4354bc6c46d1f1e1e37cb371b7c31556a4427eb3f57d03c23e5aae8aa606aedb", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-8.7-rc-1-wrapper.jar.sha256", + "wrapperChecksum" : "cb0da6751c2b753a16ac168bb354870ebb1e162e9083f116729cec9c781156b8" +}, { + "version" : "7.6.4", + "buildTime" : "20240205142918+0000", + "commitId" : "e0bb3fc8cefad8432c9033cdfb12dc14facc9dd9", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-7.6.4-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-7.6.4-bin.zip.sha256", + "checksum" : "bed1da33cca0f557ab13691c77f38bb67388119e4794d113e051039b80af9bb1", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-7.6.4-wrapper.jar.sha256", + "wrapperChecksum" : "14dfa961b6704bb3decdea06502781edaa796a82e6da41cd2e1962b14fbe21a3" +}, { + "version" : "8.6", + "buildTime" : "20240202164716+0000", + "commitId" : "d55c486870a0dc6f6278f53d21381396d0741c6e", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-8.6-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-8.6-bin.zip.sha256", + "checksum" : "9631d53cf3e74bfa726893aee1f8994fee4e060c401335946dba2156f440f24c", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-8.6-wrapper.jar.sha256", + "wrapperChecksum" : "d3b261c2820e9e3d8d639ed084900f11f4a86050a8f83342ade7b6bc9b0d2bdd" +}, { + "version" : "8.6-rc-4", + "buildTime" : "20240131130628+0000", + "commitId" : "f1b03c0a136f87f0d33406b8ea3f2039caec2a32", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "8.6", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-8.6-rc-4-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-8.6-rc-4-bin.zip.sha256", + "checksum" : "1fb8db52c64b78eb27358dbe7119040090d227cb7de0436c0a657863c44b84c6", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-8.6-rc-4-wrapper.jar.sha256", + "wrapperChecksum" : "d3b261c2820e9e3d8d639ed084900f11f4a86050a8f83342ade7b6bc9b0d2bdd" +}, { + "version" : "8.6-rc-3", + "buildTime" : "20240123150619+0000", + "commitId" : "40b1a053f84abb1d167d88142af835c96eb4c3d7", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "8.6", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-8.6-rc-3-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-8.6-rc-3-bin.zip.sha256", + "checksum" : "281b47656267472c9f853e7ed54002bfd435bfdcd292286709705324fd96f5dc", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-8.6-rc-3-wrapper.jar.sha256", + "wrapperChecksum" : "d3b261c2820e9e3d8d639ed084900f11f4a86050a8f83342ade7b6bc9b0d2bdd" +}, { + "version" : "8.6-rc-2", + "buildTime" : "20240112144903+0000", + "commitId" : "cee3a34b18b771fe4174800920b5a0009a980034", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "8.6", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-8.6-rc-2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-8.6-rc-2-bin.zip.sha256", + "checksum" : "3a36cedd25c02335d991e3684e17985239150e24b744a8513d466543083ca250", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-8.6-rc-2-wrapper.jar.sha256", + "wrapperChecksum" : "d3b261c2820e9e3d8d639ed084900f11f4a86050a8f83342ade7b6bc9b0d2bdd" +}, { + "version" : "8.6-rc-1", + "buildTime" : "20231228064048+0000", + "commitId" : "19db0f499fd22a228355c1a6594b9159176a466e", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "8.6", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-8.6-rc-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-8.6-rc-1-bin.zip.sha256", + "checksum" : "a2da4ba435f6728b43554c5845f6f88f79589c3e0018c29ab33eb23bd781255b", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-8.6-rc-1-wrapper.jar.sha256", + "wrapperChecksum" : "d3b261c2820e9e3d8d639ed084900f11f4a86050a8f83342ade7b6bc9b0d2bdd" +}, { + "version" : "8.6-milestone-1", + "buildTime" : "20231208093905+0000", + "commitId" : "68a2e7c3355e027b514e59fe9e4671d780409535", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "8.6", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-8.6-milestone-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-8.6-milestone-1-bin.zip.sha256", + "checksum" : "0bd40db84cb02df49bde4c3f45b6fa7267f78c075447cb70bac3cc79aed233b7", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-8.6-milestone-1-wrapper.jar.sha256", + "wrapperChecksum" : "d3b261c2820e9e3d8d639ed084900f11f4a86050a8f83342ade7b6bc9b0d2bdd" +}, { + "version" : "8.5", + "buildTime" : "20231129140857+0000", + "commitId" : "28aca86a7180baa17117e0e5ba01d8ea9feca598", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-8.5-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-8.5-bin.zip.sha256", + "checksum" : "9d926787066a081739e8200858338b4a69e837c3a821a33aca9db09dd4a41026", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-8.5-wrapper.jar.sha256", + "wrapperChecksum" : "d3b261c2820e9e3d8d639ed084900f11f4a86050a8f83342ade7b6bc9b0d2bdd" +}, { + "version" : "8.5-rc-4", + "buildTime" : "20231124091900+0000", + "commitId" : "ff7bf18d018392c80aead72f93d4530726e9504d", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "8.5", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-8.5-rc-4-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-8.5-rc-4-bin.zip.sha256", + "checksum" : "614587c584e4d97a00368c8f5e6749d3e38345b7810bcfef1c7b8e002127b3a3", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-8.5-rc-4-wrapper.jar.sha256", + "wrapperChecksum" : "d3b261c2820e9e3d8d639ed084900f11f4a86050a8f83342ade7b6bc9b0d2bdd" +}, { + "version" : "8.5-rc-3", + "buildTime" : "20231117134310+0000", + "commitId" : "d8463b2b64aa2952b741fcb1a7da11710ffc2c5a", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "8.5", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-8.5-rc-3-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-8.5-rc-3-bin.zip.sha256", + "checksum" : "7207f771dac48bfe19d5990c8f1e7e5f3d5e8b2b98e09ad9a4c484af537f86b2", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-8.5-rc-3-wrapper.jar.sha256", + "wrapperChecksum" : "d3b261c2820e9e3d8d639ed084900f11f4a86050a8f83342ade7b6bc9b0d2bdd" +}, { + "version" : "8.5-rc-2", + "buildTime" : "20231114141630+0000", + "commitId" : "9bfdf5b90ff69b6775c2fe163808a99eac2dc543", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "8.5", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-8.5-rc-2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-8.5-rc-2-bin.zip.sha256", + "checksum" : "547d33f88a30b6d9666c79fde614b1e5a1a3e2f86216bc70c4c7e3421f0d4627", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-8.5-rc-2-wrapper.jar.sha256", + "wrapperChecksum" : "d3b261c2820e9e3d8d639ed084900f11f4a86050a8f83342ade7b6bc9b0d2bdd" +}, { + "version" : "8.5-rc-1", + "buildTime" : "20231107155056+0000", + "commitId" : "3dc993b32164f697b540e88c2426977e097d3aff", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "8.5", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-8.5-rc-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-8.5-rc-1-bin.zip.sha256", + "checksum" : "8c74462b1d83f8b17c4838c925fc4c46d1fbb4467b18b8a17f5cdaaee45b7f09", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-8.5-rc-1-wrapper.jar.sha256", + "wrapperChecksum" : "d3b261c2820e9e3d8d639ed084900f11f4a86050a8f83342ade7b6bc9b0d2bdd" +}, { + "version" : "8.4", + "buildTime" : "20231004205213+0000", + "commitId" : "e9251e572c9bd1d01e503a0dfdf43aedaeecdc3f", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-8.4-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-8.4-bin.zip.sha256", + "checksum" : "3e1af3ae886920c3ac87f7a91f816c0c7c436f276a6eefdb3da152100fef72ae", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-8.4-wrapper.jar.sha256", + "wrapperChecksum" : "0336f591bc0ec9aa0c9988929b93ecc916b3c1d52aed202c7381db144aa0ef15" +}, { + "version" : "7.6.3", + "buildTime" : "20231004155947+0000", + "commitId" : "1694251d59e0d4752d547e1fd5b5020b798a7e71", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-7.6.3-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-7.6.3-bin.zip.sha256", + "checksum" : "740c2e472ee4326c33bf75a5c9f5cd1e69ecf3f9b580f6e236c86d1f3d98cfac", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-7.6.3-wrapper.jar.sha256", + "wrapperChecksum" : "14dfa961b6704bb3decdea06502781edaa796a82e6da41cd2e1962b14fbe21a3" +}, { + "version" : "8.4-rc-3", + "buildTime" : "20230929135700+0000", + "commitId" : "7788100a0736a67692b30f53fe3b2442dbb9816d", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "8.4", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-8.4-rc-3-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-8.4-rc-3-bin.zip.sha256", + "checksum" : "cb1945fa73552ddf99cf32ec2fcd065771fcb6bf4a366b9408e79f9561601853", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-8.4-rc-3-wrapper.jar.sha256", + "wrapperChecksum" : "0336f591bc0ec9aa0c9988929b93ecc916b3c1d52aed202c7381db144aa0ef15" +}, { + "version" : "8.4-rc-2", + "buildTime" : "20230926114721+0000", + "commitId" : "21dd48a6b94a5dfff7fa19c4e3c65b5522c75cb3", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "8.4", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-8.4-rc-2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-8.4-rc-2-bin.zip.sha256", + "checksum" : "f7dca5ae44f1a45ee7950fa3e01418a664eaa04136ff594a99bebf7ee353a943", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-8.4-rc-2-wrapper.jar.sha256", + "wrapperChecksum" : "0336f591bc0ec9aa0c9988929b93ecc916b3c1d52aed202c7381db144aa0ef15" +}, { + "version" : "8.4-rc-1", + "buildTime" : "20230920065917+0000", + "commitId" : "ebdfd04b7e181147b7ce87af0f72b950261085f7", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "8.4", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-8.4-rc-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-8.4-rc-1-bin.zip.sha256", + "checksum" : "7eec87a597388fb67df02d0cc4f8bc566abd5adf5838dab1f4db0e83fa96bd4f", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-8.4-rc-1-wrapper.jar.sha256", + "wrapperChecksum" : "0336f591bc0ec9aa0c9988929b93ecc916b3c1d52aed202c7381db144aa0ef15" +}, { + "version" : "8.3", + "buildTime" : "20230817070647+0000", + "commitId" : "8afbf24b469158b714b36e84c6f4d4976c86fcd5", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-8.3-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-8.3-bin.zip.sha256", + "checksum" : "591855b517fc635b9e04de1d05d5e76ada3f89f5fc76f87978d1b245b4f69225", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-8.3-wrapper.jar.sha256", + "wrapperChecksum" : "0336f591bc0ec9aa0c9988929b93ecc916b3c1d52aed202c7381db144aa0ef15" +}, { + "version" : "8.3-rc-4", + "buildTime" : "20230814082841+0000", + "commitId" : "45d5bd72d0d837799c297e94bc1fbca9fee637eb", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "8.3", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-8.3-rc-4-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-8.3-rc-4-bin.zip.sha256", + "checksum" : "e4d88e0e636799134179376b5b058b0c691e58a1e9150c1d0a3898ffd402abaa", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-8.3-rc-4-wrapper.jar.sha256", + "wrapperChecksum" : "0336f591bc0ec9aa0c9988929b93ecc916b3c1d52aed202c7381db144aa0ef15" +}, { + "version" : "8.3-rc-3", + "buildTime" : "20230802172145+0000", + "commitId" : "5137ec0e9b3df9f4d40bc9e055d5f0b1024d9327", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "8.3", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-8.3-rc-3-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-8.3-rc-3-bin.zip.sha256", + "checksum" : "7af08310663d2849d8288d075cc2b74ca56dbacfa7ae60257c02aab0e8fe3111", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-8.3-rc-3-wrapper.jar.sha256", + "wrapperChecksum" : "0336f591bc0ec9aa0c9988929b93ecc916b3c1d52aed202c7381db144aa0ef15" +}, { + "version" : "8.3-rc-2", + "buildTime" : "20230726152039+0000", + "commitId" : "c48101dc7f9c766efa8206574aa9c2195d2b7960", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "8.3", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-8.3-rc-2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-8.3-rc-2-bin.zip.sha256", + "checksum" : "222818637ce0a4cb82e322bf847ea49ac319aecdb363d81acabd9e81315d08f6", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-8.3-rc-2-wrapper.jar.sha256", + "wrapperChecksum" : "0336f591bc0ec9aa0c9988929b93ecc916b3c1d52aed202c7381db144aa0ef15" +}, { + "version" : "8.3-rc-1", + "buildTime" : "20230719075404+0000", + "commitId" : "d036e6078ed80de7a7e1ad6a17aae6be115b5d0d", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "8.3", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-8.3-rc-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-8.3-rc-1-bin.zip.sha256", + "checksum" : "05d10c69f03ef1ed1569171e637fc1737828bceaf4bb4a1e87407a4a7d1c01e6", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-8.3-rc-1-wrapper.jar.sha256", + "wrapperChecksum" : "0336f591bc0ec9aa0c9988929b93ecc916b3c1d52aed202c7381db144aa0ef15" +}, { + "version" : "8.2.1", + "buildTime" : "20230710121235+0000", + "commitId" : "a38ec64d3c4612da9083cc506a1ccb212afeecaa", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-8.2.1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-8.2.1-bin.zip.sha256", + "checksum" : "03ec176d388f2aa99defcadc3ac6adf8dd2bce5145a129659537c0874dea5ad1", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-8.2.1-wrapper.jar.sha256", + "wrapperChecksum" : "a8451eeda314d0568b5340498b36edf147a8f0d692c5ff58082d477abe9146e4" +}, { + "version" : "8.2", + "buildTime" : "20230630180230+0000", + "commitId" : "5f4a070a62a31a17438ac998c2b849f4f6892877", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-8.2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-8.2-bin.zip.sha256", + "checksum" : "38f66cd6eef217b4c35855bb11ea4e9fbc53594ccccb5fb82dfd317ef8c2c5a3", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-8.2-wrapper.jar.sha256", + "wrapperChecksum" : "a8451eeda314d0568b5340498b36edf147a8f0d692c5ff58082d477abe9146e4" +}, { + "version" : "7.6.2", + "buildTime" : "20230630154251+0000", + "commitId" : "dab132169006b16e7ada4ab2456e0c9d6415b52a", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-7.6.2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-7.6.2-bin.zip.sha256", + "checksum" : "a01b6587e15fe7ed120a0ee299c25982a1eee045abd6a9dd5e216b2f628ef9ac", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-7.6.2-wrapper.jar.sha256", + "wrapperChecksum" : "14dfa961b6704bb3decdea06502781edaa796a82e6da41cd2e1962b14fbe21a3" +}, { + "version" : "8.2-rc-3", + "buildTime" : "20230628070204+0000", + "commitId" : "66d698f44a1d71c01e80664f984a5c86a83bd28d", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "8.2", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-8.2-rc-3-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-8.2-rc-3-bin.zip.sha256", + "checksum" : "345389a51e2ec796b1102c1ce513ac8f571978fd698e3fb10b6e0457091b6edc", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-8.2-rc-3-wrapper.jar.sha256", + "wrapperChecksum" : "a8451eeda314d0568b5340498b36edf147a8f0d692c5ff58082d477abe9146e4" +}, { + "version" : "8.2-rc-2", + "buildTime" : "20230606183136+0000", + "commitId" : "5b4d99e3745b5e4c9929621c9377b6f8fb97f3fd", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "8.2", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-8.2-rc-2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-8.2-rc-2-bin.zip.sha256", + "checksum" : "0906569bf96e8ebefbc1aa56318c74aeafd9710455b2817c70d709c5d77785c4", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-8.2-rc-2-wrapper.jar.sha256", + "wrapperChecksum" : "5c9a1a6f50b4f8c0264b1ac69013bef9f8363733275fafa56c70c84be3276bb8" +}, { + "version" : "8.2-rc-1", + "buildTime" : "20230531181205+0000", + "commitId" : "2a2778f51363d9574f808ae80d34d8b5bd99d98b", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "8.2", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-8.2-rc-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-8.2-rc-1-bin.zip.sha256", + "checksum" : "f93546eb9b9ca57eb1d22f6e6d50a181e70720d4ba6d6af8fc96037fe4c8daf6", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-8.2-rc-1-wrapper.jar.sha256", + "wrapperChecksum" : "55e949185c26ba3ddcd2c6a4217d043bfa0ce3cc002bbbb52b709a181a513e81" +}, { + "version" : "8.2-milestone-1", + "buildTime" : "20230426164225+0000", + "commitId" : "0f7d6b14b563ca06bfd34d2dde25d0f1f93279e3", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "8.2", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-8.2-milestone-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-8.2-milestone-1-bin.zip.sha256", + "checksum" : "4d06de8a5bfe1d53646d78cbe193ceae1d16b2145f522b3724b69d394c38e44f", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-8.2-milestone-1-wrapper.jar.sha256", + "wrapperChecksum" : "55e949185c26ba3ddcd2c6a4217d043bfa0ce3cc002bbbb52b709a181a513e81" +}, { + "version" : "8.1.1", + "buildTime" : "20230421123126+0000", + "commitId" : "1cf537a851c635c364a4214885f8b9798051175b", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-8.1.1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-8.1.1-bin.zip.sha256", + "checksum" : "e111cb9948407e26351227dabce49822fb88c37ee72f1d1582a69c68af2e702f", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-8.1.1-wrapper.jar.sha256", + "wrapperChecksum" : "ed2c26eba7cfb93cc2b7785d05e534f07b5b48b5e7fc941921cd098628abca58" +}, { + "version" : "8.1", + "buildTime" : "20230412120745+0000", + "commitId" : "40ba32cde9d6daf2b92c39376d2758909dd6b813", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-8.1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-8.1-bin.zip.sha256", + "checksum" : "a62c5f99585dd9e1f95dab7b9415a0e698fa9dd1e6c38537faa81ac078f4d23e", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-8.1-wrapper.jar.sha256", + "wrapperChecksum" : "ed2c26eba7cfb93cc2b7785d05e534f07b5b48b5e7fc941921cd098628abca58" +}, { + "version" : "8.1-rc-4", + "buildTime" : "20230411093751+0000", + "commitId" : "a63ac23cdbaf9c9e5e43b9fdb7fa478780fc40b2", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "8.1", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-8.1-rc-4-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-8.1-rc-4-bin.zip.sha256", + "checksum" : "75cbca1c36f3695ec15b39ac1f22103e5c84ba949b672497e70e9a99dc2ca195", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-8.1-rc-4-wrapper.jar.sha256", + "wrapperChecksum" : "ed2c26eba7cfb93cc2b7785d05e534f07b5b48b5e7fc941921cd098628abca58" +}, { + "version" : "8.1-rc-3", + "buildTime" : "20230404095841+0000", + "commitId" : "7eb689e589a42dcabd23aa8ccffa9a020c2010d2", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "8.1", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-8.1-rc-3-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-8.1-rc-3-bin.zip.sha256", + "checksum" : "4087d4c8eb90335f7c635082424cf34480721544ad36b595dcf8c143c653c149", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-8.1-rc-3-wrapper.jar.sha256", + "wrapperChecksum" : "ed2c26eba7cfb93cc2b7785d05e534f07b5b48b5e7fc941921cd098628abca58" +}, { + "version" : "8.1-rc-2", + "buildTime" : "20230329080943+0000", + "commitId" : "b7cde67fa9c3fcbf03a4cefdb2214d52963a8678", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "8.1", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-8.1-rc-2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-8.1-rc-2-bin.zip.sha256", + "checksum" : "c8e041dcbf7b747bf967b607942d8cf9a7cf992f4c05c90b1c8826901c183617", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-8.1-rc-2-wrapper.jar.sha256", + "wrapperChecksum" : "ed2c26eba7cfb93cc2b7785d05e534f07b5b48b5e7fc941921cd098628abca58" +}, { + "version" : "8.1-rc-1", + "buildTime" : "20230320143921+0000", + "commitId" : "cd44247d421f76903decf83a0efad7bbc1552dc1", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "8.1", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-8.1-rc-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-8.1-rc-1-bin.zip.sha256", + "checksum" : "0a0143227c5a1699753e5e37f0c03bd784b3bd6c617d19e4f0c4df12c32b0fe2", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-8.1-rc-1-wrapper.jar.sha256", + "wrapperChecksum" : "ed2c26eba7cfb93cc2b7785d05e534f07b5b48b5e7fc941921cd098628abca58" +}, { + "version" : "8.0.2", + "buildTime" : "20230303164137+0000", + "commitId" : "7d6581558e226a580d91d399f7dfb9e3095c2b1d", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-8.0.2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-8.0.2-bin.zip.sha256", + "checksum" : "ff7bf6a86f09b9b2c40bb8f48b25fc19cf2b2664fd1d220cd7ab833ec758d0d7", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-8.0.2-wrapper.jar.sha256", + "wrapperChecksum" : "91941f522fbfd4431cf57e445fc3d5200c85f957bda2de5251353cf11174f4b5" +}, { + "version" : "7.6.1", + "buildTime" : "20230224135442+0000", + "commitId" : "3905fe8ac072bbd925c70ddbddddf4463341f4b4", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-7.6.1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-7.6.1-bin.zip.sha256", + "checksum" : "6147605a23b4eff6c334927a86ff3508cb5d6722cd624c97ded4c2e8640f1f87", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-7.6.1-wrapper.jar.sha256", + "wrapperChecksum" : "c5a643cf80162e665cc228f7b16f343fef868e47d3a4836f62e18b7e17ac018a" +}, { + "version" : "6.9.4", + "buildTime" : "20230222084312+0000", + "commitId" : "7f9380f27d6dc6a1ee6dfc466b834b0408d0b0c4", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-6.9.4-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-6.9.4-bin.zip.sha256", + "checksum" : "3e240228538de9f18772a574e99a0ba959e83d6ef351014381acd9631781389a", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-6.9.4-wrapper.jar.sha256", + "wrapperChecksum" : "e996d452d2645e70c01c11143ca2d3742734a28da2bf61f25c82bdc288c9e637" +}, { + "version" : "8.0.1", + "buildTime" : "20230217200948+0000", + "commitId" : "68959bf76cef4d28c678f2e2085ee84e8647b77a", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-8.0.1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-8.0.1-bin.zip.sha256", + "checksum" : "1b6b558be93f29438d3df94b7dfee02e794b94d9aca4611a92cdb79b6b88e909", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-8.0.1-wrapper.jar.sha256", + "wrapperChecksum" : "91941f522fbfd4431cf57e445fc3d5200c85f957bda2de5251353cf11174f4b5" +}, { + "version" : "8.0", + "buildTime" : "20230213131521+0000", + "commitId" : "62ab9b7c7f884426cf79fbedcf07658b2dbe9e97", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-8.0-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-8.0-bin.zip.sha256", + "checksum" : "4159b938ec734a8388ce03f52aa8f3c7ed0d31f5438622545de4f83a89b79788", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-8.0-wrapper.jar.sha256", + "wrapperChecksum" : "91941f522fbfd4431cf57e445fc3d5200c85f957bda2de5251353cf11174f4b5" +}, { + "version" : "8.0-rc-5", + "buildTime" : "20230209233943+0000", + "commitId" : "47a354e154889b2656373419e3571410291404a7", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "8.0", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-8.0-rc-5-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-8.0-rc-5-bin.zip.sha256", + "checksum" : "c01b46042141d23aea23ae5b09a12410a7996bac8c7fdf367547acd1b3c772d9", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-8.0-rc-5-wrapper.jar.sha256", + "wrapperChecksum" : "91941f522fbfd4431cf57e445fc3d5200c85f957bda2de5251353cf11174f4b5" +}, { + "version" : "8.0-rc-4", + "buildTime" : "20230209172637+0000", + "commitId" : "5eb67a82c4283959484a3b93cb3ede1a08a2504b", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "8.0", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-8.0-rc-4-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-8.0-rc-4-bin.zip.sha256", + "checksum" : "c1e2a61fd7257fdb869020808930487a69179488490a27664b06e472ecbf4ed7", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-8.0-rc-4-wrapper.jar.sha256", + "wrapperChecksum" : "91941f522fbfd4431cf57e445fc3d5200c85f957bda2de5251353cf11174f4b5" +}, { + "version" : "8.0-rc-3", + "buildTime" : "20230206094910+0000", + "commitId" : "0acb34c510be84f8fad1923e3a62c17eecbc886a", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "8.0", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-8.0-rc-3-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-8.0-rc-3-bin.zip.sha256", + "checksum" : "9fb87bbe73f963a4c23daede3a5ed78e7ae770f3e980d3cb15d8df04518b542d", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-8.0-rc-3-wrapper.jar.sha256", + "wrapperChecksum" : "91941f522fbfd4431cf57e445fc3d5200c85f957bda2de5251353cf11174f4b5" +}, { + "version" : "8.0-rc-2", + "buildTime" : "20230117102518+0000", + "commitId" : "8dcd942c9efaac6cb7f577f3b7a7521d0801704d", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "8.0", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-8.0-rc-2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-8.0-rc-2-bin.zip.sha256", + "checksum" : "28ebe9afc20564bcdc39bfe36f6b60a373e40be2c3c307a0028b545b8ccf6ba0", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-8.0-rc-2-wrapper.jar.sha256", + "wrapperChecksum" : "91941f522fbfd4431cf57e445fc3d5200c85f957bda2de5251353cf11174f4b5" +}, { + "version" : "8.0-rc-1", + "buildTime" : "20221229123250+0000", + "commitId" : "ae81f85f0e184196c188b96016eb3d9e38f60673", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "8.0", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-8.0-rc-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-8.0-rc-1-bin.zip.sha256", + "checksum" : "d5bb29e784426547e4f455fbc0e6512d7a6a67d7d890cf24d601309287128b79", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-8.0-rc-1-wrapper.jar.sha256", + "wrapperChecksum" : "91941f522fbfd4431cf57e445fc3d5200c85f957bda2de5251353cf11174f4b5" +}, { + "version" : "8.0-milestone-6", + "buildTime" : "20221220081158+0000", + "commitId" : "6abc8d20bdd7b25edb3a24f62454f0e56257f552", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "8.0", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-8.0-milestone-6-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-8.0-milestone-6-bin.zip.sha256", + "checksum" : "5db785194950909ded9d2bcad3cd6874e7578bc93c11bf1aaa2d3e89aa8c9deb", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-8.0-milestone-6-wrapper.jar.sha256", + "wrapperChecksum" : "91941f522fbfd4431cf57e445fc3d5200c85f957bda2de5251353cf11174f4b5" +}, { + "version" : "8.0-milestone-5", + "buildTime" : "20221208181122+0000", + "commitId" : "3fb0faa58efc3d984465da3316663a0b89e0b728", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "8.0", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-8.0-milestone-5-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-8.0-milestone-5-bin.zip.sha256", + "checksum" : "0288540bc5ad21c4c921743464da8b7c8c8403750ddb20d050dc088282814664", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-8.0-milestone-5-wrapper.jar.sha256", + "wrapperChecksum" : "91941f522fbfd4431cf57e445fc3d5200c85f957bda2de5251353cf11174f4b5" +}, { + "version" : "8.0-milestone-4", + "buildTime" : "20221201090656+0000", + "commitId" : "d06a65fb5320997b66461bbfa74266aa050a3b1d", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "8.0", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-8.0-milestone-4-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-8.0-milestone-4-bin.zip.sha256", + "checksum" : "8ecb39c34977c75381299045cb238f6e4d3368e67b7221fcd9ac34ad344e4b63", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-8.0-milestone-4-wrapper.jar.sha256", + "wrapperChecksum" : "577b2de036000db2e0f04f2ec842a4f1e648c8b6f9c87f29a8d896acb1732538" +}, { + "version" : "7.6", + "buildTime" : "20221125133510+0000", + "commitId" : "daece9dbc5b79370cc8e4fd6fe4b2cd400e150a8", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-7.6-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-7.6-bin.zip.sha256", + "checksum" : "7ba68c54029790ab444b39d7e293d3236b2632631fb5f2e012bb28b4ff669e4b", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-7.6-wrapper.jar.sha256", + "wrapperChecksum" : "c5a643cf80162e665cc228f7b16f343fef868e47d3a4836f62e18b7e17ac018a" +}, { + "version" : "7.6-rc-4", + "buildTime" : "20221122094210+0000", + "commitId" : "87a8037940defe7c18ef332efac18f0405baa37b", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "7.6", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-7.6-rc-4-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-7.6-rc-4-bin.zip.sha256", + "checksum" : "eb93e4f8abf8db59d5bd1bbdd716f971d010bfc82fd01fe46905d499305718a0", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-7.6-rc-4-wrapper.jar.sha256", + "wrapperChecksum" : "c5a643cf80162e665cc228f7b16f343fef868e47d3a4836f62e18b7e17ac018a" +}, { + "version" : "7.6-rc-3", + "buildTime" : "20221111142340+0000", + "commitId" : "6c339330ec227cafd6049ff3245ccef45ae8c7d4", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "7.6", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-7.6-rc-3-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-7.6-rc-3-bin.zip.sha256", + "checksum" : "21e2bf8e6c6ac310182c817776ffc6cca80142f5de4b2b4151f9f72b9ec35b50", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-7.6-rc-3-wrapper.jar.sha256", + "wrapperChecksum" : "c5a643cf80162e665cc228f7b16f343fef868e47d3a4836f62e18b7e17ac018a" +}, { + "version" : "7.6-rc-2", + "buildTime" : "20221108130606+0000", + "commitId" : "9e7785b963b6627bf6a0d8599d971f4c56f22a5a", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "7.6", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-7.6-rc-2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-7.6-rc-2-bin.zip.sha256", + "checksum" : "1a0c892659d3eec2a33ab23857784ee3c9674b681cab068f67780da412d3f61f", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-7.6-rc-2-wrapper.jar.sha256", + "wrapperChecksum" : "c5a643cf80162e665cc228f7b16f343fef868e47d3a4836f62e18b7e17ac018a" +}, { + "version" : "8.0-milestone-3", + "buildTime" : "20221028140616+0000", + "commitId" : "fbe9699332c66d9dc7d28aaa4982f7ffc7aab81a", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "8.0", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-8.0-milestone-3-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-8.0-milestone-3-bin.zip.sha256", + "checksum" : "ad9460264653b6ed16cc8aebf9ee4dc12d1a301351323233eb905fce5d522ab4", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-8.0-milestone-3-wrapper.jar.sha256", + "wrapperChecksum" : "c5a643cf80162e665cc228f7b16f343fef868e47d3a4836f62e18b7e17ac018a" +}, { + "version" : "7.6-rc-1", + "buildTime" : "20221028075211+0000", + "commitId" : "62973455a8df25d003949f3f573593cd10d083a3", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "7.6", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-7.6-rc-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-7.6-rc-1-bin.zip.sha256", + "checksum" : "458550f35b74ad9fbbdf3a1eb69c3f4faef7944cffa3d7fb91b46327875b0b17", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-7.6-rc-1-wrapper.jar.sha256", + "wrapperChecksum" : "c5a643cf80162e665cc228f7b16f343fef868e47d3a4836f62e18b7e17ac018a" +}, { + "version" : "6.9.3", + "buildTime" : "20221017074402+0000", + "commitId" : "a6198e44749b18b37e26b3b3467db17e034bcff4", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-6.9.3-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-6.9.3-bin.zip.sha256", + "checksum" : "dcf350b8ae1aa192fc299aed6efc77b43825d4fedb224c94118ae7faf5fb035d", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-6.9.3-wrapper.jar.sha256", + "wrapperChecksum" : "e996d452d2645e70c01c11143ca2d3742734a28da2bf61f25c82bdc288c9e637" +}, { + "version" : "8.0-milestone-2", + "buildTime" : "20221009102113+0000", + "commitId" : "2fa96f7c0db3ece3385edf57f44e89589cd59486", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "8.0", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-8.0-milestone-2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-8.0-milestone-2-bin.zip.sha256", + "checksum" : "7fe8e8147543e80b4e1a11dfaf819d80d5bd32d1d922b11944e768a15c7c6a7b", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-8.0-milestone-2-wrapper.jar.sha256", + "wrapperChecksum" : "c5a643cf80162e665cc228f7b16f343fef868e47d3a4836f62e18b7e17ac018a" +}, { + "version" : "8.0-milestone-1", + "buildTime" : "20220923110128+0000", + "commitId" : "60cd44b5204ccedca6bf0f194bc4b17b8a3a7ad5", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "8.0", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-8.0-milestone-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-8.0-milestone-1-bin.zip.sha256", + "checksum" : "573715e1f25829fc3c2ad2e97578e9f8433050da87ddab5413e587663a621ebe", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-8.0-milestone-1-wrapper.jar.sha256", + "wrapperChecksum" : "c5a643cf80162e665cc228f7b16f343fef868e47d3a4836f62e18b7e17ac018a" +}, { + "version" : "7.6-milestone-1", + "buildTime" : "20220923093944+0000", + "commitId" : "d4f94bd96c2dfb7374cd71abbc4b1f628a2d6a2b", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "7.6", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-7.6-milestone-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-7.6-milestone-1-bin.zip.sha256", + "checksum" : "9ca7bc6d09c52b365cc61f4ef9e0410f79f6122bc126786c76847b987a4b7cbe", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-7.6-milestone-1-wrapper.jar.sha256", + "wrapperChecksum" : "c5a643cf80162e665cc228f7b16f343fef868e47d3a4836f62e18b7e17ac018a" +}, { + "version" : "7.5.1", + "buildTime" : "20220805211756+0000", + "commitId" : "d1daa0cbf1a0103000b71484e1dbfe096e095918", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-7.5.1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-7.5.1-bin.zip.sha256", + "checksum" : "f6b8596b10cce501591e92f229816aa4046424f3b24d771751b06779d58c8ec4", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-7.5.1-wrapper.jar.sha256", + "wrapperChecksum" : "91a239400bb638f36a1795d8fdf7939d532cdc7d794d1119b7261aac158b1e60" +}, { + "version" : "7.5", + "buildTime" : "20220714124815+0000", + "commitId" : "c7db7b958189ad2b0c1472b6fe663e6d654a5103", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-7.5-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-7.5-bin.zip.sha256", + "checksum" : "cb87f222c5585bd46838ad4db78463a5c5f3d336e5e2b98dc7c0c586527351c2", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-7.5-wrapper.jar.sha256", + "wrapperChecksum" : "91a239400bb638f36a1795d8fdf7939d532cdc7d794d1119b7261aac158b1e60" +}, { + "version" : "7.5-rc-5", + "buildTime" : "20220712114039+0000", + "commitId" : "0da5e9cce20a3cb79ede91fbc52d3efec9e309a9", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "7.5", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-7.5-rc-5-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-7.5-rc-5-bin.zip.sha256", + "checksum" : "c0bbfe570634634271f472aa30ec8d059a2e97b920be687d4c6446efbad9cc58", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-7.5-rc-5-wrapper.jar.sha256", + "wrapperChecksum" : "91a239400bb638f36a1795d8fdf7939d532cdc7d794d1119b7261aac158b1e60" +}, { + "version" : "7.5-rc-4", + "buildTime" : "20220706171202+0000", + "commitId" : "a641d1caebe02ea109a69ca5fc0f59c20bceb9de", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "7.5", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-7.5-rc-4-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-7.5-rc-4-bin.zip.sha256", + "checksum" : "d98c4322d882e7b115fbf2a33ccd3e03677653b88c4f245e33cbea28b531a173", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-7.5-rc-4-wrapper.jar.sha256", + "wrapperChecksum" : "91a239400bb638f36a1795d8fdf7939d532cdc7d794d1119b7261aac158b1e60" +}, { + "version" : "7.5-rc-3", + "buildTime" : "20220629120328+0000", + "commitId" : "db02cfd2c0a9d1503dec236222fcc5b545413102", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "7.5", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-7.5-rc-3-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-7.5-rc-3-bin.zip.sha256", + "checksum" : "d10d8e6206d613313379834f3ed94ec7b781790f22edd44b0f2afa76708e2050", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-7.5-rc-3-wrapper.jar.sha256", + "wrapperChecksum" : "91a239400bb638f36a1795d8fdf7939d532cdc7d794d1119b7261aac158b1e60" +}, { + "version" : "7.5-rc-2", + "buildTime" : "20220610165005+0000", + "commitId" : "e97f154bbdce2d3da1d46161417f7a7eaa9e00f2", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "7.5", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-7.5-rc-2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-7.5-rc-2-bin.zip.sha256", + "checksum" : "ba761aa1563f5d893d1a6e7ddca48bbdc4385fdd527974e6472b873b7eae9a32", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-7.5-rc-2-wrapper.jar.sha256", + "wrapperChecksum" : "91a239400bb638f36a1795d8fdf7939d532cdc7d794d1119b7261aac158b1e60" +}, { + "version" : "7.5-rc-1", + "buildTime" : "20220512190923+0000", + "commitId" : "8d531f6b22fb3a97fb623f949c5e7bae8a2e1fe2", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "7.5", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-7.5-rc-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-7.5-rc-1-bin.zip.sha256", + "checksum" : "8ba57a37e1e0b8c415e4d91718d51035223aa73131cf719a50c95a2a88269eb2", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-7.5-rc-1-wrapper.jar.sha256", + "wrapperChecksum" : "91a239400bb638f36a1795d8fdf7939d532cdc7d794d1119b7261aac158b1e60" +}, { + "version" : "7.4.2", + "buildTime" : "20220331152529+0000", + "commitId" : "540473b8118064efcc264694cbcaa4b677f61041", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-7.4.2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-7.4.2-bin.zip.sha256", + "checksum" : "29e49b10984e585d8118b7d0bc452f944e386458df27371b49b4ac1dec4b7fda", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-7.4.2-wrapper.jar.sha256", + "wrapperChecksum" : "575098db54a998ff1c6770b352c3b16766c09848bee7555dab09afc34e8cf590" +}, { + "version" : "7.4.1", + "buildTime" : "20220309150447+0000", + "commitId" : "36dc52588e09b4b72f2010bc07599e0ee0434e2e", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-7.4.1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-7.4.1-bin.zip.sha256", + "checksum" : "e5444a57cda4a95f90b0c9446a9e1b47d3d7f69057765bfb54bd4f482542d548", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-7.4.1-wrapper.jar.sha256", + "wrapperChecksum" : "575098db54a998ff1c6770b352c3b16766c09848bee7555dab09afc34e8cf590" +}, { + "version" : "7.4", + "buildTime" : "20220208095838+0000", + "commitId" : "f0d9291c04b90b59445041eaa75b2ee744162586", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-7.4-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-7.4-bin.zip.sha256", + "checksum" : "8cc27038d5dbd815759851ba53e70cf62e481b87494cc97cfd97982ada5ba634", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-7.4-wrapper.jar.sha256", + "wrapperChecksum" : "575098db54a998ff1c6770b352c3b16766c09848bee7555dab09afc34e8cf590" +}, { + "version" : "7.4-rc-2", + "buildTime" : "20220202150044+0000", + "commitId" : "88ab9b652933bc3b2e3161b31ad8b8f4f0516351", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "7.4", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-7.4-rc-2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-7.4-rc-2-bin.zip.sha256", + "checksum" : "21491c9f0656e1529ccb39cbd587d01c33ba00d25f994b10240748ed0d45894a", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-7.4-rc-2-wrapper.jar.sha256", + "wrapperChecksum" : "575098db54a998ff1c6770b352c3b16766c09848bee7555dab09afc34e8cf590" +}, { + "version" : "7.4-rc-1", + "buildTime" : "20220117201507+0000", + "commitId" : "693625f25f2210d1a3ca866897d69ac221de6811", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "7.4", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-7.4-rc-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-7.4-rc-1-bin.zip.sha256", + "checksum" : "b2a452bc37637aa453f0f3fb526240caed02878c47a9736f3059590605893bdb", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-7.4-rc-1-wrapper.jar.sha256", + "wrapperChecksum" : "575098db54a998ff1c6770b352c3b16766c09848bee7555dab09afc34e8cf590" +}, { + "version" : "7.3.3", + "buildTime" : "20211222123754+0000", + "commitId" : "6f556c80f945dc54b50e0be633da6c62dbe8dc71", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-7.3.3-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-7.3.3-bin.zip.sha256", + "checksum" : "b586e04868a22fd817c8971330fec37e298f3242eb85c374181b12d637f80302", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-7.3.3-wrapper.jar.sha256", + "wrapperChecksum" : "33ad4583fd7ee156f533778736fa1b4940bd83b433934d1cc4e9f608e99a6a89" +}, { + "version" : "7.3.3-rc-1", + "buildTime" : "20211222090657+0000", + "commitId" : "6f556c80f945dc54b50e0be633da6c62dbe8dc71", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "7.3.3", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-7.3.3-rc-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-7.3.3-rc-1-bin.zip.sha256", + "checksum" : "07a1cd283d6cfe437eb08fe08936dc1af5f12946e67dc9f5e0a9f4b948ebfd3a", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-7.3.3-rc-1-wrapper.jar.sha256", + "wrapperChecksum" : "33ad4583fd7ee156f533778736fa1b4940bd83b433934d1cc4e9f608e99a6a89" +}, { + "version" : "6.9.2", + "buildTime" : "20211221172537+0000", + "commitId" : "5d94aa68c0fdbe443838bb977080e3b9f273e889", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-6.9.2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-6.9.2-bin.zip.sha256", + "checksum" : "8b356fd8702d5ffa2e066ed0be45a023a779bba4dd1a68fd11bc2a6bdc981e8f", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-6.9.2-wrapper.jar.sha256", + "wrapperChecksum" : "e996d452d2645e70c01c11143ca2d3742734a28da2bf61f25c82bdc288c9e637" +}, { + "version" : "7.3.2", + "buildTime" : "20211215112231+0000", + "commitId" : "26c186eb63b2b02e68d83b0dbc6ec69ab118653a", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-7.3.2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-7.3.2-bin.zip.sha256", + "checksum" : "23b89f8eac363f5f4b8336e0530c7295c55b728a9caa5268fdd4a532610d5392", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-7.3.2-wrapper.jar.sha256", + "wrapperChecksum" : "33ad4583fd7ee156f533778736fa1b4940bd83b433934d1cc4e9f608e99a6a89" +}, { + "version" : "7.3.1", + "buildTime" : "20211201154220+0000", + "commitId" : "2c62cec93e0b15a7d2cd68746f3348796d6d42bd", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-7.3.1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-7.3.1-bin.zip.sha256", + "checksum" : "9afb3ca688fc12c761a0e9e4321e4d24e977a4a8916c8a768b1fe05ddb4d6b66", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-7.3.1-wrapper.jar.sha256", + "wrapperChecksum" : "33ad4583fd7ee156f533778736fa1b4940bd83b433934d1cc4e9f608e99a6a89" +}, { + "version" : "7.3", + "buildTime" : "20211109204036+0000", + "commitId" : "96754b8c44399658178a768ac764d727c2addb37", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-7.3-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-7.3-bin.zip.sha256", + "checksum" : "de8f52ad49bdc759164f72439a3bf56ddb1589c4cde802d3cec7d6ad0e0ee410", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-7.3-wrapper.jar.sha256", + "wrapperChecksum" : "33ad4583fd7ee156f533778736fa1b4940bd83b433934d1cc4e9f608e99a6a89" +}, { + "version" : "7.3-rc-5", + "buildTime" : "20211105184337+0000", + "commitId" : "426f267f7b768154fd63b27e055ba56b357e6e4e", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "7.3", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-7.3-rc-5-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-7.3-rc-5-bin.zip.sha256", + "checksum" : "dca199cee2553ec2497e840bf17969e56d4f99df661a693740b90de7ed0efbeb", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-7.3-rc-5-wrapper.jar.sha256", + "wrapperChecksum" : "33ad4583fd7ee156f533778736fa1b4940bd83b433934d1cc4e9f608e99a6a89" +}, { + "version" : "7.3-rc-4", + "buildTime" : "20211105160540+0000", + "commitId" : "426f267f7b768154fd63b27e055ba56b357e6e4e", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "7.3", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-7.3-rc-4-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-7.3-rc-4-bin.zip.sha256", + "checksum" : "488d250f4a1ae7744dcdf53fef0708f4a3e373023b8c134eda1be98aba4ed260", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-7.3-rc-4-wrapper.jar.sha256", + "wrapperChecksum" : "33ad4583fd7ee156f533778736fa1b4940bd83b433934d1cc4e9f608e99a6a89" +}, { + "version" : "7.3-rc-3", + "buildTime" : "20211026162420+0000", + "commitId" : "c49d04ba7bd0708b11bf2ecf2e2d0bbd12a5123a", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "7.3", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-7.3-rc-3-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-7.3-rc-3-bin.zip.sha256", + "checksum" : "d57eb720003db00f85915c48ff4a5ac3c7e8a8a34bd34ced16ca0c7a31c10110", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-7.3-rc-3-wrapper.jar.sha256", + "wrapperChecksum" : "33ad4583fd7ee156f533778736fa1b4940bd83b433934d1cc4e9f608e99a6a89" +}, { + "version" : "7.3-rc-2", + "buildTime" : "20211020220023+0000", + "commitId" : "93609146327efb378cbea19477ed638d03be1e57", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "7.3", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-7.3-rc-2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-7.3-rc-2-bin.zip.sha256", + "checksum" : "e6a7b81aa2fd2fa05efba3cf7d0c79d629b4d3b189aa4d4b57729933a211af79", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-7.3-rc-2-wrapper.jar.sha256", + "wrapperChecksum" : "33ad4583fd7ee156f533778736fa1b4940bd83b433934d1cc4e9f608e99a6a89" +}, { + "version" : "7.3-rc-1", + "buildTime" : "20211012072418+0000", + "commitId" : "d71b6cdb688f94d57ff4c27c7b185afbcb338a5f", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "7.3", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-7.3-rc-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-7.3-rc-1-bin.zip.sha256", + "checksum" : "d23a3a902b3c4a8cc6952ff236fb83279a266aec1854b01286ed04788a5d3d9a", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-7.3-rc-1-wrapper.jar.sha256", + "wrapperChecksum" : "33ad4583fd7ee156f533778736fa1b4940bd83b433934d1cc4e9f608e99a6a89" +}, { + "version" : "6.9.1", + "buildTime" : "20210820111518+0000", + "commitId" : "f0ddb54aaae0e44f0a7209c3c0274d506ea742a0", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-6.9.1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-6.9.1-bin.zip.sha256", + "checksum" : "8c12154228a502b784f451179846e518733cf856efc7d45b2e6691012977b2fe", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-6.9.1-wrapper.jar.sha256", + "wrapperChecksum" : "e996d452d2645e70c01c11143ca2d3742734a28da2bf61f25c82bdc288c9e637" +}, { + "version" : "7.2", + "buildTime" : "20210817095903+0000", + "commitId" : "a773786b58bb28710e3dc96c4d1a7063628952ad", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-7.2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-7.2-bin.zip.sha256", + "checksum" : "f581709a9c35e9cb92e16f585d2c4bc99b2b1a5f85d2badbd3dc6bff59e1e6dd", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-7.2-wrapper.jar.sha256", + "wrapperChecksum" : "33ad4583fd7ee156f533778736fa1b4940bd83b433934d1cc4e9f608e99a6a89" +}, { + "version" : "7.2-rc-3", + "buildTime" : "20210812075909+0000", + "commitId" : "c85cebe8534173e68d3c36cbf78ee1eaaa408301", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "7.2", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-7.2-rc-3-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-7.2-rc-3-bin.zip.sha256", + "checksum" : "12215a4146ab05309893c24fb7d0c32366ab6b548e2de84185d781ec639a6283", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-7.2-rc-3-wrapper.jar.sha256", + "wrapperChecksum" : "33ad4583fd7ee156f533778736fa1b4940bd83b433934d1cc4e9f608e99a6a89" +}, { + "version" : "7.2-rc-2", + "buildTime" : "20210805122137+0000", + "commitId" : "9a8406d602d05d95ddea924dd2443954f9b9e0c8", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "7.2", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-7.2-rc-2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-7.2-rc-2-bin.zip.sha256", + "checksum" : "e7ed72455ea34234ffb244621d384c94e86c4adfcb0bc9e7c60ff4849ee69a77", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-7.2-rc-2-wrapper.jar.sha256", + "wrapperChecksum" : "33ad4583fd7ee156f533778736fa1b4940bd83b433934d1cc4e9f608e99a6a89" +}, { + "version" : "7.2-rc-1", + "buildTime" : "20210729075128+0000", + "commitId" : "d25e5bd8039ad18a2d63706b5a97cdc12e906ac3", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "7.2", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-7.2-rc-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-7.2-rc-1-bin.zip.sha256", + "checksum" : "fb0e3b9890cbe993819154d099b9cbcfdfccb4a6bf78f9b6189871e36663ce44", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-7.2-rc-1-wrapper.jar.sha256", + "wrapperChecksum" : "33ad4583fd7ee156f533778736fa1b4940bd83b433934d1cc4e9f608e99a6a89" +}, { + "version" : "7.1.1", + "buildTime" : "20210702121643+0000", + "commitId" : "774525a055494e0ece39f522ac7ad17498ce032c", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-7.1.1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-7.1.1-bin.zip.sha256", + "checksum" : "bf8b869948901d422e9bb7d1fa61da6a6e19411baa7ad6ee929073df85d6365d", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-7.1.1-wrapper.jar.sha256", + "wrapperChecksum" : "33ad4583fd7ee156f533778736fa1b4940bd83b433934d1cc4e9f608e99a6a89" +}, { + "version" : "7.1", + "buildTime" : "20210614144726+0000", + "commitId" : "989ccc9952b140ee6ab88870e8a12f1b2998369e", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-7.1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-7.1-bin.zip.sha256", + "checksum" : "2debee19271e1b82c6e41137d78e44e6e841035230a1a169ca47fd3fb09ed87b", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-7.1-wrapper.jar.sha256", + "wrapperChecksum" : "33ad4583fd7ee156f533778736fa1b4940bd83b433934d1cc4e9f608e99a6a89" +}, { + "version" : "7.1-rc-2", + "buildTime" : "20210608153520+0000", + "commitId" : "79bbe8b8ea2f705f4af44f8e88af0d67fee6a898", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "7.1", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-7.1-rc-2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-7.1-rc-2-bin.zip.sha256", + "checksum" : "caa8e323577de2fa421b47dded5278e7376c2bb6420221fbaf7908dfa9be8657", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-7.1-rc-2-wrapper.jar.sha256", + "wrapperChecksum" : "33ad4583fd7ee156f533778736fa1b4940bd83b433934d1cc4e9f608e99a6a89" +}, { + "version" : "7.1-rc-1", + "buildTime" : "20210531095845+0000", + "commitId" : "c2d15c6444215f4b5a788a110922e3ee48a14f08", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "7.1", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-7.1-rc-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-7.1-rc-1-bin.zip.sha256", + "checksum" : "bac27c9878c4aa5b4b35f92105ca71de2ad39c323bc81117e611c65f2dffd941", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-7.1-rc-1-wrapper.jar.sha256", + "wrapperChecksum" : "33ad4583fd7ee156f533778736fa1b4940bd83b433934d1cc4e9f608e99a6a89" +}, { + "version" : "7.0.2", + "buildTime" : "20210514120231+0000", + "commitId" : "1ef1b260d39daacbf9357f9d8594a8a743e2152e", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-7.0.2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-7.0.2-bin.zip.sha256", + "checksum" : "0e46229820205440b48a5501122002842b82886e76af35f0f3a069243dca4b3c", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-7.0.2-wrapper.jar.sha256", + "wrapperChecksum" : "e996d452d2645e70c01c11143ca2d3742734a28da2bf61f25c82bdc288c9e637" +}, { + "version" : "7.0.1", + "buildTime" : "20210510160858+0000", + "commitId" : "67e618faef187783dadd03a34fdab9dc71b85b19", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-7.0.1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-7.0.1-bin.zip.sha256", + "checksum" : "dccda8aa069563c8ba2f6cdfd0777df0e34a5b4d15138ca8b9757e94f4e8a8cb", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-7.0.1-wrapper.jar.sha256", + "wrapperChecksum" : "e996d452d2645e70c01c11143ca2d3742734a28da2bf61f25c82bdc288c9e637" +}, { + "version" : "6.9", + "buildTime" : "20210507072853+0000", + "commitId" : "afe2e24ababc7b0213ccffff44970aa18035fc0e", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-6.9-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-6.9-bin.zip.sha256", + "checksum" : "765442b8069c6bee2ea70713861c027587591c6b1df2c857a23361512560894e", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-6.9-wrapper.jar.sha256", + "wrapperChecksum" : "e996d452d2645e70c01c11143ca2d3742734a28da2bf61f25c82bdc288c9e637" +}, { + "version" : "6.9-rc-2", + "buildTime" : "20210505141217+0000", + "commitId" : "56bca94e761b37ff00dfa1afdeda4bed4f15ae45", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "6.9", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-6.9-rc-2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-6.9-rc-2-bin.zip.sha256", + "checksum" : "ce62238c6f84286a524590cb60706b7e6ecf00c3be5bddfa0c78345b94d0d127", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-6.9-rc-2-wrapper.jar.sha256", + "wrapperChecksum" : "e996d452d2645e70c01c11143ca2d3742734a28da2bf61f25c82bdc288c9e637" +}, { + "version" : "6.9-rc-1", + "buildTime" : "20210427125445+0000", + "commitId" : "b110653415a762d00576628358f6bf6b9edeff25", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "6.9", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-6.9-rc-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-6.9-rc-1-bin.zip.sha256", + "checksum" : "0edea03c77d94adbbb02c77a8f20c73afb8caf206f364727be0517136f6fb347", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-6.9-rc-1-wrapper.jar.sha256", + "wrapperChecksum" : "e996d452d2645e70c01c11143ca2d3742734a28da2bf61f25c82bdc288c9e637" +}, { + "version" : "7.0", + "buildTime" : "20210409222731+0000", + "commitId" : "d5661e3f0e07a8caff705f1badf79fb5df8022c4", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-7.0-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-7.0-bin.zip.sha256", + "checksum" : "eb8b89184261025b0430f5b2233701ff1377f96da1ef5e278af6ae8bac5cc305", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-7.0-wrapper.jar.sha256", + "wrapperChecksum" : "e996d452d2645e70c01c11143ca2d3742734a28da2bf61f25c82bdc288c9e637" +}, { + "version" : "7.0-rc-2", + "buildTime" : "20210401212639+0000", + "commitId" : "912a3368b654b71250dfc92234da35a20d620393", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "7.0", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-7.0-rc-2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-7.0-rc-2-bin.zip.sha256", + "checksum" : "a5db0c919dfd184f7408ca761b438853b55ceab20d7ebb41ea3f72befd8bfb3f", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-7.0-rc-2-wrapper.jar.sha256", + "wrapperChecksum" : "e996d452d2645e70c01c11143ca2d3742734a28da2bf61f25c82bdc288c9e637" +}, { + "version" : "7.0-rc-1", + "buildTime" : "20210323010230+0000", + "commitId" : "f5bf7ade373b74058e49f07749083b4c3075549a", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "7.0", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-7.0-rc-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-7.0-rc-1-bin.zip.sha256", + "checksum" : "12b807b5d6b065f05e0e47d8d00e9d55fe26d3cfc6cdb22d6825a93940edec90", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-7.0-rc-1-wrapper.jar.sha256", + "wrapperChecksum" : "e996d452d2645e70c01c11143ca2d3742734a28da2bf61f25c82bdc288c9e637" +}, { + "version" : "7.0-milestone-3", + "buildTime" : "20210313010321+0000", + "commitId" : "2c491436533ea8ed227f70e9246801d92848ba4a", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "7.0", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-7.0-milestone-3-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-7.0-milestone-3-bin.zip.sha256", + "checksum" : "2e6b95b41001bd9f099b17a772c3308fe59356f8b7f995ffd7bf74400db0f13c", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-7.0-milestone-3-wrapper.jar.sha256", + "wrapperChecksum" : "e996d452d2645e70c01c11143ca2d3742734a28da2bf61f25c82bdc288c9e637" +}, { + "version" : "7.0-milestone-2", + "buildTime" : "20210223230254+0000", + "commitId" : "b3ebdd96f5efa645c12a2b0af93025a715197e86", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "7.0", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-7.0-milestone-2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-7.0-milestone-2-bin.zip.sha256", + "checksum" : "a971b1cd25348e0dbeb56e4b7a7bb7dd06d7b092c166116f5247427f32fc4281", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-7.0-milestone-2-wrapper.jar.sha256", + "wrapperChecksum" : "e996d452d2645e70c01c11143ca2d3742734a28da2bf61f25c82bdc288c9e637" +}, { + "version" : "6.8.3", + "buildTime" : "20210222161328+0000", + "commitId" : "9e26b4a9ebb910eaa1b8da8ff8575e514bc61c78", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-6.8.3-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-6.8.3-bin.zip.sha256", + "checksum" : "7faa7198769f872826c8ef4f1450f839ec27f0b4d5d1e51bade63667cbccd205", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-6.8.3-wrapper.jar.sha256", + "wrapperChecksum" : "e996d452d2645e70c01c11143ca2d3742734a28da2bf61f25c82bdc288c9e637" +}, { + "version" : "6.8.2", + "buildTime" : "20210205125300+0000", + "commitId" : "b9bd4a5c6026ac52f690eaf2829ee26563cad426", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-6.8.2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-6.8.2-bin.zip.sha256", + "checksum" : "8de6efc274ab52332a9c820366dd5cf5fc9d35ec7078fd70c8ec6913431ee610", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-6.8.2-wrapper.jar.sha256", + "wrapperChecksum" : "e996d452d2645e70c01c11143ca2d3742734a28da2bf61f25c82bdc288c9e637" +}, { + "version" : "7.0-milestone-1", + "buildTime" : "20210203220023+0000", + "commitId" : "d86fce68d4c6d73845da89f55390a3ef594d1767", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "7.0", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-7.0-milestone-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-7.0-milestone-1-bin.zip.sha256", + "checksum" : "627fc72166c8a6ae9bf3e6d9b59c0a8cc4efe5cd5417a2fc525b5c7d05409aa5", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-7.0-milestone-1-wrapper.jar.sha256", + "wrapperChecksum" : "e996d452d2645e70c01c11143ca2d3742734a28da2bf61f25c82bdc288c9e637" +}, { + "version" : "6.8.1", + "buildTime" : "20210122132008+0000", + "commitId" : "31f14a87d93945024ab7a78de84102a3400fa5b2", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-6.8.1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-6.8.1-bin.zip.sha256", + "checksum" : "fd591a34af7385730970399f473afabdb8b28d57fd97d6625c388d090039d6fd", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-6.8.1-wrapper.jar.sha256", + "wrapperChecksum" : "e996d452d2645e70c01c11143ca2d3742734a28da2bf61f25c82bdc288c9e637" +}, { + "version" : "6.8", + "buildTime" : "20210108163846+0000", + "commitId" : "b7e82460c5373e194fb478a998c4fcfe7da53a7e", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-6.8-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-6.8-bin.zip.sha256", + "checksum" : "e2774e6fb77c43657decde25542dea710aafd78c4022d19b196e7e78d79d8c6c", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-6.8-wrapper.jar.sha256", + "wrapperChecksum" : "e996d452d2645e70c01c11143ca2d3742734a28da2bf61f25c82bdc288c9e637" +}, { + "version" : "6.8-rc-5", + "buildTime" : "20210104202203+0000", + "commitId" : "d668fa996848d20ec622982d226fe84a6a538dcf", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "6.8", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-6.8-rc-5-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-6.8-rc-5-bin.zip.sha256", + "checksum" : "569bebddc0c174475cc25d708e54af793f25fd37e5a72e53674f8ef628b6ddfd", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-6.8-rc-5-wrapper.jar.sha256", + "wrapperChecksum" : "e996d452d2645e70c01c11143ca2d3742734a28da2bf61f25c82bdc288c9e637" +}, { + "version" : "6.8-rc-4", + "buildTime" : "20201222084410+0000", + "commitId" : "b8b010210c7645fd62d2d73ac876445f2c2b94ae", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "6.8", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-6.8-rc-4-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-6.8-rc-4-bin.zip.sha256", + "checksum" : "6cb03b71767b169eda987338091172cbc84eb0cd53a93c17e6661688411e267e", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-6.8-rc-4-wrapper.jar.sha256", + "wrapperChecksum" : "e996d452d2645e70c01c11143ca2d3742734a28da2bf61f25c82bdc288c9e637" +}, { + "version" : "6.8-rc-3", + "buildTime" : "20201217142452+0000", + "commitId" : "183b081d53044028848dab1b00a05506c564dab2", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "6.8", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-6.8-rc-3-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-6.8-rc-3-bin.zip.sha256", + "checksum" : "6c929633a439d248413d3d1bff477195ee662ccadc6fdc31f6f50f8059a2be36", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-6.8-rc-3-wrapper.jar.sha256", + "wrapperChecksum" : "e996d452d2645e70c01c11143ca2d3742734a28da2bf61f25c82bdc288c9e637" +}, { + "version" : "6.8-rc-1", + "buildTime" : "20201126092543+0000", + "commitId" : "6817ac1108f950a6ebd6ed3f74e4e86efef9246a", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "6.8", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-6.8-rc-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-6.8-rc-1-bin.zip.sha256", + "checksum" : "155bafc3a46f81b7af481ad7dba391a3b9c12818f27da8684178ffeaa40e6d7e", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-6.8-rc-1-wrapper.jar.sha256", + "wrapperChecksum" : "e996d452d2645e70c01c11143ca2d3742734a28da2bf61f25c82bdc288c9e637" +}, { + "version" : "6.7.1", + "buildTime" : "20201116170924+0000", + "commitId" : "2972ff02f3210d2ceed2f1ea880f026acfbab5c0", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-6.7.1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-6.7.1-bin.zip.sha256", + "checksum" : "3239b5ed86c3838a37d983ac100573f64c1f3fd8e1eb6c89fa5f9529b5ec091d", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-6.7.1-wrapper.jar.sha256", + "wrapperChecksum" : "e996d452d2645e70c01c11143ca2d3742734a28da2bf61f25c82bdc288c9e637" +}, { + "version" : "6.8-milestone-3", + "buildTime" : "20201115200053+0000", + "commitId" : "31e2ecb5fb775e8ec16cbd3fafe61cc29a27fb9d", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "6.8", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-6.8-milestone-3-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-6.8-milestone-3-bin.zip.sha256", + "checksum" : "47fa64cc30ab93a78901bdae68f33410da070c46f750f7e7978a6fb2a7b7ab50", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-6.8-milestone-3-wrapper.jar.sha256", + "wrapperChecksum" : "e996d452d2645e70c01c11143ca2d3742734a28da2bf61f25c82bdc288c9e637" +}, { + "version" : "6.8-milestone-2", + "buildTime" : "20201028055518+0000", + "commitId" : "d75d27c882fd80a18d853e0eb8aa0a41f9fdf6b0", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "6.8", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-6.8-milestone-2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-6.8-milestone-2-bin.zip.sha256", + "checksum" : "0e15751be3270c3cbff10742cc259cbd3b92f379204d645397541f676b0667f6", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-6.8-milestone-2-wrapper.jar.sha256", + "wrapperChecksum" : "e996d452d2645e70c01c11143ca2d3742734a28da2bf61f25c82bdc288c9e637" +}, { + "version" : "6.7", + "buildTime" : "20201014161312+0000", + "commitId" : "312ba9e0f4f8a02d01854d1ed743b79ed996dfd3", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-6.7-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-6.7-bin.zip.sha256", + "checksum" : "8ad57759019a9233dc7dc4d1a530cefe109dc122000d57f7e623f8cf4ba9dfc4", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-6.7-wrapper.jar.sha256", + "wrapperChecksum" : "e996d452d2645e70c01c11143ca2d3742734a28da2bf61f25c82bdc288c9e637" +}, { + "version" : "6.8-milestone-1", + "buildTime" : "20201013065906+0000", + "commitId" : "cffde3dcc3794fbe1f08373bf38df91b8a5abbc8", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "6.8", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-6.8-milestone-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-6.8-milestone-1-bin.zip.sha256", + "checksum" : "cddca6851af8503eb7c8bf5ba778c4c9e878a7b6cf74708fda09cae1952656fc", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-6.8-milestone-1-wrapper.jar.sha256", + "wrapperChecksum" : "e996d452d2645e70c01c11143ca2d3742734a28da2bf61f25c82bdc288c9e637" +}, { + "version" : "6.7-rc-5", + "buildTime" : "20201012190940+0000", + "commitId" : "e019f250eece15efaddc7c812d56b34583950a40", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "6.7", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-6.7-rc-5-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-6.7-rc-5-bin.zip.sha256", + "checksum" : "c7c33aa33d32e4bd68df71deb5c6d00f2c4675d88b8a14748661196a717dfe2c", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-6.7-rc-5-wrapper.jar.sha256", + "wrapperChecksum" : "e996d452d2645e70c01c11143ca2d3742734a28da2bf61f25c82bdc288c9e637" +}, { + "version" : "6.7-rc-4", + "buildTime" : "20201008165738+0000", + "commitId" : "40a302302ce9adfc1dc21dbc4cecae16dd980e5d", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "6.7", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-6.7-rc-4-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-6.7-rc-4-bin.zip.sha256", + "checksum" : "01b4f3804b6c3f15ff3eb39e56efae55e265b6007c9fa3bd58b83b2dc4697dc4", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-6.7-rc-4-wrapper.jar.sha256", + "wrapperChecksum" : "e996d452d2645e70c01c11143ca2d3742734a28da2bf61f25c82bdc288c9e637" +}, { + "version" : "6.7-rc-3", + "buildTime" : "20200930191651+0000", + "commitId" : "836e96a80625c9c48b612e662e3b13bd2e2f4c3b", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "6.7", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-6.7-rc-3-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-6.7-rc-3-bin.zip.sha256", + "checksum" : "f4a236ffc777d6a4c25cdf7b1c45fe7024910afc65c88a9c9027aab9a765d295", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-6.7-rc-3-wrapper.jar.sha256", + "wrapperChecksum" : "e996d452d2645e70c01c11143ca2d3742734a28da2bf61f25c82bdc288c9e637" +}, { + "version" : "6.7-rc-2", + "buildTime" : "20200925201444+0000", + "commitId" : "a57db4f9f8ee3f033fd1137d97d351d6b9c637fd", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "6.7", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-6.7-rc-2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-6.7-rc-2-bin.zip.sha256", + "checksum" : "34d87e1fe52cb50b9670cd7c817843273d40afa572a2d4f1b6f866daedfee8af", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-6.7-rc-2-wrapper.jar.sha256", + "wrapperChecksum" : "e996d452d2645e70c01c11143ca2d3742734a28da2bf61f25c82bdc288c9e637" +}, { + "version" : "6.7-rc-1", + "buildTime" : "20200911161705+0000", + "commitId" : "fe783600075485236c778e073cad5640729cf8f5", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "6.7", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-6.7-rc-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-6.7-rc-1-bin.zip.sha256", + "checksum" : "77822eaca04dd0e1c59065877ab22b96f0b0c5d5a65df8f63a58ae31f8938c8a", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-6.7-rc-1-wrapper.jar.sha256", + "wrapperChecksum" : "e996d452d2645e70c01c11143ca2d3742734a28da2bf61f25c82bdc288c9e637" +}, { + "version" : "6.6.1", + "buildTime" : "20200825162912+0000", + "commitId" : "f2d1fb54a951d8b11d25748e4711bec8d128d7e3", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-6.6.1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-6.6.1-bin.zip.sha256", + "checksum" : "7873ed5287f47ca03549ab8dcb6dc877ac7f0e3d7b1eb12685161d10080910ac", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-6.6.1-wrapper.jar.sha256", + "wrapperChecksum" : "e996d452d2645e70c01c11143ca2d3742734a28da2bf61f25c82bdc288c9e637" +}, { + "version" : "6.6", + "buildTime" : "20200810220619+0000", + "commitId" : "d119144684a0c301aea027b79857815659e431b9", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-6.6-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-6.6-bin.zip.sha256", + "checksum" : "e6f83508f0970452f56197f610d13c5f593baaf43c0e3c6a571e5967be754025", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-6.6-wrapper.jar.sha256", + "wrapperChecksum" : "e996d452d2645e70c01c11143ca2d3742734a28da2bf61f25c82bdc288c9e637" +}, { + "version" : "6.6-rc-6", + "buildTime" : "20200805195744+0000", + "commitId" : "d4d3dd932ea87b4f1c470c93df56dfe00862d710", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "6.6", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-6.6-rc-6-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-6.6-rc-6-bin.zip.sha256", + "checksum" : "5d24a11971f2324bf55899e9c5cd84e85fe94c63ff0456b10a53f93f7a14d288", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-6.6-rc-6-wrapper.jar.sha256", + "wrapperChecksum" : "e996d452d2645e70c01c11143ca2d3742734a28da2bf61f25c82bdc288c9e637" +}, { + "version" : "6.6-rc-5", + "buildTime" : "20200803185444+0000", + "commitId" : "899b462147bbdf177c655173433336ffe6a93de9", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "6.6", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-6.6-rc-5-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-6.6-rc-5-bin.zip.sha256", + "checksum" : "076f1c7d463cb8fa5fec51e1818e18fed9e6c5c6dc06ffa6325eef07a9746661", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-6.6-rc-5-wrapper.jar.sha256", + "wrapperChecksum" : "e996d452d2645e70c01c11143ca2d3742734a28da2bf61f25c82bdc288c9e637" +}, { + "version" : "6.6-rc-4", + "buildTime" : "20200730144824+0000", + "commitId" : "b573ec13e0627bf831dcaa0cfc67403c0a93fb33", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "6.6", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-6.6-rc-4-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-6.6-rc-4-bin.zip.sha256", + "checksum" : "f743d14deb36c6f1cfdf0480452e369d3098f63034c4e2c92fc1154740cb7bce", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-6.6-rc-4-wrapper.jar.sha256", + "wrapperChecksum" : "e996d452d2645e70c01c11143ca2d3742734a28da2bf61f25c82bdc288c9e637" +}, { + "version" : "6.6-rc-3", + "buildTime" : "20200724140409+0000", + "commitId" : "13b5dcc4f294b395e61d937a3601fd47be38e76e", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "6.6", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-6.6-rc-3-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-6.6-rc-3-bin.zip.sha256", + "checksum" : "030078a5900466f172f1e59e0f3351280328693929de08ab10747103fb6d9faf", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-6.6-rc-3-wrapper.jar.sha256", + "wrapperChecksum" : "e996d452d2645e70c01c11143ca2d3742734a28da2bf61f25c82bdc288c9e637" +}, { + "version" : "6.6-rc-2", + "buildTime" : "20200720214344+0000", + "commitId" : "ff063bb2d5573aeee22c08133a268c6545195153", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "6.6", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-6.6-rc-2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-6.6-rc-2-bin.zip.sha256", + "checksum" : "c981f305803093525a64aeee8adb356ef2b909b01b44f11a70c6ed6d6ea92fc5", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-6.6-rc-2-wrapper.jar.sha256", + "wrapperChecksum" : "e996d452d2645e70c01c11143ca2d3742734a28da2bf61f25c82bdc288c9e637" +}, { + "version" : "6.6-rc-1", + "buildTime" : "20200713135325+0000", + "commitId" : "1ed79f4fbe18d90df8cb759235804f95a99b30a2", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "6.6", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-6.6-rc-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-6.6-rc-1-bin.zip.sha256", + "checksum" : "2253ab246976353b225002ecba04859b5dbad0620f57052ef057fdcfcb888c5c", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-6.6-rc-1-wrapper.jar.sha256", + "wrapperChecksum" : "e996d452d2645e70c01c11143ca2d3742734a28da2bf61f25c82bdc288c9e637" +}, { + "version" : "6.6-milestone-3", + "buildTime" : "20200707160951+0000", + "commitId" : "e3fcd2f83cbe862e41a1c12df3213be5698041b5", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "6.6", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-6.6-milestone-3-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-6.6-milestone-3-bin.zip.sha256", + "checksum" : "c85644cecb8276ee7621ed7b7309897f5927b175a3e658b54d25889aaf7cfeb3", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-6.6-milestone-3-wrapper.jar.sha256", + "wrapperChecksum" : "e996d452d2645e70c01c11143ca2d3742734a28da2bf61f25c82bdc288c9e637" +}, { + "version" : "6.5.1", + "buildTime" : "20200630063247+0000", + "commitId" : "66bc713f7169626a7f0134bf452abde51550ea0a", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-6.5.1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-6.5.1-bin.zip.sha256", + "checksum" : "50a7d30529fa939721fe9268a0205142f3f2302bcac5fb45b27a3902e58db54a", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-6.5.1-wrapper.jar.sha256", + "wrapperChecksum" : "70239e6ca1f0d5e3b2808ef6d82390cf9ad58d3a3a0d271677a51d1b89475857" +}, { + "version" : "6.6-milestone-2", + "buildTime" : "20200623122834+0000", + "commitId" : "19fa87a998bd6ec4c21ba50dbf6fe9d12f374193", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "6.6", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-6.6-milestone-2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-6.6-milestone-2-bin.zip.sha256", + "checksum" : "c7a17a7816572ec0ec3632fcae4e2d877db03cb53b9127e9f5ab60529e1699e2", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-6.6-milestone-2-wrapper.jar.sha256", + "wrapperChecksum" : "e996d452d2645e70c01c11143ca2d3742734a28da2bf61f25c82bdc288c9e637" +}, { + "version" : "6.6-milestone-1", + "buildTime" : "20200611202418+0000", + "commitId" : "bc05809b2ebf24012a91dcb7f8a5cab83f94016a", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "6.6", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-6.6-milestone-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-6.6-milestone-1-bin.zip.sha256", + "checksum" : "287d42827c2da3a27c8826cb791af3788ac7ed3bceed415125512c4140706c14", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-6.6-milestone-1-wrapper.jar.sha256", + "wrapperChecksum" : "e996d452d2645e70c01c11143ca2d3742734a28da2bf61f25c82bdc288c9e637" +}, { + "version" : "6.5", + "buildTime" : "20200602204621+0000", + "commitId" : "a27f41e4ae5e8a41ab9b19f8dd6d86d7b384dad4", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-6.5-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-6.5-bin.zip.sha256", + "checksum" : "23e7d37e9bb4f8dabb8a3ea7fdee9dd0428b9b1a71d298aefd65b11dccea220f", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-6.5-wrapper.jar.sha256", + "wrapperChecksum" : "70239e6ca1f0d5e3b2808ef6d82390cf9ad58d3a3a0d271677a51d1b89475857" +}, { + "version" : "6.5-rc-1", + "buildTime" : "20200526200448+0000", + "commitId" : "2ce1bc8db4b993f0dd1d8834be5b53e43f657985", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "6.5", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-6.5-rc-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-6.5-rc-1-bin.zip.sha256", + "checksum" : "fd64fa437cb3dfb53a037fff72cbe24e1280bc83ceb3bd35b2f96637ab6efeff", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-6.5-rc-1-wrapper.jar.sha256", + "wrapperChecksum" : "70239e6ca1f0d5e3b2808ef6d82390cf9ad58d3a3a0d271677a51d1b89475857" +}, { + "version" : "6.4.1", + "buildTime" : "20200515194340+0000", + "commitId" : "1a04183c502614b5c80e33d603074e0b4a2777c5", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-6.4.1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-6.4.1-bin.zip.sha256", + "checksum" : "e58cdff0cee6d9b422dcd08ebeb3177bc44eaa09bd9a2e838ff74c408fe1cbcd", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-6.4.1-wrapper.jar.sha256", + "wrapperChecksum" : "70239e6ca1f0d5e3b2808ef6d82390cf9ad58d3a3a0d271677a51d1b89475857" +}, { + "version" : "6.5-milestone-2", + "buildTime" : "20200515094006+0000", + "commitId" : "a1fbc4cd16fd3f9c51345111a4bd8a03364e34cd", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "6.5", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-6.5-milestone-2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-6.5-milestone-2-bin.zip.sha256", + "checksum" : "3e269c619d1d19cbbcbd74165487a973d8ad307def9552883e601a93b60ced4b", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-6.5-milestone-2-wrapper.jar.sha256", + "wrapperChecksum" : "70239e6ca1f0d5e3b2808ef6d82390cf9ad58d3a3a0d271677a51d1b89475857" +}, { + "version" : "6.5-milestone-1", + "buildTime" : "20200507135506+0000", + "commitId" : "c123669c38bdc112ea577e999a0d6c1bd43af8a1", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "6.5", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-6.5-milestone-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-6.5-milestone-1-bin.zip.sha256", + "checksum" : "7e6ac72a36af92474ee8c4ddae73cbc3cc5e6be33fb088ff6668465b25addcd9", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-6.5-milestone-1-wrapper.jar.sha256", + "wrapperChecksum" : "70239e6ca1f0d5e3b2808ef6d82390cf9ad58d3a3a0d271677a51d1b89475857" +}, { + "version" : "6.4", + "buildTime" : "20200505191855+0000", + "commitId" : "42f7c3d0c3066b7b38bd0726760d4881e86fd19f", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-6.4-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-6.4-bin.zip.sha256", + "checksum" : "b888659f637887e759749f6226ddfcb1cb04f828c58c41279de73c463fdbacc9", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-6.4-wrapper.jar.sha256", + "wrapperChecksum" : "70239e6ca1f0d5e3b2808ef6d82390cf9ad58d3a3a0d271677a51d1b89475857" +}, { + "version" : "6.4-rc-4", + "buildTime" : "20200430212330+0000", + "commitId" : "9aca99e4db8808881606548487fa98e012fb39e1", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "6.4", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-6.4-rc-4-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-6.4-rc-4-bin.zip.sha256", + "checksum" : "7307d73b87b4e2416eeb6a376ac7f1bcce6c7cff8eb87e6dca2e130f0016858b", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-6.4-rc-4-wrapper.jar.sha256", + "wrapperChecksum" : "70239e6ca1f0d5e3b2808ef6d82390cf9ad58d3a3a0d271677a51d1b89475857" +}, { + "version" : "6.4-rc-3", + "buildTime" : "20200428190039+0000", + "commitId" : "87fd55432350f0e70a2498bf643a9be319d3bb4a", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "6.4", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-6.4-rc-3-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-6.4-rc-3-bin.zip.sha256", + "checksum" : "b80df15a8398f020e5689233d912704e42c9dc567cd32c539a3c59f8616e8954", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-6.4-rc-3-wrapper.jar.sha256", + "wrapperChecksum" : "70239e6ca1f0d5e3b2808ef6d82390cf9ad58d3a3a0d271677a51d1b89475857" +}, { + "version" : "6.4-rc-2", + "buildTime" : "20200422163205+0000", + "commitId" : "20a24c0cf0c107d7560b7656a96bd346bae4947b", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "6.4", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-6.4-rc-2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-6.4-rc-2-bin.zip.sha256", + "checksum" : "a74a1d4ff45e7b6f42c7384546bba2620e23a1172d4b3dcfc1418000ad5d793c", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-6.4-rc-2-wrapper.jar.sha256", + "wrapperChecksum" : "70239e6ca1f0d5e3b2808ef6d82390cf9ad58d3a3a0d271677a51d1b89475857" +}, { + "version" : "6.4-rc-1", + "buildTime" : "20200415202839+0000", + "commitId" : "4162fd0e34887a8c600495239d421cecaa5f17ff", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "6.4", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-6.4-rc-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-6.4-rc-1-bin.zip.sha256", + "checksum" : "f8e14fc40ebc468d578601cfeaef402844048ff8fc727d452e6b28922c53459c", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-6.4-rc-1-wrapper.jar.sha256", + "wrapperChecksum" : "70239e6ca1f0d5e3b2808ef6d82390cf9ad58d3a3a0d271677a51d1b89475857" +}, { + "version" : "6.3", + "buildTime" : "20200324195207+0000", + "commitId" : "bacd40b727b0130eeac8855ae3f9fd9a0b207c60", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-6.3-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-6.3-bin.zip.sha256", + "checksum" : "038794feef1f4745c6347107b6726279d1c824f3fc634b60f86ace1e9fbd1768", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-6.3-wrapper.jar.sha256", + "wrapperChecksum" : "1cef53de8dc192036e7b0cc47584449b0cf570a00d560bfaa6c9eabe06e1fc06" +}, { + "version" : "6.3-rc-4", + "buildTime" : "20200320053945+0000", + "commitId" : "507eaa2e999827ec256a700ffc413c5e92a9e69d", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "6.3", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-6.3-rc-4-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-6.3-rc-4-bin.zip.sha256", + "checksum" : "eb17f321c7892267869541962484de3c375b12dfe98dfe2a55139996d1e71aec", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-6.3-rc-4-wrapper.jar.sha256", + "wrapperChecksum" : "1cef53de8dc192036e7b0cc47584449b0cf570a00d560bfaa6c9eabe06e1fc06" +}, { + "version" : "6.3-rc-3", + "buildTime" : "20200318152649+0000", + "commitId" : "da54f723f8f1c5f94526bc72bf78f15b0f1409ec", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "6.3", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-6.3-rc-3-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-6.3-rc-3-bin.zip.sha256", + "checksum" : "492b013ee962016f83a49defd221bd1fdc80003a9d50a9ad3c5f869c8f48c864", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-6.3-rc-3-wrapper.jar.sha256", + "wrapperChecksum" : "1cef53de8dc192036e7b0cc47584449b0cf570a00d560bfaa6c9eabe06e1fc06" +}, { + "version" : "6.3-rc-2", + "buildTime" : "20200317124036+0000", + "commitId" : "2cc0a9fd7e59c7876fe2fac480124f07ea31be5b", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "6.3", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-6.3-rc-2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-6.3-rc-2-bin.zip.sha256", + "checksum" : "7431e8b723dbe8fea36b635ec578a676df5458a21faa7aaabc8279dc5f9c86dc", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-6.3-rc-2-wrapper.jar.sha256", + "wrapperChecksum" : "1cef53de8dc192036e7b0cc47584449b0cf570a00d560bfaa6c9eabe06e1fc06" +}, { + "version" : "6.3-rc-1", + "buildTime" : "20200311214114+0000", + "commitId" : "7bc8f57a5b03db954a651cf24b5247aa9629e72f", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "6.3", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-6.3-rc-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-6.3-rc-1-bin.zip.sha256", + "checksum" : "b72707eb36a9e6fffb8dbe1653c59d8cbd7e4b839f4ef6131c46629dd9fa5686", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-6.3-rc-1-wrapper.jar.sha256", + "wrapperChecksum" : "1cef53de8dc192036e7b0cc47584449b0cf570a00d560bfaa6c9eabe06e1fc06" +}, { + "version" : "6.2.2", + "buildTime" : "20200304084931+0000", + "commitId" : "7d0bf6dcb46c143bcc3b7a0fa40a8e5ca28e5856", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-6.2.2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-6.2.2-bin.zip.sha256", + "checksum" : "0f6ba231b986276d8221d7a870b4d98e0df76e6daf1f42e7c0baec5032fb7d17", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-6.2.2-wrapper.jar.sha256", + "wrapperChecksum" : "96f793a18e056c23ffeec67c1f3bb8eccff5a4a407fc9ceac183527e7eedf4b6" +}, { + "version" : "6.2.1", + "buildTime" : "20200224202410+0000", + "commitId" : "aacbcb7e587faa6a8e7851751a76183b6187b164", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-6.2.1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-6.2.1-bin.zip.sha256", + "checksum" : "a68ca7ba57f3404c3f6fc1f70a02d3a7d78652e6b46bbfaff83fc9a17168c279", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-6.2.1-wrapper.jar.sha256", + "wrapperChecksum" : "96f793a18e056c23ffeec67c1f3bb8eccff5a4a407fc9ceac183527e7eedf4b6" +}, { + "version" : "6.2", + "buildTime" : "20200217083201+0000", + "commitId" : "61d3320259a1a0d31519bf208eb13741679a742f", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-6.2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-6.2-bin.zip.sha256", + "checksum" : "b93a5f30d01195ec201e240f029c8b42d59c24086b8d1864112c83558e23cf8a", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-6.2-wrapper.jar.sha256", + "wrapperChecksum" : "96f793a18e056c23ffeec67c1f3bb8eccff5a4a407fc9ceac183527e7eedf4b6" +}, { + "version" : "6.2-rc-3", + "buildTime" : "20200213012914+0000", + "commitId" : "68b48dea20ab558725a7f61ab1e523253df94495", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "6.2", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-6.2-rc-3-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-6.2-rc-3-bin.zip.sha256", + "checksum" : "3e8db98ac4398938ffcdb95241518eadf8858cee65f951f5f75e22cf5efb4cc2", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-6.2-rc-3-wrapper.jar.sha256", + "wrapperChecksum" : "96f793a18e056c23ffeec67c1f3bb8eccff5a4a407fc9ceac183527e7eedf4b6" +}, { + "version" : "6.2-rc-2", + "buildTime" : "20200211221400+0000", + "commitId" : "8a7f6425a217ceeff6c5a76f8dd533b770606110", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "6.2", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-6.2-rc-2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-6.2-rc-2-bin.zip.sha256", + "checksum" : "cf53ad90046348ab326f07b77f7362d6e8f101125ddd815e46df2f296ed2a0ee", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-6.2-rc-2-wrapper.jar.sha256", + "wrapperChecksum" : "96f793a18e056c23ffeec67c1f3bb8eccff5a4a407fc9ceac183527e7eedf4b6" +}, { + "version" : "6.2-rc-1", + "buildTime" : "20200203123003+0000", + "commitId" : "3931d0c37f00de3bd45f713520bd47a09b6bad30", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "6.2", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-6.2-rc-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-6.2-rc-1-bin.zip.sha256", + "checksum" : "4e40b36d619f5e7a9eb9a97d6652c062a13df828995be79137b7215c062b9139", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-6.2-rc-1-wrapper.jar.sha256", + "wrapperChecksum" : "96f793a18e056c23ffeec67c1f3bb8eccff5a4a407fc9ceac183527e7eedf4b6" +}, { + "version" : "6.1.1", + "buildTime" : "20200124223024+0000", + "commitId" : "a8c3750babb99d1894378073499d6716a1a1fa5d", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-6.1.1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-6.1.1-bin.zip.sha256", + "checksum" : "9d94e6e4a28ad328072ef6e56bce79a810494ae756751fdcedffdeaf27c093b1", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-6.1.1-wrapper.jar.sha256", + "wrapperChecksum" : "96f793a18e056c23ffeec67c1f3bb8eccff5a4a407fc9ceac183527e7eedf4b6" +}, { + "version" : "6.1", + "buildTime" : "20200115235646+0000", + "commitId" : "539d277fdba571ebcc9617a34329c83d7d2b259e", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-6.1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-6.1-bin.zip.sha256", + "checksum" : "d0c43d14e1c70a48b82442f435d06186351a2d290d72afd5b8866f15e6d7038a", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-6.1-wrapper.jar.sha256", + "wrapperChecksum" : "96f793a18e056c23ffeec67c1f3bb8eccff5a4a407fc9ceac183527e7eedf4b6" +}, { + "version" : "6.1-rc-3", + "buildTime" : "20200113162324+0000", + "commitId" : "52aebd9acc0e395deba9a17db22f6cffe7d61cf1", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "6.1", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-6.1-rc-3-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-6.1-rc-3-bin.zip.sha256", + "checksum" : "f150eccc7ab05d14bd89a04cdfc4de94e320d5962828e69d10c43bfff12d176d", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-6.1-rc-3-wrapper.jar.sha256", + "wrapperChecksum" : "96f793a18e056c23ffeec67c1f3bb8eccff5a4a407fc9ceac183527e7eedf4b6" +}, { + "version" : "6.1-rc-2", + "buildTime" : "20200107211705+0000", + "commitId" : "8ea1a9823c6a4bfe11b14a3fcbed0630992b126f", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "6.1", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-6.1-rc-2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-6.1-rc-2-bin.zip.sha256", + "checksum" : "f451724e3f6157893e6efd98f91e26fbed1bac89d43fd248d4535cc918b83ee7", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-6.1-rc-2-wrapper.jar.sha256", + "wrapperChecksum" : "96f793a18e056c23ffeec67c1f3bb8eccff5a4a407fc9ceac183527e7eedf4b6" +}, { + "version" : "6.1-rc-1", + "buildTime" : "20191219215643+0000", + "commitId" : "091da954cc24262bb056965f70f172e1e587e9ca", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "6.1", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-6.1-rc-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-6.1-rc-1-bin.zip.sha256", + "checksum" : "8262a8509cdd281ab19b87c79f03d4a5d0629f2a03a28c284203431f12c70960", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-6.1-rc-1-wrapper.jar.sha256", + "wrapperChecksum" : "96f793a18e056c23ffeec67c1f3bb8eccff5a4a407fc9ceac183527e7eedf4b6" +}, { + "version" : "6.1-milestone-3", + "buildTime" : "20191203141333+0000", + "commitId" : "b360d725d00cc62bad1e1f95f66077b18b5cf9a0", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "6.1", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-6.1-milestone-3-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-6.1-milestone-3-bin.zip.sha256", + "checksum" : "31b51f1c7db4aa3927c3621a5732e777f7655f7b4d769225337c251cfbb8cdf6", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-6.1-milestone-3-wrapper.jar.sha256", + "wrapperChecksum" : "3888c76faa032ea8394b8a54e04ce2227ab1f4be64f65d450f8509fe112d38ce" +}, { + "version" : "6.1-milestone-2", + "buildTime" : "20191128101755+0000", + "commitId" : "0f4f797500d442efec2e41485029d66470049b4a", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "6.1", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-6.1-milestone-2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-6.1-milestone-2-bin.zip.sha256", + "checksum" : "3c2040ce128a323e96163eb2e87ac7a50475756f767fa7a139e0edc34447548e", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-6.1-milestone-2-wrapper.jar.sha256", + "wrapperChecksum" : "3888c76faa032ea8394b8a54e04ce2227ab1f4be64f65d450f8509fe112d38ce" +}, { + "version" : "6.1-milestone-1", + "buildTime" : "20191120132405+0000", + "commitId" : "0e10d43391411ce56234fec67bfa38066df5f191", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "6.1", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-6.1-milestone-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-6.1-milestone-1-bin.zip.sha256", + "checksum" : "b13a85987bf9b2b8aa7c24a9b8e68c46a32acb6b623477ac457bca8b0ea9fc04", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-6.1-milestone-1-wrapper.jar.sha256", + "wrapperChecksum" : "3888c76faa032ea8394b8a54e04ce2227ab1f4be64f65d450f8509fe112d38ce" +}, { + "version" : "6.0.1", + "buildTime" : "20191118202501+0000", + "commitId" : "fad121066a68c4701acd362daf4287a7c309a0f5", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-6.0.1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-6.0.1-bin.zip.sha256", + "checksum" : "d364b7098b9f2e58579a3603dc0a12a1991353ac58ed339316e6762b21efba44", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-6.0.1-wrapper.jar.sha256", + "wrapperChecksum" : "28b330c20a9a73881dfe9702df78d4d78bf72368e8906c70080ab6932462fe9e" +}, { + "version" : "6.0", + "buildTime" : "20191108181212+0000", + "commitId" : "0a5b531749138f2f983f7c888fa7790bfc52d88a", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-6.0-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-6.0-bin.zip.sha256", + "checksum" : "5a3578b9f0bb162f5e08cf119f447dfb8fa950cedebb4d2a977e912a11a74b91", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-6.0-wrapper.jar.sha256", + "wrapperChecksum" : "28b330c20a9a73881dfe9702df78d4d78bf72368e8906c70080ab6932462fe9e" +}, { + "version" : "6.0-rc-3", + "buildTime" : "20191105175639+0000", + "commitId" : "74fa127e4a6787a1983bd8467e9443662fa0fe3d", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "6.0", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-6.0-rc-3-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-6.0-rc-3-bin.zip.sha256", + "checksum" : "d30c88a6644e28ba5a45923ae3a4850d55ba0f35dd14a3108595359cdfb0401e", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-6.0-rc-3-wrapper.jar.sha256", + "wrapperChecksum" : "28b330c20a9a73881dfe9702df78d4d78bf72368e8906c70080ab6932462fe9e" +}, { + "version" : "5.6.4", + "buildTime" : "20191101204200+0000", + "commitId" : "dd870424f9bd8e195d614dc14bb140f43c22da98", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-5.6.4-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-5.6.4-bin.zip.sha256", + "checksum" : "1f3067073041bc44554d0efe5d402a33bc3d3c93cc39ab684f308586d732a80d", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-5.6.4-wrapper.jar.sha256", + "wrapperChecksum" : "3dc39ad650d40f6c029bd8ff605c6d95865d657dbfdeacdb079db0ddfffedf9f" +}, { + "version" : "6.0-rc-2", + "buildTime" : "20191030160321+0000", + "commitId" : "990710705df1acf6809b5982a37307677a436d6f", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "6.0", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-6.0-rc-2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-6.0-rc-2-bin.zip.sha256", + "checksum" : "dbb366685bd15d08e592e384744bc19715d00203adeacf43dcf4c8c3a46b6b01", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-6.0-rc-2-wrapper.jar.sha256", + "wrapperChecksum" : "28b330c20a9a73881dfe9702df78d4d78bf72368e8906c70080ab6932462fe9e" +}, { + "version" : "6.0-rc-1", + "buildTime" : "20191018192416+0000", + "commitId" : "5ed5fea1446b3300afa321c661d6e865ab3157a1", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "6.0", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-6.0-rc-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-6.0-rc-1-bin.zip.sha256", + "checksum" : "e73ab0c91f71e051f9798c6c89e0b9c0ecc95f0877e683554425c68835998509", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-6.0-rc-1-wrapper.jar.sha256", + "wrapperChecksum" : "28b330c20a9a73881dfe9702df78d4d78bf72368e8906c70080ab6932462fe9e" +}, { + "version" : "5.6.3", + "buildTime" : "20191018002836+0000", + "commitId" : "bd168bbf5d152c479186a897f2cea494b7875d13", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-5.6.3-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-5.6.3-bin.zip.sha256", + "checksum" : "60a6d8f687e3e7a4bc901cc6bc3db190efae0f02f0cc697e323e0f9336f224a3", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-5.6.3-wrapper.jar.sha256", + "wrapperChecksum" : "3dc39ad650d40f6c029bd8ff605c6d95865d657dbfdeacdb079db0ddfffedf9f" +}, { + "version" : "5.6.2", + "buildTime" : "20190905161354+0000", + "commitId" : "55a5e53d855db8fc7b0e494412fc624051a8e781", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-5.6.2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-5.6.2-bin.zip.sha256", + "checksum" : "32fce6628848f799b0ad3205ae8db67d0d828c10ffe62b748a7c0d9f4a5d9ee0", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-5.6.2-wrapper.jar.sha256", + "wrapperChecksum" : "3dc39ad650d40f6c029bd8ff605c6d95865d657dbfdeacdb079db0ddfffedf9f" +}, { + "version" : "5.6.1", + "buildTime" : "20190828024934+0000", + "commitId" : "b6bd8e7934ca41d9e52610058aa7cb834df81fc4", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-5.6.1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-5.6.1-bin.zip.sha256", + "checksum" : "0986244820e4a35d32d91df2ec4b768b5ba5d6c8246753794f85159f9963ec12", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-5.6.1-wrapper.jar.sha256", + "wrapperChecksum" : "3dc39ad650d40f6c029bd8ff605c6d95865d657dbfdeacdb079db0ddfffedf9f" +}, { + "version" : "5.6", + "buildTime" : "20190814210525+0000", + "commitId" : "f0b9d60906c7b8c42cd6c61a39ae7b74767bb012", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-5.6-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-5.6-bin.zip.sha256", + "checksum" : "15c02ef5dd3631ec02ac52e8725703e0285d9a7eecbf4e5939aa9e924604d01d", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-5.6-wrapper.jar.sha256", + "wrapperChecksum" : "3dc39ad650d40f6c029bd8ff605c6d95865d657dbfdeacdb079db0ddfffedf9f" +}, { + "version" : "5.6-rc-2", + "buildTime" : "20190807150342+0000", + "commitId" : "19680ca6170bfa0a541cc161004c95fe23bb3e36", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "5.6", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-5.6-rc-2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-5.6-rc-2-bin.zip.sha256", + "checksum" : "26c4451c7297dd160314fe509273f97c4f1ee68527dc3fda3d87f0973df8eecb", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-5.6-rc-2-wrapper.jar.sha256", + "wrapperChecksum" : "3dc39ad650d40f6c029bd8ff605c6d95865d657dbfdeacdb079db0ddfffedf9f" +}, { + "version" : "5.6-rc-1", + "buildTime" : "20190729112626+0000", + "commitId" : "f51e6f079cea308de4ef2fb04bdc3b108db6eeaf", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "5.6", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-5.6-rc-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-5.6-rc-1-bin.zip.sha256", + "checksum" : "e09932eeca0e94f08bf81b1b58bc199ee8b8044d553c9ed5e1a906b641ce9c90", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-5.6-rc-1-wrapper.jar.sha256", + "wrapperChecksum" : "3dc39ad650d40f6c029bd8ff605c6d95865d657dbfdeacdb079db0ddfffedf9f" +}, { + "version" : "5.5.1", + "buildTime" : "20190710203812+0000", + "commitId" : "3245f748c7061472da4dc184991919810f7935a5", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-5.5.1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-5.5.1-bin.zip.sha256", + "checksum" : "222a03fcf2fcaf3691767ce9549f78ebd4a77e73f9e23a396899fb70b420cd00", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-5.5.1-wrapper.jar.sha256", + "wrapperChecksum" : "3dc39ad650d40f6c029bd8ff605c6d95865d657dbfdeacdb079db0ddfffedf9f" +}, { + "version" : "5.5", + "buildTime" : "20190628173605+0000", + "commitId" : "83820928f3ada1a3a1dbd9a6c0d47eb3f199378f", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-5.5-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-5.5-bin.zip.sha256", + "checksum" : "8d78b2ed63e7f07ad169c1186d119761c4773e681f332cfe1901045b1b0141bc", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-5.5-wrapper.jar.sha256", + "wrapperChecksum" : "3dc39ad650d40f6c029bd8ff605c6d95865d657dbfdeacdb079db0ddfffedf9f" +}, { + "version" : "5.5-rc-4", + "buildTime" : "20190624152432+0000", + "commitId" : "787552139af6f0f19c748ac6a917a54d33f15ab0", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "5.5", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-5.5-rc-4-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-5.5-rc-4-bin.zip.sha256", + "checksum" : "8d0844d974a2da25b741382094cb63d035ad2e9572b978e63bdceb927231e9ea", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-5.5-rc-4-wrapper.jar.sha256", + "wrapperChecksum" : "3dc39ad650d40f6c029bd8ff605c6d95865d657dbfdeacdb079db0ddfffedf9f" +}, { + "version" : "5.5-rc-3", + "buildTime" : "20190614231538+0000", + "commitId" : "37d86b7ed068116d20e7a31c88d9dfe3e8ec3bd8", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "5.5", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-5.5-rc-3-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-5.5-rc-3-bin.zip.sha256", + "checksum" : "1d3f37c0b53084ba5e6642691a9b9fb5f588a801f8ca613f15d82042b2c7dad8", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-5.5-rc-3-wrapper.jar.sha256", + "wrapperChecksum" : "3dc39ad650d40f6c029bd8ff605c6d95865d657dbfdeacdb079db0ddfffedf9f" +}, { + "version" : "5.5-rc-2", + "buildTime" : "20190607090657+0000", + "commitId" : "360949f7e785578195c7fe7e4b6ca2dc566d55c5", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "5.5", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-5.5-rc-2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-5.5-rc-2-bin.zip.sha256", + "checksum" : "440429bd2195030d944b8d148c0d056edb2463813a04132ee7bf7123b471858a", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-5.5-rc-2-wrapper.jar.sha256", + "wrapperChecksum" : "3dc39ad650d40f6c029bd8ff605c6d95865d657dbfdeacdb079db0ddfffedf9f" +}, { + "version" : "5.5-rc-1", + "buildTime" : "20190529115119+0000", + "commitId" : "6c070eb6e47979d5642a181e3efa11bf237dc69c", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "5.5", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-5.5-rc-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-5.5-rc-1-bin.zip.sha256", + "checksum" : "7fe31cb63223b292fae0c42b124de3d8d028a3567992e9caf08a240c10d48f6c", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-5.5-rc-1-wrapper.jar.sha256", + "wrapperChecksum" : "3dc39ad650d40f6c029bd8ff605c6d95865d657dbfdeacdb079db0ddfffedf9f" +}, { + "version" : "5.4.1", + "buildTime" : "20190426081442+0000", + "commitId" : "261d171646b36a6a28d5a19a69676cd098a4c19d", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-5.4.1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-5.4.1-bin.zip.sha256", + "checksum" : "7bdbad1e4f54f13c8a78abc00c26d44dd8709d4aedb704d913fb1bb78ac025dc", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-5.4.1-wrapper.jar.sha256", + "wrapperChecksum" : "3dc39ad650d40f6c029bd8ff605c6d95865d657dbfdeacdb079db0ddfffedf9f" +}, { + "version" : "5.4", + "buildTime" : "20190416024416+0000", + "commitId" : "a4f3f91a30d4e36d82cc7592c4a0726df52aba0d", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-5.4-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-5.4-bin.zip.sha256", + "checksum" : "c8c17574245ecee9ed7fe4f6b593b696d1692d1adbfef425bef9b333e3a0e8de", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-5.4-wrapper.jar.sha256", + "wrapperChecksum" : "3dc39ad650d40f6c029bd8ff605c6d95865d657dbfdeacdb079db0ddfffedf9f" +}, { + "version" : "5.4-rc-1", + "buildTime" : "20190410011532+0000", + "commitId" : "efacce4b4916e5709f25141b61fc3ec594d3893d", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "5.4", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-5.4-rc-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-5.4-rc-1-bin.zip.sha256", + "checksum" : "86dbc7499f0cc0810c2ca8683b5adcd0dd7841bfe14544401de0e49b885542a2", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-5.4-rc-1-wrapper.jar.sha256", + "wrapperChecksum" : "3dc39ad650d40f6c029bd8ff605c6d95865d657dbfdeacdb079db0ddfffedf9f" +}, { + "version" : "5.3.1", + "buildTime" : "20190328090923+0000", + "commitId" : "f2fae6ba563cfb772c8bc35d31e43c59a5b620c3", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-5.3.1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-5.3.1-bin.zip.sha256", + "checksum" : "1c59a17a054e9c82f0dd881871c9646e943ec4c71dd52ebc6137d17f82337436", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-5.3.1-wrapper.jar.sha256", + "wrapperChecksum" : "3dc39ad650d40f6c029bd8ff605c6d95865d657dbfdeacdb079db0ddfffedf9f" +}, { + "version" : "5.3", + "buildTime" : "20190320110329+0000", + "commitId" : "f5c64796748a98efdbf6f99f44b6afe08492c2a0", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-5.3-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-5.3-bin.zip.sha256", + "checksum" : "bed2bdd3955be5a09ca7e0201e9d131f194f7f6c466e1795a733733ccfb09f25", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-5.3-wrapper.jar.sha256", + "wrapperChecksum" : "3dc39ad650d40f6c029bd8ff605c6d95865d657dbfdeacdb079db0ddfffedf9f" +}, { + "version" : "5.3-rc-3", + "buildTime" : "20190313202708+0000", + "commitId" : "4b3a8d84d9a8983836f9bb3006c39baec692ca4b", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "5.3", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-5.3-rc-3-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-5.3-rc-3-bin.zip.sha256", + "checksum" : "63b7114caa8629f5dc3074aab09b87476fbfba548ea20aefe97068287621acb7", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-5.3-rc-3-wrapper.jar.sha256", + "wrapperChecksum" : "3dc39ad650d40f6c029bd8ff605c6d95865d657dbfdeacdb079db0ddfffedf9f" +}, { + "version" : "5.3-rc-2", + "buildTime" : "20190311210726+0000", + "commitId" : "cb19a113017a9351f8d9fa767d50a9a0f590617a", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "5.3", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-5.3-rc-2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-5.3-rc-2-bin.zip.sha256", + "checksum" : "4110201a819b28600bfe06ef02950c6b749616c2197ed0da2514451a378c709b", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-5.3-rc-2-wrapper.jar.sha256", + "wrapperChecksum" : "3dc39ad650d40f6c029bd8ff605c6d95865d657dbfdeacdb079db0ddfffedf9f" +}, { + "version" : "5.3-rc-1", + "buildTime" : "20190305205202+0000", + "commitId" : "ec8a8bc2dd4c0761880ccec4f28c5db79c2244bb", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "5.3", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-5.3-rc-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-5.3-rc-1-bin.zip.sha256", + "checksum" : "5650e801e191cc8f12f6ea3f27e081ad0a0012d44d53ba226b7c148d3282956c", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-5.3-rc-1-wrapper.jar.sha256", + "wrapperChecksum" : "3dc39ad650d40f6c029bd8ff605c6d95865d657dbfdeacdb079db0ddfffedf9f" +}, { + "version" : "5.2.1", + "buildTime" : "20190208190010+0000", + "commitId" : "f02764e074c32ee8851a4e1877dd1fea8ffb7183", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-5.2.1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-5.2.1-bin.zip.sha256", + "checksum" : "748c33ff8d216736723be4037085b8dc342c6a0f309081acf682c9803e407357", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-5.2.1-wrapper.jar.sha256", + "wrapperChecksum" : "76b12da7f4a7cdd025e5996811a2e49bf5df0fb62d72554ab555c0e434b63aae" +}, { + "version" : "5.2", + "buildTime" : "20190204111648+0000", + "commitId" : "840644a429c8b8b9ae399867eb1660e3109bc7a3", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-5.2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-5.2-bin.zip.sha256", + "checksum" : "ff322863250159595e93b5a4d17a6f0d21c59a1a0497c1e1cf1d53826485503f", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-5.2-wrapper.jar.sha256", + "wrapperChecksum" : "76b12da7f4a7cdd025e5996811a2e49bf5df0fb62d72554ab555c0e434b63aae" +}, { + "version" : "5.2-rc-1", + "buildTime" : "20190128225604+0000", + "commitId" : "633c8d5c1c568402d7a26e94c1213d747bfa594b", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "5.2", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-5.2-rc-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-5.2-rc-1-bin.zip.sha256", + "checksum" : "9e882e3899d7ef999f862f71a4a7494505a9a3f87c1cea427a3ae44941b94c70", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-5.2-rc-1-wrapper.jar.sha256", + "wrapperChecksum" : "76b12da7f4a7cdd025e5996811a2e49bf5df0fb62d72554ab555c0e434b63aae" +}, { + "version" : "5.1.1", + "buildTime" : "20190110230502+0000", + "commitId" : "3c9abb645fb83932c44e8610642393ad62116807", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-5.1.1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-5.1.1-bin.zip.sha256", + "checksum" : "4953323605c5d7b89e97d0dc7779e275bccedefcdac090aec123375eae0cc798", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-5.1.1-wrapper.jar.sha256", + "wrapperChecksum" : "76b12da7f4a7cdd025e5996811a2e49bf5df0fb62d72554ab555c0e434b63aae" +}, { + "version" : "5.1", + "buildTime" : "20190102185747+0000", + "commitId" : "d09c2e354576ac41078c322815cc6db2b66d976e", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-5.1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-5.1-bin.zip.sha256", + "checksum" : "7506638a380092a0406364c79d6c87d03d23017fc25a5770379d1ce23c3fcd4d", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-5.1-wrapper.jar.sha256", + "wrapperChecksum" : "76b12da7f4a7cdd025e5996811a2e49bf5df0fb62d72554ab555c0e434b63aae" +}, { + "version" : "5.1-rc-3", + "buildTime" : "20181221230345+0000", + "commitId" : "bf267654ac894c160b5b6c5e5c06d72f1ecaa23c", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "5.1", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-5.1-rc-3-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-5.1-rc-3-bin.zip.sha256", + "checksum" : "aba05e1d60c4b976e8bb9ea1911aaa8b19783cdc63e788320fcb75e9613ba45d", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-5.1-rc-3-wrapper.jar.sha256", + "wrapperChecksum" : "76b12da7f4a7cdd025e5996811a2e49bf5df0fb62d72554ab555c0e434b63aae" +}, { + "version" : "5.1-rc-2", + "buildTime" : "20181217224201+0000", + "commitId" : "4f93941ff2f23ed981b9416a66af36ab0a8ef4de", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "5.1", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-5.1-rc-2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-5.1-rc-2-bin.zip.sha256", + "checksum" : "a5f43f07530f2e02f4df3b0fe14300586d6302ad4462d0ed95971e6bf107b66a", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-5.1-rc-2-wrapper.jar.sha256", + "wrapperChecksum" : "76b12da7f4a7cdd025e5996811a2e49bf5df0fb62d72554ab555c0e434b63aae" +}, { + "version" : "5.1-rc-1", + "buildTime" : "20181213060004+0000", + "commitId" : "0937d57caa43dabc31d331dea6c9c0cf72de8607", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "5.1", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-5.1-rc-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-5.1-rc-1-bin.zip.sha256", + "checksum" : "160b5b497b076c8d490fd7f2de6d389db4972dc495d5b86e5713ebdf63bf47fd", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-5.1-rc-1-wrapper.jar.sha256", + "wrapperChecksum" : "76b12da7f4a7cdd025e5996811a2e49bf5df0fb62d72554ab555c0e434b63aae" +}, { + "version" : "4.10.3", + "buildTime" : "20181205005054+0000", + "commitId" : "e76905e3a1034e6f724566aeb985621347ff43bc", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-4.10.3-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-4.10.3-bin.zip.sha256", + "checksum" : "8626cbf206b4e201ade7b87779090690447054bc93f052954c78480fa6ed186e", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-4.10.3-wrapper.jar.sha256", + "wrapperChecksum" : "660ab018b8e319e9ae779fdb1b7ac47d0321bde953bf0eb4545f14952cfdcaa3" +}, { + "version" : "5.1-milestone-1", + "buildTime" : "20181203174147+0000", + "commitId" : "00340d696f2e7161233ac9a363cd4e5238588318", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "5.1", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-5.1-milestone-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-5.1-milestone-1-bin.zip.sha256", + "checksum" : "f7f38376ef3cf461eaf4da9d7abf4a9a4325cbbc93fbe19efbdb2f35c4171757", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-5.1-milestone-1-wrapper.jar.sha256", + "wrapperChecksum" : "8ff6bee43c55efc0cce9e1147860a76fc970398fbef587e64b6e7a5a7e0291df" +}, { + "version" : "5.0", + "buildTime" : "20181126114843+0000", + "commitId" : "7fc6e5abf2fc5fe0824aec8a0f5462664dbcd987", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-5.0-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-5.0-bin.zip.sha256", + "checksum" : "6157ac9f3410bc63644625b3b3e9e96c963afd7910ae0697792db57813ee79a6", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-5.0-wrapper.jar.sha256", + "wrapperChecksum" : "f1a597a1f2b23089deec11d5b924d074f9e4ed810f2093be7021ded01c8073ad" +}, { + "version" : "5.0-rc-5", + "buildTime" : "20181122195845+0000", + "commitId" : "42e59c2484a49702234030881640aa8d8bfa6d43", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "5.0", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-5.0-rc-5-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-5.0-rc-5-bin.zip.sha256", + "checksum" : "369ff446973f5309c550b9ef543d5cdf45470a0db20e3f6c00dcca122faa045d" +}, { + "version" : "5.0-rc-4", + "buildTime" : "20181120092642+0000", + "commitId" : "50c28fc7284c0aa377c8edb49723d9258565780f", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "5.0", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-5.0-rc-4-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-5.0-rc-4-bin.zip.sha256", + "checksum" : "414d6ffa6a4ec14355eb78b7577576ab63d07658ac640ec41b5e63b573400de0" +}, { + "version" : "5.0-rc-3", + "buildTime" : "20181114160147+0000", + "commitId" : "63f11c722124617f7cbe2f95ad5a5e045b8b42f6", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "5.0", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-5.0-rc-3-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-5.0-rc-3-bin.zip.sha256", + "checksum" : "684a20ad90fc0d133c7b03da392c21e2a211b5df32faacb9f72e6847628aea20" +}, { + "version" : "5.0-rc-2", + "buildTime" : "20181112080541+0000", + "commitId" : "bcbd24a720641ddf900df0503def5b5c08c4a8b4", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "5.0", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-5.0-rc-2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-5.0-rc-2-bin.zip.sha256", + "checksum" : "6585344d4a6047bcd19894c9d75e32d62a0a908b6886c3f21049b7d9e3a14d02" +}, { + "version" : "5.0-rc-1", + "buildTime" : "20181030135922+0000", + "commitId" : "0b94d7e5908d1d96b8a353d1f28d9c443d767327", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "5.0", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-5.0-rc-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-5.0-rc-1-bin.zip.sha256", + "checksum" : "6494ddd4191b99d1a5e8d31fc179d1cab68631ebbac9adfcaa229f56496c5427" +}, { + "version" : "5.0-milestone-1", + "buildTime" : "20181002224615+0000", + "commitId" : "abaf9d545140f5775f3442e4cfe9c61603d4fb3e", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "5.0", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-5.0-milestone-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-5.0-milestone-1-bin.zip.sha256", + "checksum" : "0c4e5366b479934844da39c156c20d509f6b2c40b978c10598221fd591c0cf57" +}, { + "version" : "4.10.2", + "buildTime" : "20180919181015+0000", + "commitId" : "b4d8d5d170bb4ba516e88d7fe5647e2323d791dd", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-4.10.2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-4.10.2-bin.zip.sha256", + "checksum" : "b49c6da1b2cb67a0caf6c7480630b51c70a11ca2016ff2f555eaeda863143a29", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-4.10.2-wrapper.jar.sha256", + "wrapperChecksum" : "ad63ba21fb91e490e0f6fd0ca7d4049241f0f68a454b0b3075c041c4554e611c" +}, { + "version" : "4.10.1", + "buildTime" : "20180912113327+0000", + "commitId" : "76c9179ea9bddc32810f9125ad97c3315c544919", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-4.10.1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-4.10.1-bin.zip.sha256", + "checksum" : "e53ce3a01cf016b5d294eef20977ad4e3c13e761ac1e475f1ffad4c6141a92bd", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-4.10.1-wrapper.jar.sha256", + "wrapperChecksum" : "d8a69ca8efe271d8de080c42a2ea4b08fc9e85c41aa2d163255c70d9da239db0" +}, { + "version" : "4.10", + "buildTime" : "20180827183506+0000", + "commitId" : "ee3751ed9f2034effc1f0072c2b2ee74b5dce67d", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-4.10-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-4.10-bin.zip.sha256", + "checksum" : "248cfd92104ce12c5431ddb8309cf713fe58de8e330c63176543320022f59f18", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-4.10-wrapper.jar.sha256", + "wrapperChecksum" : "778e7f46bd67eaea2de5bcbdbb40878c6614656014ba59a72ce8648eaf43a925" +}, { + "version" : "4.10-rc-3", + "buildTime" : "20180823120756+0000", + "commitId" : "1b827f2119c11123e178e731421ae79d52a8991a", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "4.10", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-4.10-rc-3-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-4.10-rc-3-bin.zip.sha256", + "checksum" : "4e5f3a2e0c4f1f0313211253d799dd66570afdf0ebb3d785ee97a97d942c632d" +}, { + "version" : "4.10-rc-2", + "buildTime" : "20180814180001+0000", + "commitId" : "7d610b59feb93583b5d19b01ce63477472d87696", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "4.10", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-4.10-rc-2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-4.10-rc-2-bin.zip.sha256", + "checksum" : "e90d3c32910e259814bcca82b3911172ecca1ff1ab5ed69b4de3c1df8b378b40" +}, { + "version" : "4.10-rc-1", + "buildTime" : "20180809061937+0000", + "commitId" : "97951b7f541f1da43de291246cc7b17507e75a14", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "4.10", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-4.10-rc-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-4.10-rc-1-bin.zip.sha256", + "checksum" : "f68220df44d943418a49aecccf0d5b8547f52201926bc8f13c2c3e5b81eb763a" +}, { + "version" : "4.9", + "buildTime" : "20180716081403+0000", + "commitId" : "efcf8c1cf533b03c70f394f270f46a174c738efc", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-4.9-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-4.9-bin.zip.sha256", + "checksum" : "e66e69dce8173dd2004b39ba93586a184628bc6c28461bc771d6835f7f9b0d28", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-4.9-wrapper.jar.sha256", + "wrapperChecksum" : "e55e7e47a79e04c26363805b31e2f40b7a9cc89ea12113be7de750a3b2cede85" +}, { + "version" : "4.9-rc-2", + "buildTime" : "20180711004640+0000", + "commitId" : "9b5ff22063b9eb8bab8a2f304d47903b531054c7", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "4.9", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-4.9-rc-2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-4.9-rc-2-bin.zip.sha256", + "checksum" : "651e3d8c41221e7e767f23a5ead0bbe06ada6abec017e7b6ce99f3cbcb4808e5" +}, { + "version" : "4.9-rc-1", + "buildTime" : "20180703131446+0000", + "commitId" : "c38f1f17599655fc0de0ea44a8d366aebcfdb9f2", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "4.9", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-4.9-rc-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-4.9-rc-1-bin.zip.sha256", + "checksum" : "52e32ccfa4edc679e6bfad93e0f9fcd6358dc39dfb7bf8f2e1222b8d18ead359" +}, { + "version" : "4.8.1", + "buildTime" : "20180621075306+0000", + "commitId" : "0abdea078047b12df42e7750ccba34d69b516a22", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-4.8.1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-4.8.1-bin.zip.sha256", + "checksum" : "af334d994b5e69e439ab55b5d2b7d086da5ea6763d78054f49f147b06370ed71", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-4.8.1-wrapper.jar.sha256", + "wrapperChecksum" : "080e30657661539701b66827b96eb0043191e0a7a73090e8a57bd6735e5af5c5" +}, { + "version" : "4.8", + "buildTime" : "20180604103958+0000", + "commitId" : "9e1261240e412cbf61a5e3a5ab734f232b2f887d", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-4.8-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-4.8-bin.zip.sha256", + "checksum" : "f3e29692a8faa94eb0b02ebf36fa263a642b3ae8694ef806c45c345b8683f1ba", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-4.8-wrapper.jar.sha256", + "wrapperChecksum" : "4160d5a6d8d6efc6af336582bbbba8194e4d7a742835f7b0fd3964cbd419c994" +}, { + "version" : "4.8-rc-3", + "buildTime" : "20180531140436+0000", + "commitId" : "9803e11cf1218511e0fd1595bdc66e0a6210a0b6", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "4.8", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-4.8-rc-3-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-4.8-rc-3-bin.zip.sha256", + "checksum" : "459195ae148201ef4c1235cfca08aaa20b1293f280fb643c666499a58e228dac" +}, { + "version" : "4.8-rc-2", + "buildTime" : "20180524092821+0000", + "commitId" : "0b1824635622a85b201776fc1245b6a40f4a5b22", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "4.8", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-4.8-rc-2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-4.8-rc-2-bin.zip.sha256", + "checksum" : "a89682f4c2ec77a2b49ca139628e95de7b7648552643edd2ea3988cbd0a0a07b" +}, { + "version" : "4.8-rc-1", + "buildTime" : "20180515173233+0000", + "commitId" : "cfb66ee34d37b52c741150a398663618a94d2045", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "4.8", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-4.8-rc-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-4.8-rc-1-bin.zip.sha256", + "checksum" : "c6ba15fbb51ac0c8b370dfd3a239c3b48b1cee5bbfdf5597cb586a216f8690b0" +}, { + "version" : "4.7", + "buildTime" : "20180418090912+0000", + "commitId" : "b9a962bf70638332300e7f810689cb2febbd4a6c", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-4.7-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-4.7-bin.zip.sha256", + "checksum" : "fca5087dc8b50c64655c000989635664a73b11b9bd3703c7d6cabd31b7dcdb04", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-4.7-wrapper.jar.sha256", + "wrapperChecksum" : "7d6fe0a055f133226409de2457fb0e887d1f6b096f36c8d5fd76fb7a9357cd45" +}, { + "version" : "4.7-rc-2", + "buildTime" : "20180413125323+0000", + "commitId" : "943291f9d94f68a0172ce7648b6a9dab7711fd47", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "4.7", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-4.7-rc-2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-4.7-rc-2-bin.zip.sha256", + "checksum" : "b9289ecb1f9ce8bc325ce71805ee779f3e03da22e394deced6e682cd6297d110" +}, { + "version" : "4.7-rc-1", + "buildTime" : "20180403113602+0000", + "commitId" : "2f0b7b15068980c05470af1882d79e9c8ef5c71b", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "4.7", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-4.7-rc-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-4.7-rc-1-bin.zip.sha256", + "checksum" : "fbf286558c27f6026c0da6daa57750ce1539e6535227e6738a6f4909dc130d12" +}, { + "version" : "4.6", + "buildTime" : "20180228133636+0000", + "commitId" : "8fa6ce7945b640e6168488e4417f9bb96e4ab46c", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-4.6-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-4.6-bin.zip.sha256", + "checksum" : "98bd5fd2b30e070517e03c51cbb32beee3e2ee1a84003a5a5d748996d4b1b915", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-4.6-wrapper.jar.sha256", + "wrapperChecksum" : "381dff8aa434499aa93bc25572b049c8c586a67faff2c02f375e4f23e17e49de" +}, { + "version" : "4.6-rc-2", + "buildTime" : "20180221152842+0000", + "commitId" : "819e0059da49f469d3e9b2896dc4e72537c4847d", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "4.6", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-4.6-rc-2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-4.6-rc-2-bin.zip.sha256", + "checksum" : "1fab26f72fe5f52d5773c2cf4bb0beaec60c3b24a5f49d09be5a092a7473bfdd" +}, { + "version" : "4.6-rc-1", + "buildTime" : "20180216162807+0000", + "commitId" : "ac6267d33138856ffe71b159ab8154e71e9da72e", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "4.6", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-4.6-rc-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-4.6-rc-1-bin.zip.sha256", + "checksum" : "f8ed6380bcc3db71ec524950aa53d78ccf1da0ead900f379f3573dfef60500c9" +}, { + "version" : "4.5.1", + "buildTime" : "20180205132249+0000", + "commitId" : "37007e1c012001ff09973e0bd095139239ecd3b3", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-4.5.1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-4.5.1-bin.zip.sha256", + "checksum" : "3e2ea0d8b96605b7c528768f646e0975bd9822f06df1f04a64fd279b1a17805e", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-4.5.1-wrapper.jar.sha256", + "wrapperChecksum" : "3bf04e39ed259ff0a1217a875199a11775855d2a29207b98318ac79178249de8" +}, { + "version" : "4.5", + "buildTime" : "20180124170452+0000", + "commitId" : "77d0ec90636f43669dc794ca17ef80dd65457bec", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-4.5-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-4.5-bin.zip.sha256", + "checksum" : "03f2a43a314ff0fb843a85ef68078e06d181c4549c1e5fb983f289382b59b5e3", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-4.5-wrapper.jar.sha256", + "wrapperChecksum" : "d283a04caee0e97b666b09e50ab394834934bee6225c2e9cd4650afdeac43828" +}, { + "version" : "4.5-rc-2", + "buildTime" : "20180122164244+0000", + "commitId" : "459d2caa04b8145b40955950cc6037034e9123b1", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "4.5", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-4.5-rc-2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-4.5-rc-2-bin.zip.sha256", + "checksum" : "401363cc3491055b878bba54463129c3bb0d3a76e337e5e515729a6b6fa4c883" +}, { + "version" : "4.5-rc-1", + "buildTime" : "20180109010527+0000", + "commitId" : "d6e5a1c698884ebc887980c82687c8c11ad22dd6", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "4.5", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-4.5-rc-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-4.5-rc-1-bin.zip.sha256", + "checksum" : "fa8f4721d121d4501871877a9c1bf83db5ba44bb0ee9dd177a4981c11cede7c6" +}, { + "version" : "4.4.1", + "buildTime" : "20171220154523+0000", + "commitId" : "10ed9dc355dc39f6307cc98fbd8cea314bdd381c", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-4.4.1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-4.4.1-bin.zip.sha256", + "checksum" : "e7cf7d1853dfc30c1c44f571d3919eeeedef002823b66b6a988d27e919686389", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-4.4.1-wrapper.jar.sha256", + "wrapperChecksum" : "4e318d74d06aa7b998091345c397a3c7c4b291b59da31e6f9c772a596711acac" +}, { + "version" : "4.4", + "buildTime" : "20171206090506+0000", + "commitId" : "cf7821a6f79f8e2a598df21780e3ff7ce8db2b82", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-4.4-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-4.4-bin.zip.sha256", + "checksum" : "fa4873ae2c7f5e8c02ec6948ba95848cedced6134772a0169718eadcb39e0a2f", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-4.4-wrapper.jar.sha256", + "wrapperChecksum" : "88b5b31f390a268ab3773df580d83fd1e388f49c2b685f78a16600577bd72fe2" +}, { + "version" : "4.4-rc-6", + "buildTime" : "20171204084815+0000", + "commitId" : "cf7821a6f79f8e2a598df21780e3ff7ce8db2b82", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "4.4", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-4.4-rc-6-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-4.4-rc-6-bin.zip.sha256", + "checksum" : "03480998491b94e27d95759c47ae6ac864e95b9db17cd5890cd37ff536431ba0" +}, { + "version" : "4.4-rc-5", + "buildTime" : "20171130152137+0000", + "commitId" : "f4daa310b16df9abd4f37257bae8312b5293a251", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "4.4", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-4.4-rc-5-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-4.4-rc-5-bin.zip.sha256", + "checksum" : "b52d338f285dd255f3abf6bcd3e0b447cc62aa8dc83a281c42f8ec1aec10dc89" +}, { + "version" : "4.4-rc-4", + "buildTime" : "20171128123659+0000", + "commitId" : "f0a427cdb7eaa95779c9ccd8147878970fbb53fb", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "4.4", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-4.4-rc-4-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-4.4-rc-4-bin.zip.sha256", + "checksum" : "d663fe846e3b2e30285b578e0bb957c4fb846cca0f36694ab32d5e5ba25c0cb8" +}, { + "version" : "4.4-rc-3", + "buildTime" : "20171127103138+0000", + "commitId" : "340c20678da78bf34d58da72071f95bb60d037e9", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "4.4", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-4.4-rc-3-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-4.4-rc-3-bin.zip.sha256", + "checksum" : "607b5c3493dc78da8d6207edd43c680132d9b69912fa1de2fa42f24be72f30cd" +}, { + "version" : "4.4-rc-2", + "buildTime" : "20171124103528+0000", + "commitId" : "9ab11aefa43e1dedcf68294d5f15f246bbe54221", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "4.4", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-4.4-rc-2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-4.4-rc-2-bin.zip.sha256", + "checksum" : "939ec641887df3677dd3ac1ed8cb6e2815dae0f33bf36db8ae64a71b4c32f8f8" +}, { + "version" : "4.4-rc-1", + "buildTime" : "20171121153105+0000", + "commitId" : "089fe1e08ca477b49583c6e00abf87f4675d0c06", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "4.4", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-4.4-rc-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-4.4-rc-1-bin.zip.sha256", + "checksum" : "3b5d35b41d5807f6471e90ca81e4d1bf4fee48deca7d99e0e579f758b4db85b1" +}, { + "version" : "4.3.1", + "buildTime" : "20171108085945+0000", + "commitId" : "e4f4804807ef7c2829da51877861ff06e07e006d", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-4.3.1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-4.3.1-bin.zip.sha256", + "checksum" : "15ebe098ce0392a2d06d252bff24143cc88c4e963346582c8d88814758d93ac7", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-4.3.1-wrapper.jar.sha256", + "wrapperChecksum" : "383f4efa709b52632a520708e8a07353961970941ab3867ab8ac182132ce1c54" +}, { + "version" : "4.3", + "buildTime" : "20171030154329+0000", + "commitId" : "c684c202534c4138b51033b52d871939b8d38d72", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-4.3-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-4.3-bin.zip.sha256", + "checksum" : "8dcbf44eef92575b475dcb1ce12b5f19d38dc79e84c662670248dc8b8247654c", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-4.3-wrapper.jar.sha256", + "wrapperChecksum" : "ba496e7e0e03ffa432eaf715bb1466fac2ffc8491a71e7164a5438c48c79d8ea" +}, { + "version" : "4.3-rc-4", + "buildTime" : "20171026162557+0000", + "commitId" : "89af43c4d0506f69980f00dde78c97b2f81437f8", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "4.3", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-4.3-rc-4-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-4.3-rc-4-bin.zip.sha256", + "checksum" : "6615d3d67b7c5ca936ef34464495aeac4145dcac8df65d8fdd20f4085e48fbb6" +}, { + "version" : "4.3-rc-3", + "buildTime" : "20171024142633+0000", + "commitId" : "d13daf4f8c434761df3ba0af55fb1f3d9513624e", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "4.3", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-4.3-rc-3-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-4.3-rc-3-bin.zip.sha256", + "checksum" : "3e3fad053c2d14a7dbe49006d09034576517e1f6c3f15aca7e5c594f17d08bbf" +}, { + "version" : "4.3-rc-2", + "buildTime" : "20171018073714+0000", + "commitId" : "3fb6d5b8810eeecce1472faa7f12ef1318870d9d", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "4.3", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-4.3-rc-2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-4.3-rc-2-bin.zip.sha256", + "checksum" : "e55a78b879a5d45840003a1692fb00d1d1780298bcd696c7f10370e7922aad4f" +}, { + "version" : "4.3-rc-1", + "buildTime" : "20171012161416+0000", + "commitId" : "168523089264845c0560d994b565cae4c6e93563", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "4.3", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-4.3-rc-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-4.3-rc-1-bin.zip.sha256", + "checksum" : "a2fbaa80f98b59509e3f956c9fdaeb593516ea633ce80946735fa7cb7dd74a55" +}, { + "version" : "4.2.1", + "buildTime" : "20171002153621+0000", + "commitId" : "a88ebd6be7840c2e59ae4782eb0f27fbe3405ddf", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-4.2.1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-4.2.1-bin.zip.sha256", + "checksum" : "b551cc04f2ca51c78dd14edb060621f0e5439bdfafa6fd167032a09ac708fbc0", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-4.2.1-wrapper.jar.sha256", + "wrapperChecksum" : "c536e519e65a4bb787e071c6a90d23bd219c9d409a2123db649d3684acbf3ae7" +}, { + "version" : "4.2", + "buildTime" : "20170920144823+0000", + "commitId" : "5ba503cc17748671c83ce35d7da1cffd6e24dfbd", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-4.2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-4.2-bin.zip.sha256", + "checksum" : "515dd63d32e55a9c05667809c5e40a947529de3054444ad274b3b75af5582eae", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-4.2-wrapper.jar.sha256", + "wrapperChecksum" : "53aa048fef3c06a8442c6a44df5edd2e8c791ee883e42ded6189c7eed112095d" +}, { + "version" : "4.2-rc-2", + "buildTime" : "20170913122310+0000", + "commitId" : "e7e9502dbcf5bf8e4ca5e0c1763a301372a9ed83", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "4.2", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-4.2-rc-2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-4.2-rc-2-bin.zip.sha256", + "checksum" : "e32c378a7e49e074647c59a2a618444db3871ca05e4a151122041252f2dcb640" +}, { + "version" : "4.2-rc-1", + "buildTime" : "20170907081216+0000", + "commitId" : "73d54c86eca92ae26decccd774f49bfc2b01c314", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "4.2", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-4.2-rc-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-4.2-rc-1-bin.zip.sha256", + "checksum" : "7d4f7ebe327047eeb713566de36b466f6f966aa9fd471d0b5a89f76337845829" +}, { + "version" : "4.1", + "buildTime" : "20170807143848+0000", + "commitId" : "941559e020f6c357ebb08d5c67acdb858a3defc2", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-4.1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-4.1-bin.zip.sha256", + "checksum" : "d55dfa9cfb5a3da86a1c9e75bb0b9507f9a8c8c100793ccec7beb6e259f9ed43", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-4.1-wrapper.jar.sha256", + "wrapperChecksum" : "f4d953f31fbf6c38a8c330d19171c8ba6e0d1ff59d4d5c5c2d3ed821c9f3d5a3" +}, { + "version" : "4.1-rc-2", + "buildTime" : "20170731142943+0000", + "commitId" : "941559e020f6c357ebb08d5c67acdb858a3defc2", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "4.1", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-4.1-rc-2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-4.1-rc-2-bin.zip.sha256", + "checksum" : "c3ea162956646b681bdbf697e45737e654492c825b7958892b44be286a4594f6" +}, { + "version" : "4.0.2", + "buildTime" : "20170726161918+0000", + "commitId" : "108c593aa7b43852f39045337ee84ee1d87c87fd", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-4.0.2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-4.0.2-bin.zip.sha256", + "checksum" : "79ac421342bd11f6a4f404e0988baa9c1f5fabf07e3c6fa65b0c15c1c31dda22" +}, { + "version" : "4.1-rc-1", + "buildTime" : "20170720152215+0000", + "commitId" : "e9f4cb3be4b0a16506ad54b44485b7f0862f6c59", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "4.1", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-4.1-rc-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-4.1-rc-1-bin.zip.sha256", + "checksum" : "782866e286d0e7d527f8110337e96e7e0c886376d9a35966d74ca4024ede7153" +}, { + "version" : "4.0.1", + "buildTime" : "20170707140241+0000", + "commitId" : "38e5dc0f772daecca1d2681885d3d85414eb6826", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-4.0.1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-4.0.1-bin.zip.sha256", + "checksum" : "d717e46200d1359893f891dab047fdab98784143ac76861b53c50dbd03b44fd4" +}, { + "version" : "4.1-milestone-1", + "buildTime" : "20170620170546+0000", + "commitId" : "3ad5af92d482b963cc6b00fb5ad53b608606d657", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "4.1", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-4.1-milestone-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-4.1-milestone-1-bin.zip.sha256", + "checksum" : "48edfe37620b5de2fd6e111a65b384dd730c377890c26a01a1ae55ae0220abc1" +}, { + "version" : "3.5.1", + "buildTime" : "20170616143627+0000", + "commitId" : "d4c3bb4eac74bd0a3c70a0d213709e484193e251", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-3.5.1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-3.5.1-bin.zip.sha256", + "checksum" : "8dce35f52d4c7b4a4946df73aa2830e76ba7148850753d8b5e94c5dc325ceef8" +}, { + "version" : "4.0", + "buildTime" : "20170614151108+0000", + "commitId" : "316546a5fcb4e2dfe1d6aa0b73a4e09e8cecb5a5", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-4.0-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-4.0-bin.zip.sha256", + "checksum" : "56bd2dde29ba2a93903c557da1745cafd72cdd8b6b0b83c05a40ed7896b79dfe" +}, { + "version" : "4.0-rc-3", + "buildTime" : "20170612150444+0000", + "commitId" : "78d6b5b1e5cdb3dd4e233eb2f2e2bf721c53ca9e", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "4.0", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-4.0-rc-3-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-4.0-rc-3-bin.zip.sha256", + "checksum" : "f4229169204b98dbc2718386b36538cef2fd28e249aec4e9472eb820a93beeb3" +}, { + "version" : "4.0-rc-2", + "buildTime" : "20170607152236+0000", + "commitId" : "14679a04a9d5afc2038c57d9392a36d8cc2e850e", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "4.0", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-4.0-rc-2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-4.0-rc-2-bin.zip.sha256", + "checksum" : "35f92e48b73f6f6d99997094c7dec298fbdae5a3ee989805c6cde0abe24ff6fe" +}, { + "version" : "4.0-rc-1", + "buildTime" : "20170530162617+0000", + "commitId" : "f114de85c48350feb8cf352522f1af471e832a33", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "4.0", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-4.0-rc-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-4.0-rc-1-bin.zip.sha256", + "checksum" : "19d7be3fd349bcf0d36d5a29ded4dd704e5d391e8e8751f32d5bb199636df053" +}, { + "version" : "4.0-milestone-2", + "buildTime" : "20170517143324+0000", + "commitId" : "0e3bb607e7ee1e805455d1c6388f6830f0ab9eca", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "4.0", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-4.0-milestone-2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-4.0-milestone-2-bin.zip.sha256", + "checksum" : "87120d217d97704702136984e51002d979fec49ee2ff1524ed2769d98dd1f5c5" +}, { + "version" : "4.0-milestone-1", + "buildTime" : "20170428074509+0000", + "commitId" : "c1e7532b308e20803a3678ad5b4cfbe682dbb9fc", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "4.0", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-4.0-milestone-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-4.0-milestone-1-bin.zip.sha256", + "checksum" : "56a98b39db79d947e9227646b3fc72376bdc3daf09ce4d885973510057841738" +}, { + "version" : "3.5", + "buildTime" : "20170410133725+0000", + "commitId" : "b762622a185d59ce0cfc9cbc6ab5dd22469e18a6", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-3.5-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-3.5-bin.zip.sha256", + "checksum" : "0b7450798c190ff76b9f9a3d02e18b33d94553f708ebc08ebe09bdf99111d110" +}, { + "version" : "3.5-rc-3", + "buildTime" : "20170404150413+0000", + "commitId" : "b762622a185d59ce0cfc9cbc6ab5dd22469e18a6", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "3.5", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-3.5-rc-3-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-3.5-rc-3-bin.zip.sha256", + "checksum" : "add85f5073e3051a23008e9d371fc49bbb6719b503c9f43a7cf6ab61337e05b9" +}, { + "version" : "3.5-rc-2", + "buildTime" : "20170327155623+0000", + "commitId" : "ec63970cd167993d3dcda346a1d00a286a23b1c9", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "3.5", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-3.5-rc-2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-3.5-rc-2-bin.zip.sha256", + "checksum" : "c23b319547d87b35f16d0bd251a13495b8bc26fe8c7356f678bae766bb5f6ab7" +}, { + "version" : "3.5-rc-1", + "buildTime" : "20170322151607+0000", + "commitId" : "f1f4d6c61299f1225fb2190ca02802c8b821c5ec", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "3.5", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-3.5-rc-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-3.5-rc-1-bin.zip.sha256", + "checksum" : "ed17b488dcc8969503aabcce7e1462fb99518e2dddd6e766b0a18e99685dad50" +}, { + "version" : "3.4.1", + "buildTime" : "20170303194541+0000", + "commitId" : "9eb76efdd3d034dc506c719dac2955efb5ff9a93", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-3.4.1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-3.4.1-bin.zip.sha256", + "checksum" : "db1db193d479cc1202be843f17e4526660cfb0b21b57d62f3a87f88c878af9b2" +}, { + "version" : "3.4", + "buildTime" : "20170220144926+0000", + "commitId" : "73f32d68824582945f5ac1810600e8d87794c3d4", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-3.4-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-3.4-bin.zip.sha256", + "checksum" : "72d0cd4dcdd5e3be165eb7cd7bbd25cf8968baf400323d9ab1bba622c3f72205" +}, { + "version" : "3.4-rc-3", + "buildTime" : "20170213145527+0000", + "commitId" : "6e76fb227406ebcf649a0cb109747149677c4f27", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "3.4", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-3.4-rc-3-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-3.4-rc-3-bin.zip.sha256", + "checksum" : "c492b318d35f65ba1038289067e04d08598d85e0ea98b33430effd0f1b04bc7c" +}, { + "version" : "3.4-rc-2", + "buildTime" : "20170206211728+0000", + "commitId" : "4a4d6ae7c800239c63561020194df4d7a5e82cd7", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "3.4", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-3.4-rc-2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-3.4-rc-2-bin.zip.sha256", + "checksum" : "a6184aab4ea11f0264711e989dabc4486045bc6aaaa30110fff3fd4b5250061f" +}, { + "version" : "3.4-rc-1", + "buildTime" : "20170126154849+0000", + "commitId" : "", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "3.4", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-3.4-rc-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-3.4-rc-1-bin.zip.sha256", + "checksum" : "c8323ca48a9f3e7993bce566e3edc464f459a5a8bfcedbd6ce7e8b7d0c45fd46" +}, { + "version" : "3.3", + "buildTime" : "20170103153104+0000", + "commitId" : "075893a3d0798c0c1f322899b41ceca82e4e134b", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-3.3-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-3.3-bin.zip.sha256", + "checksum" : "c58650c278d8cf0696cab65108ae3c8d95eea9c1938e0eb8b997095d5ca9a292" +}, { + "version" : "3.3-rc-1", + "buildTime" : "20161219160724+0000", + "commitId" : "f381de5273f05b2e7075bbd79f33e8be31247bfc", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "3.3", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-3.3-rc-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-3.3-rc-1-bin.zip.sha256", + "checksum" : "845135efa934b533f732cb96a34538f10c5703cea39474c148e18ac69d4db49f" +}, { + "version" : "3.2.1", + "buildTime" : "20161122151954+0000", + "commitId" : "83b485b914fd4f335ad0e66af9d14aad458d2cc5", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-3.2.1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-3.2.1-bin.zip.sha256", + "checksum" : "9843a3654d3e57dce54db06d05f18b664b95c22bf90c6becccb61fc63ce60689", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-3.2.1-wrapper.jar.sha256", + "wrapperChecksum" : "020ef0245a07b33ca48b12f59415e7e5083cf701ef02690464a8cc2ab3984608" +}, { + "version" : "3.2", + "buildTime" : "20161114123259+0000", + "commitId" : "", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-3.2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-3.2-bin.zip.sha256", + "checksum" : "5321b36837226dc0377047a328f12010f42c7bf88ee4a3b1cee0c11040082935", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-3.2-wrapper.jar.sha256", + "wrapperChecksum" : "d2d3abae74e89cc4200f48d4a08a7e5960363c33ee62272ef5ffbb39f4c7f83e" +}, { + "version" : "3.2-rc-3", + "buildTime" : "20161107153233+0000", + "commitId" : "", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "3.2", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-3.2-rc-3-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-3.2-rc-3-bin.zip.sha256", + "checksum" : "dadae3f8ff6c60637ac749693a074ae181315a7f43c5a6d313565371cbcab740" +}, { + "version" : "3.2-rc-2", + "buildTime" : "20161031160822+0000", + "commitId" : "", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "3.2", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-3.2-rc-2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-3.2-rc-2-bin.zip.sha256", + "checksum" : "45e362f471b9d112f820f3d4cf3901f9c5b112efb309324963078f53a80cff40" +}, { + "version" : "3.2-rc-1", + "buildTime" : "20161024194725+0000", + "commitId" : "", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "3.2", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-3.2-rc-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-3.2-rc-1-bin.zip.sha256", + "checksum" : "fe2ec80d91ab79ddb72e30d25e3646091fafa7cac379c1f46b743bcad52ed4f3" +}, { + "version" : "3.1", + "buildTime" : "20160919105353+0000", + "commitId" : "13f38ba699afd86d7cdc4ed8fd7dd3960c0b1f97", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-3.1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-3.1-bin.zip.sha256", + "checksum" : "c7de3442432253525902f7e8d7eac8b5fd6ce1623f96d76916af6d0e383010fc", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-3.1-wrapper.jar.sha256", + "wrapperChecksum" : "0f49043be582d7a39b671f924c66bd9337b92fa88ff5951225acc60560053067" +}, { + "version" : "3.1-rc-1", + "buildTime" : "20160912123424+0000", + "commitId" : "", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "3.1", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-3.1-rc-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-3.1-rc-1-bin.zip.sha256", + "checksum" : "9d67811a2dee405c920e6bced2d687142e2378eb33c3af960bdbaef39bcb2485" +}, { + "version" : "3.0", + "buildTime" : "20160815131501+0000", + "commitId" : "ad76ba00f59ecb287bd3c037bd25fc3df13ca558", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-3.0-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-3.0-bin.zip.sha256", + "checksum" : "39c906941a474444afbddc38144ed44166825acb0a57b0551dddb04bbf157f80", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-3.0-wrapper.jar.sha256", + "wrapperChecksum" : "42d7a2f636983aa09d21dfeb6e90d21d7a8dad905351390643ce60cc82c8f8a9" +}, { + "version" : "3.0-rc-2", + "buildTime" : "20160808133410+0000", + "commitId" : "", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "3.0", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-3.0-rc-2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-3.0-rc-2-bin.zip.sha256", + "checksum" : "874e3bb85a85961f17cb371cd1291f9c0015bcc1e4bcc9df6e2c29b249438a73" +}, { + "version" : "3.0-rc-1", + "buildTime" : "20160802061335+0000", + "commitId" : "", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "3.0", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-3.0-rc-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-3.0-rc-1-bin.zip.sha256", + "checksum" : "98c51e7f465b61d17578098f9ca8dc081014a551fb4dff66cce52fbfcb23376f" +}, { + "version" : "2.14.1", + "buildTime" : "20160718063837+0000", + "commitId" : "d9e2113d9fb05a5caabba61798bdb8dfdca83719", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-2.14.1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-2.14.1-bin.zip.sha256", + "checksum" : "cfc61eda71f2d12a572822644ce13d2919407595c2aec3e3566d2aab6f97ef39", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-2.14.1-wrapper.jar.sha256", + "wrapperChecksum" : "8e47da0b2656354d059609cae9d44b196d4f9b14512e688ffee4e0eb7e723ae9" +}, { + "version" : "2.14.1-rc-2", + "buildTime" : "20160711105827+0000", + "commitId" : "", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "2.14.1", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-2.14.1-rc-2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-2.14.1-rc-2-bin.zip.sha256", + "checksum" : "784175796a5dc8180c90f3e26249e858f62d400aaec3db81153992f9d749cda6" +}, { + "version" : "2.14.1-rc-1", + "buildTime" : "20160629051303+0000", + "commitId" : "", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "2.14.1", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-2.14.1-rc-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-2.14.1-rc-1-bin.zip.sha256", + "checksum" : "c20590dc930c78d21218d10ddf2c637ca0a2ee895e9c3476b670789aa60b5da4" +}, { + "version" : "3.0-milestone-2", + "buildTime" : "20160621224128+0000", + "commitId" : "", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "3.0", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-3.0-milestone-2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-3.0-milestone-2-bin.zip.sha256", + "checksum" : "5c3e8e9a38c92ae85e05df609c6c1b6f51e5a08b39a26d61bd8a7044268135e7" +}, { + "version" : "2.14", + "buildTime" : "20160614071637+0000", + "commitId" : "cba5fea19f1e0c6a00cc904828a6ec4e11739abc", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-2.14-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-2.14-bin.zip.sha256", + "checksum" : "993b4f33b652c689e9721917d8e021cab6bbd3eae81b39ab2fd46fdb19a928d5", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-2.14-wrapper.jar.sha256", + "wrapperChecksum" : "b5ca811c057b3eb4164c78f4155d667c6092ff98ba91a4c90d29e127426f37a7" +}, { + "version" : "2.14-rc-6", + "buildTime" : "20160610181946+0000", + "commitId" : "", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "2.14", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-2.14-rc-6-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-2.14-rc-6-bin.zip.sha256", + "checksum" : "f26dd25087dc68bd41ab5fdf31532eaf682c3b2693052d4cf9f7c727e2a47231" +}, { + "version" : "3.0-milestone-1", + "buildTime" : "20160608013148+0000", + "commitId" : "", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "3.0", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-3.0-milestone-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-3.0-milestone-1-bin.zip.sha256", + "checksum" : "dfff9f7fbf75d025cf5b4f7b61ea9e24757f74a6934ba7249658e7e2de9d329f" +}, { + "version" : "2.14-rc-5", + "buildTime" : "20160607135817+0000", + "commitId" : "", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "2.14", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-2.14-rc-5-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-2.14-rc-5-bin.zip.sha256", + "checksum" : "dcdd1021345cfabd2c06a345700afe537bde5478cfb8c3ac59d6348eeb0647e9" +}, { + "version" : "2.14-rc-4", + "buildTime" : "20160603110827+0000", + "commitId" : "", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "2.14", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-2.14-rc-4-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-2.14-rc-4-bin.zip.sha256", + "checksum" : "471424c0998851572c8b0ac71807215fc717de1373dcb5b64889e0aa5d147d26" +}, { + "version" : "2.14-rc-3", + "buildTime" : "20160530112111+0000", + "commitId" : "", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "2.14", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-2.14-rc-3-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-2.14-rc-3-bin.zip.sha256", + "checksum" : "6b076728aef0adb281bcc31db7b4f83a061caaa36d61f00dc43e606a3de85578" +}, { + "version" : "2.14-rc-2", + "buildTime" : "20160527175624+0000", + "commitId" : "", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "2.14", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-2.14-rc-2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-2.14-rc-2-bin.zip.sha256", + "checksum" : "eb824186223dec65fc3f9bb2755934b38c1cd005a0e6f0d80e282a2390214735" +}, { + "version" : "2.14-rc-1", + "buildTime" : "20160518093824+0000", + "commitId" : "", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "2.14", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-2.14-rc-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-2.14-rc-1-bin.zip.sha256", + "checksum" : "2ff85eb9eda60f13bc8debec69849e1e2a72b7bfc5af5d26e61a293b5dcbceba" +}, { + "version" : "2.13", + "buildTime" : "20160425041010+0000", + "commitId" : "3b427b1481e46232107303c90be7b05079b05b1c", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-2.13-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-2.13-bin.zip.sha256", + "checksum" : "0f665ec6a5a67865faf7ba0d825afb19c26705ea0597cec80dd191b0f2cbb664", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-2.13-wrapper.jar.sha256", + "wrapperChecksum" : "0c3c576e28b44eddcab6b8b4854f484363dfbcd047657d41654e839835da2c53" +}, { + "version" : "2.13-rc-2", + "buildTime" : "20160419145240+0000", + "commitId" : "", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "2.13", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-2.13-rc-2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-2.13-rc-2-bin.zip.sha256", + "checksum" : "949853dedce0b63898a1aedde39a8e8610ca061a59268a9bc70b496f91e60854" +}, { + "version" : "2.13-rc-1", + "buildTime" : "20160406110211+0000", + "commitId" : "", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "2.13", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-2.13-rc-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-2.13-rc-1-bin.zip.sha256", + "checksum" : "75941a17c6db68b83e82ca27b8d813cc8855b3b8999228b82b1704798f2d4b6b" +}, { + "version" : "2.12", + "buildTime" : "20160314083203+0000", + "commitId" : "b29fbb64ad6b068cb3f05f7e40dc670472129bc0", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-2.12-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-2.12-bin.zip.sha256", + "checksum" : "e77064981906cd0476ff1e0de3e6fef747bd18e140960f1915cca8ff6c33ab5c", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-2.12-wrapper.jar.sha256", + "wrapperChecksum" : "4894520b03c007bf38e983bf933320c483a9790010d997029fa8985dc6128559" +}, { + "version" : "2.12-rc-1", + "buildTime" : "20160307174118+0000", + "commitId" : "", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "2.12", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-2.12-rc-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-2.12-rc-1-bin.zip.sha256", + "checksum" : "bb4ccf5399301d34a1d2a6ae6ae6dfb4bd4db61b499581a1bcbd976008a278a2" +}, { + "version" : "2.11", + "buildTime" : "20160208075916+0000", + "commitId" : "584db1c7c90bdd1de1d1c4c51271c665bfcba978", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-2.11-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-2.11-bin.zip.sha256", + "checksum" : "8d7437082356c9fd6309a4479c8db307673965546daea445c6c72759cd6b1ed6", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-2.11-wrapper.jar.sha256", + "wrapperChecksum" : "0bc7b16a0a3fa52af674de44d1fea48abc4dee3431f3d4829cd9ea329836e596" +}, { + "version" : "2.11-rc-3", + "buildTime" : "20160203190922+0000", + "commitId" : "", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "2.11", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-2.11-rc-3-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-2.11-rc-3-bin.zip.sha256", + "checksum" : "6191865dbe7e2e45125285d6c4316f99d02280dadf8375c290c16e9c995c3188" +}, { + "version" : "2.11-rc-2", + "buildTime" : "20160202162431+0000", + "commitId" : "", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "2.11", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-2.11-rc-2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-2.11-rc-2-bin.zip.sha256", + "checksum" : "7112bffc0e69c35040d4f0a6e71c3593a629831d698e8e85797b2afafae18cee" +}, { + "version" : "2.11-rc-1", + "buildTime" : "20160120084154+0000", + "commitId" : "", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "2.11", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-2.11-rc-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-2.11-rc-1-bin.zip.sha256", + "checksum" : "4af1d57f3f3679452944cfeac172949991ff76257b6e511287b2c02951dd7706" +}, { + "version" : "2.10", + "buildTime" : "20151221211504+0000", + "commitId" : "276bdcded730f53aa8c11b479986aafa58e124a6", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-2.10-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-2.10-bin.zip.sha256", + "checksum" : "66406247f745fc6f05ab382d3f8d3e120c339f34ef54b86f6dc5f6efc18fbb13", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-2.10-wrapper.jar.sha256", + "wrapperChecksum" : "16caeaf66d57a0d1d2087fef6a97efa62de8da69afa5b908f40db35afc4342da" +}, { + "version" : "2.10-rc-2", + "buildTime" : "20151218164026+0000", + "commitId" : "", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "2.10", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-2.10-rc-2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-2.10-rc-2-bin.zip.sha256", + "checksum" : "49650433ba07e8d1cdcb4a3ee6568fbf82ccff61b8cb76e2e7040a2c2f1a9c7b" +}, { + "version" : "2.10-rc-1", + "buildTime" : "20151208224811+0000", + "commitId" : "", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "2.10", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-2.10-rc-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-2.10-rc-1-bin.zip.sha256", + "checksum" : "f1799317f138612764db1c9cf53638e100038b3494803bf38966d55e8db58cef" +}, { + "version" : "2.9", + "buildTime" : "20151117070217+0000", + "commitId" : "", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-2.9-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-2.9-bin.zip.sha256", + "checksum" : "c9159ec4362284c0a38d73237e224deae6139cbde0db4f0f44e1c7691dd3de2f", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-2.9-wrapper.jar.sha256", + "wrapperChecksum" : "b92386e36a96da6be89e91f71087d1394a26c0450231ba0b22e28ee1ee8fa14b" +}, { + "version" : "2.9-rc-1", + "buildTime" : "20151103230218+0000", + "commitId" : "", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "2.9", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-2.9-rc-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-2.9-rc-1-bin.zip.sha256", + "checksum" : "d278e80f9f0590f6eaa9c8b9c69c4d66a281c5a9bbb736524fdba5f74c4875a1" +}, { + "version" : "2.8", + "buildTime" : "20151020034636+0000", + "commitId" : "", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-2.8-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-2.8-bin.zip.sha256", + "checksum" : "a88db9c2f104defdaa8011c58cf6cda6c114298ae3695ecfb8beb30da3a903cb", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-2.8-wrapper.jar.sha256", + "wrapperChecksum" : "198159fcd7d29533c0d37423d66c44729982d5280c9e2c7c5f4b7bc6a9317f6b" +}, { + "version" : "2.8-rc-2", + "buildTime" : "20151015124208+0000", + "commitId" : "", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "2.8", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-2.8-rc-2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-2.8-rc-2-bin.zip.sha256", + "checksum" : "659d6057613a33211f91ce17ce99cfeea03171db771ce842a1968ec49be17696" +}, { + "version" : "2.8-rc-1", + "buildTime" : "20150930171102+0000", + "commitId" : "", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "2.8", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-2.8-rc-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-2.8-rc-1-bin.zip.sha256", + "checksum" : "048735c9f06c654b925156e8ca6237c623982ac3b425c3925b8097c13c77dfab" +}, { + "version" : "2.7", + "buildTime" : "20150914072616+0000", + "commitId" : "", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-2.7-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-2.7-bin.zip.sha256", + "checksum" : "cde43b90945b5304c43ee36e58aab4cc6fb3a3d5f9bd9449bb1709a68371cb06", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-2.7-wrapper.jar.sha256", + "wrapperChecksum" : "d7e1975ccf2dc079d4f0b1010febdad466506d1565c5aa8017c88ebc5e471604" +}, { + "version" : "2.7-rc-2", + "buildTime" : "20150905140615+0000", + "commitId" : "", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "2.7", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-2.7-rc-2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-2.7-rc-2-bin.zip.sha256", + "checksum" : "0854997cd8d77f79a58f3ebc2f19b0b9891d30579fe5392cb5a746b563c20e78" +}, { + "version" : "2.7-rc-1", + "buildTime" : "20150828140928+0000", + "commitId" : "", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "2.7", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-2.7-rc-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-2.7-rc-1-bin.zip.sha256", + "checksum" : "5f54dea2792e1c94bbf2f76189a6b8404cc2492a56ffc06bda6dd4aef2d9d8f8" +}, { + "version" : "2.6", + "buildTime" : "20150810131506+0000", + "commitId" : "", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-2.6-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-2.6-bin.zip.sha256", + "checksum" : "18a98c560af231dfa0d3f8e0802c20103ae986f12428bb0a6f5396e8f14e9c83", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-2.6-wrapper.jar.sha256", + "wrapperChecksum" : "695089a2b306f55f0bd63140fbcc5ead8c383819018188ce484cd5a055bec6e4" +}, { + "version" : "2.6-rc-2", + "buildTime" : "20150804104806+0000", + "commitId" : "", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "2.6", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-2.6-rc-2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-2.6-rc-2-bin.zip.sha256", + "checksum" : "82ad20a1c6408176b50e9c07dae8a1c1e2bf9cdd02d11ace8ee92539672f45db" +}, { + "version" : "2.6-rc-1", + "buildTime" : "20150728171643+0000", + "commitId" : "", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "2.6", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-2.6-rc-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-2.6-rc-1-bin.zip.sha256", + "checksum" : "5d98379be8076d4c11eaaae8a17c6cbe58cc3d6d76ddd08d962ce8e76c2df67e" +}, { + "version" : "2.5", + "buildTime" : "20150708073837+0000", + "commitId" : "", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-2.5-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-2.5-bin.zip.sha256", + "checksum" : "3f953e0cb14bb3f9ebbe11946e84071547bf5dfd575d90cfe9cc4e788da38555", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-2.5-wrapper.jar.sha256", + "wrapperChecksum" : "718d7b25ea60b357fc4cb2212ce10b3f03dfd0e6fe5f23f565b15553ec46bb7e" +}, { + "version" : "2.5-rc-2", + "buildTime" : "20150702151559+0000", + "commitId" : "", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "2.5", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-2.5-rc-2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-2.5-rc-2-bin.zip.sha256", + "checksum" : "8807bc2e29e215e5d4760fb665815477ff7a07b7fddf3d56c38260e5981a2825" +}, { + "version" : "2.5-rc-1", + "buildTime" : "20150623180452+0000", + "commitId" : "", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "2.5", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-2.5-rc-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-2.5-rc-1-bin.zip.sha256", + "checksum" : "1c712b049108d6d0630c78ada345d9adbfc3e1ca4fc6a2bcaecca25634292809" +}, { + "version" : "2.4", + "buildTime" : "20150505080924+0000", + "commitId" : "", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-2.4-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-2.4-bin.zip.sha256", + "checksum" : "c4eaecc621a81f567ded1aede4a5ddb281cc02a03a6a87c4f5502add8fc2f16f", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-2.4-wrapper.jar.sha256", + "wrapperChecksum" : "98420079ffe3e24b1013180d9b9bc2e2ee6a9d867ee232004b75a961d9c18e27" +}, { + "version" : "2.4-rc-2", + "buildTime" : "20150429045020+0000", + "commitId" : "", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "2.4", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-2.4-rc-2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-2.4-rc-2-bin.zip.sha256", + "checksum" : "f36496775b847302e7081b6b051086296882804c7365c0b5e073227ff1cec8ac" +}, { + "version" : "2.4-rc-1", + "buildTime" : "20150423031523+0000", + "commitId" : "", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "2.4", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-2.4-rc-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-2.4-rc-1-bin.zip.sha256", + "checksum" : "ebd8ebc8954b0fb30696d561e41d6a717db42af6c0640099af8e688b10813135" +}, { + "version" : "2.3", + "buildTime" : "20150216050933+0000", + "commitId" : "", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-2.3-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-2.3-bin.zip.sha256", + "checksum" : "010dd9f31849abc3d5644e282943b1c1c355f8e2635c5789833979ce590a3774", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-2.3-wrapper.jar.sha256", + "wrapperChecksum" : "b18a1114ebe81fb7502d40ad9a4f86cef82fff244a865ad45533b4d5e7ff0cc8" +}, { + "version" : "2.3-rc-4", + "buildTime" : "20150211163922+0000", + "commitId" : "", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "2.3", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-2.3-rc-4-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-2.3-rc-4-bin.zip.sha256", + "checksum" : "34878db3896bd7d2b29406cbdb0c156078ab62f3361f9b4df689cfb3814d8906" +}, { + "version" : "2.3-rc-3", + "buildTime" : "20150208183759+0000", + "commitId" : "", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "2.3", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-2.3-rc-3-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-2.3-rc-3-bin.zip.sha256", + "checksum" : "6ce92b77f67f3bf0f543cfb723796919964b969b454e630c8e8b882692e90f23" +}, { + "version" : "2.3-rc-2", + "buildTime" : "20150204105413+0000", + "commitId" : "", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "2.3", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-2.3-rc-2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-2.3-rc-2-bin.zip.sha256", + "checksum" : "1a90fbaf3db2b0b86d7b8b7df5c1760732ef94f984ffd71264b1821076e268c9" +}, { + "version" : "2.3-rc-1", + "buildTime" : "20150127140232+0000", + "commitId" : "", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "2.3", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-2.3-rc-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-2.3-rc-1-bin.zip.sha256", + "checksum" : "a78846df63ed81971eed2db62efca4ce0d595a53a9f1d08e341c7ddae0c04b56" +}, { + "version" : "2.2.1", + "buildTime" : "20141124094535+0000", + "commitId" : "", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-2.2.1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-2.2.1-bin.zip.sha256", + "checksum" : "420aa50738299327b611c10b8304b749e8d3a579407ee9e755b15921d95ff418", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-2.2.1-wrapper.jar.sha256", + "wrapperChecksum" : "5f73d431fd1c5dcc2cf11555b8e486c43249c1099f678ccc6088b05be600a2e1" +}, { + "version" : "2.2.1-rc-1", + "buildTime" : "20141117101237+0000", + "commitId" : "", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "2.2.1", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-2.2.1-rc-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-2.2.1-rc-1-bin.zip.sha256", + "checksum" : "65b87391af213341f19bf74b15f2a506a0136bb8aa466d87ac2b7d55d3ddab71" +}, { + "version" : "2.2", + "buildTime" : "20141110133144+0000", + "commitId" : "", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-2.2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-2.2-bin.zip.sha256", + "checksum" : "91e5655fe11ef414449f218c4fa2985b3a49b7903c57556da109c84fa26e1dfb", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-2.2-wrapper.jar.sha256", + "wrapperChecksum" : "fa9b4294d47cf8db7039cb9b2435de3dd1accb0d3d67926705775a0579dfa397" +}, { + "version" : "2.2-rc-2", + "buildTime" : "20141103170404+0000", + "commitId" : "", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "2.2", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-2.2-rc-2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-2.2-rc-2-bin.zip.sha256", + "checksum" : "d430d7e508116a7c917c394879f85c29e1bdce921f15d12ddf8473fab0564d92" +}, { + "version" : "2.2-rc-1", + "buildTime" : "20141020163257+0000", + "commitId" : "", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "2.2", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-2.2-rc-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-2.2-rc-1-bin.zip.sha256", + "checksum" : "58292023856cc9ceb7e6376efece7ee3c2f95b7d1986d7f5f95b7db5f2120767" +}, { + "version" : "2.1", + "buildTime" : "20140908104039+0000", + "commitId" : "", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-2.1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-2.1-bin.zip.sha256", + "checksum" : "3eee4f9ea2ab0221b89f8e4747a96d4554d00ae46d8d633f11cfda60988bf878", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-2.1-wrapper.jar.sha256", + "wrapperChecksum" : "5e27c39c2336c25748f279d8b105162d14b1a39eb7839d0b658432282d0ce79f" +}, { + "version" : "2.1-rc-4", + "buildTime" : "20140903092053+0000", + "commitId" : "", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "2.1", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-2.1-rc-4-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-2.1-rc-4-bin.zip.sha256", + "checksum" : "9894bc2d60e5a1cca564313f6e68af0b57cd21b95cd68e96c8bd215cab8a944d" +}, { + "version" : "2.1-rc-3", + "buildTime" : "20140901103549+0000", + "commitId" : "", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "2.1", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-2.1-rc-3-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-2.1-rc-3-bin.zip.sha256", + "checksum" : "8a6839bac38e97d2b55fa1ad1e10c0223f3a1e39f4ced9178a8f666fd017829f" +}, { + "version" : "2.1-rc-2", + "buildTime" : "20140828023229+0000", + "commitId" : "", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "2.1", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-2.1-rc-2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-2.1-rc-2-bin.zip.sha256", + "checksum" : "6a641aa38dd88b572d1baa35ac14858b4d7f0f4b83f1677fbb3adfe4391950ce" +}, { + "version" : "2.1-rc-1", + "buildTime" : "20140819194409+0000", + "commitId" : "", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "2.1", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-2.1-rc-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-2.1-rc-1-bin.zip.sha256", + "checksum" : "eeff5d7f43b4ef1c1c29916b29c50c4d8cda32b65ab4e322a6d50f04b7601ae1" +}, { + "version" : "2.0", + "buildTime" : "20140701074534+0000", + "commitId" : "", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-2.0-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-2.0-bin.zip.sha256", + "checksum" : "a1eb880c8755333c4d33c4351b269bebe517002532d3142c0b6164c9e8c081c3", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-2.0-wrapper.jar.sha256", + "wrapperChecksum" : "80a33ca14e3bca3116bc8749550397f739f126190c82bb6399fdc8d10f49661f" +}, { + "version" : "2.0-rc-2", + "buildTime" : "20140623080236+0000", + "commitId" : "", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "2.0", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-2.0-rc-2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-2.0-rc-2-bin.zip.sha256", + "checksum" : "932fbabf535876be50ff1d07a4d7fab7f7ae03275a2c5615da2e8add5d4b7c76" +}, { + "version" : "2.0-rc-1", + "buildTime" : "20140606070241+0000", + "commitId" : "", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "2.0", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-2.0-rc-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-2.0-rc-1-bin.zip.sha256", + "checksum" : "8240c8f325d0233146e1e21dab31de6b7e653870111187d911eaf4704798faec" +}, { + "version" : "1.12", + "buildTime" : "20140429092431+0000", + "commitId" : "", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-1.12-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-1.12-bin.zip.sha256", + "checksum" : "8734b13a401f4311ee418173ed6ca8662d2b0a535be8ff2a43ecb1c13cd406ea", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-1.12-wrapper.jar.sha256", + "wrapperChecksum" : "dea5ceba47b58df0b7f69a65b24357527c1927ccc72b6d4ed90658d39e461b29" +}, { + "version" : "1.12-rc-2", + "buildTime" : "20140423112055+0000", + "commitId" : "", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "1.12", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-1.12-rc-2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-1.12-rc-2-bin.zip.sha256", + "checksum" : "886e40b53d772cacc0cf0a145d464790c125d2cf19c28d93f534eb2ae86186bc" +}, { + "version" : "1.12-rc-1", + "buildTime" : "20140416084626+0000", + "commitId" : "", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "1.12", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-1.12-rc-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-1.12-rc-1-bin.zip.sha256", + "checksum" : "3f9f970be1b02e9d05c95344fb7fd468be7285d38f2e22ea194bc3e12207a250" +}, { + "version" : "1.11", + "buildTime" : "20140211113439+0000", + "commitId" : "", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-1.11-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-1.11-bin.zip.sha256", + "checksum" : "07e235df824964f0e19e73ea2327ce345c44bcd06d44a0123d29ab287fc34091", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-1.11-wrapper.jar.sha256", + "wrapperChecksum" : "a14b54dd3790f5ce1dc08ebbf4b5bcc05f76c4554b43accb84696c970f29aba0" +}, { + "version" : "1.11-rc-1", + "buildTime" : "20140131033453+0000", + "commitId" : "", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "1.11", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-1.11-rc-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-1.11-rc-1-bin.zip.sha256", + "checksum" : "d16d91f5081ce7665dca6562fb200d181f2abbb8c8ffef4ea8b9a3bad4079db4" +}, { + "version" : "1.10", + "buildTime" : "20131217092815+0000", + "commitId" : "", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-1.10-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-1.10-bin.zip.sha256", + "checksum" : "6e6db4fc595f27ceda059d23693b6f6848583950606112b37dfd0e97a0a0a4fe", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-1.10-wrapper.jar.sha256", + "wrapperChecksum" : "6a6c15e222a0458aa33985b87f67954f4222410b43b1e26866197d0a77d93cbc" +}, { + "version" : "1.10-rc-2", + "buildTime" : "20131211105454+0000", + "commitId" : "", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "1.10", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-1.10-rc-2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-1.10-rc-2-bin.zip.sha256", + "checksum" : "6930c2882cf984a7c3ad49b31ed179224ff956d5844d228c814055ae88afa78e" +}, { + "version" : "1.10-rc-1", + "buildTime" : "20131204154128+0000", + "commitId" : "", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "1.10", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-1.10-rc-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-1.10-rc-1-bin.zip.sha256", + "checksum" : "25ca44dbfe099013a0a94ebe098da8b8b279d2d38bcc3737039067f5fc88c1f1" +}, { + "version" : "1.9", + "buildTime" : "20131119082002+0000", + "commitId" : "", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-1.9-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-1.9-bin.zip.sha256", + "checksum" : "097ddc2bcbc9da2bb08cbf6bf8079585e35ad088bafd42e8716bc96405db98e9", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-1.9-wrapper.jar.sha256", + "wrapperChecksum" : "134337ea7c13221f9d1a1c14288a5cf8af9f6060167b903b724b115cf5a0cf73" +}, { + "version" : "1.9-rc-4", + "buildTime" : "20131118093242+0000", + "commitId" : "", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "1.9", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-1.9-rc-4-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-1.9-rc-4-bin.zip.sha256", + "checksum" : "5bdcf356f795ee85607d6aaa5534c26423ce8bf6f2bbd1eda0fb04ae8eebd943" +}, { + "version" : "1.9-rc-3", + "buildTime" : "20131107122642+0000", + "commitId" : "", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "1.9", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-1.9-rc-3-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-1.9-rc-3-bin.zip.sha256", + "checksum" : "4690509db43b713764ce869977414df97c692594c7ba2fa7e421ad5757b256a7" +}, { + "version" : "1.9-rc-2", + "buildTime" : "20131028093320+0000", + "commitId" : "", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "1.9", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-1.9-rc-2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-1.9-rc-2-bin.zip.sha256", + "checksum" : "356844c3e7f7b16d620348f64fdbc8c39455d805855f6975c6f9cc6a357cc89c" +}, { + "version" : "1.9-rc-1", + "buildTime" : "20131023094618+0000", + "commitId" : "", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "1.9", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-1.9-rc-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-1.9-rc-1-bin.zip.sha256", + "checksum" : "667fa5360aea327f57df76a471886791756a0afb2f80fceef15efba1b1588b41" +}, { + "version" : "1.8", + "buildTime" : "20130924073233+0000", + "commitId" : "", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-1.8-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-1.8-bin.zip.sha256", + "checksum" : "a342bbfa15fd18e2482287da4959588f45a41b60910970a16e6d97959aea5703", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-1.8-wrapper.jar.sha256", + "wrapperChecksum" : "13f23a24252ddca0a0fabef212e3c854f5895b081c09d015c91587a5df9bf9f7" +}, { + "version" : "1.8-rc-2", + "buildTime" : "20130919053314+0000", + "commitId" : "", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "1.8", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-1.8-rc-2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-1.8-rc-2-bin.zip.sha256", + "checksum" : "7280197f1cdfdd00616cbbbcf16b078c1ed2bc92ec00c6b3a06b790d020995f8" +}, { + "version" : "1.8-rc-1", + "buildTime" : "20130910130452+0000", + "commitId" : "", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "1.8", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-1.8-rc-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-1.8-rc-1-bin.zip.sha256", + "checksum" : "b4aaf215b700adbe6d4057bfb86361d3d1f9edc45f8ddc5a985cd5c65a6df35f" +}, { + "version" : "1.7", + "buildTime" : "20130806111956+0000", + "commitId" : "", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-1.7-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-1.7-bin.zip.sha256", + "checksum" : "360c97d51621b5a1ecf66748c718594e5f790ae4fbc1499543e0c006033c9d30", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-1.7-wrapper.jar.sha256", + "wrapperChecksum" : "7af529cc3331d38b3d8f8344ddd9b2d3744542b55b68318abd8bb1a6f3812a1c" +}, { + "version" : "1.7-rc-2", + "buildTime" : "20130729120421+0000", + "commitId" : "", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "1.7", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-1.7-rc-2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-1.7-rc-2-bin.zip.sha256", + "checksum" : "db40dbf3ac4545372fdabafbb993344a2cef44ba6ff7436573bca2aba21fc611" +}, { + "version" : "1.7-rc-1", + "buildTime" : "20130702145630+0000", + "commitId" : "", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "1.7", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-1.7-rc-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-1.7-rc-1-bin.zip.sha256", + "checksum" : "d69df2d9b36d0a9c72b0975e791a50f0639cdca8e48e7df7e9aaf6c9d87f176f" +}, { + "version" : "1.6", + "buildTime" : "20130507091214+0000", + "commitId" : "", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-1.6-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-1.6-bin.zip.sha256", + "checksum" : "de3e89d2113923dcc2e0def62d69be0947ceac910abd38b75ec333230183fac4", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-1.6-wrapper.jar.sha256", + "wrapperChecksum" : "66dbcc9f0bc33789ea0bdb4d49c8ea037047bda5647ef696c47bdca65f785159" +}, { + "version" : "1.6-rc-1", + "buildTime" : "20130430131900+0000", + "commitId" : "", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "1.6", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-1.6-rc-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-1.6-rc-1-bin.zip.sha256", + "checksum" : "3fdbb2d087d4916cb4162a6b87d0a1ffb6efcd296d9761001646fa0e21881629" +}, { + "version" : "1.5", + "buildTime" : "20130327140935+0000", + "commitId" : "", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-1.5-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-1.5-bin.zip.sha256", + "checksum" : "a5511a0659caa47d9d74fd2844c9da43157d2f78e63a0223c6289d88f5aaecbe", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-1.5-wrapper.jar.sha256", + "wrapperChecksum" : "9598ffdf7ee26949d8b861ece267c70c802f21f7fc52596693834792d155195a" +}, { + "version" : "1.5-rc-3", + "buildTime" : "20130321155709+0000", + "commitId" : "", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "1.5", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-1.5-rc-3-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-1.5-rc-3-bin.zip.sha256", + "checksum" : "7c99d43ccaea8215df7c5e82a3c1378908197925f4f4748315c75f69ae1dffbe" +}, { + "version" : "1.5-rc-2", + "buildTime" : "20130317011516+0000", + "commitId" : "", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "1.5", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-1.5-rc-2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-1.5-rc-2-bin.zip.sha256", + "checksum" : "f7feac0fc31d919f4f36dc0a6b3450948c40c01e785f590e3991d4178841d415" +}, { + "version" : "1.5-rc-1", + "buildTime" : "20130311120320+0000", + "commitId" : "", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "1.5", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-1.5-rc-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-1.5-rc-1-bin.zip.sha256", + "checksum" : "5e25bf4ac2de6fdd7b0867b14144bd29d16b1e3390f1855b55855e0d7a2f7705" +}, { + "version" : "1.4", + "buildTime" : "20130128034246+0000", + "commitId" : "", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-1.4-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-1.4-bin.zip.sha256", + "checksum" : "cd99e85fbcd0ae8b99e81c9992a2f10cceb7b5f009c3720ef3a0078f4f92e94e", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-1.4-wrapper.jar.sha256", + "wrapperChecksum" : "c95985b7b5684e133c5d45044fd90faaf6c8f7cd2493d61a11c2b8c5b71ef514" +}, { + "version" : "1.4-rc-3", + "buildTime" : "20130125035146+0000", + "commitId" : "", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "1.4", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-1.4-rc-3-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-1.4-rc-3-bin.zip.sha256", + "checksum" : "0b7b24ff52d56586d6d3aae6b3ffdff5de279549e3b80105d159556057b11151" +}, { + "version" : "1.4-rc-2", + "buildTime" : "20130122030632+0000", + "commitId" : "", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "1.4", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-1.4-rc-2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-1.4-rc-2-bin.zip.sha256", + "checksum" : "47a90853ac8eda1294e6dc3334448584a7e48ec2c8e76acadcd05bb6f411424f" +}, { + "version" : "1.4-rc-1", + "buildTime" : "20130117001257+0000", + "commitId" : "", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "1.4", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-1.4-rc-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-1.4-rc-1-bin.zip.sha256", + "checksum" : "133a12cb48dc0383d83ca84e92e8c555b0fdbad8d2b8e636216f739f2ef22921" +}, { + "version" : "1.3", + "buildTime" : "20121120113738+0000", + "commitId" : "", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-1.3-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-1.3-bin.zip.sha256", + "checksum" : "ada68561efbb9f1cae0f9063974cbde15c180351a2f92bc2f1106e39ddcae5ba", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-1.3-wrapper.jar.sha256", + "wrapperChecksum" : "95513eccca99e1ae1aeadc4f69cabd0e7fb64821d3f26c46a489df844c8a7353" +}, { + "version" : "1.3-rc-2", + "buildTime" : "20121115155343+0000", + "commitId" : "", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "1.3", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-1.3-rc-2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-1.3-rc-2-bin.zip.sha256", + "checksum" : "46b3ff676c2a71f8aa4d5345e0b206920d7669f9b777d346dcebd85638afd3d0" +}, { + "version" : "1.3-rc-1", + "buildTime" : "20121112135252+0000", + "commitId" : "", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "1.3", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-1.3-rc-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-1.3-rc-1-bin.zip.sha256", + "checksum" : "f699e313f4e4681c18e1f63074af1d011dd775d8de5ec39bbaab6ce3e2a1e1ee" +}, { + "version" : "1.2", + "buildTime" : "20120912104602+0000", + "commitId" : "", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-1.2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-1.2-bin.zip.sha256", + "checksum" : "eb53da3704d24cabb7565f34a3bf16bcd863c4b0c139917606fb15d4f27c7bdf", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-1.2-wrapper.jar.sha256", + "wrapperChecksum" : "5c91fa893665f3051eae14578fac2df14e737423387e75ffbeccd35f335a3d8b" +}, { + "version" : "1.2-rc-1", + "buildTime" : "20120904174954+0000", + "commitId" : "", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "1.2", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-1.2-rc-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-1.2-rc-1-bin.zip.sha256", + "checksum" : "167410b26ff883d6531f74c13a6c0683f3f21013c8445f35db58ccac9613b788" +}, { + "version" : "1.1", + "buildTime" : "20120731132432+0000", + "commitId" : "", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-1.1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-1.1-bin.zip.sha256", + "checksum" : "552c1fc9f3a1b9668b79cc447370f0263e664ffb6d5c6e1c21e77ce0c8a20d4c", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-1.1-wrapper.jar.sha256", + "wrapperChecksum" : "22c56a9780daeee00e5bf31621f991b68e73eff6fe8afca628a1fe2c50c6038e" +}, { + "version" : "1.1-rc-2", + "buildTime" : "20120726075103+0000", + "commitId" : "", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "1.1", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-1.1-rc-2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-1.1-rc-2-bin.zip.sha256", + "checksum" : "78d904a6f0ec3231c4d032beddcfcee27046075624d724a9d087e0ad7e58d01d" +}, { + "version" : "1.1-rc-1", + "buildTime" : "20120724134404+0000", + "commitId" : "", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "1.1", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-1.1-rc-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-1.1-rc-1-bin.zip.sha256", + "checksum" : "655c3b09260b0db10fa0563bc72fc05d5165b67734a87baa7aa9f708eeeb71ca" +}, { + "version" : "1.0", + "buildTime" : "20120612025621+0200", + "commitId" : "", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-1.0-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-1.0-bin.zip.sha256", + "checksum" : "894bca0360a7e2040815096788f118a2dd106ff6694221b274efb9c32bce0384", + "wrapperChecksumUrl" : "https://services.gradle.org/distributions/gradle-1.0-wrapper.jar.sha256", + "wrapperChecksum" : "87e50531ca7aab675f5bb65755ef78328afd64cf0877e37ad876047a8a014055" +}, { + "version" : "1.0-rc-3", + "buildTime" : "20120430015152+0200", + "commitId" : "", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "1.0", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-1.0-rc-3-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-1.0-rc-3-bin.zip.sha256", + "checksum" : "a4b2a83bd7c173efc8722c111347283d26774a81508a445e4f234df98f711824" +}, { + "version" : "1.0-rc-2", + "buildTime" : "20120425015237+0200", + "commitId" : "", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "1.0", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-1.0-rc-2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-1.0-rc-2-bin.zip.sha256", + "checksum" : "3ebb5367ede52e0f21246c3d06be70b7b66a96f078b2a139fa5c8269d5076911" +}, { + "version" : "1.0-rc-1", + "buildTime" : "20120411121324+0100", + "commitId" : "", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "1.0", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-1.0-rc-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-1.0-rc-1-bin.zip.sha256", + "checksum" : "ae4ae81fb46b108f359efad5fbbcbec50940a793e5b2bfb9929d1e82f2e10c49" +}, { + "version" : "1.0-milestone-9", + "buildTime" : "20120313171009+0100", + "commitId" : "", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-1.0-milestone-9-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-1.0-milestone-9-bin.zip.sha256", + "checksum" : "3499b262c1407d3965250aa40f5a154e77672a5f904e7d82e704ce9fa82719bc" +}, { + "version" : "1.0-milestone-8a", + "buildTime" : "20120220185357+0100", + "commitId" : "", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-1.0-milestone-8a-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-1.0-milestone-8a-bin.zip.sha256", + "checksum" : "9dbace7ad2be4f4afdfde9aa495ff7a5f4cb2666ba5c7c21f01c119d9bbf6bc7" +}, { + "version" : "1.0-milestone-8", + "buildTime" : "20120214022451+0100", + "commitId" : "", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-1.0-milestone-8-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-1.0-milestone-8-bin.zip.sha256", + "checksum" : "480c3fe8c832c16c0d1e0f53b33b6401827baebd73eae2d7a3e89102c1dd8603" +}, { + "version" : "1.0-milestone-7", + "buildTime" : "20120105102443+0000", + "commitId" : "", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-1.0-milestone-7-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-1.0-milestone-7-bin.zip.sha256", + "checksum" : "074c37682e560d398cefa857dcd8fc67c318297d6d5dcd25d9f090332cd7564c" +}, { + "version" : "1.0-milestone-6", + "buildTime" : "20111117065412+0100", + "commitId" : "", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-1.0-milestone-6-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-1.0-milestone-6-bin.zip.sha256", + "checksum" : "9a2c3fca6aad82002a47cf6c721e6e5a45e0cbde3e280c8ef4eebefbe6797b1c" +}, { + "version" : "1.0-milestone-5", + "buildTime" : "20111025055608+0200", + "commitId" : "", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-1.0-milestone-5-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-1.0-milestone-5-bin.zip.sha256", + "checksum" : "b00acd0fef3e6b014e43d62e7a3e6159eac037df28e18057a04dddc6728f2362" +}, { + "version" : "1.0-milestone-4", + "buildTime" : "20110728103822+0200", + "commitId" : "", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : true, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-1.0-milestone-4-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-1.0-milestone-4-bin.zip.sha256", + "checksum" : "882c8115a214495f5b6b9df3ba70dec9345698651e8c320036eed272be55ae6a" +}, { + "version" : "1.0-milestone-3", + "buildTime" : "20110425174011+1000", + "commitId" : "", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-1.0-milestone-3-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-1.0-milestone-3-bin.zip.sha256", + "checksum" : "06d2ee96e45a62fce8ba1f964b083876b789c3f97932b189d57c5f545000d461" +}, { + "version" : "1.0-milestone-2", + "buildTime" : "20110407163255+1000", + "commitId" : "", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-1.0-milestone-2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-1.0-milestone-2-bin.zip.sha256", + "checksum" : "4fff2aa96eed3cec23537c807154ef3595ebaa99aa46d13dc479610ffcaa0574" +}, { + "version" : "1.0-milestone-1", + "buildTime" : "20110227141320+1100", + "commitId" : "", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-1.0-milestone-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-1.0-milestone-1-bin.zip.sha256", + "checksum" : "c2153f01eabba7abd874e8ebad42b7cfe76c4fb978bdbe288757b522a8755d8c" +}, { + "version" : "0.9.2", + "buildTime" : "20110123133421+1100", + "commitId" : "", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-0.9.2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-0.9.2-bin.zip.sha256", + "checksum" : "f94d7642348c558fc05ab5fd6fb947fb1ed8fed5931ddb73dd04fb0de22d669b" +}, { + "version" : "0.9.1", + "buildTime" : "20110102114057+1100", + "commitId" : "", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-0.9.1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-0.9.1-bin.zip.sha256", + "checksum" : "5d48cba95db031ec109ae9ab60561e960b6507046036e8191aa78572ec27e2a5" +}, { + "version" : "0.9", + "buildTime" : "20101219125006+1100", + "commitId" : "", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-0.9-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-0.9-bin.zip.sha256", + "checksum" : "994e46d4b467254a0f25ce92b602618331b9b3ac8b32a094fd84ff0e0ceec135" +}, { + "version" : "0.9-rc-3", + "buildTime" : "20101120131750+1100", + "commitId" : "", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "0.9", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-0.9-rc-3-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-0.9-rc-3-bin.zip.sha256", + "checksum" : "3d07a0de2d8aa1c8ef7e6974c8eb84f47d0300d978c905d046a7d1087a0cb1a8" +}, { + "version" : "0.9-rc-2", + "buildTime" : "20101027082405+1100", + "commitId" : "", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "0.9", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-0.9-rc-2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-0.9-rc-2-bin.zip.sha256", + "checksum" : "94c0b7d51514062c8bdb7d1435a130f4eafda99214274b4330fb77a41b466a01" +}, { + "version" : "0.9-rc-1", + "buildTime" : "20100804080433+1100", + "commitId" : "", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "0.9", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-0.9-rc-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-0.9-rc-1-bin.zip.sha256", + "checksum" : "344b93a2825d29ecacd8c9e9c69037b5badd87b219ef56d88b35b3ba07f9e714" +}, { + "version" : "0.8", + "buildTime" : "20090928140159+0200", + "commitId" : "", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-0.8-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-0.8-bin.zip.sha256", + "checksum" : "940e623ea98e40ea9ad398770a6ebb91a61c0869d394dda81aa86b0f4f0025e7" +}, { + "version" : "0.7", + "buildTime" : "20090720085013+0200", + "commitId" : "", + "current" : false, + "snapshot" : false, + "nightly" : false, + "releaseNightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-0.7-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-0.7-bin.zip.sha256", + "checksum" : "4e354fcb0d5c0b0e7789cd6ee900456edaf993f6dd890c4a1c217d90d2a6a6ad" +} ] \ No newline at end of file diff --git a/.metadata/.plugins/org.eclipse.buildship.core/init.d/eclipsePlugin.gradle b/.metadata/.plugins/org.eclipse.buildship.core/init.d/eclipsePlugin.gradle new file mode 100644 index 0000000..6153e78 --- /dev/null +++ b/.metadata/.plugins/org.eclipse.buildship.core/init.d/eclipsePlugin.gradle @@ -0,0 +1,14 @@ +/******************************************************************************* + * Copyright (c) 2023 Gradle Inc. and others + * + * This program and the accompanying materials are made + * available under the terms of the Eclipse Public License 2.0 + * which is available at https://www.eclipse.org/legal/epl-2.0/ + * + * SPDX-License-Identifier: EPL-2.0 + ******************************************************************************/ +initscript { + allprojects { + apply plugin: "eclipse" + } +} \ No newline at end of file diff --git a/.metadata/.plugins/org.eclipse.buildship.core/project-preferences/blight-game b/.metadata/.plugins/org.eclipse.buildship.core/project-preferences/blight-game new file mode 100644 index 0000000..b7e6497 --- /dev/null +++ b/.metadata/.plugins/org.eclipse.buildship.core/project-preferences/blight-game @@ -0,0 +1,12 @@ +# +#Wed May 06 22:54:49 CEST 2026 +buildDir=build +buildScriptPath=build.gradle +classpath=\n\n\n\t\n\t\t\n\t\n\n\n\t\n\t\t\n\t\n\n\n\t\n\t\t\n\t\n\n\n\t\n\t\t\n\t\n\n\n\t\n\t\t\n\t\n\n\n\t\n\t\t\n\t\n\n\n\t\n\t\t\n\t\n\n\n\t\n\t\t\n\t\n\n\n\t\n\t\t\n\t\n\n\n\t\n\t\t\n\t\n\n\n\t\n\t\t\n\t\n\n\n\t\n\t\t\n\t\n\n\n\t\n\t\t\n\t\n\n\n\t\n\t\t\n\t\n\n\n\t\n\t\t\n\t\n\n\n\t\n\t\t\n\t\n\n\n\t\n\t\t\n\t\n\n\n\t\n\t\t\n\t\n\n\n\t\n\t\t\n\t\n\n\n\t\n\t\t\n\t\n\n\n\t\n\t\t\n\t\n\n\n\t\n\t\t\n\t\n\n\n\t\n\t\t\n\t\n\n\n\t\n\t\t\n\t\n\n\n\t\n\t\t\n\t\n\n\n\t\n\t\t\n\t\n\n\n\t\n\t\t\n\t\n\n\n\t\n\t\t\n\t\n\n\n\t\n\t\t\n\t\n\n\n\t\n\t\t\n\t\n\n\n\t\n\t\t\n\t\n\n\n\t\n\t\t\n\t\n\n\n\t\n\t\t\n\t\n\n\n\t\n\t\t\n\t\n\n\n\t\n\t\t\n\t\n\n\n\t\n\t\t\n\t\n\n\n\t\n\t\t\n\t\n\n\n\t\n\t\t\n\t\n\n\n\t\n\t\t\n\t\n\n\n\t\n\t\t\n\t\n\n\n\t\n\t\t\n\t\n\n\n\t\n\t\t\n\t\n\n\n\t\n\t\t\n\t\n\n\n\t\n\t\t\n\t\n\n\n\t\n\t\t\n\t\n\n\n\t\n\t\t\n\t\n\n\n\t\n\t\t\n\t\n\n\n\t\n\t\t\n\t\n\n\n\t\n\t\t\n\t\n\n\n\t\n\t\t\n\t\n\n\n\t\n\t\t\n\t\n\n\n\t\n\t\t\n\t\n\n\n\t\n\t\t\n\t\n\n\n\t\n\t\t\n\t\n\n\n\t\n\t\t\n\t\n\n\n +derivedResources=.gradle\:build +gradleVersion=8.7 +hasAutoBuildTasks=false +linkedResources= +managedBuilders= +managedNatures= +subprojectPaths= diff --git a/.metadata/.plugins/org.eclipse.buildship.ui/dialog_settings.xml b/.metadata/.plugins/org.eclipse.buildship.ui/dialog_settings.xml new file mode 100644 index 0000000..4498ff9 --- /dev/null +++ b/.metadata/.plugins/org.eclipse.buildship.ui/dialog_settings.xml @@ -0,0 +1,13 @@ + +
+
+ +
+ + + + + +
+
+
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/2/1073fe5c8a4900111396ab8a4c8e537b b/.metadata/.plugins/org.eclipse.core.resources/.history/2/1073fe5c8a4900111396ab8a4c8e537b new file mode 100644 index 0000000..3956c47 --- /dev/null +++ b/.metadata/.plugins/org.eclipse.core.resources/.history/2/1073fe5c8a4900111396ab8a4c8e537b @@ -0,0 +1,12 @@ +arguments= +auto.sync=false +build.scans.enabled=false +connection.gradle.distribution=GRADLE_DISTRIBUTION(WRAPPER) +eclipse.preferences.version=1 +gradle.user.home= +java.home= +jvm.arguments= +offline.mode=false +override.workspace.settings=false +show.console.view=false +show.executions.view=false diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/5/500711f38a4900111396ab8a4c8e537b b/.metadata/.plugins/org.eclipse.core.resources/.history/5/500711f38a4900111396ab8a4c8e537b new file mode 100644 index 0000000..8377c9d --- /dev/null +++ b/.metadata/.plugins/org.eclipse.core.resources/.history/5/500711f38a4900111396ab8a4c8e537b @@ -0,0 +1,35 @@ +package de.blight.game; + +import com.jme3.app.SimpleApplication; +import com.jme3.system.AppSettings; +import de.blight.game.scene.WorldScene; + +public class BlightApp extends SimpleApplication { + + public static void main(String[] args) { + BlightApp app = new BlightApp(); + + AppSettings settings = new AppSettings(true); + settings.setTitle("Blight"); + settings.setResolution(1280, 720); + settings.setFrameRate(60); + settings.setVSync(true); + settings.setSamples(4); + + app.setSettings(settings); + app.setShowSettings(false); + app.start(); + } + + @Override + public void simpleInitApp() { + // Standard-FlyCamera deaktivieren — wir steuern die Kamera selbst + flyCam.setEnabled(false); + + stateManager.attach(new WorldScene()); + } + + @Override + public void simpleUpdate(float tpf) { + } +} diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/7/90d9d2fb8a4900111396ab8a4c8e537b b/.metadata/.plugins/org.eclipse.core.resources/.history/7/90d9d2fb8a4900111396ab8a4c8e537b new file mode 100644 index 0000000..8b341c0 --- /dev/null +++ b/.metadata/.plugins/org.eclipse.core.resources/.history/7/90d9d2fb8a4900111396ab8a4c8e537b @@ -0,0 +1,34 @@ +package de.blight.game; + +import com.jme3.app.SimpleApplication; +import com.jme3.system.AppSettings; +import de.blight.game.scene.WorldScene; + +public class BlightApp extends SimpleApplication { + + public static void main(String[] args) { + BlightApp app = new BlightApp(); + + AppSettings settings = new AppSettings(true); + settings.setTitle("Blight"); + settings.setResolution(1280, 720); + settings.setVSync(true); + settings.setSamples(4); + + app.setSettings(settings); + app.setShowSettings(false); + app.start(); + } + + @Override + public void simpleInitApp() { + // Standard-FlyCamera deaktivieren — wir steuern die Kamera selbst + flyCam.setEnabled(false); + + stateManager.attach(new WorldScene()); + } + + @Override + public void simpleUpdate(float tpf) { + } +} diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/7e/2089c33c8d4900111396ab8a4c8e537b b/.metadata/.plugins/org.eclipse.core.resources/.history/7e/2089c33c8d4900111396ab8a4c8e537b new file mode 100644 index 0000000..5859c5b --- /dev/null +++ b/.metadata/.plugins/org.eclipse.core.resources/.history/7e/2089c33c8d4900111396ab8a4c8e537b @@ -0,0 +1,307 @@ +package de.blight.game.config; + +import com.jme3.app.Application; +import com.jme3.app.SimpleApplication; +import com.jme3.app.state.BaseAppState; +import com.jme3.font.BitmapFont; +import com.jme3.font.BitmapText; +import com.jme3.input.KeyInput; +import com.jme3.input.MouseInput; +import com.jme3.input.RawInputListener; +import com.jme3.input.controls.ActionListener; +import com.jme3.input.controls.MouseButtonTrigger; +import com.jme3.input.event.*; +import com.jme3.input.event.KeyInputEvent; +import com.jme3.input.event.MouseButtonEvent; +import com.jme3.input.event.MouseMotionEvent; +import com.jme3.input.event.JoyAxisEvent; +import com.jme3.input.event.JoyButtonEvent; +import com.jme3.input.event.TouchEvent; +import com.jme3.material.Material; +import com.jme3.material.RenderState; +import com.jme3.math.ColorRGBA; +import com.jme3.math.Vector2f; +import com.jme3.renderer.queue.RenderQueue; +import com.jme3.scene.Geometry; +import com.jme3.scene.Node; +import com.jme3.scene.shape.Quad; + +import java.util.ArrayList; +import java.util.List; + +/** + * Overlay-AppState der die Tastenbelegungs-Maske anzeigt. + * + * ESC → Schließen (ohne Speichern) + * Klick auf Row → wartet auf neue Taste + * ESC während Warten → bricht nur die Zuweisung ab + * Speichern → schreibt JSON, ruft onSave-Callback + */ +public class ConfigScreen extends BaseAppState implements RawInputListener { + + // Farben + private static final ColorRGBA COL_BG = new ColorRGBA(0.05f, 0.05f, 0.08f, 0.88f); + private static final ColorRGBA COL_PANEL = new ColorRGBA(0.10f, 0.10f, 0.16f, 1.00f); + private static final ColorRGBA COL_ROW = new ColorRGBA(0.18f, 0.18f, 0.28f, 1.00f); + private static final ColorRGBA COL_ROW_HOVER = new ColorRGBA(0.25f, 0.25f, 0.40f, 1.00f); + private static final ColorRGBA COL_ROW_WAIT = new ColorRGBA(0.50f, 0.30f, 0.10f, 1.00f); + private static final ColorRGBA COL_BTN_SAVE = new ColorRGBA(0.15f, 0.40f, 0.15f, 1.00f); + private static final ColorRGBA COL_BTN_CANCEL = new ColorRGBA(0.40f, 0.15f, 0.15f, 1.00f); + private static final ColorRGBA COL_TEXT = ColorRGBA.White; + private static final ColorRGBA COL_TEXT_KEY = new ColorRGBA(0.85f, 0.85f, 0.50f, 1.00f); + + // ----------------------------------------------------------------------- + + private SimpleApplication app; + private Node guiNode; + private BitmapFont font; + + private KeyBindings liveBindings; // geteilt mit der ganzen App + private KeyBindings editCopy; // wird beim Öffnen geklont + + private Runnable onSave; // Callback → PlayerInputControl.reloadBindings + + private Node panel; + private List rows = new ArrayList<>(); + private int waitingRow = -1; // -1 = keine Zuweisung aktiv + + // UI-Elemente für Buttons (Bounds in Screen-Koordinaten) + private float saveBtnX, saveBtnY, saveBtnW, saveBtnH; + private float cancelBtnX, cancelBtnY; + + // ----------------------------------------------------------------------- + + private static class Row { + String field; + String label; + BitmapText keyText; + Geometry bg; + float x, y, w, h; // Button-Bounds + } + + // ----------------------------------------------------------------------- + + public ConfigScreen(KeyBindings liveBindings, Runnable onSave) { + this.liveBindings = liveBindings; + this.onSave = onSave; + } + + public boolean isWaiting() { return waitingRow >= 0; } + + // ----------------------------------------------------------------------- + // Lifecycle + // ----------------------------------------------------------------------- + + @Override + protected void initialize(Application app) { + this.app = (SimpleApplication) app; + this.guiNode = this.app.getGuiNode(); + this.font = app.getAssetManager().loadFont("Interface/Fonts/Default.fnt"); + } + + @Override + protected void onEnable() { + editCopy = liveBindings.copy(); + waitingRow = -1; + buildUI(); + app.getInputManager().setCursorVisible(true); + app.getInputManager().addRawInputListener(this); + app.getInputManager().addMapping("_CfgClick", new MouseButtonTrigger(MouseInput.BUTTON_LEFT)); + app.getInputManager().addListener(clickListener, "_CfgClick"); + } + + @Override + protected void onDisable() { + if (panel != null) { guiNode.detachChild(panel); panel = null; } + rows.clear(); + waitingRow = -1; + app.getInputManager().removeRawInputListener(this); + app.getInputManager().deleteMapping("_CfgClick"); + app.getInputManager().setCursorVisible(false); + } + + @Override protected void cleanup(Application app) {} + + // ----------------------------------------------------------------------- + // UI aufbauen + // ----------------------------------------------------------------------- + + private void buildUI() { + float sw = app.getCamera().getWidth(); + float sh = app.getCamera().getHeight(); + + panel = new Node("cfg-panel"); + + // Halbdurchsichtiger Overlay über dem Spiel + addQuad(panel, 0, 0, sw, sh, COL_BG, -2); + + float pw = 720, ph = 440; + float px = (sw - pw) / 2f, py = (sh - ph) / 2f; + addQuad(panel, px, py, pw, ph, COL_PANEL, -1); + + // Titel + BitmapText title = text("TASTENBELEGUNG", 20, COL_TEXT); + centerText(title, px, py + ph - 40, pw); + panel.attachChild(title); + + BitmapText hint = text("Klicke eine Taste um sie neu zu belegen", 14, new ColorRGBA(0.7f, 0.7f, 0.7f, 1f)); + centerText(hint, px, py + ph - 70, pw); + panel.attachChild(hint); + + // Reihen + float rowX = px + 30; + float keyX = px + pw - 220; + float rowW = 180; + float rowH = 36; + float startY = py + ph - 110; + float stepY = 48; + + for (int i = 0; i < KeyBindings.ENTRIES.length; i++) { + String[] entry = KeyBindings.ENTRIES[i]; + float ry = startY - i * stepY; + + BitmapText lbl = text(entry[1], 16, COL_TEXT); + lbl.setLocalTranslation(rowX, ry + rowH - 8, 0); + panel.attachChild(lbl); + + Geometry bg = addQuad(panel, keyX, ry, rowW, rowH, COL_ROW, 0); + + BitmapText kt = text(KeyNames.of(editCopy.get(entry[0])), 16, COL_TEXT_KEY); + kt.setLocalTranslation(keyX + 10, ry + rowH - 8, 1); + panel.attachChild(kt); + + Row row = new Row(); + row.field = entry[0]; + row.label = entry[1]; + row.keyText = kt; + row.bg = bg; + row.x = keyX; row.y = ry; row.w = rowW; row.h = rowH; + rows.add(row); + } + + // Buttons + float btnW = 160, btnH = 42; + float btnY = py + 25; + saveBtnX = px + pw / 2f - btnW - 15; + saveBtnY = btnY; + saveBtnW = btnW; + saveBtnH = btnH; + cancelBtnX = px + pw / 2f + 15; + cancelBtnY = btnY; + + addQuad(panel, saveBtnX, saveBtnY, btnW, btnH, COL_BTN_SAVE, 0); + BitmapText saveLabel = text("Speichern", 16, COL_TEXT); + centerText(saveLabel, saveBtnX, saveBtnY + btnH - 10, btnW); + panel.attachChild(saveLabel); + + addQuad(panel, cancelBtnX, cancelBtnY, btnW, btnH, COL_BTN_CANCEL, 0); + BitmapText cancelLabel = text("Abbrechen", 16, COL_TEXT); + centerText(cancelLabel, cancelBtnX, cancelBtnY + btnH - 10, btnW); + panel.attachChild(cancelLabel); + + guiNode.attachChild(panel); + } + + // ----------------------------------------------------------------------- + // Mausklick + // ----------------------------------------------------------------------- + + private final ActionListener clickListener = (name, isPressed, tpf) -> { + if (!isPressed) return; + Vector2f cursor = app.getInputManager().getCursorPosition(); + + // Reihen prüfen + for (int i = 0; i < rows.size(); i++) { + Row r = rows.get(i); + if (hits(cursor, r.x, r.y, r.w, r.h)) { + waitingRow = i; + r.bg.getMaterial().setColor("Color", COL_ROW_WAIT); + r.keyText.setText("..."); + return; + } + } + + // Speichern + if (hits(cursor, saveBtnX, saveBtnY, saveBtnW, saveBtnH)) { + liveBindings.copyFrom(editCopy); + KeyBindingStore.save(liveBindings); + if (onSave != null) onSave.run(); + setEnabled(false); + return; + } + + // Abbrechen + if (hits(cursor, cancelBtnX, cancelBtnY, saveBtnW, saveBtnH)) { + setEnabled(false); + } + }; + + // ----------------------------------------------------------------------- + // Tastendruck beim Warten auf Zuweisung (RawInputListener) + // ----------------------------------------------------------------------- + + @Override + public void onKeyEvent(KeyInputEvent evt) { + if (!evt.isPressed() || waitingRow < 0) return; + + if (evt.getKeyCode() == KeyInput.KEY_ESCAPE) { + // Zuweisung abbrechen, Maske offen lassen + resetRowColor(waitingRow); + waitingRow = -1; + return; + } + + Row r = rows.get(waitingRow); + editCopy.set(r.field, evt.getKeyCode()); + r.keyText.setText(KeyNames.of(evt.getKeyCode())); + resetRowColor(waitingRow); + waitingRow = -1; + } + + private void resetRowColor(int idx) { + rows.get(idx).bg.getMaterial().setColor("Color", COL_ROW); + } + + // RawInputListener-Pflichtmethoden + @Override public void beginInput() {} + @Override public void endInput() {} + @Override public void onMouseMotionEvent(MouseMotionEvent evt) {} + @Override public void onMouseButtonEvent(MouseButtonEvent evt) {} + @Override public void onJoyAxisEvent(JoyAxisEvent evt) {} + @Override public void onJoyButtonEvent(JoyButtonEvent evt) {} + @Override public void onTouchEvent(TouchEvent evt) {} + + // ----------------------------------------------------------------------- + // Hilfsmethoden + // ----------------------------------------------------------------------- + + private Geometry addQuad(Node parent, float x, float y, float w, float h, ColorRGBA color, float z) { + Geometry geo = new Geometry("q", new Quad(w, h)); + Material mat = new Material(app.getAssetManager(), "Common/MatDefs/Misc/Unshaded.j3md"); + mat.setColor("Color", color.clone()); + if (color.a < 1f) { + mat.getAdditionalRenderState().setBlendMode(RenderState.BlendMode.Alpha); + geo.setQueueBucket(RenderQueue.Bucket.Transparent); + } + geo.setMaterial(mat); + geo.setLocalTranslation(x, y, z); + parent.attachChild(geo); + return geo; + } + + private BitmapText text(String content, int size, ColorRGBA color) { + BitmapText t = new BitmapText(font, false); + t.setSize(size); + t.setColor(color); + t.setText(content); + return t; + } + + private void centerText(BitmapText t, float x, float y, float width) { + t.setLocalTranslation(x + (width - t.getLineWidth()) / 2f, y, 1); + } + + private boolean hits(Vector2f p, float x, float y, float w, float h) { + return p.x >= x && p.x <= x + w && p.y >= y && p.y <= y + h; + } +} diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/98/a08ecd828a4900111396ab8a4c8e537b b/.metadata/.plugins/org.eclipse.core.resources/.history/98/a08ecd828a4900111396ab8a4c8e537b new file mode 100644 index 0000000..a64207a --- /dev/null +++ b/.metadata/.plugins/org.eclipse.core.resources/.history/98/a08ecd828a4900111396ab8a4c8e537b @@ -0,0 +1,90 @@ +package de.blight.game.control; + +import com.jme3.input.InputManager; +import com.jme3.input.KeyInput; +import com.jme3.input.MouseInput; +import com.jme3.input.controls.*; +import com.jme3.math.*; +import com.jme3.renderer.Camera; +import com.jme3.scene.Spatial; + +/** + * Bewegt einen Charakter relativ zur Kamera-Horizontal-Richtung + * und dreht ihn in Bewegungsrichtung. + */ +public class CharacterControl { + + private static final float MOVE_SPEED = 8f; + private static final float ROTATE_SPEED = 5f; + + private final InputManager inputManager; + private final Camera cam; + + private Spatial character; + + // Eingabezustand + private boolean forward, backward, left, right; + + public CharacterControl(InputManager inputManager, Camera cam) { + this.inputManager = inputManager; + this.cam = cam; + registerMappings(); + } + + public void setCharacter(Spatial character) { + this.character = character; + } + + // ----------------------------------------------------------------------- + // Eingabe-Registrierung + // ----------------------------------------------------------------------- + + private void registerMappings() { + inputManager.addMapping("Forward", new KeyTrigger(KeyInput.KEY_W), new KeyTrigger(KeyInput.KEY_UP)); + inputManager.addMapping("Backward", new KeyTrigger(KeyInput.KEY_S), new KeyTrigger(KeyInput.KEY_DOWN)); + inputManager.addMapping("Left", new KeyTrigger(KeyInput.KEY_A), new KeyTrigger(KeyInput.KEY_LEFT)); + inputManager.addMapping("Right", new KeyTrigger(KeyInput.KEY_D), new KeyTrigger(KeyInput.KEY_RIGHT)); + + ActionListener listener = (name, isPressed, tpf) -> { + switch (name) { + case "Forward" -> forward = isPressed; + case "Backward" -> backward = isPressed; + case "Left" -> left = isPressed; + case "Right" -> right = isPressed; + } + }; + + inputManager.addListener(listener, "Forward", "Backward", "Left", "Right"); + } + + // ----------------------------------------------------------------------- + // Update pro Frame + // ----------------------------------------------------------------------- + + public void update(float tpf) { + if (character == null) return; + + // Kamerahorizontale Vorwärtsrichtung (Y ignorieren) + Vector3f camDir = cam.getDirection().clone().setY(0).normalizeLocal(); + Vector3f camLeft = cam.getLeft().clone().setY(0).normalizeLocal(); + + Vector3f moveDir = Vector3f.ZERO.clone(); + if (forward) moveDir.addLocal(camDir); + if (backward) moveDir.subtractLocal(camDir); + if (left) moveDir.addLocal(camLeft); + if (right) moveDir.subtractLocal(camLeft); + + if (moveDir.lengthSquared() > 0.001f) { + moveDir.normalizeLocal(); + character.move(moveDir.mult(MOVE_SPEED * tpf)); + + // Charakter zur Bewegungsrichtung drehen + Quaternion targetRot = new Quaternion(); + targetRot.lookAt(moveDir, Vector3f.UNIT_Y); + + Quaternion current = character.getLocalRotation(); + current.slerp(targetRot, ROTATE_SPEED * tpf); + character.setLocalRotation(current); + } + } +} diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/b9/f019f32b8b4900111396ab8a4c8e537b b/.metadata/.plugins/org.eclipse.core.resources/.history/b9/f019f32b8b4900111396ab8a4c8e537b new file mode 100644 index 0000000..6c0f1c7 --- /dev/null +++ b/.metadata/.plugins/org.eclipse.core.resources/.history/b9/f019f32b8b4900111396ab8a4c8e537b @@ -0,0 +1,33 @@ +package de.blight.game; + +import com.jme3.app.SimpleApplication; +import com.jme3.system.AppSettings; +import de.blight.game.scene.WorldScene; + +public class BlightApp extends SimpleApplication { + + public static void main(String[] args) { + BlightApp app = new BlightApp(); + + AppSettings settings = new AppSettings(true); + settings.setTitle("Blight"); + settings.setResolution(1280, 720); + settings.setSamples(4); + + app.setSettings(settings); + app.setShowSettings(true); + app.start(); + } + + @Override + public void simpleInitApp() { + // Standard-FlyCamera deaktivieren — wir steuern die Kamera selbst + flyCam.setEnabled(false); + + stateManager.attach(new WorldScene()); + } + + @Override + public void simpleUpdate(float tpf) { + } +} diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/dc/10c4d9948a4900111396ab8a4c8e537b b/.metadata/.plugins/org.eclipse.core.resources/.history/dc/10c4d9948a4900111396ab8a4c8e537b new file mode 100644 index 0000000..7877a1e --- /dev/null +++ b/.metadata/.plugins/org.eclipse.core.resources/.history/dc/10c4d9948a4900111396ab8a4c8e537b @@ -0,0 +1 @@ +rootProject.name = 'blight' diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/ea/408ace308b4900111396ab8a4c8e537b b/.metadata/.plugins/org.eclipse.core.resources/.history/ea/408ace308b4900111396ab8a4c8e537b new file mode 100644 index 0000000..738b45a --- /dev/null +++ b/.metadata/.plugins/org.eclipse.core.resources/.history/ea/408ace308b4900111396ab8a4c8e537b @@ -0,0 +1,26 @@ +package de.blight.game; + +import com.jme3.app.SimpleApplication; +import com.jme3.system.AppSettings; +import de.blight.game.scene.WorldScene; + +public class BlightApp extends SimpleApplication { + + public static void main(String[] args) { + BlightApp app = new BlightApp(); + + app.start(); + } + + @Override + public void simpleInitApp() { + // Standard-FlyCamera deaktivieren — wir steuern die Kamera selbst + flyCam.setEnabled(false); + + stateManager.attach(new WorldScene()); + } + + @Override + public void simpleUpdate(float tpf) { + } +} diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/f0/b0f574138b4900111396ab8a4c8e537b b/.metadata/.plugins/org.eclipse.core.resources/.history/f0/b0f574138b4900111396ab8a4c8e537b new file mode 100644 index 0000000..d3af7c8 --- /dev/null +++ b/.metadata/.plugins/org.eclipse.core.resources/.history/f0/b0f574138b4900111396ab8a4c8e537b @@ -0,0 +1,33 @@ +package de.blight.game; + +import com.jme3.app.SimpleApplication; +import com.jme3.system.AppSettings; +import de.blight.game.scene.WorldScene; + +public class BlightApp extends SimpleApplication { + + public static void main(String[] args) { + BlightApp app = new BlightApp(); + + AppSettings settings = new AppSettings(true); + settings.setTitle("Blight"); + settings.setResolution(1280, 720); + settings.setSamples(4); + + app.setSettings(settings); + app.setShowSettings(false); + app.start(); + } + + @Override + public void simpleInitApp() { + // Standard-FlyCamera deaktivieren — wir steuern die Kamera selbst + flyCam.setEnabled(false); + + stateManager.attach(new WorldScene()); + } + + @Override + public void simpleUpdate(float tpf) { + } +} diff --git a/.metadata/.plugins/org.eclipse.core.resources/.projects/.org.eclipse.egit.core.cmp/.location b/.metadata/.plugins/org.eclipse.core.resources/.projects/.org.eclipse.egit.core.cmp/.location new file mode 100644 index 0000000..086253f Binary files /dev/null and b/.metadata/.plugins/org.eclipse.core.resources/.projects/.org.eclipse.egit.core.cmp/.location differ diff --git a/.metadata/.plugins/org.eclipse.core.resources/.projects/.org.eclipse.egit.core.cmp/.markers.snap b/.metadata/.plugins/org.eclipse.core.resources/.projects/.org.eclipse.egit.core.cmp/.markers.snap new file mode 100644 index 0000000..91d6c54 Binary files /dev/null and b/.metadata/.plugins/org.eclipse.core.resources/.projects/.org.eclipse.egit.core.cmp/.markers.snap differ diff --git a/.metadata/.plugins/org.eclipse.core.resources/.projects/.org.eclipse.egit.core.cmp/.syncinfo.snap b/.metadata/.plugins/org.eclipse.core.resources/.projects/.org.eclipse.egit.core.cmp/.syncinfo.snap new file mode 100644 index 0000000..91d6c54 Binary files /dev/null and b/.metadata/.plugins/org.eclipse.core.resources/.projects/.org.eclipse.egit.core.cmp/.syncinfo.snap differ diff --git a/.metadata/.plugins/org.eclipse.core.resources/.projects/blight-game/.indexes/af/history.index b/.metadata/.plugins/org.eclipse.core.resources/.projects/blight-game/.indexes/af/history.index new file mode 100644 index 0000000..f58f0eb Binary files /dev/null and b/.metadata/.plugins/org.eclipse.core.resources/.projects/blight-game/.indexes/af/history.index differ diff --git a/.metadata/.plugins/org.eclipse.core.resources/.projects/blight-game/.indexes/e4/b9/22/81/c/f2/5d/history.index b/.metadata/.plugins/org.eclipse.core.resources/.projects/blight-game/.indexes/e4/b9/22/81/c/f2/5d/history.index new file mode 100644 index 0000000..6a07d65 Binary files /dev/null and b/.metadata/.plugins/org.eclipse.core.resources/.projects/blight-game/.indexes/e4/b9/22/81/c/f2/5d/history.index differ diff --git a/.metadata/.plugins/org.eclipse.core.resources/.projects/blight-game/.indexes/e4/b9/22/81/c/f2/be/history.index b/.metadata/.plugins/org.eclipse.core.resources/.projects/blight-game/.indexes/e4/b9/22/81/c/f2/be/history.index new file mode 100644 index 0000000..45354d5 Binary files /dev/null and b/.metadata/.plugins/org.eclipse.core.resources/.projects/blight-game/.indexes/e4/b9/22/81/c/f2/be/history.index differ diff --git a/.metadata/.plugins/org.eclipse.core.resources/.projects/blight-game/.indexes/e4/b9/22/81/c/f2/history.index b/.metadata/.plugins/org.eclipse.core.resources/.projects/blight-game/.indexes/e4/b9/22/81/c/f2/history.index new file mode 100644 index 0000000..9489504 Binary files /dev/null and b/.metadata/.plugins/org.eclipse.core.resources/.projects/blight-game/.indexes/e4/b9/22/81/c/f2/history.index differ diff --git a/.metadata/.plugins/org.eclipse.core.resources/.projects/blight-game/.indexes/history.index b/.metadata/.plugins/org.eclipse.core.resources/.projects/blight-game/.indexes/history.index new file mode 100644 index 0000000..16492ee Binary files /dev/null and b/.metadata/.plugins/org.eclipse.core.resources/.projects/blight-game/.indexes/history.index differ diff --git a/.metadata/.plugins/org.eclipse.core.resources/.projects/blight-game/.location b/.metadata/.plugins/org.eclipse.core.resources/.projects/blight-game/.location new file mode 100644 index 0000000..2e68d47 Binary files /dev/null and b/.metadata/.plugins/org.eclipse.core.resources/.projects/blight-game/.location differ diff --git a/.metadata/.plugins/org.eclipse.core.resources/.projects/blight-game/.markers b/.metadata/.plugins/org.eclipse.core.resources/.projects/blight-game/.markers new file mode 100644 index 0000000..78b801f Binary files /dev/null and b/.metadata/.plugins/org.eclipse.core.resources/.projects/blight-game/.markers differ diff --git a/.metadata/.plugins/org.eclipse.core.resources/.projects/blight-game/.markers.snap b/.metadata/.plugins/org.eclipse.core.resources/.projects/blight-game/.markers.snap new file mode 100644 index 0000000..74ee311 Binary files /dev/null and b/.metadata/.plugins/org.eclipse.core.resources/.projects/blight-game/.markers.snap differ diff --git a/.metadata/.plugins/org.eclipse.core.resources/.projects/blight-game/.syncinfo.snap b/.metadata/.plugins/org.eclipse.core.resources/.projects/blight-game/.syncinfo.snap new file mode 100644 index 0000000..91d6c54 Binary files /dev/null and b/.metadata/.plugins/org.eclipse.core.resources/.projects/blight-game/.syncinfo.snap differ diff --git a/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/history.version b/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/history.version new file mode 100644 index 0000000..25cb955 --- /dev/null +++ b/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/history.version @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.index b/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.index new file mode 100644 index 0000000..12acdc0 Binary files /dev/null and b/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.index differ diff --git a/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.version b/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.version new file mode 100644 index 0000000..6b2aaa7 --- /dev/null +++ b/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.version @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/.metadata/.plugins/org.eclipse.core.resources/.root/.markers.snap b/.metadata/.plugins/org.eclipse.core.resources/.root/.markers.snap new file mode 100644 index 0000000..bdb00bf Binary files /dev/null and b/.metadata/.plugins/org.eclipse.core.resources/.root/.markers.snap differ diff --git a/.metadata/.plugins/org.eclipse.core.resources/.root/2.tree b/.metadata/.plugins/org.eclipse.core.resources/.root/2.tree new file mode 100644 index 0000000..0fb4d8a Binary files /dev/null and b/.metadata/.plugins/org.eclipse.core.resources/.root/2.tree differ diff --git a/.metadata/.plugins/org.eclipse.core.resources/.safetable/org.eclipse.core.resources b/.metadata/.plugins/org.eclipse.core.resources/.safetable/org.eclipse.core.resources new file mode 100644 index 0000000..22417f5 Binary files /dev/null and b/.metadata/.plugins/org.eclipse.core.resources/.safetable/org.eclipse.core.resources differ diff --git a/.metadata/.plugins/org.eclipse.core.resources/2.snap b/.metadata/.plugins/org.eclipse.core.resources/2.snap new file mode 100644 index 0000000..96076fa Binary files /dev/null and b/.metadata/.plugins/org.eclipse.core.resources/2.snap differ diff --git a/.metadata/.plugins/org.eclipse.debug.ui/launchConfigurationHistory.xml b/.metadata/.plugins/org.eclipse.debug.ui/launchConfigurationHistory.xml new file mode 100644 index 0000000..c83f1a9 --- /dev/null +++ b/.metadata/.plugins/org.eclipse.debug.ui/launchConfigurationHistory.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/.metadata/.plugins/org.eclipse.e4.workbench/workbench.xmi b/.metadata/.plugins/org.eclipse.e4.workbench/workbench.xmi new file mode 100644 index 0000000..1c29e6a --- /dev/null +++ b/.metadata/.plugins/org.eclipse.e4.workbench/workbench.xmi @@ -0,0 +1,2764 @@ + + + + activeSchemeId:org.eclipse.ui.defaultAcceleratorConfiguration + + + + + + + + topLevel + shellMaximized + + + + + persp.actionSet:org.eclipse.mylyn.tasks.ui.navigation + persp.actionSet:org.eclipse.ui.cheatsheets.actionSet + persp.actionSet:org.eclipse.search.searchActionSet + persp.actionSet:org.eclipse.text.quicksearch.actionSet + persp.actionSet:org.eclipse.ui.edit.text.actionSet.annotationNavigation + persp.actionSet:org.eclipse.ui.edit.text.actionSet.navigation + persp.actionSet:org.eclipse.ui.edit.text.actionSet.convertLineDelimitersTo + persp.actionSet:org.eclipse.ui.externaltools.ExternalToolsSet + persp.actionSet:org.eclipse.ui.actionSet.keyBindings + persp.actionSet:org.eclipse.ui.actionSet.openFiles + persp.actionSet:org.springsource.ide.eclipse.commons.launch.actionSet + persp.actionSet:org.eclipse.debug.ui.launchActionSet + persp.actionSet:org.eclipse.jdt.ui.JavaActionSet + persp.actionSet:org.eclipse.jdt.ui.JavaElementCreationActionSet + persp.actionSet:org.eclipse.ui.NavigateActionSet + persp.viewSC:org.eclipse.jdt.ui.PackageExplorer + persp.viewSC:org.eclipse.jdt.ui.TypeHierarchy + persp.viewSC:org.eclipse.jdt.ui.SourceView + persp.viewSC:org.eclipse.jdt.ui.JavadocView + persp.viewSC:org.eclipse.search.ui.views.SearchView + persp.viewSC:org.eclipse.ui.console.ConsoleView + persp.viewSC:org.eclipse.ui.views.ContentOutline + persp.viewSC:org.eclipse.ui.views.ProblemView + persp.viewSC:org.eclipse.ui.views.TaskList + persp.viewSC:org.eclipse.ui.views.ProgressView + persp.viewSC:org.eclipse.ui.navigator.ProjectExplorer + persp.viewSC:org.eclipse.ui.texteditor.TemplatesView + persp.viewSC:org.eclipse.pde.runtime.LogView + persp.newWizSC:org.eclipse.jdt.ui.wizards.JavaProjectWizard + persp.newWizSC:org.eclipse.jdt.ui.wizards.NewPackageCreationWizard + persp.newWizSC:org.eclipse.jdt.ui.wizards.NewClassCreationWizard + persp.newWizSC:org.eclipse.jdt.ui.wizards.NewInterfaceCreationWizard + persp.newWizSC:org.eclipse.jdt.ui.wizards.NewEnumCreationWizard + persp.newWizSC:org.eclipse.jdt.ui.wizards.NewRecordCreationWizard + persp.newWizSC:org.eclipse.jdt.ui.wizards.NewAnnotationCreationWizard + persp.newWizSC:org.eclipse.jdt.ui.wizards.NewSourceFolderCreationWizard + persp.newWizSC:org.eclipse.jdt.ui.wizards.NewSnippetFileCreationWizard + persp.newWizSC:org.eclipse.jdt.ui.wizards.NewJavaWorkingSetWizard + persp.newWizSC:org.eclipse.ui.wizards.new.folder + persp.newWizSC:org.eclipse.ui.wizards.new.file + persp.newWizSC:org.eclipse.ui.editors.wizards.UntitledTextFileWizard + persp.perspSC:org.eclipse.jdt.ui.JavaBrowsingPerspective + persp.perspSC:org.eclipse.debug.ui.DebugPerspective + persp.showIn:org.eclipse.jdt.ui.PackageExplorer + persp.showIn:org.eclipse.team.ui.GenericHistoryView + persp.showIn:org.eclipse.ui.navigator.ProjectExplorer + persp.viewSC:org.eclipse.mylyn.tasks.ui.views.tasks + persp.newWizSC:org.eclipse.mylyn.tasks.ui.wizards.new.repository.task + persp.viewSC:org.eclipse.terminal.view.ui.TerminalsView + persp.showIn:org.eclipse.terminal.view.ui.TerminalsView + persp.actionSet:org.eclipse.debug.ui.breakpointActionSet + persp.actionSet:org.eclipse.jdt.debug.ui.JDTDebugActionSet + persp.newWizSC:org.eclipse.m2e.core.wizards.Maven2ProjectWizard + persp.newWizSC:org.springsource.ide.eclipse.commons.gettingstarted.wizard.boot.NewSpringBootWizard + persp.newWizSC:org.springsource.ide.eclipse.gettingstarted.wizards.import.generic.newalias + persp.actionSet:org.eclipse.eclemma.ui.CoverageActionSet + persp.showIn:org.eclipse.eclemma.ui.CoverageView + persp.viewSC:org.eclipse.jdt.bcoview.views.BytecodeOutlineView + persp.showIn:org.eclipse.egit.ui.RepositoriesView + persp.newWizSC:org.eclipse.jdt.junit.wizards.NewTestCaseCreationWizard + persp.actionSet:org.eclipse.jdt.junit.JUnitActionSet + persp.viewSC:org.eclipse.ant.ui.views.AntView + persp.editorOnboardingImageUri:platform:/plugin/org.eclipse.jdt.ui/$nl$/icons/full/onboarding_jperspective.svg + persp.editorOnboardingText:Open a file or drop files here to open them. + persp.editorOnboardingCommand:Find Actions$$$Ctrl+3 + persp.editorOnboardingCommand:Show Key Assist$$$Shift+Ctrl+L + persp.editorOnboardingCommand:New$$$Ctrl+N + persp.editorOnboardingCommand:Open Type$$$Shift+Ctrl+T + + + + + org.eclipse.e4.primaryNavigationStack + + View + categoryTag:Java + + + View + categoryTag:Java + + + View + categoryTag:General + + + View + categoryTag:Java + + + + + View + categoryTag:Spring + + + + + + View + categoryTag:Git + + + + + + + + org.eclipse.e4.secondaryNavigationStack + + View + categoryTag:General + + + View + categoryTag:General + + + View + categoryTag:General + + + View + categoryTag:Mylyn + + + View + categoryTag:Java + + + View + categoryTag:Ant + + + + + org.eclipse.e4.secondaryDataStack + Oomph + Gradle + + View + categoryTag:General + + + View + categoryTag:Java + + + View + categoryTag:Java + + + View + categoryTag:General + + + View + categoryTag:General + + + View + categoryTag:General + + + View + categoryTag:General + + + View + categoryTag:Terminal + + + View + categoryTag:Gradle + + + View + categoryTag:Gradle + + + View + categoryTag:Oomph + NoRestore + + + View + categoryTag:Oomph + NoRestore + + + + + + + + + View + categoryTag:Help + + + View + categoryTag:General + + + View + categoryTag:Help + + + + + + + View + categoryTag:Help + + + + + + View + categoryTag:General + + ViewMenu + menuContribution:menu + + + + + + + View + categoryTag:Help + + + + EditorStack + org.eclipse.e4.primaryDataStack + active + noFocus + + + Editor + removeOnHide + org.eclipse.buildship.ui.gradlebuildscripteditor + + + + Editor + removeOnHide + org.eclipse.jdt.ui.CompilationUnitEditor + + + + Editor + removeOnHide + org.eclipse.jdt.ui.CompilationUnitEditor + active + + + + + + + + View + categoryTag:Java + + ViewMenu + menuContribution:menu + + + + + + + View + categoryTag:Java + + + + + View + categoryTag:General + + + + + + View + categoryTag:General + + ViewMenu + menuContribution:menu + + + + + + + View + categoryTag:Java + + + + + View + categoryTag:Java + + + + + View + categoryTag:General + + + + + + View + categoryTag:General + + ViewMenu + menuContribution:menu + + + + + + + View + categoryTag:General + + + + + View + categoryTag:General + + + + + + View + categoryTag:General + + ViewMenu + menuContribution:menu + + + + + + + View + categoryTag:General + + + + + View + categoryTag:General + + + + + View + categoryTag:Mylyn + + + + + View + categoryTag:Terminal + + + + + View + categoryTag:Java + + + + + View + categoryTag:Git + + + + + View + categoryTag:Java + + + + + + View + categoryTag:Spring + + ViewMenu + menuContribution:menu + + + + + + + View + categoryTag:Ant + + + + + + View + categoryTag:Gradle + + ViewMenu + menuContribution:menu + + + + + + + + View + categoryTag:Gradle + + ViewMenu + menuContribution:menu + + + + + + + + View + categoryTag:Oomph + NoRestore + + ViewMenu + menuContribution:menu + + + + + + + + View + categoryTag:Oomph + NoRestore + + ViewMenu + menuContribution:menu + + + + + + toolbarSeparator + + + + Draggable + + + + toolbarSeparator + + + + Draggable + + + + + toolbarSeparator + + + + Draggable + + + Draggable + + + Draggable + + + Draggable + + + toolbarSeparator + + + + Draggable + + + + Draggable + + + toolbarSeparator + + + + toolbarSeparator + + + + Draggable + + + stretch + SHOW_RESTORE_MENU + + + Draggable + HIDEABLE + SHOW_RESTORE_MENU + + + + + stretch + + + Draggable + + + Draggable + + + + + TrimStack + Draggable + + + + + + + + + + + + + + + + + + + platform:gtk + + + + + + platform:gtk + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + platform:gtk + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Editor + removeOnHide + + + + + View + categoryTag:Ant + + + + + View + categoryTag:Gradle + + + + + View + categoryTag:Gradle + + + + + View + categoryTag:Debug + + + + + View + categoryTag:Debug + + + + + View + categoryTag:Debug + + + + + View + categoryTag:Debug + + + + + View + categoryTag:Debug + + + + + View + categoryTag:Debug + + + + + View + categoryTag:Debug + + + View + categoryTag:Debug + + + + + View + categoryTag:Java + + + + + View + categoryTag:Git + + + + + View + categoryTag:Git + + + + + View + categoryTag:Git + + + + + View + categoryTag:Git + NoRestore + + + + + View + categoryTag:Git + + + + + View + categoryTag:Help + + + + + View + categoryTag:Java + + + + + View + categoryTag:Java + + + + + View + categoryTag:Debug + + + + + View + categoryTag:Java + + + + + View + categoryTag:Java + + + + + View + categoryTag:Java + + + + + View + categoryTag:Java Browsing + + + + + View + categoryTag:Java Browsing + + + + + View + categoryTag:Java Browsing + + + + + View + categoryTag:Java Browsing + + + + + View + categoryTag:Java + + + + + View + categoryTag:General + + + + + View + categoryTag:Java + + + + + View + categoryTag:Java + + + + + View + categoryTag:Docker + + + + + View + categoryTag:Docker + + + + + View + categoryTag:Docker + + + + + View + categoryTag:Docker + + + + + View + categoryTag:Language Servers + + + + + View + categoryTag:Language Servers + + + + + View + categoryTag:Language Servers + + + + + View + categoryTag:Maven + + + + + View + categoryTag:Maven + + + + + View + categoryTag:Maven + + + + + View + categoryTag:Mylyn + + + + + View + categoryTag:Mylyn + + + + + View + categoryTag:Mylyn + + + + + View + categoryTag:Mylyn + + + + + View + categoryTag:Mylyn + + + + + View + categoryTag:Mylyn + + + + + View + categoryTag:Oomph + + + + + View + categoryTag:Oomph + NoRestore + + + + + View + categoryTag:Plug-in Development + + + + + View + categoryTag:General + + + + + View + categoryTag:Version Control (Team) + + + + + View + categoryTag:Version Control (Team) + + + + + View + categoryTag:Terminal + + + View + categoryTag:Help + + + + + View + categoryTag:General + + + + + View + categoryTag:General + + + + + View + categoryTag:Help + + + + + View + categoryTag:General + + + + + View + categoryTag:General + + + + + View + categoryTag:General + + + + + View + categoryTag:General + + + + + View + categoryTag:General + + + + + View + categoryTag:General + + + + + View + categoryTag:General + + + + + View + categoryTag:General + + + + + View + categoryTag:General + + + + + View + categoryTag:General + + + + + View + categoryTag:General + + + + + View + categoryTag:Spring + + + + + View + categoryTag:Spring + + + + + View + categoryTag:Spring + + + + glue + move_after:PerspectiveSpacer + SHOW_RESTORE_MENU + + + move_after:Spacer Glue + HIDEABLE + SHOW_RESTORE_MENU + + + glue + move_after:SearchField + SHOW_RESTORE_MENU + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/.metadata/.plugins/org.eclipse.jdt.core/1007707583.index b/.metadata/.plugins/org.eclipse.jdt.core/1007707583.index new file mode 100644 index 0000000..ec5f85a Binary files /dev/null and b/.metadata/.plugins/org.eclipse.jdt.core/1007707583.index differ diff --git a/.metadata/.plugins/org.eclipse.jdt.core/104128081.index b/.metadata/.plugins/org.eclipse.jdt.core/104128081.index new file mode 100644 index 0000000..2f6e1c1 Binary files /dev/null and b/.metadata/.plugins/org.eclipse.jdt.core/104128081.index differ diff --git a/.metadata/.plugins/org.eclipse.jdt.core/1124510679.index b/.metadata/.plugins/org.eclipse.jdt.core/1124510679.index new file mode 100644 index 0000000..2d2095c Binary files /dev/null and b/.metadata/.plugins/org.eclipse.jdt.core/1124510679.index differ diff --git a/.metadata/.plugins/org.eclipse.jdt.core/1136998059.index b/.metadata/.plugins/org.eclipse.jdt.core/1136998059.index new file mode 100644 index 0000000..4dd6727 Binary files /dev/null and b/.metadata/.plugins/org.eclipse.jdt.core/1136998059.index differ diff --git a/.metadata/.plugins/org.eclipse.jdt.core/1305835383.index b/.metadata/.plugins/org.eclipse.jdt.core/1305835383.index new file mode 100644 index 0000000..c136a22 Binary files /dev/null and b/.metadata/.plugins/org.eclipse.jdt.core/1305835383.index differ diff --git a/.metadata/.plugins/org.eclipse.jdt.core/1309346846.index b/.metadata/.plugins/org.eclipse.jdt.core/1309346846.index new file mode 100644 index 0000000..1075d7d Binary files /dev/null and b/.metadata/.plugins/org.eclipse.jdt.core/1309346846.index differ diff --git a/.metadata/.plugins/org.eclipse.jdt.core/1317406562.index b/.metadata/.plugins/org.eclipse.jdt.core/1317406562.index new file mode 100644 index 0000000..4dd6727 Binary files /dev/null and b/.metadata/.plugins/org.eclipse.jdt.core/1317406562.index differ diff --git a/.metadata/.plugins/org.eclipse.jdt.core/1350656539.index b/.metadata/.plugins/org.eclipse.jdt.core/1350656539.index new file mode 100644 index 0000000..c1fc277 Binary files /dev/null and b/.metadata/.plugins/org.eclipse.jdt.core/1350656539.index differ diff --git a/.metadata/.plugins/org.eclipse.jdt.core/1351491558.index b/.metadata/.plugins/org.eclipse.jdt.core/1351491558.index new file mode 100644 index 0000000..c136a22 Binary files /dev/null and b/.metadata/.plugins/org.eclipse.jdt.core/1351491558.index differ diff --git a/.metadata/.plugins/org.eclipse.jdt.core/1462452114.index b/.metadata/.plugins/org.eclipse.jdt.core/1462452114.index new file mode 100644 index 0000000..c1fc277 Binary files /dev/null and b/.metadata/.plugins/org.eclipse.jdt.core/1462452114.index differ diff --git a/.metadata/.plugins/org.eclipse.jdt.core/1490162601.index b/.metadata/.plugins/org.eclipse.jdt.core/1490162601.index new file mode 100644 index 0000000..c1fc277 Binary files /dev/null and b/.metadata/.plugins/org.eclipse.jdt.core/1490162601.index differ diff --git a/.metadata/.plugins/org.eclipse.jdt.core/1545642898.index b/.metadata/.plugins/org.eclipse.jdt.core/1545642898.index new file mode 100644 index 0000000..c1fc277 Binary files /dev/null and b/.metadata/.plugins/org.eclipse.jdt.core/1545642898.index differ diff --git a/.metadata/.plugins/org.eclipse.jdt.core/1550771283.index b/.metadata/.plugins/org.eclipse.jdt.core/1550771283.index new file mode 100644 index 0000000..48c52ed Binary files /dev/null and b/.metadata/.plugins/org.eclipse.jdt.core/1550771283.index differ diff --git a/.metadata/.plugins/org.eclipse.jdt.core/1578672902.index b/.metadata/.plugins/org.eclipse.jdt.core/1578672902.index new file mode 100644 index 0000000..fa97256 Binary files /dev/null and b/.metadata/.plugins/org.eclipse.jdt.core/1578672902.index differ diff --git a/.metadata/.plugins/org.eclipse.jdt.core/1585095811.index b/.metadata/.plugins/org.eclipse.jdt.core/1585095811.index new file mode 100644 index 0000000..08502ef Binary files /dev/null and b/.metadata/.plugins/org.eclipse.jdt.core/1585095811.index differ diff --git a/.metadata/.plugins/org.eclipse.jdt.core/1608883781.index b/.metadata/.plugins/org.eclipse.jdt.core/1608883781.index new file mode 100644 index 0000000..4dd6727 Binary files /dev/null and b/.metadata/.plugins/org.eclipse.jdt.core/1608883781.index differ diff --git a/.metadata/.plugins/org.eclipse.jdt.core/16257995.index b/.metadata/.plugins/org.eclipse.jdt.core/16257995.index new file mode 100644 index 0000000..97e5408 Binary files /dev/null and b/.metadata/.plugins/org.eclipse.jdt.core/16257995.index differ diff --git a/.metadata/.plugins/org.eclipse.jdt.core/1703316476.index b/.metadata/.plugins/org.eclipse.jdt.core/1703316476.index new file mode 100644 index 0000000..5b5a5b7 Binary files /dev/null and b/.metadata/.plugins/org.eclipse.jdt.core/1703316476.index differ diff --git a/.metadata/.plugins/org.eclipse.jdt.core/1738064530.index b/.metadata/.plugins/org.eclipse.jdt.core/1738064530.index new file mode 100644 index 0000000..6c9585d Binary files /dev/null and b/.metadata/.plugins/org.eclipse.jdt.core/1738064530.index differ diff --git a/.metadata/.plugins/org.eclipse.jdt.core/1865797976.index b/.metadata/.plugins/org.eclipse.jdt.core/1865797976.index new file mode 100644 index 0000000..01d2b95 Binary files /dev/null and b/.metadata/.plugins/org.eclipse.jdt.core/1865797976.index differ diff --git a/.metadata/.plugins/org.eclipse.jdt.core/1989349782.index b/.metadata/.plugins/org.eclipse.jdt.core/1989349782.index new file mode 100644 index 0000000..1075d7d Binary files /dev/null and b/.metadata/.plugins/org.eclipse.jdt.core/1989349782.index differ diff --git a/.metadata/.plugins/org.eclipse.jdt.core/2356684838.index b/.metadata/.plugins/org.eclipse.jdt.core/2356684838.index new file mode 100644 index 0000000..c1fc277 Binary files /dev/null and b/.metadata/.plugins/org.eclipse.jdt.core/2356684838.index differ diff --git a/.metadata/.plugins/org.eclipse.jdt.core/2392911294.index b/.metadata/.plugins/org.eclipse.jdt.core/2392911294.index new file mode 100644 index 0000000..6c9585d Binary files /dev/null and b/.metadata/.plugins/org.eclipse.jdt.core/2392911294.index differ diff --git a/.metadata/.plugins/org.eclipse.jdt.core/24151692.index b/.metadata/.plugins/org.eclipse.jdt.core/24151692.index new file mode 100644 index 0000000..1075d7d Binary files /dev/null and b/.metadata/.plugins/org.eclipse.jdt.core/24151692.index differ diff --git a/.metadata/.plugins/org.eclipse.jdt.core/2479985475.index b/.metadata/.plugins/org.eclipse.jdt.core/2479985475.index new file mode 100644 index 0000000..d9983f7 Binary files /dev/null and b/.metadata/.plugins/org.eclipse.jdt.core/2479985475.index differ diff --git a/.metadata/.plugins/org.eclipse.jdt.core/2497820567.index b/.metadata/.plugins/org.eclipse.jdt.core/2497820567.index new file mode 100644 index 0000000..067d0fd Binary files /dev/null and b/.metadata/.plugins/org.eclipse.jdt.core/2497820567.index differ diff --git a/.metadata/.plugins/org.eclipse.jdt.core/262304292.index b/.metadata/.plugins/org.eclipse.jdt.core/262304292.index new file mode 100644 index 0000000..c1fc277 Binary files /dev/null and b/.metadata/.plugins/org.eclipse.jdt.core/262304292.index differ diff --git a/.metadata/.plugins/org.eclipse.jdt.core/2696219173.index b/.metadata/.plugins/org.eclipse.jdt.core/2696219173.index new file mode 100644 index 0000000..6c9585d Binary files /dev/null and b/.metadata/.plugins/org.eclipse.jdt.core/2696219173.index differ diff --git a/.metadata/.plugins/org.eclipse.jdt.core/2722916612.index b/.metadata/.plugins/org.eclipse.jdt.core/2722916612.index new file mode 100644 index 0000000..6c9585d Binary files /dev/null and b/.metadata/.plugins/org.eclipse.jdt.core/2722916612.index differ diff --git a/.metadata/.plugins/org.eclipse.jdt.core/2783277246.index b/.metadata/.plugins/org.eclipse.jdt.core/2783277246.index new file mode 100644 index 0000000..4dd6727 Binary files /dev/null and b/.metadata/.plugins/org.eclipse.jdt.core/2783277246.index differ diff --git a/.metadata/.plugins/org.eclipse.jdt.core/2865784985.index b/.metadata/.plugins/org.eclipse.jdt.core/2865784985.index new file mode 100644 index 0000000..ce9ef3d Binary files /dev/null and b/.metadata/.plugins/org.eclipse.jdt.core/2865784985.index differ diff --git a/.metadata/.plugins/org.eclipse.jdt.core/2893713661.index b/.metadata/.plugins/org.eclipse.jdt.core/2893713661.index new file mode 100644 index 0000000..6c9585d Binary files /dev/null and b/.metadata/.plugins/org.eclipse.jdt.core/2893713661.index differ diff --git a/.metadata/.plugins/org.eclipse.jdt.core/3011908894.index b/.metadata/.plugins/org.eclipse.jdt.core/3011908894.index new file mode 100644 index 0000000..5161ca2 Binary files /dev/null and b/.metadata/.plugins/org.eclipse.jdt.core/3011908894.index differ diff --git a/.metadata/.plugins/org.eclipse.jdt.core/3040618168.index b/.metadata/.plugins/org.eclipse.jdt.core/3040618168.index new file mode 100644 index 0000000..6c9585d Binary files /dev/null and b/.metadata/.plugins/org.eclipse.jdt.core/3040618168.index differ diff --git a/.metadata/.plugins/org.eclipse.jdt.core/3075372551.index b/.metadata/.plugins/org.eclipse.jdt.core/3075372551.index new file mode 100644 index 0000000..1075d7d Binary files /dev/null and b/.metadata/.plugins/org.eclipse.jdt.core/3075372551.index differ diff --git a/.metadata/.plugins/org.eclipse.jdt.core/3096076814.index b/.metadata/.plugins/org.eclipse.jdt.core/3096076814.index new file mode 100644 index 0000000..6c9585d Binary files /dev/null and b/.metadata/.plugins/org.eclipse.jdt.core/3096076814.index differ diff --git a/.metadata/.plugins/org.eclipse.jdt.core/3190887717.index b/.metadata/.plugins/org.eclipse.jdt.core/3190887717.index new file mode 100644 index 0000000..6f6ca96 Binary files /dev/null and b/.metadata/.plugins/org.eclipse.jdt.core/3190887717.index differ diff --git a/.metadata/.plugins/org.eclipse.jdt.core/3282007833.index b/.metadata/.plugins/org.eclipse.jdt.core/3282007833.index new file mode 100644 index 0000000..c136a22 Binary files /dev/null and b/.metadata/.plugins/org.eclipse.jdt.core/3282007833.index differ diff --git a/.metadata/.plugins/org.eclipse.jdt.core/3331268705.index b/.metadata/.plugins/org.eclipse.jdt.core/3331268705.index new file mode 100644 index 0000000..1075d7d Binary files /dev/null and b/.metadata/.plugins/org.eclipse.jdt.core/3331268705.index differ diff --git a/.metadata/.plugins/org.eclipse.jdt.core/3390708485.index b/.metadata/.plugins/org.eclipse.jdt.core/3390708485.index new file mode 100644 index 0000000..4dd6727 Binary files /dev/null and b/.metadata/.plugins/org.eclipse.jdt.core/3390708485.index differ diff --git a/.metadata/.plugins/org.eclipse.jdt.core/3432172071.index b/.metadata/.plugins/org.eclipse.jdt.core/3432172071.index new file mode 100644 index 0000000..c136a22 Binary files /dev/null and b/.metadata/.plugins/org.eclipse.jdt.core/3432172071.index differ diff --git a/.metadata/.plugins/org.eclipse.jdt.core/3534421922.index b/.metadata/.plugins/org.eclipse.jdt.core/3534421922.index new file mode 100644 index 0000000..c136a22 Binary files /dev/null and b/.metadata/.plugins/org.eclipse.jdt.core/3534421922.index differ diff --git a/.metadata/.plugins/org.eclipse.jdt.core/3591837599.index b/.metadata/.plugins/org.eclipse.jdt.core/3591837599.index new file mode 100644 index 0000000..4dd6727 Binary files /dev/null and b/.metadata/.plugins/org.eclipse.jdt.core/3591837599.index differ diff --git a/.metadata/.plugins/org.eclipse.jdt.core/3791361740.index b/.metadata/.plugins/org.eclipse.jdt.core/3791361740.index new file mode 100644 index 0000000..5219b23 Binary files /dev/null and b/.metadata/.plugins/org.eclipse.jdt.core/3791361740.index differ diff --git a/.metadata/.plugins/org.eclipse.jdt.core/3901683754.index b/.metadata/.plugins/org.eclipse.jdt.core/3901683754.index new file mode 100644 index 0000000..1075d7d Binary files /dev/null and b/.metadata/.plugins/org.eclipse.jdt.core/3901683754.index differ diff --git a/.metadata/.plugins/org.eclipse.jdt.core/3945373644.index b/.metadata/.plugins/org.eclipse.jdt.core/3945373644.index new file mode 100644 index 0000000..a908c6b Binary files /dev/null and b/.metadata/.plugins/org.eclipse.jdt.core/3945373644.index differ diff --git a/.metadata/.plugins/org.eclipse.jdt.core/3950534511.index b/.metadata/.plugins/org.eclipse.jdt.core/3950534511.index new file mode 100644 index 0000000..70a1baa Binary files /dev/null and b/.metadata/.plugins/org.eclipse.jdt.core/3950534511.index differ diff --git a/.metadata/.plugins/org.eclipse.jdt.core/3965639856.index b/.metadata/.plugins/org.eclipse.jdt.core/3965639856.index new file mode 100644 index 0000000..c136a22 Binary files /dev/null and b/.metadata/.plugins/org.eclipse.jdt.core/3965639856.index differ diff --git a/.metadata/.plugins/org.eclipse.jdt.core/4153997317.index b/.metadata/.plugins/org.eclipse.jdt.core/4153997317.index new file mode 100644 index 0000000..c136a22 Binary files /dev/null and b/.metadata/.plugins/org.eclipse.jdt.core/4153997317.index differ diff --git a/.metadata/.plugins/org.eclipse.jdt.core/4255926859.index b/.metadata/.plugins/org.eclipse.jdt.core/4255926859.index new file mode 100644 index 0000000..7429d2a Binary files /dev/null and b/.metadata/.plugins/org.eclipse.jdt.core/4255926859.index differ diff --git a/.metadata/.plugins/org.eclipse.jdt.core/436234689.index b/.metadata/.plugins/org.eclipse.jdt.core/436234689.index new file mode 100644 index 0000000..4dd6727 Binary files /dev/null and b/.metadata/.plugins/org.eclipse.jdt.core/436234689.index differ diff --git a/.metadata/.plugins/org.eclipse.jdt.core/458837781.index b/.metadata/.plugins/org.eclipse.jdt.core/458837781.index new file mode 100644 index 0000000..1075d7d Binary files /dev/null and b/.metadata/.plugins/org.eclipse.jdt.core/458837781.index differ diff --git a/.metadata/.plugins/org.eclipse.jdt.core/606255621.index b/.metadata/.plugins/org.eclipse.jdt.core/606255621.index new file mode 100644 index 0000000..9762973 Binary files /dev/null and b/.metadata/.plugins/org.eclipse.jdt.core/606255621.index differ diff --git a/.metadata/.plugins/org.eclipse.jdt.core/734632761.index b/.metadata/.plugins/org.eclipse.jdt.core/734632761.index new file mode 100644 index 0000000..c1fc277 Binary files /dev/null and b/.metadata/.plugins/org.eclipse.jdt.core/734632761.index differ diff --git a/.metadata/.plugins/org.eclipse.jdt.core/797385254.index b/.metadata/.plugins/org.eclipse.jdt.core/797385254.index new file mode 100644 index 0000000..6519dca Binary files /dev/null and b/.metadata/.plugins/org.eclipse.jdt.core/797385254.index differ diff --git a/.metadata/.plugins/org.eclipse.jdt.core/860469874.index b/.metadata/.plugins/org.eclipse.jdt.core/860469874.index new file mode 100644 index 0000000..59c4d33 Binary files /dev/null and b/.metadata/.plugins/org.eclipse.jdt.core/860469874.index differ diff --git a/.metadata/.plugins/org.eclipse.jdt.core/890886771.index b/.metadata/.plugins/org.eclipse.jdt.core/890886771.index new file mode 100644 index 0000000..8c8b386 Binary files /dev/null and b/.metadata/.plugins/org.eclipse.jdt.core/890886771.index differ diff --git a/.metadata/.plugins/org.eclipse.jdt.core/900586112.index b/.metadata/.plugins/org.eclipse.jdt.core/900586112.index new file mode 100644 index 0000000..fad63ef Binary files /dev/null and b/.metadata/.plugins/org.eclipse.jdt.core/900586112.index differ diff --git a/.metadata/.plugins/org.eclipse.jdt.core/assumedExternalFilesCache b/.metadata/.plugins/org.eclipse.jdt.core/assumedExternalFilesCache new file mode 100644 index 0000000..593f470 Binary files /dev/null and b/.metadata/.plugins/org.eclipse.jdt.core/assumedExternalFilesCache differ diff --git a/.metadata/.plugins/org.eclipse.jdt.core/externalFilesCache b/.metadata/.plugins/org.eclipse.jdt.core/externalFilesCache new file mode 100644 index 0000000..ee55e59 Binary files /dev/null and b/.metadata/.plugins/org.eclipse.jdt.core/externalFilesCache differ diff --git a/.metadata/.plugins/org.eclipse.jdt.core/externalLibsTimeStamps b/.metadata/.plugins/org.eclipse.jdt.core/externalLibsTimeStamps new file mode 100644 index 0000000..97e9323 Binary files /dev/null and b/.metadata/.plugins/org.eclipse.jdt.core/externalLibsTimeStamps differ diff --git a/.metadata/.plugins/org.eclipse.jdt.core/indexNamesMap.txt b/.metadata/.plugins/org.eclipse.jdt.core/indexNamesMap.txt new file mode 100644 index 0000000..5f7d61c --- /dev/null +++ b/.metadata/.plugins/org.eclipse.jdt.core/indexNamesMap.txt @@ -0,0 +1 @@ +INDEX VERSION 1.134 diff --git a/.metadata/.plugins/org.eclipse.jdt.core/javaLikeNames.txt b/.metadata/.plugins/org.eclipse.jdt.core/javaLikeNames.txt new file mode 100644 index 0000000..8586397 --- /dev/null +++ b/.metadata/.plugins/org.eclipse.jdt.core/javaLikeNames.txt @@ -0,0 +1 @@ +java \ No newline at end of file diff --git a/.metadata/.plugins/org.eclipse.jdt.core/nonChainingJarsCache b/.metadata/.plugins/org.eclipse.jdt.core/nonChainingJarsCache new file mode 100644 index 0000000..d62d0eb Binary files /dev/null and b/.metadata/.plugins/org.eclipse.jdt.core/nonChainingJarsCache differ diff --git a/.metadata/.plugins/org.eclipse.jdt.core/savedIndexNames.txt b/.metadata/.plugins/org.eclipse.jdt.core/savedIndexNames.txt new file mode 100644 index 0000000..1da94e9 --- /dev/null +++ b/.metadata/.plugins/org.eclipse.jdt.core/savedIndexNames.txt @@ -0,0 +1,58 @@ +INDEX VERSION 1.134+/home/mario/Workspaces/blight/.metadata/.plugins/org.eclipse.jdt.core +3190887717.index +3965639856.index +262304292.index +3534421922.index +1585095811.index +16257995.index +1350656539.index +1136998059.index +458837781.index +860469874.index +1305835383.index +4153997317.index +1550771283.index +900586112.index +3950534511.index +1462452114.index +3331268705.index +1989349782.index +2722916612.index +1738064530.index +1007707583.index +2497820567.index +734632761.index +1865797976.index +3591837599.index +2392911294.index +1490162601.index +1124510679.index +3011908894.index +2356684838.index +3390708485.index +436234689.index +2865784985.index +1545642898.index +24151692.index +1578672902.index +2783277246.index +606255621.index +797385254.index +3901683754.index +2696219173.index +2479985475.index +4255926859.index +1608883781.index +890886771.index +104128081.index +1703316476.index +3075372551.index +3791361740.index +1351491558.index +1317406562.index +3096076814.index +1309346846.index +3282007833.index +3432172071.index +2893713661.index +3040618168.index diff --git a/.metadata/.plugins/org.eclipse.jdt.core/variablesAndContainers.dat b/.metadata/.plugins/org.eclipse.jdt.core/variablesAndContainers.dat new file mode 100644 index 0000000..b2cd4d5 Binary files /dev/null and b/.metadata/.plugins/org.eclipse.jdt.core/variablesAndContainers.dat differ diff --git a/.metadata/.plugins/org.eclipse.jdt.launching/.install.xml b/.metadata/.plugins/org.eclipse.jdt.launching/.install.xml new file mode 100644 index 0000000..2b4cd2c --- /dev/null +++ b/.metadata/.plugins/org.eclipse.jdt.launching/.install.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/.metadata/.plugins/org.eclipse.jdt.launching/libraryInfos.xml b/.metadata/.plugins/org.eclipse.jdt.launching/libraryInfos.xml new file mode 100644 index 0000000..ff55ec7 --- /dev/null +++ b/.metadata/.plugins/org.eclipse.jdt.launching/libraryInfos.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/.metadata/.plugins/org.eclipse.jdt.ui/OpenTypeHistory.xml b/.metadata/.plugins/org.eclipse.jdt.ui/OpenTypeHistory.xml new file mode 100644 index 0000000..a4ee3cb --- /dev/null +++ b/.metadata/.plugins/org.eclipse.jdt.ui/OpenTypeHistory.xml @@ -0,0 +1,2 @@ + + diff --git a/.metadata/.plugins/org.eclipse.jdt.ui/QualifiedTypeNameHistory.xml b/.metadata/.plugins/org.eclipse.jdt.ui/QualifiedTypeNameHistory.xml new file mode 100644 index 0000000..9e390f5 --- /dev/null +++ b/.metadata/.plugins/org.eclipse.jdt.ui/QualifiedTypeNameHistory.xml @@ -0,0 +1,2 @@ + + diff --git a/.metadata/.plugins/org.eclipse.jdt.ui/dialog_settings.xml b/.metadata/.plugins/org.eclipse.jdt.ui/dialog_settings.xml new file mode 100644 index 0000000..1618bcd --- /dev/null +++ b/.metadata/.plugins/org.eclipse.jdt.ui/dialog_settings.xml @@ -0,0 +1,16 @@ + +
+
+ + + + + +
+
+
+
+
+
+
+
diff --git a/.metadata/.plugins/org.eclipse.linuxtools.docker.core/dockerconnections.xml b/.metadata/.plugins/org.eclipse.linuxtools.docker.core/dockerconnections.xml new file mode 100644 index 0000000..96a5807 --- /dev/null +++ b/.metadata/.plugins/org.eclipse.linuxtools.docker.core/dockerconnections.xml @@ -0,0 +1,4 @@ + + + + diff --git a/.metadata/.plugins/org.eclipse.m2e.core/workspaceState.ser b/.metadata/.plugins/org.eclipse.m2e.core/workspaceState.ser new file mode 100644 index 0000000..abbf8e5 Binary files /dev/null and b/.metadata/.plugins/org.eclipse.m2e.core/workspaceState.ser differ diff --git a/.metadata/.plugins/org.eclipse.m2e.logback/logback.2.7.101.20251017-1242.xml b/.metadata/.plugins/org.eclipse.m2e.logback/logback.2.7.101.20251017-1242.xml new file mode 100644 index 0000000..9effde7 --- /dev/null +++ b/.metadata/.plugins/org.eclipse.m2e.logback/logback.2.7.101.20251017-1242.xml @@ -0,0 +1,41 @@ + + + + %date [%thread] %-5level %logger{35} - %msg%n + + + ${org.eclipse.m2e.log.console.threshold:-OFF} + + + + + ${org.eclipse.m2e.log.dir}/0.log + + ${org.eclipse.m2e.log.dir}/%i.log + 1 + 10 + + + 10MB + + + %date [%thread] %-5level %logger{35} - %msg%n + + + + + + WARN + + + + + + + + + + + + + diff --git a/.metadata/.plugins/org.eclipse.mylyn.github.ui/avatars.ser b/.metadata/.plugins/org.eclipse.mylyn.github.ui/avatars.ser new file mode 100644 index 0000000..1e9a069 Binary files /dev/null and b/.metadata/.plugins/org.eclipse.mylyn.github.ui/avatars.ser differ diff --git a/.metadata/.plugins/org.eclipse.oomph.setup/workspace.setup b/.metadata/.plugins/org.eclipse.oomph.setup/workspace.setup new file mode 100644 index 0000000..1f73e14 --- /dev/null +++ b/.metadata/.plugins/org.eclipse.oomph.setup/workspace.setup @@ -0,0 +1,6 @@ + + diff --git a/.metadata/.plugins/org.eclipse.tips.ide/dialog_settings.xml b/.metadata/.plugins/org.eclipse.tips.ide/dialog_settings.xml new file mode 100644 index 0000000..5ca0b77 --- /dev/null +++ b/.metadata/.plugins/org.eclipse.tips.ide/dialog_settings.xml @@ -0,0 +1,3 @@ + +
+
diff --git a/.metadata/.plugins/org.eclipse.ui.editors/dialog_settings.xml b/.metadata/.plugins/org.eclipse.ui.editors/dialog_settings.xml new file mode 100644 index 0000000..50f1edb --- /dev/null +++ b/.metadata/.plugins/org.eclipse.ui.editors/dialog_settings.xml @@ -0,0 +1,5 @@ + +
+
+
+
diff --git a/.metadata/.plugins/org.eclipse.ui.intro/introstate b/.metadata/.plugins/org.eclipse.ui.intro/introstate new file mode 100644 index 0000000..02f134f --- /dev/null +++ b/.metadata/.plugins/org.eclipse.ui.intro/introstate @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/.metadata/.plugins/org.eclipse.ui.workbench/dialog_settings.xml b/.metadata/.plugins/org.eclipse.ui.workbench/dialog_settings.xml new file mode 100644 index 0000000..8e2e4c5 --- /dev/null +++ b/.metadata/.plugins/org.eclipse.ui.workbench/dialog_settings.xml @@ -0,0 +1,19 @@ + +
+
+ + + + + +
+
+ + + + + +
+
+
+
diff --git a/.metadata/.plugins/org.eclipse.ui.workbench/workingsets.xml b/.metadata/.plugins/org.eclipse.ui.workbench/workingsets.xml new file mode 100644 index 0000000..c9635ed --- /dev/null +++ b/.metadata/.plugins/org.eclipse.ui.workbench/workingsets.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.metadata/.plugins/org.eclipse.wst.sse.core/task-tags.properties b/.metadata/.plugins/org.eclipse.wst.sse.core/task-tags.properties new file mode 100644 index 0000000..cd7f694 --- /dev/null +++ b/.metadata/.plugins/org.eclipse.wst.sse.core/task-tags.properties @@ -0,0 +1,3 @@ +# +#Wed May 06 22:30:24 CEST 2026 +task-tag-projects-already-scanned=blight-game diff --git a/.metadata/version.ini b/.metadata/version.ini new file mode 100644 index 0000000..ac8f4f3 --- /dev/null +++ b/.metadata/version.ini @@ -0,0 +1,3 @@ +#Thu May 07 06:27:32 CEST 2026 +org.eclipse.core.runtime=2 +org.eclipse.platform=4.39.0.v20260226-0420 diff --git a/blight-data/doc/Option A.odt b/blight-data/doc/Option A.odt new file mode 100644 index 0000000..a3b0e54 Binary files /dev/null and b/blight-data/doc/Option A.odt differ diff --git a/blight-data/doc/Option B.odt b/blight-data/doc/Option B.odt new file mode 100644 index 0000000..90135c7 Binary files /dev/null and b/blight-data/doc/Option B.odt differ diff --git a/blight-data/doc/Plott.odt b/blight-data/doc/Plott.odt new file mode 100644 index 0000000..26414a4 Binary files /dev/null and b/blight-data/doc/Plott.odt differ diff --git a/blight-data/logo/logo.png b/blight-data/logo/logo.png new file mode 100644 index 0000000..f9b3cb7 Binary files /dev/null and b/blight-data/logo/logo.png differ diff --git a/blight-data/logo/orig.png b/blight-data/logo/orig.png new file mode 100644 index 0000000..21377ca Binary files /dev/null and b/blight-data/logo/orig.png differ diff --git a/blight-editor/build.gradle b/blight-editor/build.gradle new file mode 100644 index 0000000..57c0856 --- /dev/null +++ b/blight-editor/build.gradle @@ -0,0 +1,66 @@ +plugins { + id 'java' + id 'application' + id 'org.openjfx.javafxplugin' version '0.1.0' +} + +group = 'de.blight' +version = '0.1.0' + +java { + sourceCompatibility = JavaVersion.VERSION_21 + targetCompatibility = JavaVersion.VERSION_21 +} + +javafx { + version = '21' + modules = ['javafx.controls', 'javafx.swing'] +} + +application { + mainClass = 'de.blight.editor.EditorLauncher' + applicationDefaultJvmArgs = [ + '--add-opens', 'java.base/java.lang=ALL-UNNAMED', + '--add-opens', 'java.desktop/sun.awt=ALL-UNNAMED', + '-Djava.library.path=${rootDir}/build/natives', + ] +} + +repositories { + mavenCentral() +} + +ext { + jmeVersion = '3.7.0-stable' +} + +dependencies { + implementation "org.jmonkeyengine:jme3-core:${jmeVersion}" + implementation "org.jmonkeyengine:jme3-desktop:${jmeVersion}" + implementation "org.jmonkeyengine:jme3-lwjgl3:${jmeVersion}" + implementation "org.jmonkeyengine:jme3-terrain:${jmeVersion}" + implementation "org.jmonkeyengine:jme3-effects:${jmeVersion}" + implementation "org.jmonkeyengine:jme3-testdata:${jmeVersion}" +} + +tasks.register('extractNatives', Copy) { + def nativeConf = configurations.runtimeClasspath.resolvedConfiguration + .resolvedArtifacts + .findAll { it.name.contains('natives') } + .collect { zipTree(it.file) } + + from nativeConf + into "${buildDir}/natives" + duplicatesStrategy = DuplicatesStrategy.INCLUDE +} + +run { + dependsOn extractNatives + workingDir = rootDir +} + +jar { + manifest { + attributes 'Main-Class': application.mainClass + } +} diff --git a/blight-editor/gradle/wrapper/gradle-wrapper.jar b/blight-editor/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000..e644113 Binary files /dev/null and b/blight-editor/gradle/wrapper/gradle-wrapper.jar differ diff --git a/blight-editor/gradle/wrapper/gradle-wrapper.properties b/blight-editor/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..b82aa23 --- /dev/null +++ b/blight-editor/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,7 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-bin.zip +networkTimeout=10000 +validateDistributionUrl=true +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists diff --git a/blight-editor/gradlew b/blight-editor/gradlew new file mode 100755 index 0000000..97de990 --- /dev/null +++ b/blight-editor/gradlew @@ -0,0 +1,249 @@ +#!/bin/sh + +# +# Copyright © 2015-2021 the original authors. +# +# 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. +# + +############################################################################## +# +# Gradle start up script for POSIX generated by Gradle. +# +# Important for running: +# +# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is +# noncompliant, but you have some other compliant shell such as ksh or +# bash, then to run this script, type that shell name before the whole +# command line, like: +# +# ksh Gradle +# +# Busybox and similar reduced shells will NOT work, because this script +# requires all of these POSIX shell features: +# * functions; +# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», +# «${var#prefix}», «${var%suffix}», and «$( cmd )»; +# * compound commands having a testable exit status, especially «case»; +# * various built-in commands including «command», «set», and «ulimit». +# +# Important for patching: +# +# (2) This script targets any POSIX shell, so it avoids extensions provided +# by Bash, Ksh, etc; in particular arrays are avoided. +# +# The "traditional" practice of packing multiple parameters into a +# space-separated string is a well documented source of bugs and security +# problems, so this is (mostly) avoided, by progressively accumulating +# options in "$@", and eventually passing that to Java. +# +# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, +# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; +# see the in-line comments for details. +# +# There are tweaks for specific operating systems such as AIX, CygWin, +# Darwin, MinGW, and NonStop. +# +# (3) This script is generated from the Groovy template +# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# within the Gradle project. +# +# You can find Gradle at https://github.com/gradle/gradle/. +# +############################################################################## + +# Attempt to set APP_HOME + +# Resolve links: $0 may be a link +app_path=$0 + +# Need this for daisy-chained symlinks. +while + APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path + [ -h "$app_path" ] +do + ls=$( ls -ld "$app_path" ) + link=${ls#*' -> '} + case $link in #( + /*) app_path=$link ;; #( + *) app_path=$APP_HOME$link ;; + esac +done + +# This is normally unused +# shellcheck disable=SC2034 +APP_BASE_NAME=${0##*/} +# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) +APP_HOME=$( cd "${APP_HOME:-./}" > /dev/null && pwd -P ) || exit + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD=maximum + +warn () { + echo "$*" +} >&2 + +die () { + echo + echo "$*" + echo + exit 1 +} >&2 + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "$( uname )" in #( + CYGWIN* ) cygwin=true ;; #( + Darwin* ) darwin=true ;; #( + MSYS* | MINGW* ) msys=true ;; #( + NONSTOP* ) nonstop=true ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD=$JAVA_HOME/jre/sh/java + else + JAVACMD=$JAVA_HOME/bin/java + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD=java + if ! command -v java >/dev/null 2>&1 + then + die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +fi + +# Increase the maximum file descriptors if we can. +if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then + case $MAX_FD in #( + max*) + # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + MAX_FD=$( ulimit -H -n ) || + warn "Could not query maximum file descriptor limit" + esac + case $MAX_FD in #( + '' | soft) :;; #( + *) + # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + ulimit -n "$MAX_FD" || + warn "Could not set maximum file descriptor limit to $MAX_FD" + esac +fi + +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. + +# For Cygwin or MSYS, switch paths to Windows format before running java +if "$cygwin" || "$msys" ; then + APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) + CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) + + JAVACMD=$( cygpath --unix "$JAVACMD" ) + + # Now convert the arguments - kludge to limit ourselves to /bin/sh + for arg do + if + case $arg in #( + -*) false ;; # don't mess with options #( + /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath + [ -e "$t" ] ;; #( + *) false ;; + esac + then + arg=$( cygpath --path --ignore --mixed "$arg" ) + fi + # Roll the args list around exactly as many times as the number of + # args, so each arg winds up back in the position where it started, but + # possibly modified. + # + # NB: a `for` loop captures its iteration list before it begins, so + # changing the positional parameters here affects neither the number of + # iterations, nor the values presented in `arg`. + shift # remove old arg + set -- "$@" "$arg" # push replacement arg + done +fi + + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='-Dfile.encoding=UTF-8 "-Xmx64m" "-Xms64m"' + +# Collect all arguments for the java command: +# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# and any embedded shellness will be escaped. +# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be +# treated as '${Hostname}' itself on the command line. + +set -- \ + "-Dorg.gradle.appname=$APP_BASE_NAME" \ + -classpath "$CLASSPATH" \ + org.gradle.wrapper.GradleWrapperMain \ + "$@" + +# Stop when "xargs" is not available. +if ! command -v xargs >/dev/null 2>&1 +then + die "xargs is not available" +fi + +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# + +eval "set -- $( + printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | + xargs -n1 | + sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | + tr '\n' ' ' + )" '"$@"' + +exec "$JAVACMD" "$@" diff --git a/blight-editor/gradlew.bat b/blight-editor/gradlew.bat new file mode 100644 index 0000000..16e26a1 --- /dev/null +++ b/blight-editor/gradlew.bat @@ -0,0 +1,92 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + +@if "%DEBUG%"=="" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%"=="" set DIRNAME=. +@rem This is normally unused +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS=-Dfile.encoding=UTF-8 "-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if %ERRORLEVEL% equ 0 goto execute + +echo. 1>&2 +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. 1>&2 +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* + +:end +@rem End local scope for the variables with windows NT shell +if %ERRORLEVEL% equ 0 goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +set EXIT_CODE=%ERRORLEVEL% +if %EXIT_CODE% equ 0 set EXIT_CODE=1 +if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% +exit /b %EXIT_CODE% + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/blight-editor/settings.gradle b/blight-editor/settings.gradle new file mode 100644 index 0000000..485407c --- /dev/null +++ b/blight-editor/settings.gradle @@ -0,0 +1 @@ +rootProject.name = 'blight-editor' diff --git a/blight-editor/src/main/java/de/blight/editor/EditorApp.java b/blight-editor/src/main/java/de/blight/editor/EditorApp.java new file mode 100644 index 0000000..000b4a7 --- /dev/null +++ b/blight-editor/src/main/java/de/blight/editor/EditorApp.java @@ -0,0 +1,310 @@ +package de.blight.editor; + +import javafx.application.Application; +import javafx.application.Platform; +import javafx.geometry.Insets; +import javafx.geometry.Orientation; +import javafx.scene.Scene; +import javafx.scene.control.*; +import javafx.scene.image.ImageView; +import javafx.scene.image.WritableImage; +import javafx.scene.input.KeyCode; +import javafx.scene.input.MouseButton; +import javafx.scene.layout.*; +import javafx.stage.FileChooser; +import javafx.stage.Stage; + +import java.io.File; +import java.io.IOException; +import java.nio.file.*; + +public class EditorApp extends Application { + + // ── Viewport-Auflösung (JME3 rendert intern auf diese Größe) ──────────── + static final int VP_WIDTH = 1024; + static final int VP_HEIGHT = 640; + + // ── Asset-Verzeichnis ──────────────────────────────────────────────────── + private static final Path ASSET_ROOT = Paths.get("editor-assets"); + + private final SharedInput input = new SharedInput(); + private WritableImage jfxImage; + private ImageView viewport; + private Label statusLabel; + + // Drag-Tracking für Kamerarotation (mittlere Taste) + private double prevDragX, prevDragY; + + // ── Asset-Tree-Items ───────────────────────────────────────────────────── + private TreeItem modelsNode; + private TreeItem texturesNode; + private TreeItem audioNode; + + // ── JavaFX Entry-Point ─────────────────────────────────────────────────── + + public static void main(String[] args) { + launch(args); + } + + @Override + public void start(Stage stage) { + // WritableImage für den JME3-Frame-Export + jfxImage = new WritableImage(VP_WIDTH, VP_HEIGHT); + + // JME3 starten (Hintergrund-Daemon-Thread) + JmeEditorApp.launch(input, jfxImage, VP_WIDTH, VP_HEIGHT); + + // UI zusammenbauen + BorderPane root = new BorderPane(); + root.setTop(buildTop()); + root.setLeft(buildAssetPanel()); + root.setCenter(buildViewport()); + root.setBottom(buildStatusBar()); + + Scene scene = new Scene(root, 1280, 760); + scene.setOnKeyPressed(e -> handleKeyPress(e.getCode(), true)); + scene.setOnKeyReleased(e -> handleKeyPress(e.getCode(), false)); + + stage.setTitle("Blight World Editor"); + stage.setScene(scene); + stage.setMinWidth(900); + stage.setMinHeight(600); + stage.setOnCloseRequest(e -> Platform.exit()); + stage.show(); + } + + // ── Oberer Bereich: MenuBar + ToolBar ──────────────────────────────────── + + private VBox buildTop() { + // Menüleiste + MenuBar menuBar = new MenuBar(); + Menu fileMenu = new Menu("Datei"); + MenuItem newItem = new MenuItem("Neue Karte"); + MenuItem saveItem = new MenuItem("Speichern"); + fileMenu.getItems().addAll(newItem, saveItem); + Menu viewMenu = new Menu("Ansicht"); + MenuItem resetCam = new MenuItem("Kamera zurücksetzen"); + resetCam.setOnAction(e -> input.addMouseDelta(0, 0)); // noop, Kamera reset via SharedInput wäre aufwändiger + viewMenu.getItems().add(resetCam); + menuBar.getMenus().addAll(fileMenu, viewMenu); + + // Werkzeugleiste + ToolBar toolBar = new ToolBar(); + Button heightTool = new Button("▲▼ Höhe"); + heightTool.setStyle("-fx-font-weight:bold;"); + heightTool.setTooltip(new Tooltip( + "Linksklick: Terrain anheben\nRechtsklick: Terrain absenken")); + + Separator sep1 = new Separator(Orientation.VERTICAL); + + Label brushLabel = new Label("Pinselstärke:"); + Slider brushSlider = new Slider(0.1, 1.0, 1.0); + brushSlider.setPrefWidth(100); + brushSlider.setMajorTickUnit(0.5); + brushSlider.setShowTickMarks(true); + + Separator sep2 = new Separator(Orientation.VERTICAL); + + Label hint = new Label("WASD/QE: Kamera | Mitte-Drag: Drehen | L-Klick: hoch | R-Klick: tief"); + hint.setStyle("-fx-text-fill: #555;"); + + toolBar.getItems().addAll(heightTool, sep1, brushLabel, brushSlider, sep2, hint); + + VBox top = new VBox(menuBar, toolBar); + return top; + } + + // ── Linke Seite: Asset-Panel ───────────────────────────────────────────── + + private VBox buildAssetPanel() { + VBox panel = new VBox(6); + panel.setPadding(new Insets(8)); + panel.setPrefWidth(210); + panel.setStyle("-fx-background-color: #f0f0f0; -fx-border-color: #ccc; -fx-border-width: 0 1 0 0;"); + + Label title = new Label("Assets"); + title.setStyle("-fx-font-weight: bold; -fx-font-size: 13;"); + + // Baum + TreeItem root = new TreeItem<>("Projekt"); + root.setExpanded(true); + modelsNode = new TreeItem<>("Models"); + texturesNode = new TreeItem<>("Texturen"); + audioNode = new TreeItem<>("Audio"); + root.getChildren().addAll(modelsNode, texturesNode, audioNode); + + // Bestehende Assets laden + loadAssetsInto(modelsNode, "models", ".j3o", ".obj", ".fbx", ".gltf", ".glb"); + loadAssetsInto(texturesNode, "textures", ".png", ".jpg", ".jpeg", ".bmp", ".tga", ".dds"); + loadAssetsInto(audioNode, "audio", ".ogg", ".wav", ".mp3"); + + TreeView tree = new TreeView<>(root); + tree.setShowRoot(false); + VBox.setVgrow(tree, Priority.ALWAYS); + + // Kontextmenü im Baum (Datei öffnen im Dateimanager) + ContextMenu ctx = new ContextMenu(); + MenuItem showItem = new MenuItem("Im Dateisystem anzeigen"); + ctx.getItems().add(showItem); + tree.setContextMenu(ctx); + + // Import-Button + Button importBtn = new Button("⊕ Import…"); + importBtn.setMaxWidth(Double.MAX_VALUE); + importBtn.setOnAction(e -> handleImport(tree.getScene().getWindow())); + + panel.getChildren().addAll(title, tree, importBtn); + return panel; + } + + private void loadAssetsInto(TreeItem parent, String subDir, String... exts) { + Path dir = ASSET_ROOT.resolve(subDir); + if (!Files.exists(dir)) return; + try (var stream = Files.list(dir)) { + stream.filter(p -> { + String name = p.getFileName().toString().toLowerCase(); + for (String ext : exts) if (name.endsWith(ext)) return true; + return false; + }).map(p -> new TreeItem<>(p.getFileName().toString())) + .forEach(parent.getChildren()::add); + } catch (IOException ignored) {} + } + + private void handleImport(javafx.stage.Window owner) { + FileChooser fc = new FileChooser(); + fc.setTitle("Assets importieren"); + fc.getExtensionFilters().addAll( + new FileChooser.ExtensionFilter("Alle unterstützten Dateien", + "*.j3o","*.obj","*.fbx","*.gltf","*.glb", + "*.png","*.jpg","*.jpeg","*.bmp","*.tga","*.dds", + "*.ogg","*.wav","*.mp3"), + new FileChooser.ExtensionFilter("Modelle", "*.j3o","*.obj","*.fbx","*.gltf","*.glb"), + new FileChooser.ExtensionFilter("Texturen", "*.png","*.jpg","*.jpeg","*.bmp","*.tga","*.dds"), + new FileChooser.ExtensionFilter("Audio", "*.ogg","*.wav","*.mp3") + ); + var files = fc.showOpenMultipleDialog(owner); + if (files == null) return; + + for (File file : files) { + String name = file.getName().toLowerCase(); + String subDir; + TreeItem parent; + if (name.matches(".*\\.(j3o|obj|fbx|gltf|glb)")) { + subDir = "models"; parent = modelsNode; + } else if (name.matches(".*\\.(ogg|wav|mp3)")) { + subDir = "audio"; parent = audioNode; + } else { + subDir = "textures"; parent = texturesNode; + } + try { + Path dest = ASSET_ROOT.resolve(subDir); + Files.createDirectories(dest); + Path target = dest.resolve(file.getName()); + Files.copy(file.toPath(), target, StandardCopyOption.REPLACE_EXISTING); + parent.getChildren().add(new TreeItem<>(file.getName())); + parent.setExpanded(true); + setStatus("Importiert: " + file.getName()); + } catch (IOException ex) { + setStatus("Fehler beim Import: " + ex.getMessage()); + } + } + } + + // ── Zentraler Bereich: JME3-Viewport ──────────────────────────────────── + + private StackPane buildViewport() { + viewport = new ImageView(jfxImage); + viewport.setPreserveRatio(false); + viewport.setFocusTraversable(true); + + StackPane pane = new StackPane(viewport); + pane.setStyle("-fx-background-color: #1a1a2e;"); + + // ImageView auf Pane-Größe binden → JME3-Pixelskalierung aktualisieren + pane.widthProperty().addListener((o, oldW, newW) -> { + viewport.setFitWidth(newW.doubleValue()); + input.viewportScaleX = VP_WIDTH / newW.doubleValue(); + }); + pane.heightProperty().addListener((o, oldH, newH) -> { + viewport.setFitHeight(newH.doubleValue()); + input.viewportScaleY = VP_HEIGHT / newH.doubleValue(); + }); + + // ── Maus-Events ────────────────────────────────────────────────────── + viewport.setOnMousePressed(e -> { + viewport.requestFocus(); + if (e.getButton() == MouseButton.MIDDLE) { + prevDragX = e.getX(); + prevDragY = e.getY(); + } + if (e.getButton() == MouseButton.PRIMARY) { + submitEdit(e.getX(), e.getY(), +1); + } + if (e.getButton() == MouseButton.SECONDARY) { + submitEdit(e.getX(), e.getY(), -1); + } + }); + + viewport.setOnMouseDragged(e -> { + if (e.isMiddleButtonDown()) { + double dx = e.getX() - prevDragX; + double dy = e.getY() - prevDragY; + input.addMouseDelta((int) dx, (int) dy); + prevDragX = e.getX(); + prevDragY = e.getY(); + } + if (e.isPrimaryButtonDown()) { + submitEdit(e.getX(), e.getY(), +1); + } + if (e.isSecondaryButtonDown()) { + submitEdit(e.getX(), e.getY(), -1); + } + }); + + viewport.setOnScroll(e -> { + // Scrollen = Kamera vorwärts/rückwärts + double delta = e.getDeltaY(); + input.forward = delta > 0; + input.backward = delta < 0; + // Nach kurzem Delay zurücksetzen (kein physischer Key-Release) + javafx.animation.PauseTransition pause = + new javafx.animation.PauseTransition(javafx.util.Duration.millis(150)); + pause.setOnFinished(ev -> { input.forward = false; input.backward = false; }); + pause.play(); + }); + + return pane; + } + + private void submitEdit(double x, double y, int action) { + input.editQueue.offer(new SharedInput.TerrainEdit((float) x, (float) y, action)); + } + + // ── Statusleiste ───────────────────────────────────────────────────────── + + private HBox buildStatusBar() { + statusLabel = new Label("Bereit | Werkzeug: Höhe | WASD/QE: Bewegen | Mitte-Drag: Drehen"); + statusLabel.setPadding(new Insets(3, 8, 3, 8)); + statusLabel.setStyle("-fx-font-size: 11; -fx-text-fill: #333;"); + HBox bar = new HBox(statusLabel); + bar.setStyle("-fx-background-color: #e8e8e8; -fx-border-color: #bbb; -fx-border-width: 1 0 0 0;"); + return bar; + } + + private void setStatus(String msg) { + Platform.runLater(() -> statusLabel.setText(msg)); + } + + // ── Tastatur-Handling ──────────────────────────────────────────────────── + + private void handleKeyPress(KeyCode code, boolean pressed) { + switch (code) { + case W -> input.forward = pressed; + case S -> input.backward = pressed; + case A -> input.left = pressed; + case D -> input.right = pressed; + case Q -> input.up = pressed; + case E -> input.down = pressed; + } + } +} diff --git a/blight-editor/src/main/java/de/blight/editor/EditorLauncher.java b/blight-editor/src/main/java/de/blight/editor/EditorLauncher.java new file mode 100644 index 0000000..81c05a1 --- /dev/null +++ b/blight-editor/src/main/java/de/blight/editor/EditorLauncher.java @@ -0,0 +1,11 @@ +package de.blight.editor; + +/** + * Separater Launcher-Einstiegspunkt, damit der JavaFX-Klassenpfad korrekt + * aufgelöst wird, bevor Application.launch() aufgerufen wird. + */ +public class EditorLauncher { + public static void main(String[] args) { + EditorApp.main(args); + } +} diff --git a/blight-editor/src/main/java/de/blight/editor/FrameTransfer.java b/blight-editor/src/main/java/de/blight/editor/FrameTransfer.java new file mode 100644 index 0000000..6b133d4 --- /dev/null +++ b/blight-editor/src/main/java/de/blight/editor/FrameTransfer.java @@ -0,0 +1,91 @@ +package de.blight.editor; + +import com.jme3.post.SceneProcessor; +import com.jme3.profile.AppProfiler; +import com.jme3.renderer.RenderManager; +import com.jme3.renderer.Renderer; +import com.jme3.renderer.ViewPort; +import com.jme3.renderer.queue.RenderQueue; +import com.jme3.texture.FrameBuffer; +import javafx.application.Platform; +import javafx.scene.image.PixelFormat; +import javafx.scene.image.PixelWriter; +import javafx.scene.image.WritableImage; + +import java.nio.ByteBuffer; +import java.nio.IntBuffer; +import java.util.concurrent.atomic.AtomicBoolean; + +/** + * SceneProcessor: liest nach jedem JME3-Frame den Framebuffer aus und + * schreibt die Pixel (RGBA→ARGB, Y-gespiegelt) in ein JavaFX WritableImage. + */ +public class FrameTransfer implements SceneProcessor { + + private final WritableImage image; + private final PixelWriter pw; + private final int width; + private final int height; + + private Renderer renderer; + private ByteBuffer cpuBuf; + private byte[] snapshot; + private int[] argbRow; // Zeile für JavaFX-PixelWriter + + private final AtomicBoolean jfxBusy = new AtomicBoolean(false); + + public FrameTransfer(WritableImage image) { + this.image = image; + this.pw = image.getPixelWriter(); + this.width = (int) image.getWidth(); + this.height = (int) image.getHeight(); + } + + @Override + public void initialize(RenderManager rm, ViewPort vp) { + this.renderer = rm.getRenderer(); + this.cpuBuf = ByteBuffer.allocateDirect(width * height * 4); + this.snapshot = new byte[width * height * 4]; + this.argbRow = new int[width]; + } + + @Override + public void postFrame(FrameBuffer out) { + if (!jfxBusy.compareAndSet(false, true)) return; + + cpuBuf.clear(); + renderer.readFrameBuffer(out, cpuBuf); + cpuBuf.rewind(); + cpuBuf.get(snapshot); + + final byte[] pixels = snapshot.clone(); + + Platform.runLater(() -> { + try { + // GL: Y=0 unten → JavaFX: Y=0 oben + RGBA → 0xFFRRGGBB (int ARGB) + PixelFormat fmt = PixelFormat.getIntArgbInstance(); + for (int y = 0; y < height; y++) { + int srcBase = (height - 1 - y) * width * 4; + for (int x = 0; x < width; x++) { + int r = pixels[srcBase + x * 4 ] & 0xFF; + int g = pixels[srcBase + x * 4 + 1] & 0xFF; + int b = pixels[srcBase + x * 4 + 2] & 0xFF; + argbRow[x] = 0xFF000000 | (r << 16) | (g << 8) | b; + } + pw.setPixels(0, y, width, 1, fmt, argbRow, 0, width); + } + } finally { + jfxBusy.set(false); + } + }); + } + + // ── Pflichtmethoden ────────────────────────────────────────────────────── + + @Override public boolean isInitialized() { return renderer != null; } + @Override public void reshape(ViewPort vp, int w, int h) {} + @Override public void preFrame(float tpf) {} + @Override public void postQueue(RenderQueue rq) {} + @Override public void cleanup() {} + @Override public void setProfiler(AppProfiler profiler) {} +} diff --git a/blight-editor/src/main/java/de/blight/editor/JmeEditorApp.java b/blight-editor/src/main/java/de/blight/editor/JmeEditorApp.java new file mode 100644 index 0000000..0749f91 --- /dev/null +++ b/blight-editor/src/main/java/de/blight/editor/JmeEditorApp.java @@ -0,0 +1,53 @@ +package de.blight.editor; + +import com.jme3.app.SimpleApplication; +import com.jme3.system.AppSettings; +import com.jme3.system.JmeContext; +import de.blight.editor.state.TerrainEditorState; +import javafx.scene.image.WritableImage; + +public class JmeEditorApp extends SimpleApplication { + + private final SharedInput input; + private final WritableImage jfxImage; + + public JmeEditorApp(SharedInput input, WritableImage jfxImage) { + this.input = input; + this.jfxImage = jfxImage; + } + + /** Startet JME3 in einem Daemon-Thread (blockierend bis App endet). */ + public static JmeEditorApp launch(SharedInput input, WritableImage jfxImage, + int vpWidth, int vpHeight) { + JmeEditorApp app = new JmeEditorApp(input, jfxImage); + + AppSettings settings = new AppSettings(true); + settings.setTitle("Blight Editor – JME3"); + settings.setResolution(vpWidth, vpHeight); + settings.setRenderer(AppSettings.LWJGL_OPENGL32); + settings.setAudioRenderer(null); + settings.setSamples(4); + + app.setSettings(settings); + app.setShowSettings(false); + app.setPauseOnLostFocus(false); + + Thread t = new Thread(() -> app.start(JmeContext.Type.OffscreenSurface), "jme3-editor"); + t.setDaemon(true); + t.start(); + return app; + } + + @Override + public void simpleInitApp() { + flyCam.setEnabled(false); + + // Frame-Export in das JavaFX-WritableImage + viewPort.addProcessor(new FrameTransfer(jfxImage)); + + stateManager.attach(new TerrainEditorState(input)); + } + + @Override + public void simpleUpdate(float tpf) {} +} diff --git a/blight-editor/src/main/java/de/blight/editor/SharedInput.java b/blight-editor/src/main/java/de/blight/editor/SharedInput.java new file mode 100644 index 0000000..6f6ebd7 --- /dev/null +++ b/blight-editor/src/main/java/de/blight/editor/SharedInput.java @@ -0,0 +1,33 @@ +package de.blight.editor; + +import java.util.concurrent.ConcurrentLinkedQueue; +import java.util.concurrent.atomic.AtomicInteger; + +/** Thread-safe Brücke: JavaFX-Events → JME3-Update-Schleife. */ +public class SharedInput { + + // ── Kamerabewegung (WASD + QE) ────────────────────────────────────────── + public volatile boolean forward, backward, left, right, up, down; + + // ── Kamerarotation (Maus-Drag mit mittlerer Taste) ─────────────────────── + private final AtomicInteger mouseDxAccum = new AtomicInteger(); + private final AtomicInteger mouseDyAccum = new AtomicInteger(); + + public void addMouseDelta(int dx, int dy) { + mouseDxAccum.addAndGet(dx); + mouseDyAccum.addAndGet(dy); + } + + /** Gibt akkumulierten Maus-Delta zurück und setzt ihn zurück. */ + public int[] consumeMouseDelta() { + return new int[]{ mouseDxAccum.getAndSet(0), mouseDyAccum.getAndSet(0) }; + } + + // ── Terrain-Edits ──────────────────────────────────────────────────────── + public record TerrainEdit(float screenX, float screenY, int action) {} + public final ConcurrentLinkedQueue editQueue = new ConcurrentLinkedQueue<>(); + + // ── Viewport-Skalierung (JavaFX-Pixel → JME3-Pixel) ───────────────────── + public volatile double viewportScaleX = 1.0; + public volatile double viewportScaleY = 1.0; +} diff --git a/blight-editor/src/main/java/de/blight/editor/state/TerrainEditorState.java b/blight-editor/src/main/java/de/blight/editor/state/TerrainEditorState.java new file mode 100644 index 0000000..6ce71f5 --- /dev/null +++ b/blight-editor/src/main/java/de/blight/editor/state/TerrainEditorState.java @@ -0,0 +1,293 @@ +package de.blight.editor.state; + +import com.jme3.app.Application; +import com.jme3.app.SimpleApplication; +import com.jme3.app.state.BaseAppState; +import com.jme3.asset.AssetManager; +import com.jme3.collision.CollisionResults; +import com.jme3.light.AmbientLight; +import com.jme3.light.DirectionalLight; +import com.jme3.material.Material; +import com.jme3.material.RenderState; +import com.jme3.math.*; +import com.jme3.renderer.Camera; +import com.jme3.renderer.queue.RenderQueue; +import com.jme3.scene.Geometry; +import com.jme3.scene.Mesh; +import com.jme3.scene.Node; +import com.jme3.scene.VertexBuffer; +import com.jme3.scene.shape.Quad; +import com.jme3.util.BufferUtils; +import de.blight.editor.SharedInput; + +import java.nio.FloatBuffer; +import java.nio.IntBuffer; + +public class TerrainEditorState extends BaseAppState { + + // ── Konstanten ────────────────────────────────────────────────────────── + private static final int V = 17; // Vertices pro Achse (16 Zellen) + private static final float BRUSH_RADIUS = 2.0f; // Meter + private static final float BRUSH_DELTA = 0.25f; // Höhenänderung pro Klick + private static final float CAM_SPEED = 12f; + private static final float MOUSE_SENS = 0.003f; + + // ── Zustand ───────────────────────────────────────────────────────────── + private SimpleApplication app; + private Camera cam; + private AssetManager assets; + private Node rootNode; + private final SharedInput input; + + private final float[] heights = new float[V * V]; // flaches Array, Index = z*V+x + private Mesh terrainMesh; + private Geometry terrainGeo; + + // Kamera-Euler-Winkel + private float camYaw = 0f; + private float camPitch = -0.4f; + private final Vector3f camPos = new Vector3f(0, 14, 22); + + public TerrainEditorState(SharedInput input) { + this.input = input; + } + + // ── Lifecycle ──────────────────────────────────────────────────────────── + + @Override + protected void initialize(Application app) { + this.app = (SimpleApplication) app; + this.cam = app.getCamera(); + this.assets = app.getAssetManager(); + this.rootNode = this.app.getRootNode(); + } + + @Override + protected void onEnable() { + buildScene(); + applyCameraTransform(); + } + + @Override + protected void onDisable() { + rootNode.detachAllChildren(); + } + + @Override protected void cleanup(Application app) {} + + // ── Szene aufbauen ─────────────────────────────────────────────────────── + + private void buildScene() { + // Licht + DirectionalLight sun = new DirectionalLight(); + sun.setDirection(new Vector3f(-0.5f, -1f, -0.5f).normalizeLocal()); + sun.setColor(new ColorRGBA(1.2f, 1.1f, 0.9f, 1f)); + rootNode.addLight(sun); + + AmbientLight ambient = new AmbientLight(new ColorRGBA(0.35f, 0.38f, 0.45f, 1f)); + rootNode.addLight(ambient); + + // Terrain + terrainGeo = buildTerrainGeometry(); + rootNode.attachChild(terrainGeo); + + // Wasser bei Y = 0 + rootNode.attachChild(buildWater()); + + // Raster-Linien auf dem Terrain (als dünne Linien-Node wäre komplex, Gitter via Grid-Overlay) + // Einfache Grid-Markierung: ein flaches transparentes Quad mit Wireframe + rootNode.attachChild(buildGridOverlay()); + + // Himmel (einfacher Hintergrund-Farbverlauf über Viewport-BG-Farbe) + app.getViewPort().setBackgroundColor(new ColorRGBA(0.45f, 0.60f, 0.80f, 1f)); + } + + private Geometry buildTerrainGeometry() { + terrainMesh = new Mesh(); + FloatBuffer posBuf = BufferUtils.createFloatBuffer(V * V * 3); + FloatBuffer normBuf = BufferUtils.createFloatBuffer(V * V * 3); + FloatBuffer texBuf = BufferUtils.createFloatBuffer(V * V * 2); + IntBuffer idxBuf = BufferUtils.createIntBuffer((V - 1) * (V - 1) * 6); + + for (int z = 0; z < V; z++) { + for (int x = 0; x < V; x++) { + posBuf.put(x).put(heights[z * V + x]).put(z); + normBuf.put(0).put(1).put(0); + texBuf.put(x / 16f).put(z / 16f); + } + } + for (int z = 0; z < V - 1; z++) { + for (int x = 0; x < V - 1; x++) { + int bl = z * V + x, br = bl + 1; + int tl = bl + V, tr = tl + 1; + idxBuf.put(bl).put(tr).put(br); + idxBuf.put(bl).put(tl).put(tr); + } + } + + terrainMesh.setBuffer(VertexBuffer.Type.Position, 3, posBuf); + terrainMesh.setBuffer(VertexBuffer.Type.Normal, 3, normBuf); + terrainMesh.setBuffer(VertexBuffer.Type.TexCoord, 2, texBuf); + terrainMesh.setBuffer(VertexBuffer.Type.Index, 3, idxBuf); + terrainMesh.updateBound(); + + Geometry geo = new Geometry("terrain", terrainMesh); + geo.setLocalTranslation(-8, 0, -8); // Terrain zentriert bei Ursprung + + Material mat = new Material(assets, "Common/MatDefs/Light/Lighting.j3md"); + mat.setBoolean("UseMaterialColors", true); + mat.setColor("Diffuse", new ColorRGBA(0.28f, 0.58f, 0.18f, 1f)); + mat.setColor("Ambient", new ColorRGBA(0.12f, 0.28f, 0.08f, 1f)); + mat.setColor("Specular", ColorRGBA.Black); + mat.setFloat("Shininess", 0f); + geo.setMaterial(mat); + return geo; + } + + private Geometry buildWater() { + Geometry water = new Geometry("water", new Quad(16, 16)); + water.rotate(-FastMath.HALF_PI, 0, 0); + water.setLocalTranslation(-8, 0.01f, 8); // leicht über Y=0 damit kein Z-Fighting + + Material mat = new Material(assets, "Common/MatDefs/Misc/Unshaded.j3md"); + mat.setColor("Color", new ColorRGBA(0.05f, 0.25f, 0.70f, 0.55f)); + mat.getAdditionalRenderState().setBlendMode(RenderState.BlendMode.Alpha); + water.setQueueBucket(RenderQueue.Bucket.Transparent); + water.setMaterial(mat); + return water; + } + + private Geometry buildGridOverlay() { + // Einfaches Wireframe-Duplikat des Terrains als Gitter + Geometry grid = new Geometry("grid", terrainMesh); + grid.setLocalTranslation(-8, 0.02f, -8); + + Material mat = new Material(assets, "Common/MatDefs/Misc/Unshaded.j3md"); + mat.setColor("Color", new ColorRGBA(0f, 0f, 0f, 0.25f)); + mat.getAdditionalRenderState().setWireframe(true); + mat.getAdditionalRenderState().setBlendMode(RenderState.BlendMode.Alpha); + grid.setQueueBucket(RenderQueue.Bucket.Transparent); + grid.setMaterial(mat); + return grid; + } + + // ── Update-Schleife ────────────────────────────────────────────────────── + + @Override + public void update(float tpf) { + updateCamera(tpf); + processEdits(); + } + + private void updateCamera(float tpf) { + // Rotation aus akkumuliertem Maus-Delta + int[] delta = input.consumeMouseDelta(); + if (delta[0] != 0 || delta[1] != 0) { + camYaw -= delta[0] * MOUSE_SENS; + camPitch -= delta[1] * MOUSE_SENS; + camPitch = FastMath.clamp(camPitch, + -FastMath.HALF_PI + 0.05f, + FastMath.HALF_PI - 0.05f); + } + + applyCameraTransform(); + + // Bewegung in Kamera-Vorwärtsrichtung projiziert auf XZ-Ebene + float speed = CAM_SPEED * tpf; + Vector3f fwd = cam.getDirection().clone().setY(0); + if (fwd.lengthSquared() > 0.001f) fwd.normalizeLocal(); + Vector3f lft = cam.getLeft().clone().setY(0); + if (lft.lengthSquared() > 0.001f) lft.normalizeLocal(); + + if (input.forward) camPos.addLocal(fwd.mult(speed)); + if (input.backward) camPos.subtractLocal(fwd.mult(speed)); + if (input.left) camPos.addLocal(lft.mult(speed)); + if (input.right) camPos.subtractLocal(lft.mult(speed)); + if (input.up) camPos.y += speed; + if (input.down) camPos.y -= speed; + + cam.setLocation(camPos); + } + + private void applyCameraTransform() { + Quaternion yawQ = new Quaternion().fromAngleAxis(camYaw, Vector3f.UNIT_Y); + Quaternion pitchQ = new Quaternion().fromAngleAxis(camPitch, Vector3f.UNIT_X); + cam.setRotation(yawQ.mult(pitchQ)); + cam.setLocation(camPos); + } + + private void processEdits() { + SharedInput.TerrainEdit edit; + while ((edit = input.editQueue.poll()) != null) { + // JavaFX-Koordinaten → JME3-Screen-Koordinaten (Y spiegeln) + float jmeX = (float)(edit.screenX() * input.viewportScaleX); + float jmeY = cam.getHeight() - (float)(edit.screenY() * input.viewportScaleY); + + Vector3f near = cam.getWorldCoordinates(new Vector2f(jmeX, jmeY), 0f); + Vector3f far = cam.getWorldCoordinates(new Vector2f(jmeX, jmeY), 1f); + Vector3f dir = far.subtract(near).normalizeLocal(); + + CollisionResults hits = new CollisionResults(); + terrainGeo.collideWith(new com.jme3.math.Ray(near, dir), hits); + + if (hits.size() > 0) { + Vector3f contact = hits.getClosestCollision().getContactPoint(); + modifyHeight(contact, edit.action() * BRUSH_DELTA); + } + } + } + + // ── Höhen-Werkzeug ─────────────────────────────────────────────────────── + + private void modifyHeight(Vector3f worldContact, float delta) { + // Terrain-Geometrie ist bei (-8, 0, -8), Vertices bei (0..16, h, 0..16) + float localX = worldContact.x + 8; + float localZ = worldContact.z + 8; + + for (int z = 0; z < V; z++) { + for (int x = 0; x < V; x++) { + float dx = x - localX; + float dz = z - localZ; + float dist = FastMath.sqrt(dx * dx + dz * dz); + if (dist < BRUSH_RADIUS) { + float falloff = 1f - dist / BRUSH_RADIUS; + heights[z * V + x] += delta * falloff; + } + } + } + updateTerrainMesh(); + } + + private void updateTerrainMesh() { + FloatBuffer posBuf = terrainMesh.getFloatBuffer(VertexBuffer.Type.Position); + FloatBuffer normBuf = terrainMesh.getFloatBuffer(VertexBuffer.Type.Normal); + + posBuf.rewind(); + for (int z = 0; z < V; z++) { + for (int x = 0; x < V; x++) { + posBuf.put(x).put(heights[z * V + x]).put(z); + } + } + + // Normalen per finite differences + normBuf.rewind(); + for (int z = 0; z < V; z++) { + for (int x = 0; x < V; x++) { + float hL = x > 0 ? heights[z * V + (x - 1)] : heights[z * V + x]; + float hR = x < V-1 ? heights[z * V + (x + 1)] : heights[z * V + x]; + float hD = z > 0 ? heights[(z - 1) * V + x] : heights[z * V + x]; + float hU = z < V-1 ? heights[(z + 1) * V + x] : heights[z * V + x]; + float nx = -(hR - hL); + float ny = 2.0f; + float nz = -(hU - hD); + float len = FastMath.sqrt(nx*nx + ny*ny + nz*nz); + normBuf.put(nx / len).put(ny / len).put(nz / len); + } + } + + terrainMesh.getBuffer(VertexBuffer.Type.Position).setUpdateNeeded(); + terrainMesh.getBuffer(VertexBuffer.Type.Normal).setUpdateNeeded(); + terrainMesh.updateBound(); + terrainGeo.updateModelBound(); + } +} diff --git a/blight-game/assets/Textures/gras.png b/blight-game/assets/Textures/gras.png new file mode 100644 index 0000000..2f131cb Binary files /dev/null and b/blight-game/assets/Textures/gras.png differ diff --git a/blight-game/bin/main/Textures/gras.png b/blight-game/bin/main/Textures/gras.png new file mode 100644 index 0000000..2f131cb Binary files /dev/null and b/blight-game/bin/main/Textures/gras.png differ diff --git a/blight-game/build.gradle b/blight-game/build.gradle new file mode 100644 index 0000000..6caa0d4 --- /dev/null +++ b/blight-game/build.gradle @@ -0,0 +1,81 @@ +plugins { + id 'java' + id 'application' +} + +group = 'de.blight' +version = '0.1.0' + +java { + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 +} + +sourceSets { + main { + resources { + srcDirs = ['src/main/resources', 'assets'] + } + } +} + +application { + mainClass = 'de.blight.game.BlightApp' + // jMonkeyEngine benötigt den headless-Flag nicht; nativer Fenstermodus + applicationDefaultJvmArgs = [ + '--add-opens', 'java.base/java.lang=ALL-UNNAMED', + '--add-opens', 'java.desktop/sun.awt=ALL-UNNAMED', + '-Djava.library.path=${rootDir}/build/natives' + ] +} + +repositories { + mavenCentral() +} + +ext { + jmeVersion = '3.7.0-stable' +} + +dependencies { + // jMonkeyEngine core + implementation "org.jmonkeyengine:jme3-core:${jmeVersion}" + implementation "org.jmonkeyengine:jme3-desktop:${jmeVersion}" + implementation "org.jmonkeyengine:jme3-lwjgl3:${jmeVersion}" + + // Terrain, Effects, Plugins + implementation "org.jmonkeyengine:jme3-terrain:${jmeVersion}" + implementation "org.jmonkeyengine:jme3-effects:${jmeVersion}" + + // Bullet-Physik (nativ) + implementation "org.jmonkeyengine:jme3-jbullet:${jmeVersion}" + + // Testdaten / eingebaute Assets (Primitiv-Modelle, Skybox etc.) + implementation "org.jmonkeyengine:jme3-testdata:${jmeVersion}" + + // JSON für Key-Binding-Konfiguration + implementation 'com.google.code.gson:gson:2.11.0' +} + +// Native Libraries automatisch entpacken +tasks.register('extractNatives', Copy) { + def nativeConf = configurations.runtimeClasspath.resolvedConfiguration + .resolvedArtifacts + .findAll { it.name.contains('natives') } + .collect { zipTree(it.file) } + + from nativeConf + into "${buildDir}/natives" + duplicatesStrategy = DuplicatesStrategy.INCLUDE +} + +run { + dependsOn extractNatives + workingDir = rootDir +} + +jar { + manifest { + attributes 'Main-Class': application.mainClass + } +} diff --git a/blight-game/gradle/wrapper/gradle-wrapper.jar b/blight-game/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000..e644113 Binary files /dev/null and b/blight-game/gradle/wrapper/gradle-wrapper.jar differ diff --git a/blight-game/gradle/wrapper/gradle-wrapper.properties b/blight-game/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..b82aa23 --- /dev/null +++ b/blight-game/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,7 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-bin.zip +networkTimeout=10000 +validateDistributionUrl=true +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists diff --git a/blight-game/gradlew b/blight-game/gradlew new file mode 100755 index 0000000..97de990 --- /dev/null +++ b/blight-game/gradlew @@ -0,0 +1,249 @@ +#!/bin/sh + +# +# Copyright © 2015-2021 the original authors. +# +# 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. +# + +############################################################################## +# +# Gradle start up script for POSIX generated by Gradle. +# +# Important for running: +# +# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is +# noncompliant, but you have some other compliant shell such as ksh or +# bash, then to run this script, type that shell name before the whole +# command line, like: +# +# ksh Gradle +# +# Busybox and similar reduced shells will NOT work, because this script +# requires all of these POSIX shell features: +# * functions; +# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», +# «${var#prefix}», «${var%suffix}», and «$( cmd )»; +# * compound commands having a testable exit status, especially «case»; +# * various built-in commands including «command», «set», and «ulimit». +# +# Important for patching: +# +# (2) This script targets any POSIX shell, so it avoids extensions provided +# by Bash, Ksh, etc; in particular arrays are avoided. +# +# The "traditional" practice of packing multiple parameters into a +# space-separated string is a well documented source of bugs and security +# problems, so this is (mostly) avoided, by progressively accumulating +# options in "$@", and eventually passing that to Java. +# +# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, +# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; +# see the in-line comments for details. +# +# There are tweaks for specific operating systems such as AIX, CygWin, +# Darwin, MinGW, and NonStop. +# +# (3) This script is generated from the Groovy template +# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# within the Gradle project. +# +# You can find Gradle at https://github.com/gradle/gradle/. +# +############################################################################## + +# Attempt to set APP_HOME + +# Resolve links: $0 may be a link +app_path=$0 + +# Need this for daisy-chained symlinks. +while + APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path + [ -h "$app_path" ] +do + ls=$( ls -ld "$app_path" ) + link=${ls#*' -> '} + case $link in #( + /*) app_path=$link ;; #( + *) app_path=$APP_HOME$link ;; + esac +done + +# This is normally unused +# shellcheck disable=SC2034 +APP_BASE_NAME=${0##*/} +# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) +APP_HOME=$( cd "${APP_HOME:-./}" > /dev/null && pwd -P ) || exit + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD=maximum + +warn () { + echo "$*" +} >&2 + +die () { + echo + echo "$*" + echo + exit 1 +} >&2 + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "$( uname )" in #( + CYGWIN* ) cygwin=true ;; #( + Darwin* ) darwin=true ;; #( + MSYS* | MINGW* ) msys=true ;; #( + NONSTOP* ) nonstop=true ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD=$JAVA_HOME/jre/sh/java + else + JAVACMD=$JAVA_HOME/bin/java + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD=java + if ! command -v java >/dev/null 2>&1 + then + die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +fi + +# Increase the maximum file descriptors if we can. +if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then + case $MAX_FD in #( + max*) + # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + MAX_FD=$( ulimit -H -n ) || + warn "Could not query maximum file descriptor limit" + esac + case $MAX_FD in #( + '' | soft) :;; #( + *) + # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + ulimit -n "$MAX_FD" || + warn "Could not set maximum file descriptor limit to $MAX_FD" + esac +fi + +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. + +# For Cygwin or MSYS, switch paths to Windows format before running java +if "$cygwin" || "$msys" ; then + APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) + CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) + + JAVACMD=$( cygpath --unix "$JAVACMD" ) + + # Now convert the arguments - kludge to limit ourselves to /bin/sh + for arg do + if + case $arg in #( + -*) false ;; # don't mess with options #( + /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath + [ -e "$t" ] ;; #( + *) false ;; + esac + then + arg=$( cygpath --path --ignore --mixed "$arg" ) + fi + # Roll the args list around exactly as many times as the number of + # args, so each arg winds up back in the position where it started, but + # possibly modified. + # + # NB: a `for` loop captures its iteration list before it begins, so + # changing the positional parameters here affects neither the number of + # iterations, nor the values presented in `arg`. + shift # remove old arg + set -- "$@" "$arg" # push replacement arg + done +fi + + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='-Dfile.encoding=UTF-8 "-Xmx64m" "-Xms64m"' + +# Collect all arguments for the java command: +# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# and any embedded shellness will be escaped. +# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be +# treated as '${Hostname}' itself on the command line. + +set -- \ + "-Dorg.gradle.appname=$APP_BASE_NAME" \ + -classpath "$CLASSPATH" \ + org.gradle.wrapper.GradleWrapperMain \ + "$@" + +# Stop when "xargs" is not available. +if ! command -v xargs >/dev/null 2>&1 +then + die "xargs is not available" +fi + +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# + +eval "set -- $( + printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | + xargs -n1 | + sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | + tr '\n' ' ' + )" '"$@"' + +exec "$JAVACMD" "$@" diff --git a/blight-game/gradlew.bat b/blight-game/gradlew.bat new file mode 100644 index 0000000..16e26a1 --- /dev/null +++ b/blight-game/gradlew.bat @@ -0,0 +1,92 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + +@if "%DEBUG%"=="" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%"=="" set DIRNAME=. +@rem This is normally unused +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS=-Dfile.encoding=UTF-8 "-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if %ERRORLEVEL% equ 0 goto execute + +echo. 1>&2 +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. 1>&2 +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* + +:end +@rem End local scope for the variables with windows NT shell +if %ERRORLEVEL% equ 0 goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +set EXIT_CODE=%ERRORLEVEL% +if %EXIT_CODE% equ 0 set EXIT_CODE=1 +if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% +exit /b %EXIT_CODE% + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/blight-game/settings.gradle b/blight-game/settings.gradle new file mode 100644 index 0000000..f95b0de --- /dev/null +++ b/blight-game/settings.gradle @@ -0,0 +1 @@ +rootProject.name = 'blight-game' diff --git a/blight-game/src/main/java/de/blight/game/BlightApp.java b/blight-game/src/main/java/de/blight/game/BlightApp.java new file mode 100644 index 0000000..204b91f --- /dev/null +++ b/blight-game/src/main/java/de/blight/game/BlightApp.java @@ -0,0 +1,92 @@ +package de.blight.game; + +import com.jme3.app.SimpleApplication; +import com.jme3.input.KeyInput; +import com.jme3.input.controls.ActionListener; +import com.jme3.input.controls.KeyTrigger; +import com.jme3.system.AppSettings; +import de.blight.game.config.*; +import de.blight.game.scene.WorldScene; + +public class BlightApp extends SimpleApplication { + + private KeyBindings keyBindings; + private GraphicsSettings graphicsSettings; + private WorldScene worldScene; + private ConfigScreen configScreen; + private GraphicsScreen graphicsScreen; + private PauseMenu pauseMenu; + + public static void main(String[] args) { + BlightApp app = new BlightApp(); + + GraphicsSettings gs = GraphicsStore.load(); + AppSettings settings = new AppSettings(true); + settings.setTitle("Blight"); + settings.setResolution(gs.width, gs.height); + settings.setFullscreen(gs.fullscreen); + settings.setVSync(gs.vsync); + settings.setSamples(gs.samples); + + app.setSettings(settings); + app.setShowSettings(false); + app.start(); + } + + @Override + public void simpleInitApp() { + flyCam.setEnabled(false); + inputManager.deleteMapping(INPUT_MAPPING_EXIT); + + keyBindings = KeyBindingStore.load(); + graphicsSettings = GraphicsStore.load(); + + worldScene = new WorldScene(keyBindings); + stateManager.attach(worldScene); + + configScreen = new ConfigScreen(keyBindings, () -> worldScene.reloadBindings(keyBindings)); + configScreen.setOnClose(() -> pauseMenu.setEnabled(true)); + stateManager.attach(configScreen); + configScreen.setEnabled(false); + + graphicsScreen = new GraphicsScreen(graphicsSettings, () -> pauseMenu.setEnabled(true)); + stateManager.attach(graphicsScreen); + graphicsScreen.setEnabled(false); + + pauseMenu = new PauseMenu( + () -> { pauseMenu.setEnabled(false); graphicsScreen.setEnabled(true); }, + () -> { pauseMenu.setEnabled(false); configScreen.setEnabled(true); } + ); + stateManager.attach(pauseMenu); + pauseMenu.setEnabled(false); + + inputManager.addMapping("ToggleMenu", new KeyTrigger(KeyInput.KEY_ESCAPE)); + inputManager.addListener((ActionListener) (name, isPressed, tpf) -> { + if (!isPressed) return; + + if (graphicsScreen.isEnabled()) { + // GraphicsScreen wird nur über seine eigenen Buttons geschlossen + return; + } + if (configScreen.isEnabled()) { + if (configScreen.isWaiting()) { + configScreen.cancelWaiting(); + } else { + configScreen.setEnabled(false); + pauseMenu.setEnabled(true); + } + return; + } + if (pauseMenu.isEnabled()) { + pauseMenu.setEnabled(false); + worldScene.setPaused(false); + return; + } + pauseMenu.setEnabled(true); + worldScene.setPaused(true); + }, "ToggleMenu"); + } + + @Override + public void simpleUpdate(float tpf) {} +} diff --git a/blight-game/src/main/java/de/blight/game/config/ConfigScreen.java b/blight-game/src/main/java/de/blight/game/config/ConfigScreen.java new file mode 100644 index 0000000..fd13c6a --- /dev/null +++ b/blight-game/src/main/java/de/blight/game/config/ConfigScreen.java @@ -0,0 +1,309 @@ +package de.blight.game.config; + +import java.util.ArrayList; +import java.util.List; + +import com.jme3.app.Application; +import com.jme3.app.SimpleApplication; +import com.jme3.app.state.BaseAppState; +import com.jme3.font.BitmapFont; +import com.jme3.font.BitmapText; +import com.jme3.input.KeyInput; +import com.jme3.input.MouseInput; +import com.jme3.input.RawInputListener; +import com.jme3.input.controls.ActionListener; +import com.jme3.input.controls.MouseButtonTrigger; +import com.jme3.input.event.JoyAxisEvent; +import com.jme3.input.event.JoyButtonEvent; +import com.jme3.input.event.KeyInputEvent; +import com.jme3.input.event.MouseButtonEvent; +import com.jme3.input.event.MouseMotionEvent; +import com.jme3.input.event.TouchEvent; +import com.jme3.material.Material; +import com.jme3.material.RenderState; +import com.jme3.math.ColorRGBA; +import com.jme3.math.Vector2f; +import com.jme3.renderer.queue.RenderQueue; +import com.jme3.scene.Geometry; +import com.jme3.scene.Node; +import com.jme3.scene.shape.Quad; + +/** + * Overlay-AppState der die Tastenbelegungs-Maske anzeigt. + * + * ESC → Schließen (ohne Speichern) + * Klick auf Row → wartet auf neue Taste + * ESC während Warten → bricht nur die Zuweisung ab + * Speichern → schreibt JSON, ruft onSave-Callback + */ +public class ConfigScreen extends BaseAppState implements RawInputListener { + + // Farben + private static final ColorRGBA COL_BG = new ColorRGBA(0.05f, 0.05f, 0.08f, 0.88f); + private static final ColorRGBA COL_PANEL = new ColorRGBA(0.10f, 0.10f, 0.16f, 1.00f); + private static final ColorRGBA COL_ROW = new ColorRGBA(0.18f, 0.18f, 0.28f, 1.00f); + private static final ColorRGBA COL_ROW_HOVER = new ColorRGBA(0.25f, 0.25f, 0.40f, 1.00f); + private static final ColorRGBA COL_ROW_WAIT = new ColorRGBA(0.50f, 0.30f, 0.10f, 1.00f); + private static final ColorRGBA COL_BTN_SAVE = new ColorRGBA(0.15f, 0.40f, 0.15f, 1.00f); + private static final ColorRGBA COL_BTN_CANCEL = new ColorRGBA(0.40f, 0.15f, 0.15f, 1.00f); + private static final ColorRGBA COL_TEXT = ColorRGBA.White; + private static final ColorRGBA COL_TEXT_KEY = new ColorRGBA(0.85f, 0.85f, 0.50f, 1.00f); + + // ----------------------------------------------------------------------- + + private SimpleApplication app; + private Node guiNode; + private BitmapFont font; + + private KeyBindings liveBindings; // geteilt mit der ganzen App + private KeyBindings editCopy; // wird beim Öffnen geklont + + private Runnable onSave; // Callback → PlayerInputControl.reloadBindings + private Runnable onClose; // Callback → PauseMenu wiederherstellen + + private Node panel; + private List rows = new ArrayList<>(); + private int waitingRow = -1; // -1 = keine Zuweisung aktiv + + // UI-Elemente für Buttons (Bounds in Screen-Koordinaten) + private float saveBtnX, saveBtnY, saveBtnW, saveBtnH; + private float cancelBtnX, cancelBtnY; + + // ----------------------------------------------------------------------- + + private static class Row { + String field; + String label; + BitmapText keyText; + Geometry bg; + float x, y, w, h; // Button-Bounds + } + + // ----------------------------------------------------------------------- + + public ConfigScreen(KeyBindings liveBindings, Runnable onSave) { + this.liveBindings = liveBindings; + this.onSave = onSave; + } + + public boolean isWaiting() { return waitingRow >= 0; } + + public void setOnClose(Runnable onClose) { this.onClose = onClose; } + + public void cancelWaiting() { + if (waitingRow >= 0) { resetRowColor(waitingRow); waitingRow = -1; } + } + + // ----------------------------------------------------------------------- + // Lifecycle + // ----------------------------------------------------------------------- + + @Override + protected void initialize(Application app) { + this.app = (SimpleApplication) app; + this.guiNode = this.app.getGuiNode(); + this.font = app.getAssetManager().loadFont("Interface/Fonts/Default.fnt"); + } + + @Override + protected void onEnable() { + editCopy = liveBindings.copy(); + waitingRow = -1; + buildUI(); + app.getInputManager().setCursorVisible(true); + app.getInputManager().addRawInputListener(this); + app.getInputManager().addMapping("_CfgClick", new MouseButtonTrigger(MouseInput.BUTTON_LEFT)); + app.getInputManager().addListener(clickListener, "_CfgClick"); + } + + @Override + protected void onDisable() { + if (panel != null) { guiNode.detachChild(panel); panel = null; } + rows.clear(); + waitingRow = -1; + app.getInputManager().removeRawInputListener(this); + app.getInputManager().deleteMapping("_CfgClick"); + app.getInputManager().setCursorVisible(false); + } + + @Override protected void cleanup(Application app) {} + + // ----------------------------------------------------------------------- + // UI aufbauen + // ----------------------------------------------------------------------- + + private void buildUI() { + float sw = app.getCamera().getWidth(); + float sh = app.getCamera().getHeight(); + + panel = new Node("cfg-panel"); + + // Halbdurchsichtiger Overlay über dem Spiel + addQuad(panel, 0, 0, sw, sh, COL_BG, -2); + + float pw = 720, ph = 440; + float px = (sw - pw) / 2f, py = (sh - ph) / 2f; + addQuad(panel, px, py, pw, ph, COL_PANEL, -1); + + // Titel + BitmapText title = text("TASTENBELEGUNG", 20, COL_TEXT); + centerText(title, px, py + ph - 40, pw); + panel.attachChild(title); + + BitmapText hint = text("Klicke eine Taste um sie neu zu belegen", 14, new ColorRGBA(0.7f, 0.7f, 0.7f, 1f)); + centerText(hint, px, py + ph - 70, pw); + panel.attachChild(hint); + + // Reihen + float rowX = px + 30; + float keyX = px + pw - 220; + float rowW = 180; + float rowH = 36; + float startY = py + ph - 110; + float stepY = 48; + + for (int i = 0; i < KeyBindings.ENTRIES.length; i++) { + String[] entry = KeyBindings.ENTRIES[i]; + float ry = startY - i * stepY; + + BitmapText lbl = text(entry[1], 16, COL_TEXT); + lbl.setLocalTranslation(rowX, ry + rowH - 8, 0); + panel.attachChild(lbl); + + Geometry bg = addQuad(panel, keyX, ry, rowW, rowH, COL_ROW, 0); + + BitmapText kt = text(KeyNames.of(editCopy.get(entry[0])), 16, COL_TEXT_KEY); + kt.setLocalTranslation(keyX + 10, ry + rowH - 8, 1); + panel.attachChild(kt); + + Row row = new Row(); + row.field = entry[0]; + row.label = entry[1]; + row.keyText = kt; + row.bg = bg; + row.x = keyX; row.y = ry; row.w = rowW; row.h = rowH; + rows.add(row); + } + + // Buttons + float btnW = 160, btnH = 42; + float btnY = py + 25; + saveBtnX = px + pw / 2f - btnW - 15; + saveBtnY = btnY; + saveBtnW = btnW; + saveBtnH = btnH; + cancelBtnX = px + pw / 2f + 15; + cancelBtnY = btnY; + + addQuad(panel, saveBtnX, saveBtnY, btnW, btnH, COL_BTN_SAVE, 0); + BitmapText saveLabel = text("Speichern", 16, COL_TEXT); + centerText(saveLabel, saveBtnX, saveBtnY + btnH - 10, btnW); + panel.attachChild(saveLabel); + + addQuad(panel, cancelBtnX, cancelBtnY, btnW, btnH, COL_BTN_CANCEL, 0); + BitmapText cancelLabel = text("Abbrechen", 16, COL_TEXT); + centerText(cancelLabel, cancelBtnX, cancelBtnY + btnH - 10, btnW); + panel.attachChild(cancelLabel); + + guiNode.attachChild(panel); + } + + // ----------------------------------------------------------------------- + // Mausklick + // ----------------------------------------------------------------------- + + private final ActionListener clickListener = (name, isPressed, tpf) -> { + if (!isPressed) return; + Vector2f cursor = app.getInputManager().getCursorPosition(); + + // Reihen prüfen + for (int i = 0; i < rows.size(); i++) { + Row r = rows.get(i); + if (hits(cursor, r.x, r.y, r.w, r.h)) { + waitingRow = i; + r.bg.getMaterial().setColor("Color", COL_ROW_WAIT); + r.keyText.setText("..."); + return; + } + } + + // Speichern + if (hits(cursor, saveBtnX, saveBtnY, saveBtnW, saveBtnH)) { + liveBindings.copyFrom(editCopy); + KeyBindingStore.save(liveBindings); + if (onSave != null) onSave.run(); + setEnabled(false); + if (onClose != null) onClose.run(); + return; + } + + // Abbrechen + if (hits(cursor, cancelBtnX, cancelBtnY, saveBtnW, saveBtnH)) { + setEnabled(false); + if (onClose != null) onClose.run(); + } + }; + + // ----------------------------------------------------------------------- + // Tastendruck beim Warten auf Zuweisung (RawInputListener) + // ----------------------------------------------------------------------- + + @Override + public void onKeyEvent(KeyInputEvent evt) { + if (!evt.isPressed() || waitingRow < 0) return; + if (evt.getKeyCode() == KeyInput.KEY_ESCAPE) return; // cancelWaiting() wird von BlightApp aufgerufen + + Row r = rows.get(waitingRow); + editCopy.set(r.field, evt.getKeyCode()); + r.keyText.setText(KeyNames.of(evt.getKeyCode())); + resetRowColor(waitingRow); + waitingRow = -1; + } + + private void resetRowColor(int idx) { + rows.get(idx).bg.getMaterial().setColor("Color", COL_ROW); + } + + // RawInputListener-Pflichtmethoden + @Override public void beginInput() {} + @Override public void endInput() {} + @Override public void onMouseMotionEvent(MouseMotionEvent evt) {} + @Override public void onMouseButtonEvent(MouseButtonEvent evt) {} + @Override public void onJoyAxisEvent(JoyAxisEvent evt) {} + @Override public void onJoyButtonEvent(JoyButtonEvent evt) {} + @Override public void onTouchEvent(TouchEvent evt) {} + + // ----------------------------------------------------------------------- + // Hilfsmethoden + // ----------------------------------------------------------------------- + + private Geometry addQuad(Node parent, float x, float y, float w, float h, ColorRGBA color, float z) { + Geometry geo = new Geometry("q", new Quad(w, h)); + Material mat = new Material(app.getAssetManager(), "Common/MatDefs/Misc/Unshaded.j3md"); + mat.setColor("Color", color.clone()); + if (color.a < 1f) { + mat.getAdditionalRenderState().setBlendMode(RenderState.BlendMode.Alpha); + geo.setQueueBucket(RenderQueue.Bucket.Transparent); + } + geo.setMaterial(mat); + geo.setLocalTranslation(x, y, z); + parent.attachChild(geo); + return geo; + } + + private BitmapText text(String content, int size, ColorRGBA color) { + BitmapText t = new BitmapText(font, false); + t.setSize(size); + t.setColor(color); + t.setText(content); + return t; + } + + private void centerText(BitmapText t, float x, float y, float width) { + t.setLocalTranslation(x + (width - t.getLineWidth()) / 2f, y, 1); + } + + private boolean hits(Vector2f p, float x, float y, float w, float h) { + return p.x >= x && p.x <= x + w && p.y >= y && p.y <= y + h; + } +} diff --git a/blight-game/src/main/java/de/blight/game/config/GraphicsScreen.java b/blight-game/src/main/java/de/blight/game/config/GraphicsScreen.java new file mode 100644 index 0000000..fb884a5 --- /dev/null +++ b/blight-game/src/main/java/de/blight/game/config/GraphicsScreen.java @@ -0,0 +1,290 @@ +package de.blight.game.config; + +import com.jme3.app.Application; +import com.jme3.app.SimpleApplication; +import com.jme3.app.state.BaseAppState; +import com.jme3.font.BitmapFont; +import com.jme3.font.BitmapText; +import com.jme3.input.MouseInput; +import com.jme3.input.controls.ActionListener; +import com.jme3.input.controls.MouseButtonTrigger; +import com.jme3.material.Material; +import com.jme3.material.RenderState; +import com.jme3.math.ColorRGBA; +import com.jme3.math.Vector2f; +import com.jme3.renderer.queue.RenderQueue; +import com.jme3.scene.Geometry; +import com.jme3.scene.Node; +import com.jme3.scene.shape.Quad; +import com.jme3.system.AppSettings; + +public class GraphicsScreen extends BaseAppState { + + private static final ColorRGBA COL_BG = new ColorRGBA(0.05f, 0.05f, 0.08f, 0.88f); + private static final ColorRGBA COL_PANEL = new ColorRGBA(0.10f, 0.10f, 0.16f, 1.00f); + private static final ColorRGBA COL_ROW = new ColorRGBA(0.18f, 0.18f, 0.28f, 1.00f); + private static final ColorRGBA COL_ARROW = new ColorRGBA(0.28f, 0.28f, 0.44f, 1.00f); + private static final ColorRGBA COL_BTN_OK = new ColorRGBA(0.15f, 0.40f, 0.15f, 1.00f); + private static final ColorRGBA COL_BTN_CANCEL = new ColorRGBA(0.40f, 0.15f, 0.15f, 1.00f); + private static final ColorRGBA COL_TEXT = ColorRGBA.White; + private static final ColorRGBA COL_TEXT_VAL = new ColorRGBA(0.85f, 0.85f, 0.50f, 1.00f); + + private static final int[][] RESOLUTIONS = { + {1280, 720}, {1600, 900}, {1920, 1080}, {2560, 1440}, {3840, 2160} + }; + private static final int[] SAMPLES = {0, 2, 4, 8}; + + private static final int ROW_RES = 0; + private static final int ROW_FULL = 1; + private static final int ROW_VSYNC = 2; + private static final int ROW_AA = 3; + + private SimpleApplication app; + private Node guiNode; + private BitmapFont font; + private Node panel; + + private final GraphicsSettings live; + private GraphicsSettings edit; + private final Runnable onClose; + + private int resIdx; + private int samplesIdx; + + // Per-row layout (indexed by ROW_*) + private final float[] cellX = new float[4]; + private final float[] cellY = new float[4]; + private final float[] cellW = new float[4]; + private final float cellH = 36; + private final float arrW = 30; + private final float[] leftX = new float[4]; + private final float[] rightX = new float[4]; + private final BitmapText[] valTexts = new BitmapText[4]; + + private float okX, okY, okW, okH; + private float cancelX, cancelY; + + public GraphicsScreen(GraphicsSettings live, Runnable onClose) { + this.live = live; + this.onClose = onClose; + } + + @Override + protected void initialize(Application app) { + this.app = (SimpleApplication) app; + this.guiNode = this.app.getGuiNode(); + this.font = app.getAssetManager().loadFont("Interface/Fonts/Default.fnt"); + } + + @Override + protected void onEnable() { + edit = new GraphicsSettings(); + edit.width = live.width; edit.height = live.height; + edit.fullscreen = live.fullscreen; + edit.vsync = live.vsync; + edit.samples = live.samples; + + resIdx = 0; + for (int i = 0; i < RESOLUTIONS.length; i++) { + if (RESOLUTIONS[i][0] == edit.width && RESOLUTIONS[i][1] == edit.height) { + resIdx = i; break; + } + } + samplesIdx = 0; + for (int i = 0; i < SAMPLES.length; i++) { + if (SAMPLES[i] == edit.samples) { samplesIdx = i; break; } + } + + buildUI(); + app.getInputManager().setCursorVisible(true); + app.getInputManager().addMapping("_GfxClick", new MouseButtonTrigger(MouseInput.BUTTON_LEFT)); + app.getInputManager().addListener(clickListener, "_GfxClick"); + } + + @Override + protected void onDisable() { + if (panel != null) { guiNode.detachChild(panel); panel = null; } + app.getInputManager().deleteMapping("_GfxClick"); + app.getInputManager().setCursorVisible(false); + } + + @Override protected void cleanup(Application app) {} + + private void buildUI() { + float sw = app.getCamera().getWidth(); + float sh = app.getCamera().getHeight(); + panel = new Node("gfx-panel"); + addQuad(panel, 0, 0, sw, sh, COL_BG, -2); + + float pw = 640, ph = 400; + float px = (sw - pw) / 2f, py = (sh - ph) / 2f; + addQuad(panel, px, py, pw, ph, COL_PANEL, -1); + + BitmapText title = txt("GRAFIKEINSTELLUNGEN", 20, COL_TEXT); + centerText(title, px, py + ph - 42, pw); + panel.attachChild(title); + + String[] labels = {"Auflösung", "Vollbild", "VSync", "Kantenglättung"}; + float lblX = px + 30; + float vx = px + pw - 270; + float vw = 190; + float startY = py + ph - 100; + float step = 60; + + for (int i = 0; i < 4; i++) { + float ry = startY - i * step; + + BitmapText lbl = txt(labels[i], 16, COL_TEXT); + lbl.setLocalTranslation(lblX, ry + cellH - 8, 0); + panel.attachChild(lbl); + + // Left arrow + addQuad(panel, vx - arrW - 6, ry, arrW, cellH, COL_ARROW, 0); + BitmapText lt = txt("<", 16, COL_TEXT); + lt.setLocalTranslation(vx - arrW - 6 + (arrW - lt.getLineWidth()) / 2f, ry + cellH - 8, 1); + panel.attachChild(lt); + + // Value cell + addQuad(panel, vx, ry, vw, cellH, COL_ROW, 0); + + // Right arrow + addQuad(panel, vx + vw + 6, ry, arrW, cellH, COL_ARROW, 0); + BitmapText rt = txt(">", 16, COL_TEXT); + rt.setLocalTranslation(vx + vw + 6 + (arrW - rt.getLineWidth()) / 2f, ry + cellH - 8, 1); + panel.attachChild(rt); + + BitmapText vt = txt("", 16, COL_TEXT_VAL); + panel.attachChild(vt); + valTexts[i] = vt; + + cellX[i] = vx; cellY[i] = ry; cellW[i] = vw; + leftX[i] = vx - arrW - 6; + rightX[i] = vx + vw + 6; + } + + for (int i = 0; i < 4; i++) refreshText(i); + + float bw = 160, bh = 42; + okW = bw; okH = bh; + okX = px + pw / 2f - bw - 10; + okY = py + 22; + cancelX = px + pw / 2f + 10; + cancelY = py + 22; + + addQuad(panel, okX, okY, bw, bh, COL_BTN_OK, 0); + BitmapText okLbl = txt("Übernehmen", 16, COL_TEXT); + centerText(okLbl, okX, okY + bh - 10, bw); + panel.attachChild(okLbl); + + addQuad(panel, cancelX, cancelY, bw, bh, COL_BTN_CANCEL, 0); + BitmapText cancelLbl = txt("Abbrechen", 16, COL_TEXT); + centerText(cancelLbl, cancelX, cancelY + bh - 10, bw); + panel.attachChild(cancelLbl); + + guiNode.attachChild(panel); + } + + private void refreshText(int row) { + String val = switch (row) { + case ROW_RES -> RESOLUTIONS[resIdx][0] + "x" + RESOLUTIONS[resIdx][1]; + case ROW_FULL -> edit.fullscreen ? "An" : "Aus"; + case ROW_VSYNC -> edit.vsync ? "An" : "Aus"; + case ROW_AA -> SAMPLES[samplesIdx] == 0 ? "Aus" : SAMPLES[samplesIdx] + "x MSAA"; + default -> ""; + }; + BitmapText vt = valTexts[row]; + vt.setText(val); + vt.setLocalTranslation( + cellX[row] + (cellW[row] - vt.getLineWidth()) / 2f, + cellY[row] + cellH - 8, + 1 + ); + } + + private final ActionListener clickListener = (name, isPressed, tpf) -> { + if (!isPressed) return; + Vector2f c = app.getInputManager().getCursorPosition(); + + for (int i = 0; i < 4; i++) { + if (hits(c, leftX[i], cellY[i], arrW, cellH)) { cycleRow(i, -1); return; } + if (hits(c, rightX[i], cellY[i], arrW, cellH)) { cycleRow(i, +1); return; } + } + if (hits(c, okX, okY, okW, okH)) { applyAndSave(); return; } + if (hits(c, cancelX, cancelY, okW, okH)) { close(); } + }; + + private void cycleRow(int row, int dir) { + switch (row) { + case ROW_RES: + resIdx = (resIdx + dir + RESOLUTIONS.length) % RESOLUTIONS.length; + edit.width = RESOLUTIONS[resIdx][0]; + edit.height = RESOLUTIONS[resIdx][1]; + break; + case ROW_FULL: + edit.fullscreen = !edit.fullscreen; + break; + case ROW_VSYNC: + edit.vsync = !edit.vsync; + break; + case ROW_AA: + samplesIdx = (samplesIdx + dir + SAMPLES.length) % SAMPLES.length; + edit.samples = SAMPLES[samplesIdx]; + break; + } + refreshText(row); + } + + private void applyAndSave() { + live.width = edit.width; live.height = edit.height; + live.fullscreen = edit.fullscreen; + live.vsync = edit.vsync; + live.samples = edit.samples; + + GraphicsStore.save(live); + + AppSettings s = app.getContext().getSettings(); + s.setResolution(live.width, live.height); + s.setFullscreen(live.fullscreen); + s.setVSync(live.vsync); + s.setSamples(live.samples); + app.setSettings(s); + + close(); + app.restart(); + } + + private void close() { + setEnabled(false); + if (onClose != null) onClose.run(); + } + + // ----------------------------------------------------------------------- + + private Geometry addQuad(Node parent, float x, float y, float w, float h, ColorRGBA color, float z) { + Geometry geo = new Geometry("q", new Quad(w, h)); + Material mat = new Material(app.getAssetManager(), "Common/MatDefs/Misc/Unshaded.j3md"); + mat.setColor("Color", color.clone()); + if (color.a < 1f) { + mat.getAdditionalRenderState().setBlendMode(RenderState.BlendMode.Alpha); + geo.setQueueBucket(RenderQueue.Bucket.Transparent); + } + geo.setMaterial(mat); + geo.setLocalTranslation(x, y, z); + parent.attachChild(geo); + return geo; + } + + private BitmapText txt(String s, int size, ColorRGBA color) { + BitmapText t = new BitmapText(font, false); + t.setSize(size); t.setColor(color); t.setText(s); + return t; + } + + private void centerText(BitmapText t, float x, float y, float width) { + t.setLocalTranslation(x + (width - t.getLineWidth()) / 2f, y, 1); + } + + private boolean hits(Vector2f p, float x, float y, float w, float h) { + return p.x >= x && p.x <= x + w && p.y >= y && p.y <= y + h; + } +} diff --git a/blight-game/src/main/java/de/blight/game/config/GraphicsSettings.java b/blight-game/src/main/java/de/blight/game/config/GraphicsSettings.java new file mode 100644 index 0000000..9f72757 --- /dev/null +++ b/blight-game/src/main/java/de/blight/game/config/GraphicsSettings.java @@ -0,0 +1,9 @@ +package de.blight.game.config; + +public class GraphicsSettings { + public int width = 1280; + public int height = 720; + public boolean fullscreen = false; + public boolean vsync = false; + public int samples = 4; +} diff --git a/blight-game/src/main/java/de/blight/game/config/GraphicsStore.java b/blight-game/src/main/java/de/blight/game/config/GraphicsStore.java new file mode 100644 index 0000000..9f24c44 --- /dev/null +++ b/blight-game/src/main/java/de/blight/game/config/GraphicsStore.java @@ -0,0 +1,35 @@ +package de.blight.game.config; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; + +import java.io.*; +import java.nio.file.*; + +public class GraphicsStore { + + private static final Path FILE = Paths.get("config", "graphics.json"); + private static final Gson GSON = new GsonBuilder().setPrettyPrinting().create(); + + public static GraphicsSettings load() { + if (Files.exists(FILE)) { + try (Reader r = Files.newBufferedReader(FILE)) { + return GSON.fromJson(r, GraphicsSettings.class); + } catch (IOException e) { + System.err.println("graphics.json konnte nicht geladen werden: " + e.getMessage()); + } + } + return new GraphicsSettings(); + } + + public static void save(GraphicsSettings gs) { + try { + Files.createDirectories(FILE.getParent()); + try (Writer w = Files.newBufferedWriter(FILE)) { + GSON.toJson(gs, w); + } + } catch (IOException e) { + System.err.println("graphics.json konnte nicht gespeichert werden: " + e.getMessage()); + } + } +} diff --git a/blight-game/src/main/java/de/blight/game/config/KeyBindingStore.java b/blight-game/src/main/java/de/blight/game/config/KeyBindingStore.java new file mode 100644 index 0000000..a15e8bf --- /dev/null +++ b/blight-game/src/main/java/de/blight/game/config/KeyBindingStore.java @@ -0,0 +1,35 @@ +package de.blight.game.config; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; + +import java.io.*; +import java.nio.file.*; + +public class KeyBindingStore { + + private static final Path FILE = Paths.get("config", "keybindings.json"); + private static final Gson GSON = new GsonBuilder().setPrettyPrinting().create(); + + public static KeyBindings load() { + if (Files.exists(FILE)) { + try (Reader r = Files.newBufferedReader(FILE)) { + return GSON.fromJson(r, KeyBindings.class); + } catch (IOException e) { + System.err.println("keybindings.json konnte nicht geladen werden: " + e.getMessage()); + } + } + return new KeyBindings(); + } + + public static void save(KeyBindings kb) { + try { + Files.createDirectories(FILE.getParent()); + try (Writer w = Files.newBufferedWriter(FILE)) { + GSON.toJson(kb, w); + } + } catch (IOException e) { + System.err.println("keybindings.json konnte nicht gespeichert werden: " + e.getMessage()); + } + } +} diff --git a/blight-game/src/main/java/de/blight/game/config/KeyBindings.java b/blight-game/src/main/java/de/blight/game/config/KeyBindings.java new file mode 100644 index 0000000..797a201 --- /dev/null +++ b/blight-game/src/main/java/de/blight/game/config/KeyBindings.java @@ -0,0 +1,44 @@ +package de.blight.game.config; + +import com.jme3.input.KeyInput; + +/** Speichert alle konfigurierbaren Tastenbelegungen als plain int-Felder (KeyInput-Codes). */ +public class KeyBindings { + + public int forward = KeyInput.KEY_W; + public int backward = KeyInput.KEY_S; + public int left = KeyInput.KEY_A; + public int right = KeyInput.KEY_D; + public int jump = KeyInput.KEY_SPACE; + public int sprint = KeyInput.KEY_LSHIFT; + + /** Metadaten für die Config-UI: Feldname im Objekt + Anzeigename. */ + public static final String[][] ENTRIES = { + {"forward", "Vorwärts"}, + {"backward", "Rückwärts"}, + {"left", "Links"}, + {"right", "Rechts"}, + {"jump", "Springen"}, + {"sprint", "Rennen"}, + }; + + public int get(String fieldName) { + try { return (int) KeyBindings.class.getField(fieldName).get(this); } + catch (Exception e) { return 0; } + } + + public void set(String fieldName, int keyCode) { + try { KeyBindings.class.getField(fieldName).setInt(this, keyCode); } + catch (Exception ignored) {} + } + + public KeyBindings copy() { + KeyBindings c = new KeyBindings(); + for (String[] e : ENTRIES) c.set(e[0], get(e[0])); + return c; + } + + public void copyFrom(KeyBindings src) { + for (String[] e : ENTRIES) set(e[0], src.get(e[0])); + } +} diff --git a/blight-game/src/main/java/de/blight/game/config/KeyNames.java b/blight-game/src/main/java/de/blight/game/config/KeyNames.java new file mode 100644 index 0000000..ce48361 --- /dev/null +++ b/blight-game/src/main/java/de/blight/game/config/KeyNames.java @@ -0,0 +1,51 @@ +package de.blight.game.config; + +import com.jme3.input.KeyInput; + +import java.lang.reflect.Field; +import java.util.HashMap; +import java.util.Map; + +/** Bildet KeyInput-Codes auf lesbare Namen ab (via Reflection auf KeyInput-Konstanten). */ +public final class KeyNames { + + private static final Map NAMES = new HashMap<>(); + + static { + for (Field f : KeyInput.class.getFields()) { + if (f.getName().startsWith("KEY_") && f.getType() == int.class) { + try { + NAMES.put(f.getInt(null), pretty(f.getName().substring(4))); + } catch (IllegalAccessException ignored) {} + } + } + } + + public static String of(int keyCode) { + return NAMES.getOrDefault(keyCode, "Key#" + keyCode); + } + + private static String pretty(String raw) { + // "LSHIFT" → "L-Shift", "SPACE" → "Space", "W" → "W" + return switch (raw) { + case "SPACE" -> "Space"; + case "LSHIFT" -> "L-Shift"; + case "RSHIFT" -> "R-Shift"; + case "LCONTROL"-> "L-Ctrl"; + case "RCONTROL"-> "R-Ctrl"; + case "LMENU" -> "L-Alt"; + case "RMENU" -> "R-Alt"; + case "RETURN" -> "Enter"; + case "BACK" -> "Backspace"; + case "UP" -> "Pfeil-Hoch"; + case "DOWN" -> "Pfeil-Runter"; + case "LEFT" -> "Pfeil-Links"; + case "RIGHT" -> "Pfeil-Rechts"; + default -> raw.length() == 1 ? raw : capitalize(raw); + }; + } + + private static String capitalize(String s) { + return s.isEmpty() ? s : s.charAt(0) + s.substring(1).toLowerCase(); + } +} diff --git a/blight-game/src/main/java/de/blight/game/config/PauseMenu.java b/blight-game/src/main/java/de/blight/game/config/PauseMenu.java new file mode 100644 index 0000000..d5bce24 --- /dev/null +++ b/blight-game/src/main/java/de/blight/game/config/PauseMenu.java @@ -0,0 +1,168 @@ +package de.blight.game.config; + +import com.jme3.app.Application; +import com.jme3.app.SimpleApplication; +import com.jme3.app.state.BaseAppState; +import com.jme3.font.BitmapFont; +import com.jme3.font.BitmapText; +import com.jme3.input.MouseInput; +import com.jme3.input.controls.ActionListener; +import com.jme3.input.controls.MouseButtonTrigger; +import com.jme3.material.Material; +import com.jme3.material.RenderState; +import com.jme3.math.ColorRGBA; +import com.jme3.math.Vector2f; +import com.jme3.renderer.queue.RenderQueue; +import com.jme3.scene.Geometry; +import com.jme3.scene.Node; +import com.jme3.scene.shape.Quad; + +public class PauseMenu extends BaseAppState { + + private static final ColorRGBA COL_BG = new ColorRGBA(0.05f, 0.05f, 0.08f, 0.88f); + private static final ColorRGBA COL_PANEL = new ColorRGBA(0.10f, 0.10f, 0.16f, 1.00f); + private static final ColorRGBA COL_BTN = new ColorRGBA(0.18f, 0.18f, 0.28f, 1.00f); + private static final ColorRGBA COL_BTN_DIS = new ColorRGBA(0.12f, 0.12f, 0.18f, 1.00f); + private static final ColorRGBA COL_BTN_QUIT = new ColorRGBA(0.38f, 0.10f, 0.10f, 1.00f); + private static final ColorRGBA COL_TEXT = ColorRGBA.White; + private static final ColorRGBA COL_TEXT_DIS = new ColorRGBA(0.40f, 0.40f, 0.40f, 1.00f); + private static final ColorRGBA COL_TEXT_SUB = new ColorRGBA(0.35f, 0.35f, 0.35f, 1.00f); + + private static final int BTN_GRAFIK = 0; + private static final int BTN_AUDIO = 1; + private static final int BTN_STEUERUNG = 2; + private static final int BTN_BEENDEN = 3; + + private SimpleApplication app; + private Node guiNode; + private BitmapFont font; + private Node panel; + + private Runnable onGraphics; + private Runnable onControls; + + // [x, y, w, h] per button + private final float[][] btnBounds = new float[4][4]; + + public PauseMenu(Runnable onGraphics, Runnable onControls) { + this.onGraphics = onGraphics; + this.onControls = onControls; + } + + @Override + protected void initialize(Application app) { + this.app = (SimpleApplication) app; + this.guiNode = this.app.getGuiNode(); + this.font = app.getAssetManager().loadFont("Interface/Fonts/Default.fnt"); + } + + @Override + protected void onEnable() { + buildUI(); + app.getInputManager().setCursorVisible(true); + app.getInputManager().addMapping("_PauseClick", new MouseButtonTrigger(MouseInput.BUTTON_LEFT)); + app.getInputManager().addListener(clickListener, "_PauseClick"); + } + + @Override + protected void onDisable() { + if (panel != null) { guiNode.detachChild(panel); panel = null; } + app.getInputManager().deleteMapping("_PauseClick"); + app.getInputManager().setCursorVisible(false); + } + + @Override protected void cleanup(Application app) {} + + private void buildUI() { + float sw = app.getCamera().getWidth(); + float sh = app.getCamera().getHeight(); + panel = new Node("pause-panel"); + addQuad(panel, 0, 0, sw, sh, COL_BG, -2); + + float pw = 320, ph = 360; + float px = (sw - pw) / 2f, py = (sh - ph) / 2f; + addQuad(panel, px, py, pw, ph, COL_PANEL, -1); + + BitmapText title = txt("PAUSE", 26, COL_TEXT); + centerText(title, px, py + ph - 48, pw); + panel.attachChild(title); + + String[] labels = {"Grafik", "Audio", "Steuerung", "Beenden"}; + boolean[] enabled = {true, false, true, true}; + float bw = 260, bh = 52; + float bx = px + (pw - bw) / 2f; + float startY = py + ph - 112; + float step = 62; + + for (int i = 0; i < 4; i++) { + float by = startY - i * step; + ColorRGBA bgCol = !enabled[i] ? COL_BTN_DIS : (i == BTN_BEENDEN ? COL_BTN_QUIT : COL_BTN); + ColorRGBA txCol = enabled[i] ? COL_TEXT : COL_TEXT_DIS; + + addQuad(panel, bx, by, bw, bh, bgCol, 0); + + BitmapText lbl = txt(labels[i], 18, txCol); + if (!enabled[i]) { + // Center label in upper portion, show hint below + lbl.setLocalTranslation(bx + (bw - lbl.getLineWidth()) / 2f, by + bh - 12, 1); + BitmapText hint = txt("Bald verfügbar", 12, COL_TEXT_SUB); + hint.setLocalTranslation(bx + (bw - hint.getLineWidth()) / 2f, by + 14, 1); + panel.attachChild(hint); + } else { + centerText(lbl, bx, by + bh - 16, bw); + } + panel.attachChild(lbl); + + btnBounds[i][0] = bx; btnBounds[i][1] = by; + btnBounds[i][2] = bw; btnBounds[i][3] = bh; + } + + guiNode.attachChild(panel); + } + + private final ActionListener clickListener = (name, isPressed, tpf) -> { + if (!isPressed) return; + Vector2f c = app.getInputManager().getCursorPosition(); + + for (int i = 0; i < 4; i++) { + if (!hits(c, btnBounds[i][0], btnBounds[i][1], btnBounds[i][2], btnBounds[i][3])) continue; + switch (i) { + case BTN_GRAFIK -> { if (onGraphics != null) onGraphics.run(); } + case BTN_AUDIO -> { /* Bald verfügbar */ } + case BTN_STEUERUNG -> { if (onControls != null) onControls.run(); } + case BTN_BEENDEN -> app.stop(); + } + return; + } + }; + + // ----------------------------------------------------------------------- + + private Geometry addQuad(Node parent, float x, float y, float w, float h, ColorRGBA color, float z) { + Geometry geo = new Geometry("q", new Quad(w, h)); + Material mat = new Material(app.getAssetManager(), "Common/MatDefs/Misc/Unshaded.j3md"); + mat.setColor("Color", color.clone()); + if (color.a < 1f) { + mat.getAdditionalRenderState().setBlendMode(RenderState.BlendMode.Alpha); + geo.setQueueBucket(RenderQueue.Bucket.Transparent); + } + geo.setMaterial(mat); + geo.setLocalTranslation(x, y, z); + parent.attachChild(geo); + return geo; + } + + private BitmapText txt(String s, int size, ColorRGBA color) { + BitmapText t = new BitmapText(font, false); + t.setSize(size); t.setColor(color); t.setText(s); + return t; + } + + private void centerText(BitmapText t, float x, float y, float width) { + t.setLocalTranslation(x + (width - t.getLineWidth()) / 2f, y, 1); + } + + private boolean hits(Vector2f p, float x, float y, float w, float h) { + return p.x >= x && p.x <= x + w && p.y >= y && p.y <= y + h; + } +} diff --git a/blight-game/src/main/java/de/blight/game/control/PlayerInputControl.java b/blight-game/src/main/java/de/blight/game/control/PlayerInputControl.java new file mode 100644 index 0000000..97c4512 --- /dev/null +++ b/blight-game/src/main/java/de/blight/game/control/PlayerInputControl.java @@ -0,0 +1,113 @@ +package de.blight.game.control; + +import com.jme3.bullet.control.CharacterControl; +import com.jme3.input.InputManager; +import com.jme3.input.controls.ActionListener; +import com.jme3.input.controls.KeyTrigger; +import com.jme3.math.Quaternion; +import com.jme3.math.Vector3f; +import com.jme3.renderer.Camera; +import com.jme3.scene.Spatial; +import de.blight.game.config.KeyBindings; + +public class PlayerInputControl { + + private static final float MOVE_SPEED = 0.07f; + private static final float SPRINT_MULT = 1.5f; + private static final float ROTATE_SPEED = 10f; + + private static final String[] ACTION_NAMES = + {"Forward", "Backward", "Left", "Right", "Jump", "Sprint"}; + + private final InputManager inputManager; + private final Camera cam; + + private CharacterControl physicsChar; + private Spatial visual; + + private boolean forward, backward, left, right, sprint; + private boolean paused = false; + + // Listener als Feld, damit er bei reload nicht doppelt registriert wird + private final ActionListener actionListener = (name, isPressed, tpf) -> { + if (paused) return; + switch (name) { + case "Forward" -> forward = isPressed; + case "Backward" -> backward = isPressed; + case "Left" -> left = isPressed; + case "Right" -> right = isPressed; + case "Sprint" -> sprint = isPressed; + case "Jump" -> { if (isPressed && physicsChar != null) physicsChar.jump(); } + } + }; + + public PlayerInputControl(InputManager inputManager, Camera cam, KeyBindings kb) { + this.inputManager = inputManager; + this.cam = cam; + registerMappings(kb); + } + + public void setPhysicsCharacter(CharacterControl physicsChar) { + this.physicsChar = physicsChar; + } + + public void setVisual(Spatial visual) { + this.visual = visual; + } + + public void setPaused(boolean paused) { + this.paused = paused; + if (paused) { + forward = backward = left = right = sprint = false; + if (physicsChar != null) physicsChar.setWalkDirection(Vector3f.ZERO); + } + } + + /** Löscht alte Mappings und registriert neue aus den übergebenen KeyBindings. */ + public void reloadBindings(KeyBindings kb) { + for (String a : ACTION_NAMES) inputManager.deleteMapping(a); + registerMappings(kb); + // Zustand zurücksetzen, damit keine Taste „hängt" + forward = backward = left = right = sprint = false; + if (physicsChar != null) physicsChar.setWalkDirection(Vector3f.ZERO); + } + + private void registerMappings(KeyBindings kb) { + inputManager.addMapping("Forward", new KeyTrigger(kb.forward)); + inputManager.addMapping("Backward", new KeyTrigger(kb.backward)); + inputManager.addMapping("Left", new KeyTrigger(kb.left)); + inputManager.addMapping("Right", new KeyTrigger(kb.right)); + inputManager.addMapping("Jump", new KeyTrigger(kb.jump)); + inputManager.addMapping("Sprint", new KeyTrigger(kb.sprint)); + inputManager.addListener(actionListener, ACTION_NAMES); + } + + public void update(float tpf) { + if (physicsChar == null || paused) return; + + Vector3f camDir = cam.getDirection().clone().setY(0).normalizeLocal(); + Vector3f camLeft = cam.getLeft().clone().setY(0).normalizeLocal(); + + Vector3f moveDir = new Vector3f(); + if (forward) moveDir.addLocal(camDir); + if (backward) moveDir.subtractLocal(camDir); + if (left) moveDir.addLocal(camLeft); + if (right) moveDir.subtractLocal(camLeft); + + if (moveDir.lengthSquared() > 0.001f) { + moveDir.normalizeLocal(); + float speed = sprint ? MOVE_SPEED * SPRINT_MULT : MOVE_SPEED; + physicsChar.setWalkDirection(moveDir.mult(speed)); + + if (visual != null) { + Quaternion targetRot = new Quaternion(); + targetRot.lookAt(moveDir, Vector3f.UNIT_Y); + Quaternion current = visual.getLocalRotation().clone(); + current.slerp(targetRot, ROTATE_SPEED * tpf); + visual.setLocalRotation(current); + } + } else { + physicsChar.setWalkDirection(Vector3f.ZERO); + } + } +} diff --git a/blight-game/src/main/java/de/blight/game/control/ThirdPersonCamera.java b/blight-game/src/main/java/de/blight/game/control/ThirdPersonCamera.java new file mode 100644 index 0000000..c1610a6 --- /dev/null +++ b/blight-game/src/main/java/de/blight/game/control/ThirdPersonCamera.java @@ -0,0 +1,93 @@ +package de.blight.game.control; + +import com.jme3.input.InputManager; +import com.jme3.input.MouseInput; +import com.jme3.input.controls.AnalogListener; +import com.jme3.input.controls.MouseAxisTrigger; +import com.jme3.math.*; +import com.jme3.renderer.Camera; +import com.jme3.scene.Spatial; + +/** + * Third-Person-Kamera: + * - Mausbewegung → Kamera um den Charakter drehen (immer, kein Klick nötig) + * - Y-Achse invertiert → Maus hoch = Kamera runter (oldschool) + * - Mausrad → Zoom (Abstand) + */ +public class ThirdPersonCamera { + + private static final float MOUSE_SENSITIVITY = 1.8f; + private static final float MIN_DISTANCE = 3f; + private static final float MAX_DISTANCE = 20f; + private static final float MIN_VERTICAL_ANGLE = -0.3f; + private static final float MAX_VERTICAL_ANGLE = FastMath.HALF_PI - 0.1f; + private static final float TARGET_HEIGHT = 1.6f; + + private final Camera cam; + private final InputManager inputManager; + + private Spatial target; + + private float yaw = 0f; + private float pitch = 0.4f; + private float distance = 10f; + private boolean paused = false; + + public ThirdPersonCamera(Camera cam, InputManager inputManager) { + this.cam = cam; + this.inputManager = inputManager; + registerMappings(); + } + + public void setTarget(Spatial target) { + this.target = target; + } + + public void setPaused(boolean paused) { this.paused = paused; } + + // ----------------------------------------------------------------------- + + private void registerMappings() { + inputManager.addMapping("ZoomIn", new MouseAxisTrigger(MouseInput.AXIS_WHEEL, false)); + inputManager.addMapping("ZoomOut", new MouseAxisTrigger(MouseInput.AXIS_WHEEL, true)); + inputManager.addMapping("MouseX", new MouseAxisTrigger(MouseInput.AXIS_X, false)); + inputManager.addMapping("MouseXNeg", new MouseAxisTrigger(MouseInput.AXIS_X, true)); + inputManager.addMapping("MouseY", new MouseAxisTrigger(MouseInput.AXIS_Y, false)); + inputManager.addMapping("MouseYNeg", new MouseAxisTrigger(MouseInput.AXIS_Y, true)); + + AnalogListener analogListener = (name, value, tpf) -> { + if (paused) return; + switch (name) { + // Horizontale Rotation + case "MouseX" -> yaw -= value * MOUSE_SENSITIVITY; + case "MouseXNeg" -> yaw += value * MOUSE_SENSITIVITY; + // Vertikale Rotation — Y invertiert: Maus hoch → Kamera runter + case "MouseY" -> pitch = FastMath.clamp(pitch - value * MOUSE_SENSITIVITY, MIN_VERTICAL_ANGLE, MAX_VERTICAL_ANGLE); + case "MouseYNeg" -> pitch = FastMath.clamp(pitch + value * MOUSE_SENSITIVITY, MIN_VERTICAL_ANGLE, MAX_VERTICAL_ANGLE); + // Zoom + case "ZoomIn" -> distance = FastMath.clamp(distance - value * 20f, MIN_DISTANCE, MAX_DISTANCE); + case "ZoomOut" -> distance = FastMath.clamp(distance + value * 20f, MIN_DISTANCE, MAX_DISTANCE); + } + }; + inputManager.addListener(analogListener, + "MouseX", "MouseXNeg", "MouseY", "MouseYNeg", "ZoomIn", "ZoomOut"); + } + + public void update(float tpf) { + if (target == null) return; + + Vector3f pivot = target.getWorldTranslation().add(0, TARGET_HEIGHT, 0); + + // Sphärische Koordinaten → kartesisch + float x = distance * FastMath.cos(pitch) * FastMath.sin(yaw); + float y = distance * FastMath.sin(pitch); + float z = distance * FastMath.cos(pitch) * FastMath.cos(yaw); + + Vector3f camPos = pivot.add(x, y, z); + cam.setLocation(camPos); + cam.lookAt(pivot, Vector3f.UNIT_Y); + } + + /** Aktueller Yaw-Winkel (für CharacterControl nutzbar). */ + public float getYaw() { return yaw; } +} diff --git a/blight-game/src/main/java/de/blight/game/scene/WorldScene.java b/blight-game/src/main/java/de/blight/game/scene/WorldScene.java new file mode 100644 index 0000000..037fffd --- /dev/null +++ b/blight-game/src/main/java/de/blight/game/scene/WorldScene.java @@ -0,0 +1,308 @@ +package de.blight.game.scene; + +import com.jme3.app.Application; +import com.jme3.app.SimpleApplication; +import com.jme3.app.state.BaseAppState; +import com.jme3.asset.AssetManager; +import com.jme3.bullet.BulletAppState; +import com.jme3.bullet.collision.shapes.CapsuleCollisionShape; +import com.jme3.bullet.control.CharacterControl; +import com.jme3.bullet.control.RigidBodyControl; +import com.jme3.bullet.util.CollisionShapeFactory; +import com.jme3.light.*; +import com.jme3.material.Material; +import com.jme3.math.*; +import com.jme3.renderer.queue.RenderQueue; +import com.jme3.scene.*; +import com.jme3.scene.shape.*; +import com.jme3.shadow.*; +import com.jme3.terrain.geomipmap.*; +import com.jme3.texture.*; +import com.jme3.util.SkyFactory; +import de.blight.game.config.KeyBindings; +import de.blight.game.control.PlayerInputControl; +import de.blight.game.control.ThirdPersonCamera; + +public class WorldScene extends BaseAppState { + + private SimpleApplication app; + private Node rootNode; + private AssetManager assetManager; + private BulletAppState bulletAppState; + + private final KeyBindings keyBindings; + private ThirdPersonCamera thirdPersonCam; + private PlayerInputControl playerInput; + + public WorldScene(KeyBindings keyBindings) { + this.keyBindings = keyBindings; + } + + /** Wird von ConfigScreen nach dem Speichern aufgerufen. */ + public void reloadBindings(KeyBindings kb) { + if (playerInput != null) playerInput.reloadBindings(kb); + } + + public void setPaused(boolean paused) { + if (playerInput != null) playerInput.setPaused(paused); + if (thirdPersonCam != null) thirdPersonCam.setPaused(paused); + } + + // ----------------------------------------------------------------------- + // Lifecycle + // ----------------------------------------------------------------------- + + @Override + protected void initialize(Application app) { + this.app = (SimpleApplication) app; + this.rootNode = this.app.getRootNode(); + this.assetManager = app.getAssetManager(); + + bulletAppState = new BulletAppState(); + app.getStateManager().attach(bulletAppState); + } + + @Override + protected void onEnable() { + buildLighting(); + TerrainQuad terrain = buildTerrain(); + buildDecorations(terrain); + + Node character = buildCharacter(); + rootNode.attachChild(character); + + // Bullet-Charakter: Kapsel 0.4 Radius, 1.0 Höhe, Y-Achse (1) + CapsuleCollisionShape capsule = new CapsuleCollisionShape(0.4f, 1.0f, 1); + CharacterControl physicsChar = new CharacterControl(capsule, 0.05f); + physicsChar.setJumpSpeed(12f); + physicsChar.setFallSpeed(35f); + physicsChar.setGravity(35f); + physicsChar.setPhysicsLocation(new Vector3f(0, 5f, 0)); + character.addControl(physicsChar); + bulletAppState.getPhysicsSpace().add(physicsChar); + + playerInput = new PlayerInputControl(app.getInputManager(), app.getCamera(), keyBindings); + playerInput.setPhysicsCharacter(physicsChar); + playerInput.setVisual(character); + + thirdPersonCam = new ThirdPersonCamera(app.getCamera(), app.getInputManager()); + thirdPersonCam.setTarget(character); + + // Maus einfangen – keine Klick-Pflicht für Kamerasteuerung + app.getInputManager().setCursorVisible(false); + } + + @Override + public void update(float tpf) { + playerInput.update(tpf); + thirdPersonCam.update(tpf); + } + + @Override protected void cleanup(Application app) {} + @Override protected void onDisable() {} + + // ----------------------------------------------------------------------- + // Beleuchtung + // ----------------------------------------------------------------------- + + private void buildLighting() { + DirectionalLight sun = new DirectionalLight(); + sun.setDirection(new Vector3f(-0.5f, -1f, -0.5f).normalizeLocal()); + sun.setColor(ColorRGBA.White.mult(1.4f)); + rootNode.addLight(sun); + + AmbientLight ambient = new AmbientLight(); + ambient.setColor(new ColorRGBA(0.3f, 0.3f, 0.4f, 1f)); + rootNode.addLight(ambient); + + DirectionalLightShadowRenderer shadowRenderer = + new DirectionalLightShadowRenderer(assetManager, 2048, 3); + shadowRenderer.setLight(sun); + shadowRenderer.setShadowIntensity(0.4f); + app.getViewPort().addProcessor(shadowRenderer); + + try { + Spatial sky = SkyFactory.createSky(assetManager, + "Textures/Sky/Bright/BrightSky.dds", + SkyFactory.EnvMapType.CubeMap); + rootNode.attachChild(sky); + } catch (Exception ignored) {} + } + + // ----------------------------------------------------------------------- + // Terrain + // ----------------------------------------------------------------------- + + private TerrainQuad buildTerrain() { + int size = 257; + float[] heights = new float[size * size]; + + for (int z = 0; z < size; z++) { + for (int x = 0; x < size; x++) { + float nx = x / (float) size; + float nz = z / (float) size; + heights[z * size + x] = + FastMath.sin(nx * FastMath.TWO_PI * 2) * 2f + + FastMath.sin(nz * FastMath.TWO_PI * 3) * 1.5f + + FastMath.sin((nx + nz) * FastMath.TWO_PI * 1.5f) * 1f; + } + } + + TerrainQuad terrain = new TerrainQuad("terrain", 65, size, heights); + + Material terrainMat = new Material(assetManager, "Common/MatDefs/Terrain/Terrain.j3md"); + Texture grass = assetManager.loadTexture("Textures/gras.png"); + grass.setWrap(Texture.WrapMode.Repeat); + terrainMat.setTexture("Tex1", grass); + terrainMat.setFloat("Tex1Scale", 64f); + + terrain.setMaterial(terrainMat); + terrain.setLocalTranslation(0, -5f, 0); + terrain.setLocalScale(0.5f, 0.5f, 0.5f); + terrain.setShadowMode(RenderQueue.ShadowMode.Receive); + + // Statischer Physics-Body (mass=0) für Terrain-Kollision + RigidBodyControl terrainPhysics = new RigidBodyControl( + CollisionShapeFactory.createMeshShape(terrain), 0f); + terrain.addControl(terrainPhysics); + bulletAppState.getPhysicsSpace().add(terrainPhysics); + + rootNode.attachChild(terrain); + return terrain; + } + + // ----------------------------------------------------------------------- + // Dekorationen – Höhe per TerrainQuad.getHeight() anpassen + // ----------------------------------------------------------------------- + + private void buildDecorations(TerrainQuad terrain) { + Material stoneMat = new Material(assetManager, "Common/MatDefs/Light/Lighting.j3md"); + stoneMat.setBoolean("UseMaterialColors", true); + stoneMat.setColor("Diffuse", new ColorRGBA(0.55f, 0.55f, 0.55f, 1f)); + stoneMat.setColor("Ambient", new ColorRGBA(0.3f, 0.3f, 0.3f, 1f)); + stoneMat.setColor("Specular", ColorRGBA.White); + stoneMat.setFloat("Shininess", 32f); + + Material treeTrunkMat = new Material(assetManager, "Common/MatDefs/Light/Lighting.j3md"); + treeTrunkMat.setBoolean("UseMaterialColors", true); + treeTrunkMat.setColor("Diffuse", new ColorRGBA(0.45f, 0.28f, 0.1f, 1f)); + treeTrunkMat.setColor("Ambient", new ColorRGBA(0.2f, 0.12f, 0.04f, 1f)); + treeTrunkMat.setColor("Specular", ColorRGBA.Black); + + Material treeTopMat = new Material(assetManager, "Common/MatDefs/Light/Lighting.j3md"); + treeTopMat.setBoolean("UseMaterialColors", true); + treeTopMat.setColor("Diffuse", new ColorRGBA(0.1f, 0.55f, 0.15f, 1f)); + treeTopMat.setColor("Ambient", new ColorRGBA(0.05f, 0.25f, 0.07f, 1f)); + treeTopMat.setColor("Specular", ColorRGBA.Black); + + float[][] treeXZ = { + {12, 8}, {-15, 5}, {20, -10}, {-8, -18}, + {5, 25}, {-22, 12}, {18, 20}, {-10, -5} + }; + for (float[] xz : treeXZ) { + float worldY = terrainWorldY(terrain, xz[0], xz[1]); + Node tree = new Node("tree"); + + Geometry trunk = new Geometry("trunk", new Cylinder(8, 8, 0.25f, 2.5f, true)); + trunk.setMaterial(treeTrunkMat); + trunk.rotate(FastMath.HALF_PI, 0, 0); + trunk.setLocalTranslation(0, 1.25f, 0); + trunk.setShadowMode(RenderQueue.ShadowMode.CastAndReceive); + + Geometry crown = new Geometry("crown", new Sphere(12, 12, 2.2f)); + crown.setMaterial(treeTopMat); + crown.setLocalTranslation(0, 3.8f, 0); + crown.setShadowMode(RenderQueue.ShadowMode.CastAndReceive); + + tree.attachChild(trunk); + tree.attachChild(crown); + tree.setLocalTranslation(xz[0], worldY, xz[1]); + rootNode.attachChild(tree); + } + + float[][] stoneXZ = {{6, -6}, {-12, 15}, {16, -4}, {-3, 10}}; + for (float[] xz : stoneXZ) { + float worldY = terrainWorldY(terrain, xz[0], xz[1]); + float r = 0.6f + FastMath.nextRandomFloat() * 0.8f; + Geometry stone = new Geometry("stone", new Sphere(8, 8, r)); + stone.setMaterial(stoneMat); + stone.setLocalTranslation(xz[0], worldY + r * 0.5f, xz[1]); + stone.setShadowMode(RenderQueue.ShadowMode.CastAndReceive); + rootNode.attachChild(stone); + } + } + + /** Konvertiert Welt-XZ in lokale Terrain-Koordinaten und fragt die Höhe ab. */ + private float terrainWorldY(TerrainQuad terrain, float worldX, float worldZ) { + Vector3f terrainTranslation = terrain.getWorldTranslation(); + Vector3f terrainScale = terrain.getWorldScale(); + float localX = (worldX - terrainTranslation.x) / terrainScale.x; + float localZ = (worldZ - terrainTranslation.z) / terrainScale.z; + float localH = terrain.getHeight(new Vector2f(localX, localZ)); + return terrainTranslation.y + localH * terrainScale.y; + } + + // ----------------------------------------------------------------------- + // Charakter (visueller Node, ohne eigenes Mesh für Physics) + // ----------------------------------------------------------------------- + + private Node buildCharacter() { + Node character = new Node("character"); + + Material bodyMat = new Material(assetManager, "Common/MatDefs/Light/Lighting.j3md"); + bodyMat.setBoolean("UseMaterialColors", true); + bodyMat.setColor("Diffuse", new ColorRGBA(0.2f, 0.4f, 0.8f, 1f)); + bodyMat.setColor("Ambient", new ColorRGBA(0.1f, 0.2f, 0.4f, 1f)); + bodyMat.setColor("Specular", ColorRGBA.White); + bodyMat.setFloat("Shininess", 64f); + + Material headMat = new Material(assetManager, "Common/MatDefs/Light/Lighting.j3md"); + headMat.setBoolean("UseMaterialColors", true); + headMat.setColor("Diffuse", new ColorRGBA(0.9f, 0.75f, 0.6f, 1f)); + headMat.setColor("Ambient", new ColorRGBA(0.45f, 0.37f, 0.3f, 1f)); + headMat.setColor("Specular", new ColorRGBA(0.2f, 0.2f, 0.2f, 1f)); + headMat.setFloat("Shininess", 16f); + + Geometry body = new Geometry("body", new Cylinder(8, 16, 0.35f, 1.1f, true)); + body.setMaterial(bodyMat); + body.rotate(FastMath.HALF_PI, 0, 0); + body.setLocalTranslation(0, 0.9f, 0); + body.setShadowMode(RenderQueue.ShadowMode.CastAndReceive); + + Geometry head = new Geometry("head", new Sphere(16, 16, 0.28f)); + head.setMaterial(headMat); + head.setLocalTranslation(0, 1.75f, 0); + head.setShadowMode(RenderQueue.ShadowMode.CastAndReceive); + + Geometry armL = buildLimb(bodyMat, 0.1f, 0.55f); + armL.setLocalTranslation(-0.5f, 0.85f, 0); + armL.rotate(0, 0, FastMath.DEG_TO_RAD * 20f); + + Geometry armR = buildLimb(bodyMat, 0.1f, 0.55f); + armR.setLocalTranslation(0.5f, 0.85f, 0); + armR.rotate(0, 0, FastMath.DEG_TO_RAD * -20f); + + Geometry legL = buildLimb(bodyMat, 0.12f, 0.6f); + legL.setLocalTranslation(-0.18f, 0.3f, 0); + + Geometry legR = buildLimb(bodyMat, 0.12f, 0.6f); + legR.setLocalTranslation(0.18f, 0.3f, 0); + + character.attachChild(body); + character.attachChild(head); + character.attachChild(armL); + character.attachChild(armR); + character.attachChild(legL); + character.attachChild(legR); + + return character; + } + + private Geometry buildLimb(Material mat, float radius, float height) { + Geometry limb = new Geometry("limb", new Cylinder(6, 12, radius, height, true)); + limb.setMaterial(mat); + limb.rotate(FastMath.HALF_PI, 0, 0); + limb.setShadowMode(RenderQueue.ShadowMode.CastAndReceive); + return limb; + } +}