diff --git a/build.gradle b/build.gradle
index 8089980..55277dd 100644
--- a/build.gradle
+++ b/build.gradle
@@ -1,10 +1,11 @@
plugins {
id "architectury-plugin" version "3.4-SNAPSHOT"
- id "dev.architectury.loom" version "1.0.+" apply false
+ id "dev.architectury.loom" version "1.3.+" apply false
//Publishing
id 'com.matthewprenger.cursegradle' version '1.4.0' apply false
- id "com.modrinth.minotaur" version "2.4.3" apply false
+ id "com.modrinth.minotaur" version "2.8.7" apply false
+ id 'com.github.johnrengelman.shadow' version '8.1.1' apply false
}
architectury {
diff --git a/coreLib/src/main/java/dev/kosmx/playerAnim/core/data/KeyframeAnimation.java b/coreLib/src/main/java/dev/kosmx/playerAnim/core/data/KeyframeAnimation.java
index d22407b..b2bfa7d 100644
--- a/coreLib/src/main/java/dev/kosmx/playerAnim/core/data/KeyframeAnimation.java
+++ b/coreLib/src/main/java/dev/kosmx/playerAnim/core/data/KeyframeAnimation.java
@@ -449,9 +449,14 @@ public int length() {
* @return given keyframe
*/
public int findAtTick(int tick) {
- int i = -1;
- while (this.keyFrames.size() > i + 1 && this.keyFrames.get(i + 1).tick <= tick) {
- i++;
+ int i = Collections.binarySearch(this.keyFrames, null, (frame, ignore) -> Integer.compare(frame.tick, tick));
+ if (i < 0) {
+ i = -i - 2;
+ }
+
+ // small correction for edge-case: it is possible to have two keyframes with the same tick in the array, in that case, I should return the later one.
+ if (i + 1 < keyFrames.size() && keyFrames.get(i + 1).tick == tick) {
+ return i + 1;
}
return i;
}
diff --git a/coreLib/src/main/java/dev/kosmx/playerAnim/core/util/Ease.java b/coreLib/src/main/java/dev/kosmx/playerAnim/core/util/Ease.java
index 8efd652..7c34d57 100644
--- a/coreLib/src/main/java/dev/kosmx/playerAnim/core/util/Ease.java
+++ b/coreLib/src/main/java/dev/kosmx/playerAnim/core/util/Ease.java
@@ -1,5 +1,7 @@
package dev.kosmx.playerAnim.core.util;
+import lombok.Getter;
+
/**
* Easings form easings.net
* + constant + linear
@@ -17,6 +19,7 @@ public enum Ease {
INELASTIC(30, Easing::inElastic), OUTELASTIC(31, Easing::outElastic), INOUTELASTIC(32, Easing::inOutElastic),
INBOUNCE(33, Easing::inBounce), OUTBOUNCE(34, Easing::outBack), INOUTBOUNCE(35, Easing::inOutBounce);
+ @Getter
final byte id;
private final _F impl;
@@ -37,10 +40,6 @@ public enum Ease {
this((byte) id, impl);
}
- public byte getId() {
- return id;
- }
-
/**
* Run the easing
* @param f float between 0 and 1
diff --git a/coreLib/src/test/java/dev/kosmx/playerAnim/core/data/KeyframeAnimationTest.java b/coreLib/src/test/java/dev/kosmx/playerAnim/core/data/KeyframeAnimationTest.java
new file mode 100644
index 0000000..bc089c4
--- /dev/null
+++ b/coreLib/src/test/java/dev/kosmx/playerAnim/core/data/KeyframeAnimationTest.java
@@ -0,0 +1,48 @@
+package dev.kosmx.playerAnim.core.data;
+
+import dev.kosmx.playerAnim.core.util.Ease;
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.Test;
+
+import java.util.Random;
+
+public class KeyframeAnimationTest {
+ @Test
+ public void testKeyframeAnimation() {
+ KeyframeAnimation.StateCollection.State state = new KeyframeAnimation.StateCollection(0).x;
+ // Easy case
+ state.addKeyFrame(1, 0, Ease.CONSTANT);
+ state.addKeyFrame(5, 0, Ease.CONSTANT);
+ state.addKeyFrame(10, 10, Ease.CONSTANT);
+ state.addKeyFrame(10, 10, Ease.CONSTANT);
+
+ state.addKeyFrame(15, 10, Ease.CONSTANT);
+
+ verify(state);
+ state.getKeyFrames().clear();
+
+
+ // random case
+ Random random = new Random();
+
+ for (int i = 0; i < 10000; i += random.nextInt(100)) {
+ state.addKeyFrame(i, i, Ease.CONSTANT);
+ }
+
+ verify(state);
+ }
+
+ public static void verify(KeyframeAnimation.StateCollection.State state) {
+
+ for (int t = 0; t < state.getKeyFrames().size(); t++) {
+ // Iterative, 100% works algorithm
+
+ int i = -1;
+ while (state.getKeyFrames().size() > i + 1 && state.getKeyFrames().get(i + 1).tick <= t) {
+ i++;
+ }
+
+ Assertions.assertEquals(i, state.findAtTick(t), "KeyframeAnimationTest failed at tick " + t);
+ }
+ }
+}
diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar
index 943f0cb..d64cd49 100644
Binary files a/gradle/wrapper/gradle-wrapper.jar and b/gradle/wrapper/gradle-wrapper.jar differ
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index f398c33..1af9e09 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -1,6 +1,7 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-7.6-bin.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-8.5-bin.zip
networkTimeout=10000
+validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
diff --git a/gradlew b/gradlew
old mode 100644
new mode 100755
index 65dcd68..1aa94a4
--- a/gradlew
+++ b/gradlew
@@ -83,10 +83,8 @@ done
# This is normally unused
# shellcheck disable=SC2034
APP_BASE_NAME=${0##*/}
-APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit
-
-# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
-DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
+# 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
@@ -133,10 +131,13 @@ location of your Java installation."
fi
else
JAVACMD=java
- which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+ 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.
@@ -144,7 +145,7 @@ 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=SC3045
+ # shellcheck disable=SC2039,SC3045
MAX_FD=$( ulimit -H -n ) ||
warn "Could not query maximum file descriptor limit"
esac
@@ -152,7 +153,7 @@ if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then
'' | soft) :;; #(
*)
# In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked.
- # shellcheck disable=SC3045
+ # shellcheck disable=SC2039,SC3045
ulimit -n "$MAX_FD" ||
warn "Could not set maximum file descriptor limit to $MAX_FD"
esac
@@ -197,11 +198,15 @@ if "$cygwin" || "$msys" ; then
done
fi
-# Collect all arguments for the java command;
-# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of
-# shell script including quotes and variable substitutions, so put them in
-# double quotes to make sure that they get re-expanded; and
-# * put everything else in single quotes, so that it's not re-expanded.
+
+# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+DEFAULT_JVM_OPTS='"-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" \
diff --git a/minecraft/common/src/main/java/dev/kosmx/playerAnim/impl/animation/BendHelper.java b/minecraft/common/src/main/java/dev/kosmx/playerAnim/impl/animation/BendHelper.java
index 18729cf..1487466 100644
--- a/minecraft/common/src/main/java/dev/kosmx/playerAnim/impl/animation/BendHelper.java
+++ b/minecraft/common/src/main/java/dev/kosmx/playerAnim/impl/animation/BendHelper.java
@@ -14,8 +14,13 @@ public class BendHelper implements IBendHelper {
@Override
- public void bend(ModelPart modelPart, float a, float b){
- ModelPartAccessor.optionalGetCuboid(modelPart, 0).ifPresent(mutableCuboid -> ((BendableCuboid)mutableCuboid.getAndActivateMutator("bend")).applyBend(a, b));
+ public void bend(ModelPart modelPart, float axis, float rotation){
+ // Don't enable bend until rotation is bigger than epsilon. This should avoid unnecessary heavy calculations.
+ if (Math.abs(rotation) >= 0.0001f) {
+ ModelPartAccessor.optionalGetCuboid(modelPart, 0).ifPresent(mutableCuboid -> ((BendableCuboid) mutableCuboid.getAndActivateMutator("bend")).applyBend(axis, rotation));
+ } else {
+ ModelPartAccessor.optionalGetCuboid(modelPart, 0).ifPresent(mutableCuboid -> mutableCuboid.getAndActivateMutator(null));
+ }
}
@Override
diff --git a/minecraft/fabric/build.gradle b/minecraft/fabric/build.gradle
index 79fdc20..070f7aa 100644
--- a/minecraft/fabric/build.gradle
+++ b/minecraft/fabric/build.gradle
@@ -1,7 +1,5 @@
-plugins {
- id "com.github.johnrengelman.shadow" version "7.1.2"
-}
+apply plugin: 'com.github.johnrengelman.shadow'
apply plugin: 'com.modrinth.minotaur'
apply plugin: 'com.matthewprenger.cursegradle'
@@ -79,18 +77,18 @@ shadowJar {
exclude "architectury.common.json"
configurations = [project.configurations.shadowCommon]
- classifier "dev-shadow"
+ archiveClassifier.set("dev-shadow")
}
remapJar {
injectAccessWidener = true
inputFile.set shadowJar.archiveFile
dependsOn shadowJar
- classifier null
+ archiveClassifier.set(null)
}
jar {
- classifier "dev"
+ archiveClassifier.set("dev")
}
sourcesJar {
diff --git a/minecraft/fabric/src/main/resources/assets/player-animator/lang/tt_ru.json b/minecraft/fabric/src/main/resources/assets/player-animator/lang/tt_ru.json
new file mode 100644
index 0000000..dc7e479
--- /dev/null
+++ b/minecraft/fabric/src/main/resources/assets/player-animator/lang/tt_ru.json
@@ -0,0 +1,3 @@
+{
+ "modmenu.descriptionTranslation.player-animator": "Уенчыны гади анимацияләү өчен җиңел (авырлык буенча) китапханә"
+}
diff --git a/minecraft/fabric/src/testmod/java/dev/kosmx/animatorTestmod/CodedAnimation.java b/minecraft/fabric/src/testmod/java/dev/kosmx/animatorTestmod/CodedAnimation.java
new file mode 100644
index 0000000..d5eb31d
--- /dev/null
+++ b/minecraft/fabric/src/testmod/java/dev/kosmx/animatorTestmod/CodedAnimation.java
@@ -0,0 +1,2 @@
+package dev.kosmx.animatorTestmod;public class CodedAnimation {
+}
diff --git a/minecraft/fabric/src/testmod/java/dev/kosmx/animatorTestmod/SomeString.java b/minecraft/fabric/src/testmod/java/dev/kosmx/animatorTestmod/SomeString.java
deleted file mode 100644
index 10bb6e7..0000000
--- a/minecraft/fabric/src/testmod/java/dev/kosmx/animatorTestmod/SomeString.java
+++ /dev/null
@@ -1,10 +0,0 @@
-package dev.kosmx.animatorTestmod;
-
-/**
- * 'Cause I could not load the animations from assets
- *
- * It is a base64 encoded version of it :D
- */
-public class SomeString {
- public final static String something = "ew0KICAgICJuYW1lIjogInR3b19oYW5kZWRfc2xhc2hfaG9yaXpvbnRhbF9yaWdodCIsDQogICAgImF1dGhvciI6ICJEYWVkZWx1cyIsDQogICAgImRlc2NyaXB0aW9uIjogIlR3byBoYW5kZWQgc2xhc2ggYXR0YWNrIHJpZ2h0IHRvIGxlZnQiLA0KICAgICJlbW90ZSI6ew0KICAgICAgICAiaXNMb29wIjogImZhbHNlIiwNCiAgICAgICAgInJldHVyblRpY2siOiAyLA0KICAgICAgICAiYmVnaW5UaWNrIjoxMCwNCiAgICAgICAgImVuZFRpY2siOjE4LA0KICAgICAgICAic3RvcFRpY2siOjI4LA0KICAgICAgICAiZGVncmVlcyI6ZmFsc2UsDQogICAgICAgICJtb3ZlcyI6Ww0KICAgICAgICAgICAgDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgInRpY2siOjEwLA0KICAgICAgICAgICAgICAgICJlYXNpbmciOiAiRUFTRUlOUVVBRCIsDQogICAgICAgICAgICAgICAgInR1cm4iOiAwLA0KICAgICAgICAgICAgICAgICJoZWFkIjp7DQogICAgICAgICAgICAgICAgICAgICJ5IjotMC4wDQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAidGljayI6MTEsDQogICAgICAgICAgICAgICAgImVhc2luZyI6ICJFQVNFSU5PVVRRVUFEIiwNCiAgICAgICAgICAgICAgICAidHVybiI6IDAsDQogICAgICAgICAgICAgICAgImhlYWQiOnsNCiAgICAgICAgICAgICAgICAgICAgInkiOi0wLjANCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJ0aWNrIjoxMiwNCiAgICAgICAgICAgICAgICAiZWFzaW5nIjogIkVBU0VJTlFVQUQiLA0KICAgICAgICAgICAgICAgICJ0dXJuIjogMCwNCiAgICAgICAgICAgICAgICAiaGVhZCI6ew0KICAgICAgICAgICAgICAgICAgICAieSI6LTAuMA0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgInRpY2siOjEzLA0KICAgICAgICAgICAgICAgICJlYXNpbmciOiAiRUFTRUlOT1VUUVVBRCIsDQogICAgICAgICAgICAgICAgInR1cm4iOiAwLA0KICAgICAgICAgICAgICAgICJoZWFkIjp7DQogICAgICAgICAgICAgICAgICAgICJ5IjotMC4wDQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAidGljayI6MTQsDQogICAgICAgICAgICAgICAgImVhc2luZyI6ICJFQVNFT1VUUVVBRCIsDQogICAgICAgICAgICAgICAgInR1cm4iOiAwLA0KICAgICAgICAgICAgICAgICJoZWFkIjp7DQogICAgICAgICAgICAgICAgICAgICJ5IjotMC4wDQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAidGljayI6MTgsDQogICAgICAgICAgICAgICAgImVhc2luZyI6ICJFQVNFSU5PVVRRVUFEIiwNCiAgICAgICAgICAgICAgICAidHVybiI6IDAsDQogICAgICAgICAgICAgICAgImhlYWQiOnsNCiAgICAgICAgICAgICAgICAgICAgInkiOi0wLjANCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJ0aWNrIjoxMCwNCiAgICAgICAgICAgICAgICAiZWFzaW5nIjogIkVBU0VJTlFVQUQiLA0KICAgICAgICAgICAgICAgICJ0dXJuIjogMCwNCiAgICAgICAgICAgICAgICAiaGVhZCI6ew0KICAgICAgICAgICAgICAgICAgICAieiI6LTAuMA0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgInRpY2siOjExLA0KICAgICAgICAgICAgICAgICJlYXNpbmciOiAiRUFTRUlOT1VUUVVBRCIsDQogICAgICAgICAgICAgICAgInR1cm4iOiAwLA0KICAgICAgICAgICAgICAgICJoZWFkIjp7DQogICAgICAgICAgICAgICAgICAgICJ6IjotMC4wDQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAidGljayI6MTIsDQogICAgICAgICAgICAgICAgImVhc2luZyI6ICJFQVNFSU5RVUFEIiwNCiAgICAgICAgICAgICAgICAidHVybiI6IDAsDQogICAgICAgICAgICAgICAgImhlYWQiOnsNCiAgICAgICAgICAgICAgICAgICAgInoiOi0wLjANCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJ0aWNrIjoxMywNCiAgICAgICAgICAgICAgICAiZWFzaW5nIjogIkVBU0VJTk9VVFFVQUQiLA0KICAgICAgICAgICAgICAgICJ0dXJuIjogMCwNCiAgICAgICAgICAgICAgICAiaGVhZCI6ew0KICAgICAgICAgICAgICAgICAgICAieiI6LTAuMA0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgInRpY2siOjE0LA0KICAgICAgICAgICAgICAgICJlYXNpbmciOiAiRUFTRU9VVFFVQUQiLA0KICAgICAgICAgICAgICAgICJ0dXJuIjogMCwNCiAgICAgICAgICAgICAgICAiaGVhZCI6ew0KICAgICAgICAgICAgICAgICAgICAieiI6LTAuMA0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgInRpY2siOjE4LA0KICAgICAgICAgICAgICAgICJlYXNpbmciOiAiRUFTRUlOT1VUUVVBRCIsDQogICAgICAgICAgICAgICAgInR1cm4iOiAwLA0KICAgICAgICAgICAgICAgICJoZWFkIjp7DQogICAgICAgICAgICAgICAgICAgICJ6IjotMC4wDQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAidGljayI6MTAsDQogICAgICAgICAgICAgICAgImVhc2luZyI6ICJFQVNFSU5RVUFEIiwNCiAgICAgICAgICAgICAgICAidHVybiI6IDAsDQogICAgICAgICAgICAgICAgImhlYWQiOnsNCiAgICAgICAgICAgICAgICAgICAgIngiOi0wLjANCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJ0aWNrIjoxMSwNCiAgICAgICAgICAgICAgICAiZWFzaW5nIjogIkVBU0VJTk9VVFFVQUQiLA0KICAgICAgICAgICAgICAgICJ0dXJuIjogMCwNCiAgICAgICAgICAgICAgICAiaGVhZCI6ew0KICAgICAgICAgICAgICAgICAgICAieCI6LTAuMA0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgInRpY2siOjEyLA0KICAgICAgICAgICAgICAgICJlYXNpbmciOiAiRUFTRUlOUVVBRCIsDQogICAgICAgICAgICAgICAgInR1cm4iOiAwLA0KICAgICAgICAgICAgICAgICJoZWFkIjp7DQogICAgICAgICAgICAgICAgICAgICJ4IjotMC4wDQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAidGljayI6MTMsDQogICAgICAgICAgICAgICAgImVhc2luZyI6ICJFQVNFSU5PVVRRVUFEIiwNCiAgICAgICAgICAgICAgICAidHVybiI6IDAsDQogICAgICAgICAgICAgICAgImhlYWQiOnsNCiAgICAgICAgICAgICAgICAgICAgIngiOi0wLjANCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJ0aWNrIjoxNCwNCiAgICAgICAgICAgICAgICAiZWFzaW5nIjogIkVBU0VPVVRRVUFEIiwNCiAgICAgICAgICAgICAgICAidHVybiI6IDAsDQogICAgICAgICAgICAgICAgImhlYWQiOnsNCiAgICAgICAgICAgICAgICAgICAgIngiOi0wLjANCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJ0aWNrIjoxOCwNCiAgICAgICAgICAgICAgICAiZWFzaW5nIjogIkVBU0VJTk9VVFFVQUQiLA0KICAgICAgICAgICAgICAgICJ0dXJuIjogMCwNCiAgICAgICAgICAgICAgICAiaGVhZCI6ew0KICAgICAgICAgICAgICAgICAgICAieCI6LTAuMA0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgInRpY2siOjEwLA0KICAgICAgICAgICAgICAgICJlYXNpbmciOiAiRUFTRUlOUVVBRCIsDQogICAgICAgICAgICAgICAgInR1cm4iOiAwLA0KICAgICAgICAgICAgICAgICJoZWFkIjp7DQogICAgICAgICAgICAgICAgICAgICJ5YXciOi0wLjMxMjE0NTUwMTM3NTE5ODM2DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAidGljayI6MTEsDQogICAgICAgICAgICAgICAgImVhc2luZyI6ICJFQVNFSU5PVVRRVUFEIiwNCiAgICAgICAgICAgICAgICAidHVybiI6IDAsDQogICAgICAgICAgICAgICAgImhlYWQiOnsNCiAgICAgICAgICAgICAgICAgICAgInlhdyI6MC4wMzAwNzgyNDM0NjQyMzE0OQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgInRpY2siOjEyLA0KICAgICAgICAgICAgICAgICJlYXNpbmciOiAiRUFTRUlOUVVBRCIsDQogICAgICAgICAgICAgICAgInR1cm4iOiAwLA0KICAgICAgICAgICAgICAgICJoZWFkIjp7DQogICAgICAgICAgICAgICAgICAgICJ5YXciOjAuNjI5NzQ3MzkwNzQ3MDcwMw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgInRpY2siOjEzLA0KICAgICAgICAgICAgICAgICJlYXNpbmciOiAiRUFTRUlOT1VUUVVBRCIsDQogICAgICAgICAgICAgICAgInR1cm4iOiAwLA0KICAgICAgICAgICAgICAgICJoZWFkIjp7DQogICAgICAgICAgICAgICAgICAgICJ5YXciOjEuMDU3NTY5MDI2OTQ3MDIxNQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgInRpY2siOjE0LA0KICAgICAgICAgICAgICAgICJlYXNpbmciOiAiRUFTRU9VVFFVQUQiLA0KICAgICAgICAgICAgICAgICJ0dXJuIjogMCwNCiAgICAgICAgICAgICAgICAiaGVhZCI6ew0KICAgICAgICAgICAgICAgICAgICAieWF3IjoxLjE4Njk3NTU5ODMzNTI2NjENCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJ0aWNrIjoxOCwNCiAgICAgICAgICAgICAgICAiZWFzaW5nIjogIkVBU0VJTk9VVFFVQUQiLA0KICAgICAgICAgICAgICAgICJ0dXJuIjogMCwNCiAgICAgICAgICAgICAgICAiaGVhZCI6ew0KICAgICAgICAgICAgICAgICAgICAieWF3IjoxLjE4NTY0MTUyNzE3NTkwMzMNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJ0aWNrIjoxMCwNCiAgICAgICAgICAgICAgICAiZWFzaW5nIjogIkVBU0VJTlFVQUQiLA0KICAgICAgICAgICAgICAgICJ0dXJuIjogMCwNCiAgICAgICAgICAgICAgICAiaGVhZCI6ew0KICAgICAgICAgICAgICAgICAgICAicm9sbCI6LTAuMDc4ODY5MDUyMjMxMzExOA0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgInRpY2siOjExLA0KICAgICAgICAgICAgICAgICJlYXNpbmciOiAiRUFTRUlOT1VUUVVBRCIsDQogICAgICAgICAgICAgICAgInR1cm4iOiAwLA0KICAgICAgICAgICAgICAgICJoZWFkIjp7DQogICAgICAgICAgICAgICAgICAgICJyb2xsIjotMC4wMTY1NDcwNDQ3MzkxMjcxNg0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgInRpY2siOjEyLA0KICAgICAgICAgICAgICAgICJlYXNpbmciOiAiRUFTRUlOUVVBRCIsDQogICAgICAgICAgICAgICAgInR1cm4iOiAwLA0KICAgICAgICAgICAgICAgICJoZWFkIjp7DQogICAgICAgICAgICAgICAgICAgICJyb2xsIjotMC4yMjk0MTE3ODA4MzQxOTgNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJ0aWNrIjoxMywNCiAgICAgICAgICAgICAgICAiZWFzaW5nIjogIkVBU0VJTk9VVFFVQUQiLA0KICAgICAgICAgICAgICAgICJ0dXJuIjogMCwNCiAgICAgICAgICAgICAgICAiaGVhZCI6ew0KICAgICAgICAgICAgICAgICAgICAicm9sbCI6LTAuMzMyNDk4NDAxNDAzNDI3MQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgInRpY2siOjE0LA0KICAgICAgICAgICAgICAgICJlYXNpbmciOiAiRUFTRU9VVFFVQUQiLA0KICAgICAgICAgICAgICAgICJ0dXJuIjogMCwNCiAgICAgICAgICAgICAgICAiaGVhZCI6ew0KICAgICAgICAgICAgICAgICAgICAicm9sbCI6LTAuMzMxNzY5MDE5MzY1MzEwNjcNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJ0aWNrIjoxOCwNCiAgICAgICAgICAgICAgICAiZWFzaW5nIjogIkVBU0VJTk9VVFFVQUQiLA0KICAgICAgICAgICAgICAgICJ0dXJuIjogMCwNCiAgICAgICAgICAgICAgICAiaGVhZCI6ew0KICAgICAgICAgICAgICAgICAgICAicm9sbCI6LTAuMzM3MTY5MzQ5MTkzNTczDQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAidGljayI6MTAsDQogICAgICAgICAgICAgICAgImVhc2luZyI6ICJFQVNFSU5RVUFEIiwNCiAgICAgICAgICAgICAgICAidHVybiI6IDAsDQogICAgICAgICAgICAgICAgImhlYWQiOnsNCiAgICAgICAgICAgICAgICAgICAgInBpdGNoIjowLjI1MzAyODEyNDU3MDg0NjU2DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAidGljayI6MTEsDQogICAgICAgICAgICAgICAgImVhc2luZyI6ICJFQVNFSU5PVVRRVUFEIiwNCiAgICAgICAgICAgICAgICAidHVybiI6IDAsDQogICAgICAgICAgICAgICAgImhlYWQiOnsNCiAgICAgICAgICAgICAgICAgICAgInBpdGNoIjotMC4wMzIwMTg3OTkzMzQ3NjQ0OA0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgInRpY2siOjEyLA0KICAgICAgICAgICAgICAgICJlYXNpbmciOiAiRUFTRUlOUVVBRCIsDQogICAgICAgICAgICAgICAgInR1cm4iOiAwLA0KICAgICAgICAgICAgICAgICJoZWFkIjp7DQogICAgICAgICAgICAgICAgICAgICJwaXRjaCI6LTAuMzY2MjYyMDE4NjgwNTcyNQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgInRpY2siOjEzLA0KICAgICAgICAgICAgICAgICJlYXNpbmciOiAiRUFTRUlOT1VUUVVBRCIsDQogICAgICAgICAgICAgICAgInR1cm4iOiAwLA0KICAgICAgICAgICAgICAgICJoZWFkIjp7DQogICAgICAgICAgICAgICAgICAgICJwaXRjaCI6LTAuNDE5Njk0OTYwMTE3MzQwMQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgInRpY2siOjE0LA0KICAgICAgICAgICAgICAgICJlYXNpbmciOiAiRUFTRU9VVFFVQUQiLA0KICAgICAgICAgICAgICAgICJ0dXJuIjogMCwNCiAgICAgICAgICAgICAgICAiaGVhZCI6ew0KICAgICAgICAgICAgICAgICAgICAicGl0Y2giOi0wLjQxNDM1NDYyMjM2NDA0NDINCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJ0aWNrIjoxOCwNCiAgICAgICAgICAgICAgICAiZWFzaW5nIjogIkVBU0VJTk9VVFFVQUQiLA0KICAgICAgICAgICAgICAgICJ0dXJuIjogMCwNCiAgICAgICAgICAgICAgICAiaGVhZCI6ew0KICAgICAgICAgICAgICAgICAgICAicGl0Y2giOi0wLjM3OTI5Mzk0ODQxMTk0MTUzDQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAidGljayI6MTAsDQogICAgICAgICAgICAgICAgImVhc2luZyI6ICJFQVNFSU5RVUFEIiwNCiAgICAgICAgICAgICAgICAidHVybiI6IDAsDQogICAgICAgICAgICAgICAgInRvcnNvIjp7DQogICAgICAgICAgICAgICAgICAgICJ5YXciOi0wLjMyNDA5NDI2NTY5OTM4NjYNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJ0aWNrIjoxMSwNCiAgICAgICAgICAgICAgICAiZWFzaW5nIjogIkVBU0VJTk9VVFFVQUQiLA0KICAgICAgICAgICAgICAgICJ0dXJuIjogMCwNCiAgICAgICAgICAgICAgICAidG9yc28iOnsNCiAgICAgICAgICAgICAgICAgICAgInlhdyI6MC4wMjU5OTIyMjk1ODA4NzkyMQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgInRpY2siOjEyLA0KICAgICAgICAgICAgICAgICJlYXNpbmciOiAiRUFTRUlOUVVBRCIsDQogICAgICAgICAgICAgICAgInR1cm4iOiAwLA0KICAgICAgICAgICAgICAgICJ0b3JzbyI6ew0KICAgICAgICAgICAgICAgICAgICAieWF3IjowLjY2MzAyNDg0MjczOTEwNTINCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJ0aWNrIjoxNCwNCiAgICAgICAgICAgICAgICAiZWFzaW5nIjogIkVBU0VPVVRRVUFEIiwNCiAgICAgICAgICAgICAgICAidHVybiI6IDAsDQogICAgICAgICAgICAgICAgInRvcnNvIjp7DQogICAgICAgICAgICAgICAgICAgICJ5YXciOjEuMjE1MDMxNTA0NjMxMDQyNQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgInRpY2siOjE4LA0KICAgICAgICAgICAgICAgICJlYXNpbmciOiAiRUFTRUlOT1VUUVVBRCIsDQogICAgICAgICAgICAgICAgInR1cm4iOiAwLA0KICAgICAgICAgICAgICAgICJ0b3JzbyI6ew0KICAgICAgICAgICAgICAgICAgICAieWF3IjoxLjIzMjUyNDk5MTAzNTQ2MTQNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJ0aWNrIjoxMCwNCiAgICAgICAgICAgICAgICAiZWFzaW5nIjogIkVBU0VJTlFVQUQiLA0KICAgICAgICAgICAgICAgICJ0dXJuIjogMCwNCiAgICAgICAgICAgICAgICAidG9yc28iOnsNCiAgICAgICAgICAgICAgICAgICAgInJvbGwiOi01LjU0MTA5Mzk5NTQ0MDgyNWUtMTcNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJ0aWNrIjoxMSwNCiAgICAgICAgICAgICAgICAiZWFzaW5nIjogIkVBU0VJTk9VVFFVQUQiLA0KICAgICAgICAgICAgICAgICJ0dXJuIjogMCwNCiAgICAgICAgICAgICAgICAidG9yc28iOnsNCiAgICAgICAgICAgICAgICAgICAgInJvbGwiOjAuMDA1MjEzOTI1NjE0OTUzMDQxDQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAidGljayI6MTIsDQogICAgICAgICAgICAgICAgImVhc2luZyI6ICJFQVNFSU5RVUFEIiwNCiAgICAgICAgICAgICAgICAidHVybiI6IDAsDQogICAgICAgICAgICAgICAgInRvcnNvIjp7DQogICAgICAgICAgICAgICAgICAgICJyb2xsIjowLjAxMDQyNzg1MTIyOTkwNjA4Mg0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgInRpY2siOjE0LA0KICAgICAgICAgICAgICAgICJlYXNpbmciOiAiRUFTRU9VVFFVQUQiLA0KICAgICAgICAgICAgICAgICJ0dXJuIjogMCwNCiAgICAgICAgICAgICAgICAidG9yc28iOnsNCiAgICAgICAgICAgICAgICAgICAgInJvbGwiOi0wLjE3MDI2OTQ1OTQ4NjAwNzcNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJ0aWNrIjoxOCwNCiAgICAgICAgICAgICAgICAiZWFzaW5nIjogIkVBU0VJTk9VVFFVQUQiLA0KICAgICAgICAgICAgICAgICJ0dXJuIjogMCwNCiAgICAgICAgICAgICAgICAidG9yc28iOnsNCiAgICAgICAgICAgICAgICAgICAgInJvbGwiOi0wLjAzMjI5MjQ3Nzc4NjU0MDk4NQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgInRpY2siOjEwLA0KICAgICAgICAgICAgICAgICJlYXNpbmciOiAiRUFTRUlOUVVBRCIsDQogICAgICAgICAgICAgICAgInR1cm4iOiAwLA0KICAgICAgICAgICAgICAgICJ0b3JzbyI6ew0KICAgICAgICAgICAgICAgICAgICAicGl0Y2giOjAuMjM4ODIwNzkxMjQ0NTA2ODQNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJ0aWNrIjoxMSwNCiAgICAgICAgICAgICAgICAiZWFzaW5nIjogIkVBU0VJTk9VVFFVQUQiLA0KICAgICAgICAgICAgICAgICJ0dXJuIjogMCwNCiAgICAgICAgICAgICAgICAidG9yc28iOnsNCiAgICAgICAgICAgICAgICAgICAgInBpdGNoIjotMC4wMDg5NjMyNzE5NzU1MTcyNzMNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJ0aWNrIjoxMiwNCiAgICAgICAgICAgICAgICAiZWFzaW5nIjogIkVBU0VJTlFVQUQiLA0KICAgICAgICAgICAgICAgICJ0dXJuIjogMCwNCiAgICAgICAgICAgICAgICAidG9yc28iOnsNCiAgICAgICAgICAgICAgICAgICAgInBpdGNoIjotMC4yODQ3NzgwODgzMzEyMjI1Mw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgInRpY2siOjE0LA0KICAgICAgICAgICAgICAgICJlYXNpbmciOiAiRUFTRU9VVFFVQUQiLA0KICAgICAgICAgICAgICAgICJ0dXJuIjogMCwNCiAgICAgICAgICAgICAgICAidG9yc28iOnsNCiAgICAgICAgICAgICAgICAgICAgInBpdGNoIjotMC4zMjIxNTI0MzU3Nzk1NzE1Mw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgInRpY2siOjE4LA0KICAgICAgICAgICAgICAgICJlYXNpbmciOiAiRUFTRUlOT1VUUVVBRCIsDQogICAgICAgICAgICAgICAgInR1cm4iOiAwLA0KICAgICAgICAgICAgICAgICJ0b3JzbyI6ew0KICAgICAgICAgICAgICAgICAgICAicGl0Y2giOi0wLjE3OTkxNTQ1Nzk2Mzk0MzQ4DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAidGljayI6MTAsDQogICAgICAgICAgICAgICAgImVhc2luZyI6ICJFQVNFSU5RVUFEIiwNCiAgICAgICAgICAgICAgICAidHVybiI6IDAsDQogICAgICAgICAgICAgICAgInRvcnNvIjp7DQogICAgICAgICAgICAgICAgICAgICJ5IjowLjANCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJ0aWNrIjoxMSwNCiAgICAgICAgICAgICAgICAiZWFzaW5nIjogIkVBU0VJTk9VVFFVQUQiLA0KICAgICAgICAgICAgICAgICJ0dXJuIjogMCwNCiAgICAgICAgICAgICAgICAidG9yc28iOnsNCiAgICAgICAgICAgICAgICAgICAgInkiOjAuMA0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgInRpY2siOjEyLA0KICAgICAgICAgICAgICAgICJlYXNpbmciOiAiRUFTRUlOUVVBRCIsDQogICAgICAgICAgICAgICAgInR1cm4iOiAwLA0KICAgICAgICAgICAgICAgICJ0b3JzbyI6ew0KICAgICAgICAgICAgICAgICAgICAieSI6MC4wDQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAidGljayI6MTQsDQogICAgICAgICAgICAgICAgImVhc2luZyI6ICJFQVNFT1VUUVVBRCIsDQogICAgICAgICAgICAgICAgInR1cm4iOiAwLA0KICAgICAgICAgICAgICAgICJ0b3JzbyI6ew0KICAgICAgICAgICAgICAgICAgICAieSI6MC4wDQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAidGljayI6MTgsDQogICAgICAgICAgICAgICAgImVhc2luZyI6ICJFQVNFSU5PVVRRVUFEIiwNCiAgICAgICAgICAgICAgICAidHVybiI6IDAsDQogICAgICAgICAgICAgICAgInRvcnNvIjp7DQogICAgICAgICAgICAgICAgICAgICJ5IjowLjANCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJ0aWNrIjoxMCwNCiAgICAgICAgICAgICAgICAiZWFzaW5nIjogIkVBU0VJTlFVQUQiLA0KICAgICAgICAgICAgICAgICJ0dXJuIjogMCwNCiAgICAgICAgICAgICAgICAidG9yc28iOnsNCiAgICAgICAgICAgICAgICAgICAgIngiOjAuMA0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgInRpY2siOjExLA0KICAgICAgICAgICAgICAgICJlYXNpbmciOiAiRUFTRUlOT1VUUVVBRCIsDQogICAgICAgICAgICAgICAgInR1cm4iOiAwLA0KICAgICAgICAgICAgICAgICJ0b3JzbyI6ew0KICAgICAgICAgICAgICAgICAgICAieCI6MC4wDQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAidGljayI6MTIsDQogICAgICAgICAgICAgICAgImVhc2luZyI6ICJFQVNFSU5RVUFEIiwNCiAgICAgICAgICAgICAgICAidHVybiI6IDAsDQogICAgICAgICAgICAgICAgInRvcnNvIjp7DQogICAgICAgICAgICAgICAgICAgICJ4IjowLjANCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJ0aWNrIjoxNCwNCiAgICAgICAgICAgICAgICAiZWFzaW5nIjogIkVBU0VPVVRRVUFEIiwNCiAgICAgICAgICAgICAgICAidHVybiI6IDAsDQogICAgICAgICAgICAgICAgInRvcnNvIjp7DQogICAgICAgICAgICAgICAgICAgICJ4IjowLjANCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJ0aWNrIjoxOCwNCiAgICAgICAgICAgICAgICAiZWFzaW5nIjogIkVBU0VJTk9VVFFVQUQiLA0KICAgICAgICAgICAgICAgICJ0dXJuIjogMCwNCiAgICAgICAgICAgICAgICAidG9yc28iOnsNCiAgICAgICAgICAgICAgICAgICAgIngiOjAuMA0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgInRpY2siOjEwLA0KICAgICAgICAgICAgICAgICJlYXNpbmciOiAiRUFTRUlOUVVBRCIsDQogICAgICAgICAgICAgICAgInR1cm4iOiAwLA0KICAgICAgICAgICAgICAgICJ0b3JzbyI6ew0KICAgICAgICAgICAgICAgICAgICAieiI6LTAuMDQ0NjA5MDM2Mjk2NjA2MDY0DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAidGljayI6MTEsDQogICAgICAgICAgICAgICAgImVhc2luZyI6ICJFQVNFSU5PVVRRVUFEIiwNCiAgICAgICAgICAgICAgICAidHVybiI6IDAsDQogICAgICAgICAgICAgICAgInRvcnNvIjp7DQogICAgICAgICAgICAgICAgICAgICJ6IjotMC4wNjU3NzAxMDQ1Mjc0NzM0NQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgInRpY2siOjEyLA0KICAgICAgICAgICAgICAgICJlYXNpbmciOiAiRUFTRUlOUVVBRCIsDQogICAgICAgICAgICAgICAgInR1cm4iOiAwLA0KICAgICAgICAgICAgICAgICJ0b3JzbyI6ew0KICAgICAgICAgICAgICAgICAgICAieiI6LTAuMDY0OTk5OTk3NjE1ODE0MjENCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJ0aWNrIjoxNCwNCiAgICAgICAgICAgICAgICAiZWFzaW5nIjogIkVBU0VPVVRRVUFEIiwNCiAgICAgICAgICAgICAgICAidHVybiI6IDAsDQogICAgICAgICAgICAgICAgInRvcnNvIjp7DQogICAgICAgICAgICAgICAgICAgICJ6IjotMC4xNDA5MzU5NDI1MzA2MzIwMg0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgInRpY2siOjE4LA0KICAgICAgICAgICAgICAgICJlYXNpbmciOiAiRUFTRUlOT1VUUVVBRCIsDQogICAgICAgICAgICAgICAgInR1cm4iOiAwLA0KICAgICAgICAgICAgICAgICJ0b3JzbyI6ew0KICAgICAgICAgICAgICAgICAgICAieiI6LTAuMTg3OTE0NTk1MDA3ODk2NDINCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJ0aWNrIjoxMCwNCiAgICAgICAgICAgICAgICAiZWFzaW5nIjogIkVBU0VJTlFVQUQiLA0KICAgICAgICAgICAgICAgICJ0dXJuIjogMCwNCiAgICAgICAgICAgICAgICAicmlnaHRBcm0iOnsNCiAgICAgICAgICAgICAgICAgICAgInlhdyI6MC4yMzE3MDU5Nzg1MTI3NjM5OA0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgInRpY2siOjEyLA0KICAgICAgICAgICAgICAgICJlYXNpbmciOiAiRUFTRUlOUVVBRCIsDQogICAgICAgICAgICAgICAgInR1cm4iOiAwLA0KICAgICAgICAgICAgICAgICJyaWdodEFybSI6ew0KICAgICAgICAgICAgICAgICAgICAieWF3IjowLjEwODUzMjcxOTMxNDA5ODM2DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAidGljayI6MTQsDQogICAgICAgICAgICAgICAgImVhc2luZyI6ICJFQVNFT1VUUVVBRCIsDQogICAgICAgICAgICAgICAgInR1cm4iOiAwLA0KICAgICAgICAgICAgICAgICJyaWdodEFybSI6ew0KICAgICAgICAgICAgICAgICAgICAieWF3IjowLjA0OTkwNDEwMDU5NjkwNDc1NQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgInRpY2siOjE4LA0KICAgICAgICAgICAgICAgICJlYXNpbmciOiAiRUFTRUlOT1VUUVVBRCIsDQogICAgICAgICAgICAgICAgInR1cm4iOiAwLA0KICAgICAgICAgICAgICAgICJyaWdodEFybSI6ew0KICAgICAgICAgICAgICAgICAgICAieWF3IjowLjAzMTQ4OTY2MjgyNjA2MTI1DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAidGljayI6MTAsDQogICAgICAgICAgICAgICAgImVhc2luZyI6ICJFQVNFSU5RVUFEIiwNCiAgICAgICAgICAgICAgICAidHVybiI6IDAsDQogICAgICAgICAgICAgICAgInJpZ2h0QXJtIjp7DQogICAgICAgICAgICAgICAgICAgICJyb2xsIjoxLjM3MDEzNzY5MTQ5NzgwMjcNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJ0aWNrIjoxMiwNCiAgICAgICAgICAgICAgICAiZWFzaW5nIjogIkVBU0VJTlFVQUQiLA0KICAgICAgICAgICAgICAgICJ0dXJuIjogMCwNCiAgICAgICAgICAgICAgICAicmlnaHRBcm0iOnsNCiAgICAgICAgICAgICAgICAgICAgInJvbGwiOjEuNjMxNDE3MTU1MjY1ODA4DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAidGljayI6MTQsDQogICAgICAgICAgICAgICAgImVhc2luZyI6ICJFQVNFT1VUUVVBRCIsDQogICAgICAgICAgICAgICAgInR1cm4iOiAwLA0KICAgICAgICAgICAgICAgICJyaWdodEFybSI6ew0KICAgICAgICAgICAgICAgICAgICAicm9sbCI6MS42ODk4ODYwOTMxMzk2NDg0DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAidGljayI6MTgsDQogICAgICAgICAgICAgICAgImVhc2luZyI6ICJFQVNFSU5PVVRRVUFEIiwNCiAgICAgICAgICAgICAgICAidHVybiI6IDAsDQogICAgICAgICAgICAgICAgInJpZ2h0QXJtIjp7DQogICAgICAgICAgICAgICAgICAgICJyb2xsIjoxLjY1NjA3NTAwMDc2MjkzOTUNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJ0aWNrIjoxMCwNCiAgICAgICAgICAgICAgICAiZWFzaW5nIjogIkVBU0VJTlFVQUQiLA0KICAgICAgICAgICAgICAgICJ0dXJuIjogMCwNCiAgICAgICAgICAgICAgICAicmlnaHRBcm0iOnsNCiAgICAgICAgICAgICAgICAgICAgInkiOjMuMzg5ODc5MjI2Njg0NTcwMw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgInRpY2siOjEyLA0KICAgICAgICAgICAgICAgICJlYXNpbmciOiAiRUFTRUlOUVVBRCIsDQogICAgICAgICAgICAgICAgInR1cm4iOiAwLA0KICAgICAgICAgICAgICAgICJyaWdodEFybSI6ew0KICAgICAgICAgICAgICAgICAgICAieSI6Mi44NjQ5MjE1Njk4MjQyMTg4DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAidGljayI6MTQsDQogICAgICAgICAgICAgICAgImVhc2luZyI6ICJFQVNFT1VUUVVBRCIsDQogICAgICAgICAgICAgICAgInR1cm4iOiAwLA0KICAgICAgICAgICAgICAgICJyaWdodEFybSI6ew0KICAgICAgICAgICAgICAgICAgICAieSI6Mi44NjQ5MjE1Njk4MjQyMTg4DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAidGljayI6MTgsDQogICAgICAgICAgICAgICAgImVhc2luZyI6ICJFQVNFSU5PVVRRVUFEIiwNCiAgICAgICAgICAgICAgICAidHVybiI6IDAsDQogICAgICAgICAgICAgICAgInJpZ2h0QXJtIjp7DQogICAgICAgICAgICAgICAgICAgICJ5IjoyLjg2NDkyMTU2OTgyNDIxODgNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJ0aWNrIjoxMCwNCiAgICAgICAgICAgICAgICAiZWFzaW5nIjogIkVBU0VJTlFVQUQiLA0KICAgICAgICAgICAgICAgICJ0dXJuIjogMCwNCiAgICAgICAgICAgICAgICAicmlnaHRBcm0iOnsNCiAgICAgICAgICAgICAgICAgICAgInoiOjAuMDk1MTM2MDc2MjExOTI5MzINCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJ0aWNrIjoxMiwNCiAgICAgICAgICAgICAgICAiZWFzaW5nIjogIkVBU0VJTlFVQUQiLA0KICAgICAgICAgICAgICAgICJ0dXJuIjogMCwNCiAgICAgICAgICAgICAgICAicmlnaHRBcm0iOnsNCiAgICAgICAgICAgICAgICAgICAgInoiOi0xLjYyMDAwOTE4Mzg4MzY2Nw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgInRpY2siOjE0LA0KICAgICAgICAgICAgICAgICJlYXNpbmciOiAiRUFTRU9VVFFVQUQiLA0KICAgICAgICAgICAgICAgICJ0dXJuIjogMCwNCiAgICAgICAgICAgICAgICAicmlnaHRBcm0iOnsNCiAgICAgICAgICAgICAgICAgICAgInoiOi0xLjYyMDAwOTE4Mzg4MzY2Nw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgInRpY2siOjE4LA0KICAgICAgICAgICAgICAgICJlYXNpbmciOiAiRUFTRUlOT1VUUVVBRCIsDQogICAgICAgICAgICAgICAgInR1cm4iOiAwLA0KICAgICAgICAgICAgICAgICJyaWdodEFybSI6ew0KICAgICAgICAgICAgICAgICAgICAieiI6LTEuNjIwMDA5MTgzODgzNjY3DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAidGljayI6MTAsDQogICAgICAgICAgICAgICAgImVhc2luZyI6ICJFQVNFSU5RVUFEIiwNCiAgICAgICAgICAgICAgICAidHVybiI6IDAsDQogICAgICAgICAgICAgICAgInJpZ2h0QXJtIjp7DQogICAgICAgICAgICAgICAgICAgICJ4IjotNS43MDM1NDg0MzEzOTY0ODQNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJ0aWNrIjoxMiwNCiAgICAgICAgICAgICAgICAiZWFzaW5nIjogIkVBU0VJTlFVQUQiLA0KICAgICAgICAgICAgICAgICJ0dXJuIjogMCwNCiAgICAgICAgICAgICAgICAicmlnaHRBcm0iOnsNCiAgICAgICAgICAgICAgICAgICAgIngiOi00LjQzMzEwOTc2MDI4NDQyNA0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgInRpY2siOjE0LA0KICAgICAgICAgICAgICAgICJlYXNpbmciOiAiRUFTRU9VVFFVQUQiLA0KICAgICAgICAgICAgICAgICJ0dXJuIjogMCwNCiAgICAgICAgICAgICAgICAicmlnaHRBcm0iOnsNCiAgICAgICAgICAgICAgICAgICAgIngiOi00LjQzMzEwOTc2MDI4NDQyNA0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgInRpY2siOjE4LA0KICAgICAgICAgICAgICAgICJlYXNpbmciOiAiRUFTRUlOT1VUUVVBRCIsDQogICAgICAgICAgICAgICAgInR1cm4iOiAwLA0KICAgICAgICAgICAgICAgICJyaWdodEFybSI6ew0KICAgICAgICAgICAgICAgICAgICAieCI6LTQuNDMzMTA5NzYwMjg0NDI0DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAidGljayI6MTAsDQogICAgICAgICAgICAgICAgImVhc2luZyI6ICJFQVNFSU5RVUFEIiwNCiAgICAgICAgICAgICAgICAidHVybiI6IDAsDQogICAgICAgICAgICAgICAgInJpZ2h0QXJtIjp7DQogICAgICAgICAgICAgICAgICAgICJwaXRjaCI6MC4yODE4NTAwMTAxNTY2MzE0Nw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgInRpY2siOjEyLA0KICAgICAgICAgICAgICAgICJlYXNpbmciOiAiRUFTRUlOUVVBRCIsDQogICAgICAgICAgICAgICAgInR1cm4iOiAwLA0KICAgICAgICAgICAgICAgICJyaWdodEFybSI6ew0KICAgICAgICAgICAgICAgICAgICAicGl0Y2giOi0xLjMwMzk4OTg4NzIzNzU0ODgNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJ0aWNrIjoxNCwNCiAgICAgICAgICAgICAgICAiZWFzaW5nIjogIkVBU0VPVVRRVUFEIiwNCiAgICAgICAgICAgICAgICAidHVybiI6IDAsDQogICAgICAgICAgICAgICAgInJpZ2h0QXJtIjp7DQogICAgICAgICAgICAgICAgICAgICJwaXRjaCI6LTEuODEzNzcxNzI0NzAwOTI3Nw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgInRpY2siOjE4LA0KICAgICAgICAgICAgICAgICJlYXNpbmciOiAiRUFTRUlOT1VUUVVBRCIsDQogICAgICAgICAgICAgICAgInR1cm4iOiAwLA0KICAgICAgICAgICAgICAgICJyaWdodEFybSI6ew0KICAgICAgICAgICAgICAgICAgICAicGl0Y2giOi0yLjE1NzY0MDkzMzk5MDQ3ODUNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJ0aWNrIjoxMCwNCiAgICAgICAgICAgICAgICAiZWFzaW5nIjogIkVBU0VJTlFVQUQiLA0KICAgICAgICAgICAgICAgICJ0dXJuIjogMCwNCiAgICAgICAgICAgICAgICAibGVmdEFybSI6ew0KICAgICAgICAgICAgICAgICAgICAicm9sbCI6MS4yNTMxNzAwMTM0Mjc3MzQ0DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAidGljayI6MTIsDQogICAgICAgICAgICAgICAgImVhc2luZyI6ICJFQVNFSU5RVUFEIiwNCiAgICAgICAgICAgICAgICAidHVybiI6IDAsDQogICAgICAgICAgICAgICAgImxlZnRBcm0iOnsNCiAgICAgICAgICAgICAgICAgICAgInJvbGwiOjEuNTkyNDIwMjIwMzc1MDYxDQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAidGljayI6MTQsDQogICAgICAgICAgICAgICAgImVhc2luZyI6ICJFQVNFT1VUUVVBRCIsDQogICAgICAgICAgICAgICAgInR1cm4iOiAwLA0KICAgICAgICAgICAgICAgICJsZWZ0QXJtIjp7DQogICAgICAgICAgICAgICAgICAgICJyb2xsIjoxLjM5NTYwNTgwMjUzNjAxMDcNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJ0aWNrIjoxOCwNCiAgICAgICAgICAgICAgICAiZWFzaW5nIjogIkVBU0VJTk9VVFFVQUQiLA0KICAgICAgICAgICAgICAgICJ0dXJuIjogMCwNCiAgICAgICAgICAgICAgICAibGVmdEFybSI6ew0KICAgICAgICAgICAgICAgICAgICAicm9sbCI6MS4yOTY3OTMyMjI0MjczNjgyDQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAidGljayI6MTAsDQogICAgICAgICAgICAgICAgImVhc2luZyI6ICJFQVNFSU5RVUFEIiwNCiAgICAgICAgICAgICAgICAidHVybiI6IDAsDQogICAgICAgICAgICAgICAgImxlZnRBcm0iOnsNCiAgICAgICAgICAgICAgICAgICAgInlhdyI6MC4wMDY0ODgzMjM2NzczMzEyMDkNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJ0aWNrIjoxMiwNCiAgICAgICAgICAgICAgICAiZWFzaW5nIjogIkVBU0VJTlFVQUQiLA0KICAgICAgICAgICAgICAgICJ0dXJuIjogMCwNCiAgICAgICAgICAgICAgICAibGVmdEFybSI6ew0KICAgICAgICAgICAgICAgICAgICAieWF3IjowLjA5MDgxMDY1NjU0NzU0NjM5DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAidGljayI6MTQsDQogICAgICAgICAgICAgICAgImVhc2luZyI6ICJFQVNFT1VUUVVBRCIsDQogICAgICAgICAgICAgICAgInR1cm4iOiAwLA0KICAgICAgICAgICAgICAgICJsZWZ0QXJtIjp7DQogICAgICAgICAgICAgICAgICAgICJ5YXciOjAuMjcwMDc2NDUzNjg1NzYwNQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgInRpY2siOjE4LA0KICAgICAgICAgICAgICAgICJlYXNpbmciOiAiRUFTRUlOT1VUUVVBRCIsDQogICAgICAgICAgICAgICAgInR1cm4iOiAwLA0KICAgICAgICAgICAgICAgICJsZWZ0QXJtIjp7DQogICAgICAgICAgICAgICAgICAgICJ5YXciOjAuMTE2NzEyOTEyOTE3MTM3MTUNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJ0aWNrIjoxMCwNCiAgICAgICAgICAgICAgICAiZWFzaW5nIjogIkVBU0VJTlFVQUQiLA0KICAgICAgICAgICAgICAgICJ0dXJuIjogMCwNCiAgICAgICAgICAgICAgICAibGVmdEFybSI6ew0KICAgICAgICAgICAgICAgICAgICAicGl0Y2giOi0wLjQ4NjYwNDMwMzEyMTU2NjgNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJ0aWNrIjoxMiwNCiAgICAgICAgICAgICAgICAiZWFzaW5nIjogIkVBU0VJTlFVQUQiLA0KICAgICAgICAgICAgICAgICJ0dXJuIjogMCwNCiAgICAgICAgICAgICAgICAibGVmdEFybSI6ew0KICAgICAgICAgICAgICAgICAgICAicGl0Y2giOi0wLjcxMjcyMjU5OTUwNjM3ODINCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJ0aWNrIjoxNCwNCiAgICAgICAgICAgICAgICAiZWFzaW5nIjogIkVBU0VPVVRRVUFEIiwNCiAgICAgICAgICAgICAgICAidHVybiI6IDAsDQogICAgICAgICAgICAgICAgImxlZnRBcm0iOnsNCiAgICAgICAgICAgICAgICAgICAgInBpdGNoIjotMC45MDY5NTI2NzkxNTcyNTcxDQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAidGljayI6MTgsDQogICAgICAgICAgICAgICAgImVhc2luZyI6ICJFQVNFSU5PVVRRVUFEIiwNCiAgICAgICAgICAgICAgICAidHVybiI6IDAsDQogICAgICAgICAgICAgICAgImxlZnRBcm0iOnsNCiAgICAgICAgICAgICAgICAgICAgInBpdGNoIjotMS4yOTMxOTI3NDQyNTUwNjYNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJ0aWNrIjoxMCwNCiAgICAgICAgICAgICAgICAiZWFzaW5nIjogIkVBU0VJTlFVQUQiLA0KICAgICAgICAgICAgICAgICJ0dXJuIjogMCwNCiAgICAgICAgICAgICAgICAibGVmdEFybSI6ew0KICAgICAgICAgICAgICAgICAgICAieSI6Mi42Nzc4NzU1MTg3OTg4MjgNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJ0aWNrIjoxMiwNCiAgICAgICAgICAgICAgICAiZWFzaW5nIjogIkVBU0VJTlFVQUQiLA0KICAgICAgICAgICAgICAgICJ0dXJuIjogMCwNCiAgICAgICAgICAgICAgICAibGVmdEFybSI6ew0KICAgICAgICAgICAgICAgICAgICAieSI6Mi42Nzc4NzU1MTg3OTg4MjgNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJ0aWNrIjoxNCwNCiAgICAgICAgICAgICAgICAiZWFzaW5nIjogIkVBU0VPVVRRVUFEIiwNCiAgICAgICAgICAgICAgICAidHVybiI6IDAsDQogICAgICAgICAgICAgICAgImxlZnRBcm0iOnsNCiAgICAgICAgICAgICAgICAgICAgInkiOjEuOTI1Nzk4NDE2MTM3Njk1Mw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgInRpY2siOjE4LA0KICAgICAgICAgICAgICAgICJlYXNpbmciOiAiRUFTRUlOT1VUUVVBRCIsDQogICAgICAgICAgICAgICAgInR1cm4iOiAwLA0KICAgICAgICAgICAgICAgICJsZWZ0QXJtIjp7DQogICAgICAgICAgICAgICAgICAgICJ5IjoyLjI3ODMyMzE3MzUyMjk0OQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgInRpY2siOjEwLA0KICAgICAgICAgICAgICAgICJlYXNpbmciOiAiRUFTRUlOUVVBRCIsDQogICAgICAgICAgICAgICAgInR1cm4iOiAwLA0KICAgICAgICAgICAgICAgICJsZWZ0QXJtIjp7DQogICAgICAgICAgICAgICAgICAgICJ6IjotMi43ODQyNTc0MTE5NTY3ODcNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJ0aWNrIjoxMiwNCiAgICAgICAgICAgICAgICAiZWFzaW5nIjogIkVBU0VJTlFVQUQiLA0KICAgICAgICAgICAgICAgICJ0dXJuIjogMCwNCiAgICAgICAgICAgICAgICAibGVmdEFybSI6ew0KICAgICAgICAgICAgICAgICAgICAieiI6LTIuNzg0MjU3NDExOTU2Nzg3DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAidGljayI6MTQsDQogICAgICAgICAgICAgICAgImVhc2luZyI6ICJFQVNFT1VUUVVBRCIsDQogICAgICAgICAgICAgICAgInR1cm4iOiAwLA0KICAgICAgICAgICAgICAgICJsZWZ0QXJtIjp7DQogICAgICAgICAgICAgICAgICAgICJ6IjotMy4yNjAyNDM0MTU4MzI1MTk1DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAidGljayI6MTgsDQogICAgICAgICAgICAgICAgImVhc2luZyI6ICJFQVNFSU5PVVRRVUFEIiwNCiAgICAgICAgICAgICAgICAidHVybiI6IDAsDQogICAgICAgICAgICAgICAgImxlZnRBcm0iOnsNCiAgICAgICAgICAgICAgICAgICAgInoiOi0wLjk1NDcxNTM3MTEzMTg5Nw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgInRpY2siOjEwLA0KICAgICAgICAgICAgICAgICJlYXNpbmciOiAiRUFTRUlOUVVBRCIsDQogICAgICAgICAgICAgICAgInR1cm4iOiAwLA0KICAgICAgICAgICAgICAgICJsZWZ0QXJtIjp7DQogICAgICAgICAgICAgICAgICAgICJ4IjoyLjAzNTUxMDc3ODQyNzEyNA0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgInRpY2siOjEyLA0KICAgICAgICAgICAgICAgICJlYXNpbmciOiAiRUFTRUlOUVVBRCIsDQogICAgICAgICAgICAgICAgInR1cm4iOiAwLA0KICAgICAgICAgICAgICAgICJsZWZ0QXJtIjp7DQogICAgICAgICAgICAgICAgICAgICJ4IjoyLjAzNTUxMDc3ODQyNzEyNA0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgInRpY2siOjE0LA0KICAgICAgICAgICAgICAgICJlYXNpbmciOiAiRUFTRU9VVFFVQUQiLA0KICAgICAgICAgICAgICAgICJ0dXJuIjogMCwNCiAgICAgICAgICAgICAgICAibGVmdEFybSI6ew0KICAgICAgICAgICAgICAgICAgICAieCI6NS4zNjMxOTM5ODg4MDAwNDkNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJ0aWNrIjoxOCwNCiAgICAgICAgICAgICAgICAiZWFzaW5nIjogIkVBU0VJTk9VVFFVQUQiLA0KICAgICAgICAgICAgICAgICJ0dXJuIjogMCwNCiAgICAgICAgICAgICAgICAibGVmdEFybSI6ew0KICAgICAgICAgICAgICAgICAgICAieCI6NS44NTg4NTAwMDIyODg4MTgNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJ0aWNrIjoxMCwNCiAgICAgICAgICAgICAgICAiZWFzaW5nIjogIkVBU0VJTlFVQUQiLA0KICAgICAgICAgICAgICAgICJ0dXJuIjogMCwNCiAgICAgICAgICAgICAgICAicmlnaHRMZWciOnsNCiAgICAgICAgICAgICAgICAgICAgInlhdyI6LTAuMjUyMjk0MTUyOTc1MDgyNA0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgInRpY2siOjExLA0KICAgICAgICAgICAgICAgICJlYXNpbmciOiAiRUFTRUlOT1VUUVVBRCIsDQogICAgICAgICAgICAgICAgInR1cm4iOiAwLA0KICAgICAgICAgICAgICAgICJyaWdodExlZyI6ew0KICAgICAgICAgICAgICAgICAgICAieWF3IjotMC4wMDA1ODc2NDkwNjEzNDQ1NjQNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJ0aWNrIjoxMiwNCiAgICAgICAgICAgICAgICAiZWFzaW5nIjogIkVBU0VJTlFVQUQiLA0KICAgICAgICAgICAgICAgICJ0dXJuIjogMCwNCiAgICAgICAgICAgICAgICAicmlnaHRMZWciOnsNCiAgICAgICAgICAgICAgICAgICAgInlhdyI6MC41MjE5NzUwNDA0MzU3OTENCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJ0aWNrIjoxNCwNCiAgICAgICAgICAgICAgICAiZWFzaW5nIjogIkVBU0VPVVRRVUFEIiwNCiAgICAgICAgICAgICAgICAidHVybiI6IDAsDQogICAgICAgICAgICAgICAgInJpZ2h0TGVnIjp7DQogICAgICAgICAgICAgICAgICAgICJ5YXciOjEuMTU3Nzk0MTE3OTI3NTUxMw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgInRpY2siOjE4LA0KICAgICAgICAgICAgICAgICJlYXNpbmciOiAiRUFTRUlOT1VUUVVBRCIsDQogICAgICAgICAgICAgICAgInR1cm4iOiAwLA0KICAgICAgICAgICAgICAgICJyaWdodExlZyI6ew0KICAgICAgICAgICAgICAgICAgICAieWF3IjoxLjE0MDM3NzQwMjMwNTYwMw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgInRpY2siOjEwLA0KICAgICAgICAgICAgICAgICJlYXNpbmciOiAiRUFTRUlOUVVBRCIsDQogICAgICAgICAgICAgICAgInR1cm4iOiAwLA0KICAgICAgICAgICAgICAgICJyaWdodExlZyI6ew0KICAgICAgICAgICAgICAgICAgICAicm9sbCI6LTAuMDMyMjQ4ODY5NTM4MzA3MTkNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJ0aWNrIjoxMSwNCiAgICAgICAgICAgICAgICAiZWFzaW5nIjogIkVBU0VJTk9VVFFVQUQiLA0KICAgICAgICAgICAgICAgICJ0dXJuIjogMCwNCiAgICAgICAgICAgICAgICAicmlnaHRMZWciOnsNCiAgICAgICAgICAgICAgICAgICAgInJvbGwiOi0wLjAwODU2OTU1MzQ5NDQ1MzQzDQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAidGljayI6MTIsDQogICAgICAgICAgICAgICAgImVhc2luZyI6ICJFQVNFSU5RVUFEIiwNCiAgICAgICAgICAgICAgICAidHVybiI6IDAsDQogICAgICAgICAgICAgICAgInJpZ2h0TGVnIjp7DQogICAgICAgICAgICAgICAgICAgICJyb2xsIjotMC4xNjM3ODc0MDk2NjMyMDAzOA0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgInRpY2siOjE0LA0KICAgICAgICAgICAgICAgICJlYXNpbmciOiAiRUFTRU9VVFFVQUQiLA0KICAgICAgICAgICAgICAgICJ0dXJuIjogMCwNCiAgICAgICAgICAgICAgICAicmlnaHRMZWciOnsNCiAgICAgICAgICAgICAgICAgICAgInJvbGwiOi0wLjA4MzY5NDUxMDE2MTg3NjY4DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAidGljayI6MTgsDQogICAgICAgICAgICAgICAgImVhc2luZyI6ICJFQVNFSU5PVVRRVUFEIiwNCiAgICAgICAgICAgICAgICAidHVybiI6IDAsDQogICAgICAgICAgICAgICAgInJpZ2h0TGVnIjp7DQogICAgICAgICAgICAgICAgICAgICJyb2xsIjotMC4xMjA5Mjk3ODUwNzI4MDM1DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAidGljayI6MTAsDQogICAgICAgICAgICAgICAgImVhc2luZyI6ICJFQVNFSU5RVUFEIiwNCiAgICAgICAgICAgICAgICAidHVybiI6IDAsDQogICAgICAgICAgICAgICAgInJpZ2h0TGVnIjp7DQogICAgICAgICAgICAgICAgICAgICJwaXRjaCI6MC4yMTA5ODU4MDk1NjQ1OTA0NQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgInRpY2siOjExLA0KICAgICAgICAgICAgICAgICJlYXNpbmciOiAiRUFTRUlOT1VUUVVBRCIsDQogICAgICAgICAgICAgICAgInR1cm4iOiAwLA0KICAgICAgICAgICAgICAgICJyaWdodExlZyI6ew0KICAgICAgICAgICAgICAgICAgICAicGl0Y2giOi0wLjA0ODk0MzE0MzMzNzk2NTAxDQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAidGljayI6MTIsDQogICAgICAgICAgICAgICAgImVhc2luZyI6ICJFQVNFSU5RVUFEIiwNCiAgICAgICAgICAgICAgICAidHVybiI6IDAsDQogICAgICAgICAgICAgICAgInJpZ2h0TGVnIjp7DQogICAgICAgICAgICAgICAgICAgICJwaXRjaCI6LTAuNDAzMTI3NDAyMDY3MTg0NDUNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJ0aWNrIjoxNCwNCiAgICAgICAgICAgICAgICAiZWFzaW5nIjogIkVBU0VPVVRRVUFEIiwNCiAgICAgICAgICAgICAgICAidHVybiI6IDAsDQogICAgICAgICAgICAgICAgInJpZ2h0TGVnIjp7DQogICAgICAgICAgICAgICAgICAgICJwaXRjaCI6LTAuMzE4MzgyMTQzOTc0MzA0Mg0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgInRpY2siOjE4LA0KICAgICAgICAgICAgICAgICJlYXNpbmciOiAiRUFTRUlOT1VUUVVBRCIsDQogICAgICAgICAgICAgICAgInR1cm4iOiAwLA0KICAgICAgICAgICAgICAgICJyaWdodExlZyI6ew0KICAgICAgICAgICAgICAgICAgICAicGl0Y2giOi0wLjIxMjE0MDc4MzY2NzU2NDQNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJ0aWNrIjoxMCwNCiAgICAgICAgICAgICAgICAiZWFzaW5nIjogIkVBU0VJTlFVQUQiLA0KICAgICAgICAgICAgICAgICJ0dXJuIjogMCwNCiAgICAgICAgICAgICAgICAicmlnaHRMZWciOnsNCiAgICAgICAgICAgICAgICAgICAgIngiOi0xLjkNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJ0aWNrIjoxMSwNCiAgICAgICAgICAgICAgICAiZWFzaW5nIjogIkVBU0VJTk9VVFFVQUQiLA0KICAgICAgICAgICAgICAgICJ0dXJuIjogMCwNCiAgICAgICAgICAgICAgICAicmlnaHRMZWciOnsNCiAgICAgICAgICAgICAgICAgICAgIngiOi0xLjkzNDgzODY3NjQ1MjYzNjYNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJ0aWNrIjoxMiwNCiAgICAgICAgICAgICAgICAiZWFzaW5nIjogIkVBU0VJTlFVQUQiLA0KICAgICAgICAgICAgICAgICJ0dXJuIjogMCwNCiAgICAgICAgICAgICAgICAicmlnaHRMZWciOnsNCiAgICAgICAgICAgICAgICAgICAgIngiOi0yLjM1OTkzMDY1ODM0MDQ1NA0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgInRpY2siOjE0LA0KICAgICAgICAgICAgICAgICJlYXNpbmciOiAiRUFTRU9VVFFVQUQiLA0KICAgICAgICAgICAgICAgICJ0dXJuIjogMCwNCiAgICAgICAgICAgICAgICAicmlnaHRMZWciOnsNCiAgICAgICAgICAgICAgICAgICAgIngiOi0zLjIwNDMyNDE1MDA4NTQ0OQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgInRpY2siOjE4LA0KICAgICAgICAgICAgICAgICJlYXNpbmciOiAiRUFTRUlOT1VUUVVBRCIsDQogICAgICAgICAgICAgICAgInR1cm4iOiAwLA0KICAgICAgICAgICAgICAgICJyaWdodExlZyI6ew0KICAgICAgICAgICAgICAgICAgICAieCI6LTMuMjA0MzI0MTUwMDg1NDQ5DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAidGljayI6MTAsDQogICAgICAgICAgICAgICAgImVhc2luZyI6ICJFQVNFSU5RVUFEIiwNCiAgICAgICAgICAgICAgICAidHVybiI6IDAsDQogICAgICAgICAgICAgICAgInJpZ2h0TGVnIjp7DQogICAgICAgICAgICAgICAgICAgICJ5IjoxMi4wDQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAidGljayI6MTEsDQogICAgICAgICAgICAgICAgImVhc2luZyI6ICJFQVNFSU5PVVRRVUFEIiwNCiAgICAgICAgICAgICAgICAidHVybiI6IDAsDQogICAgICAgICAgICAgICAgInJpZ2h0TGVnIjp7DQogICAgICAgICAgICAgICAgICAgICJ5IjoxMS4wMzI2MzQ3OTQ3MTIwNjcNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJ0aWNrIjoxMiwNCiAgICAgICAgICAgICAgICAiZWFzaW5nIjogIkVBU0VJTlFVQUQiLA0KICAgICAgICAgICAgICAgICJ0dXJuIjogMCwNCiAgICAgICAgICAgICAgICAicmlnaHRMZWciOnsNCiAgICAgICAgICAgICAgICAgICAgInkiOjExLjE5MjUwMzA5NDY3MzE1Nw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgInRpY2siOjE0LA0KICAgICAgICAgICAgICAgICJlYXNpbmciOiAiRUFTRU9VVFFVQUQiLA0KICAgICAgICAgICAgICAgICJ0dXJuIjogMCwNCiAgICAgICAgICAgICAgICAicmlnaHRMZWciOnsNCiAgICAgICAgICAgICAgICAgICAgInkiOjExLjYwMjMzNDY3ODE3MzA2NQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgInRpY2siOjE4LA0KICAgICAgICAgICAgICAgICJlYXNpbmciOiAiRUFTRUlOT1VUUVVBRCIsDQogICAgICAgICAgICAgICAgInR1cm4iOiAwLA0KICAgICAgICAgICAgICAgICJyaWdodExlZyI6ew0KICAgICAgICAgICAgICAgICAgICAieSI6MTEuNjAyMzM0Njc4MTczMDY1DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAidGljayI6MTAsDQogICAgICAgICAgICAgICAgImVhc2luZyI6ICJFQVNFSU5RVUFEIiwNCiAgICAgICAgICAgICAgICAidHVybiI6IDAsDQogICAgICAgICAgICAgICAgInJpZ2h0TGVnIjp7DQogICAgICAgICAgICAgICAgICAgICJ6IjowLjENCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJ0aWNrIjoxMSwNCiAgICAgICAgICAgICAgICAiZWFzaW5nIjogIkVBU0VJTk9VVFFVQUQiLA0KICAgICAgICAgICAgICAgICJ0dXJuIjogMCwNCiAgICAgICAgICAgICAgICAicmlnaHRMZWciOnsNCiAgICAgICAgICAgICAgICAgICAgInoiOi0xLjAzOTQwOTQyMjg3NDQ1MDYNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJ0aWNrIjoxMiwNCiAgICAgICAgICAgICAgICAiZWFzaW5nIjogIkVBU0VJTlFVQUQiLA0KICAgICAgICAgICAgICAgICJ0dXJuIjogMCwNCiAgICAgICAgICAgICAgICAicmlnaHRMZWciOnsNCiAgICAgICAgICAgICAgICAgICAgInoiOi0wLjI2NTM5MTE2NTAxODA4MTcNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJ0aWNrIjoxNCwNCiAgICAgICAgICAgICAgICAiZWFzaW5nIjogIkVBU0VPVVRRVUFEIiwNCiAgICAgICAgICAgICAgICAidHVybiI6IDAsDQogICAgICAgICAgICAgICAgInJpZ2h0TGVnIjp7DQogICAgICAgICAgICAgICAgICAgICJ6IjotMC4zMjUxMTk2OTgwNDc2Mzc5Ng0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgInRpY2siOjE4LA0KICAgICAgICAgICAgICAgICJlYXNpbmciOiAiRUFTRUlOT1VUUVVBRCIsDQogICAgICAgICAgICAgICAgInR1cm4iOiAwLA0KICAgICAgICAgICAgICAgICJyaWdodExlZyI6ew0KICAgICAgICAgICAgICAgICAgICAieiI6LTAuMzI1MTE5Njk4MDQ3NjM3OTYNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJ0aWNrIjoxMCwNCiAgICAgICAgICAgICAgICAiZWFzaW5nIjogIkVBU0VJTlFVQUQiLA0KICAgICAgICAgICAgICAgICJ0dXJuIjogMCwNCiAgICAgICAgICAgICAgICAibGVmdExlZyI6ew0KICAgICAgICAgICAgICAgICAgICAieWF3IjotMC40NDY5MDk3MjU2NjYwNDYxNA0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgInRpY2siOjEyLA0KICAgICAgICAgICAgICAgICJlYXNpbmciOiAiRUFTRUlOUVVBRCIsDQogICAgICAgICAgICAgICAgInR1cm4iOiAwLA0KICAgICAgICAgICAgICAgICJsZWZ0TGVnIjp7DQogICAgICAgICAgICAgICAgICAgICJ5YXciOjAuMDI2ODM5MTI0MDM4ODE1NQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgInRpY2siOjE0LA0KICAgICAgICAgICAgICAgICJlYXNpbmciOiAiRUFTRU9VVFFVQUQiLA0KICAgICAgICAgICAgICAgICJ0dXJuIjogMCwNCiAgICAgICAgICAgICAgICAibGVmdExlZyI6ew0KICAgICAgICAgICAgICAgICAgICAieWF3IjotMC4zMTc0NTA0MzM5Njk0OTc3DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAidGljayI6MTgsDQogICAgICAgICAgICAgICAgImVhc2luZyI6ICJFQVNFSU5PVVRRVUFEIiwNCiAgICAgICAgICAgICAgICAidHVybiI6IDAsDQogICAgICAgICAgICAgICAgImxlZnRMZWciOnsNCiAgICAgICAgICAgICAgICAgICAgInlhdyI6LTAuMzM0MjQyNTUyNTE4ODQ0Ng0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgInRpY2siOjEwLA0KICAgICAgICAgICAgICAgICJlYXNpbmciOiAiRUFTRUlOUVVBRCIsDQogICAgICAgICAgICAgICAgInR1cm4iOiAwLA0KICAgICAgICAgICAgICAgICJsZWZ0TGVnIjp7DQogICAgICAgICAgICAgICAgICAgICJyb2xsIjotMC4xNjc1Mzc3NjM3MTQ3OTAzNA0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgInRpY2siOjEyLA0KICAgICAgICAgICAgICAgICJlYXNpbmciOiAiRUFTRUlOUVVBRCIsDQogICAgICAgICAgICAgICAgInR1cm4iOiAwLA0KICAgICAgICAgICAgICAgICJsZWZ0TGVnIjp7DQogICAgICAgICAgICAgICAgICAgICJyb2xsIjotMC4wMTAzMjE0NDM5MDA0NjU5NjUNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJ0aWNrIjoxNCwNCiAgICAgICAgICAgICAgICAiZWFzaW5nIjogIkVBU0VPVVRRVUFEIiwNCiAgICAgICAgICAgICAgICAidHVybiI6IDAsDQogICAgICAgICAgICAgICAgImxlZnRMZWciOnsNCiAgICAgICAgICAgICAgICAgICAgInJvbGwiOjAuMDIwMTI4MDQ1MjMxMTAzODk3DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAidGljayI6MTgsDQogICAgICAgICAgICAgICAgImVhc2luZyI6ICJFQVNFSU5PVVRRVUFEIiwNCiAgICAgICAgICAgICAgICAidHVybiI6IDAsDQogICAgICAgICAgICAgICAgImxlZnRMZWciOnsNCiAgICAgICAgICAgICAgICAgICAgInJvbGwiOi0wLjEwNDY5MzA4NDk1NTIxNTQ1DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAidGljayI6MTAsDQogICAgICAgICAgICAgICAgImVhc2luZyI6ICJFQVNFSU5RVUFEIiwNCiAgICAgICAgICAgICAgICAidHVybiI6IDAsDQogICAgICAgICAgICAgICAgImxlZnRMZWciOnsNCiAgICAgICAgICAgICAgICAgICAgInBpdGNoIjowLjU4Mzg0MTE0NTAzODYwNDcNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJ0aWNrIjoxMiwNCiAgICAgICAgICAgICAgICAiZWFzaW5nIjogIkVBU0VJTlFVQUQiLA0KICAgICAgICAgICAgICAgICJ0dXJuIjogMCwNCiAgICAgICAgICAgICAgICAibGVmdExlZyI6ew0KICAgICAgICAgICAgICAgICAgICAicGl0Y2giOi0wLjE1MDAyMjIyMzU5MTgwNDUNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJ0aWNrIjoxNCwNCiAgICAgICAgICAgICAgICAiZWFzaW5nIjogIkVBU0VPVVRRVUFEIiwNCiAgICAgICAgICAgICAgICAidHVybiI6IDAsDQogICAgICAgICAgICAgICAgImxlZnRMZWciOnsNCiAgICAgICAgICAgICAgICAgICAgInBpdGNoIjotMC4yMjcxMzMwNjU0NjIxMTI0Mw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgInRpY2siOjE4LA0KICAgICAgICAgICAgICAgICJlYXNpbmciOiAiRUFTRUlOT1VUUVVBRCIsDQogICAgICAgICAgICAgICAgInR1cm4iOiAwLA0KICAgICAgICAgICAgICAgICJsZWZ0TGVnIjp7DQogICAgICAgICAgICAgICAgICAgICJwaXRjaCI6LTAuMTg5NTUwNjgyOTAyMzM2MTINCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJ0aWNrIjoxMCwNCiAgICAgICAgICAgICAgICAiZWFzaW5nIjogIkVBU0VJTlFVQUQiLA0KICAgICAgICAgICAgICAgICJ0dXJuIjogMCwNCiAgICAgICAgICAgICAgICAibGVmdExlZyI6ew0KICAgICAgICAgICAgICAgICAgICAieSI6MTEuNzA5NzA1NjUwODA2NDI3DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAidGljayI6MTIsDQogICAgICAgICAgICAgICAgImVhc2luZyI6ICJFQVNFSU5RVUFEIiwNCiAgICAgICAgICAgICAgICAidHVybiI6IDAsDQogICAgICAgICAgICAgICAgImxlZnRMZWciOnsNCiAgICAgICAgICAgICAgICAgICAgInkiOjEyLjANCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJ0aWNrIjoxNCwNCiAgICAgICAgICAgICAgICAiZWFzaW5nIjogIkVBU0VPVVRRVUFEIiwNCiAgICAgICAgICAgICAgICAidHVybiI6IDAsDQogICAgICAgICAgICAgICAgImxlZnRMZWciOnsNCiAgICAgICAgICAgICAgICAgICAgInkiOjExLjkxNDY2NDQ3NzEwOTkwOQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgInRpY2siOjE4LA0KICAgICAgICAgICAgICAgICJlYXNpbmciOiAiRUFTRUlOT1VUUVVBRCIsDQogICAgICAgICAgICAgICAgInR1cm4iOiAwLA0KICAgICAgICAgICAgICAgICJsZWZ0TGVnIjp7DQogICAgICAgICAgICAgICAgICAgICJ5IjoxMS45MTQ2NjQ0NzcxMDk5MDkNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJ0aWNrIjoxMCwNCiAgICAgICAgICAgICAgICAiZWFzaW5nIjogIkVBU0VJTlFVQUQiLA0KICAgICAgICAgICAgICAgICJ0dXJuIjogMCwNCiAgICAgICAgICAgICAgICAibGVmdExlZyI6ew0KICAgICAgICAgICAgICAgICAgICAieiI6MC41MTIyMjM5MjMyMDYzMjk0DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAidGljayI6MTIsDQogICAgICAgICAgICAgICAgImVhc2luZyI6ICJFQVNFSU5RVUFEIiwNCiAgICAgICAgICAgICAgICAidHVybiI6IDAsDQogICAgICAgICAgICAgICAgImxlZnRMZWciOnsNCiAgICAgICAgICAgICAgICAgICAgInoiOi0wLjENCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJ0aWNrIjoxNCwNCiAgICAgICAgICAgICAgICAiZWFzaW5nIjogIkVBU0VPVVRRVUFEIiwNCiAgICAgICAgICAgICAgICAidHVybiI6IDAsDQogICAgICAgICAgICAgICAgImxlZnRMZWciOnsNCiAgICAgICAgICAgICAgICAgICAgInoiOi0xLjAxMTIxNDA1MzYzMDgyOQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgInRpY2siOjE4LA0KICAgICAgICAgICAgICAgICJlYXNpbmciOiAiRUFTRUlOT1VUUVVBRCIsDQogICAgICAgICAgICAgICAgInR1cm4iOiAwLA0KICAgICAgICAgICAgICAgICJsZWZ0TGVnIjp7DQogICAgICAgICAgICAgICAgICAgICJ6IjotMS4wMTEyMTQwNTM2MzA4MjkNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJ0aWNrIjoxMCwNCiAgICAgICAgICAgICAgICAiZWFzaW5nIjogIkVBU0VJTlFVQUQiLA0KICAgICAgICAgICAgICAgICJ0dXJuIjogMCwNCiAgICAgICAgICAgICAgICAibGVmdExlZyI6ew0KICAgICAgICAgICAgICAgICAgICAieCI6Mi4xMjg2NTIwMDA0MjcyNDYNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJ0aWNrIjoxMiwNCiAgICAgICAgICAgICAgICAiZWFzaW5nIjogIkVBU0VJTlFVQUQiLA0KICAgICAgICAgICAgICAgICJ0dXJuIjogMCwNCiAgICAgICAgICAgICAgICAibGVmdExlZyI6ew0KICAgICAgICAgICAgICAgICAgICAieCI6MS45DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAidGljayI6MTQsDQogICAgICAgICAgICAgICAgImVhc2luZyI6ICJFQVNFT1VUUVVBRCIsDQogICAgICAgICAgICAgICAgInR1cm4iOiAwLA0KICAgICAgICAgICAgICAgICJsZWZ0TGVnIjp7DQogICAgICAgICAgICAgICAgICAgICJ4IjoyLjk2Njk0ODE3NTQzMDI5NzgNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJ0aWNrIjoxOCwNCiAgICAgICAgICAgICAgICAiZWFzaW5nIjogIkVBU0VJTk9VVFFVQUQiLA0KICAgICAgICAgICAgICAgICJ0dXJuIjogMCwNCiAgICAgICAgICAgICAgICAibGVmdExlZyI6ew0KICAgICAgICAgICAgICAgICAgICAieCI6Mi45NjY5NDgxNzU0MzAyOTc4DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAidGljayI6MTAsDQogICAgICAgICAgICAgICAgImVhc2luZyI6ICJFQVNFSU5RVUFEIiwNCiAgICAgICAgICAgICAgICAidHVybiI6IDAsDQogICAgICAgICAgICAgICAgInJpZ2h0SXRlbSI6ew0KICAgICAgICAgICAgICAgICAgICAieCI6MC44ODg2MzQ2MjIwOTcwMTU0DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAidGljayI6MTIsDQogICAgICAgICAgICAgICAgImVhc2luZyI6ICJFQVNFSU5RVUFEIiwNCiAgICAgICAgICAgICAgICAidHVybiI6IDAsDQogICAgICAgICAgICAgICAgInJpZ2h0SXRlbSI6ew0KICAgICAgICAgICAgICAgICAgICAieCI6MC4xNDk3MDcxOTgxNDMwMDUzNw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgInRpY2siOjE0LA0KICAgICAgICAgICAgICAgICJlYXNpbmciOiAiRUFTRU9VVFFVQUQiLA0KICAgICAgICAgICAgICAgICJ0dXJuIjogMCwNCiAgICAgICAgICAgICAgICAicmlnaHRJdGVtIjp7DQogICAgICAgICAgICAgICAgICAgICJ4IjowLjEyMDg3ODQ4NzgyNTM5MzY4DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAidGljayI6MTAsDQogICAgICAgICAgICAgICAgImVhc2luZyI6ICJFQVNFSU5RVUFEIiwNCiAgICAgICAgICAgICAgICAidHVybiI6IDAsDQogICAgICAgICAgICAgICAgInJpZ2h0SXRlbSI6ew0KICAgICAgICAgICAgICAgICAgICAieiI6LTEuMTE2NTQ4MDYxMzcwODQ5Ng0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgInRpY2siOjEyLA0KICAgICAgICAgICAgICAgICJlYXNpbmciOiAiRUFTRUlOUVVBRCIsDQogICAgICAgICAgICAgICAgInR1cm4iOiAwLA0KICAgICAgICAgICAgICAgICJyaWdodEl0ZW0iOnsNCiAgICAgICAgICAgICAgICAgICAgInoiOi0xLjM3ODUwNjA2NDQxNDk3OA0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgInRpY2siOjE0LA0KICAgICAgICAgICAgICAgICJlYXNpbmciOiAiRUFTRU9VVFFVQUQiLA0KICAgICAgICAgICAgICAgICJ0dXJuIjogMCwNCiAgICAgICAgICAgICAgICAicmlnaHRJdGVtIjp7DQogICAgICAgICAgICAgICAgICAgICJ6IjotMC4zNzEwOTM1NzExODYwNjU3DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAidGljayI6MTAsDQogICAgICAgICAgICAgICAgImVhc2luZyI6ICJFQVNFSU5RVUFEIiwNCiAgICAgICAgICAgICAgICAidHVybiI6IDAsDQogICAgICAgICAgICAgICAgInJpZ2h0SXRlbSI6ew0KICAgICAgICAgICAgICAgICAgICAieSI6LTMuMDg2MDk1ODA5OTM2NTIzNA0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgInRpY2siOjEyLA0KICAgICAgICAgICAgICAgICJlYXNpbmciOiAiRUFTRUlOUVVBRCIsDQogICAgICAgICAgICAgICAgInR1cm4iOiAwLA0KICAgICAgICAgICAgICAgICJyaWdodEl0ZW0iOnsNCiAgICAgICAgICAgICAgICAgICAgInkiOi0xLjQ5NzAyNTQ4OTgwNzEyOQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgInRpY2siOjE0LA0KICAgICAgICAgICAgICAgICJlYXNpbmciOiAiRUFTRU9VVFFVQUQiLA0KICAgICAgICAgICAgICAgICJ0dXJuIjogMCwNCiAgICAgICAgICAgICAgICAicmlnaHRJdGVtIjp7DQogICAgICAgICAgICAgICAgICAgICJ5IjowLjA1MjI1ODM3MjMwNjgyMzczDQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAidGljayI6MTAsDQogICAgICAgICAgICAgICAgImVhc2luZyI6ICJFQVNFSU5RVUFEIiwNCiAgICAgICAgICAgICAgICAidHVybiI6IDAsDQogICAgICAgICAgICAgICAgInJpZ2h0SXRlbSI6ew0KICAgICAgICAgICAgICAgICAgICAicGl0Y2giOi0wLjY4NzMzNTYxMDM4OTcwOTUNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJ0aWNrIjoxMiwNCiAgICAgICAgICAgICAgICAiZWFzaW5nIjogIkVBU0VJTlFVQUQiLA0KICAgICAgICAgICAgICAgICJ0dXJuIjogMCwNCiAgICAgICAgICAgICAgICAicmlnaHRJdGVtIjp7DQogICAgICAgICAgICAgICAgICAgICJwaXRjaCI6LTAuOTY3MzE0NTQxMzM5ODc0Mw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgInRpY2siOjE0LA0KICAgICAgICAgICAgICAgICJlYXNpbmciOiAiRUFTRU9VVFFVQUQiLA0KICAgICAgICAgICAgICAgICJ0dXJuIjogMCwNCiAgICAgICAgICAgICAgICAicmlnaHRJdGVtIjp7DQogICAgICAgICAgICAgICAgICAgICJwaXRjaCI6LTEuODEyMzM0NjU2NzE1MzkzDQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAidGljayI6MTAsDQogICAgICAgICAgICAgICAgImVhc2luZyI6ICJFQVNFSU5RVUFEIiwNCiAgICAgICAgICAgICAgICAidHVybiI6IDAsDQogICAgICAgICAgICAgICAgInJpZ2h0SXRlbSI6ew0KICAgICAgICAgICAgICAgICAgICAieWF3IjowLjM5MDQxNzUxNjIzMTUzNjg3DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAidGljayI6MTIsDQogICAgICAgICAgICAgICAgImVhc2luZyI6ICJFQVNFSU5RVUFEIiwNCiAgICAgICAgICAgICAgICAidHVybiI6IDAsDQogICAgICAgICAgICAgICAgInJpZ2h0SXRlbSI6ew0KICAgICAgICAgICAgICAgICAgICAieWF3IjowLjIwMDcxMTc3MTg0NTgxNzU3DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAidGljayI6MTQsDQogICAgICAgICAgICAgICAgImVhc2luZyI6ICJFQVNFT1VUUVVBRCIsDQogICAgICAgICAgICAgICAgInR1cm4iOiAwLA0KICAgICAgICAgICAgICAgICJyaWdodEl0ZW0iOnsNCiAgICAgICAgICAgICAgICAgICAgInlhdyI6LTAuMDAxODQ0ODUzMTYyNzY1NTAzDQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAidGljayI6MTAsDQogICAgICAgICAgICAgICAgImVhc2luZyI6ICJFQVNFSU5RVUFEIiwNCiAgICAgICAgICAgICAgICAidHVybiI6IDAsDQogICAgICAgICAgICAgICAgInJpZ2h0SXRlbSI6ew0KICAgICAgICAgICAgICAgICAgICAicm9sbCI6LTIuNzA5OTYzNTYwMTA0MzcNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJ0aWNrIjoxMiwNCiAgICAgICAgICAgICAgICAiZWFzaW5nIjogIkVBU0VJTlFVQUQiLA0KICAgICAgICAgICAgICAgICJ0dXJuIjogMCwNCiAgICAgICAgICAgICAgICAicmlnaHRJdGVtIjp7DQogICAgICAgICAgICAgICAgICAgICJyb2xsIjotMy4wOTY5MjUwMjAyMTc4OTU1DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAidGljayI6MTQsDQogICAgICAgICAgICAgICAgImVhc2luZyI6ICJFQVNFT1VUUVVBRCIsDQogICAgICAgICAgICAgICAgInR1cm4iOiAwLA0KICAgICAgICAgICAgICAgICJyaWdodEl0ZW0iOnsNCiAgICAgICAgICAgICAgICAgICAgInJvbGwiOi0zLjIyMDIyODY3MjAyNzU4OA0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgXQ0KICAgIH0NCn0NCg==";
-}
diff --git a/minecraft/fabric/src/testmod/java/dev/kosmx/animatorTestmod/mixin/AbstractClientPlayerMixin.java b/minecraft/fabric/src/testmod/java/dev/kosmx/animatorTestmod/mixin/AbstractClientPlayerMixin.java
new file mode 100644
index 0000000..4ecc54a
--- /dev/null
+++ b/minecraft/fabric/src/testmod/java/dev/kosmx/animatorTestmod/mixin/AbstractClientPlayerMixin.java
@@ -0,0 +1,2 @@
+package dev.kosmx.animatorTestmod.mixin;public class AbstractClientPlayerMixin {
+}
diff --git a/minecraft/forge/build.gradle b/minecraft/forge/build.gradle
index a084e49..9f20322 100644
--- a/minecraft/forge/build.gradle
+++ b/minecraft/forge/build.gradle
@@ -1,7 +1,5 @@
-plugins {
- id "com.github.johnrengelman.shadow" version "7.1.2"
-}
+apply plugin: 'com.github.johnrengelman.shadow'
apply plugin: 'com.modrinth.minotaur'
apply plugin: 'com.matthewprenger.cursegradle'
@@ -61,17 +59,17 @@ shadowJar {
exclude "architectury.common.json"
configurations = [project.configurations.shadowCommon]
- classifier "dev-shadow"
+ archiveClassifier.set("dev-shadow")
}
remapJar {
inputFile.set shadowJar.archiveFile
dependsOn shadowJar
- classifier null
+ archiveClassifier.set(null)
}
jar {
- classifier "dev"
+ archiveClassifier.set("dev")
}
sourcesJar {