From c9d7fc4c23b675971f7d7aa58e8120f2b2ab065a Mon Sep 17 00:00:00 2001 From: ThatGamerBlue Date: Thu, 16 May 2019 14:36:19 +0100 Subject: [PATCH] Asm mixins that "work" --- extended-mixin-processor/.gitignore | 1 + extended-mixin-processor/pom.xml | 231 + .../mixinprocessor/MethodGarbageValue.java | 65 + .../mixinprocessor/MixinProcessorMojo.java | 281 + .../mixinprocessor/annotations/Append.java | 34 + .../mixinprocessor/annotations/Inject.java | 34 + .../mixinprocessor/annotations/Overwrite.java | 34 + .../mixinprocessor/annotations/Prepend.java | 34 + .../mixinprocessor/annotations/Provided.java | 34 + .../annotations/Reobfuscate.java | 34 + .../mixinprocessor/enums/InjectionType.java | 35 + .../generators/AnnotationProcessor.java | 62 + .../generators/PatchGenerator.java | 66 + .../generators/StaticGenerator.java | 110 + .../generators/StaticStageTwoGenerator.java | 261 + .../parsers/FieldAnnotationParser.java | 110 + .../parsers/GamepackDownloader.java | 91 + .../mixinprocessor/parsers/HooksParser.java | 144 + .../parsers/MethodAnnotationParser.java | 127 + .../parsers/MethodReflector.java | 329 + .../AnnotationRemoverTransformer.java | 103 + .../transformers/AsmBaseTransformer.java | 44 + .../AsmMethodGarbageTransformer.java | 109 + .../AsmMethodSignatureTransformer.java | 107 + .../transformers/AsmNameTransformer.java | 175 + .../AsmStaticUsageTransformer.java | 119 + .../transformers/DoNothingTransformer.java | 56 + .../GetFieldDecoderTransformer.java | 196 + .../ProvidedRemoverTransformer.java | 101 + .../mixinprocessor/util/JavassistUtils.java | 44 + .../mixinprocessor/util/RefUtils.java | 347 + .../mixinprocessor/util/WebUtils.java | 68 + .../resources/mixin-processor-license.txt | 22 + extended-mixins/gamepack.deob.jar.op.json | 864 + extended-mixins/hooks.json | 32406 ++++++++++++++++ extended-mixins/pom.xml | 111 + .../mixinprocessor/annotations/Append.java | 34 + .../mixinprocessor/annotations/Inject.java | 34 + .../mixinprocessor/annotations/Overwrite.java | 34 + .../mixinprocessor/annotations/Prepend.java | 34 + .../mixinprocessor/annotations/Provided.java | 34 + .../annotations/Reobfuscate.java | 34 + .../main/java/us/runelitepl/mixins/Actor.java | 63 + .../java/us/runelitepl/mixins/Client.java | 543 + .../us/runelitepl/mixins/MouseRecorder.java | 76 + .../java/us/runelitepl/mixins/Player.java | 81 + .../java/us/runelitepl/mixins/Projectile.java | 81 + .../main/java/us/runelitepl/mixins/Scene.java | 104 + .../java/us/runelitepl/mixins/_Statics_.java | 64 + .../resources/extended-mixins-license.txt | 22 + pom.xml | 2 + .../main/java/net/runelite/api/Client.java | 6 +- .../java/net/runelite/api/MouseRecorder.java | 40 + runelite-client/pom.xml | 11 +- .../plugins/devtools/DevToolsPanel.java | 13 + .../plugins/devtools/DevToolsPlugin.java | 3 + .../net/runelite/client/rs/ClientLoader.java | 373 +- .../client/rs/bytecode/ByteCodePatcher.java | 298 - .../client/rs/bytecode/ByteCodeUtils.java | 141 - .../runelite/client/rs/bytecode/Hooks.java | 14 - .../bytecode/transformers/ActorTransform.java | 106 - .../transformers/ClientTransform.java | 642 - .../bytecode/transformers/ErrorTransform.java | 57 - .../transformers/PlayerTransform.java | 89 - .../transformers/ProjectileTransform.java | 112 - .../rs/bytecode/transformers/Transform.java | 7 - .../client/rs/mixins/MixinRunner.java | 134 + .../transformers/AppendTransformer.java | 120 + .../transformers/DoNothingTransformer.java | 38 + .../transformers/InjectTransformer.java | 125 + .../transformers/InterfaceTransformer.java | 78 + .../mixins/transformers/MethodReflector.java | 295 + .../transformers/OverwriteSanityCheck.java | 87 + .../transformers/OverwriteTransformer.java | 102 + .../transformers/PrependTransformer.java | 125 + .../transformers/ProtectTransformer.java | 51 + .../rs/mixins/transformers/SanityChecker.java | 38 + .../net/runelite/client/util/RefUtils.java | 84 + .../java/net/runelite/rs/api/RSClient.java | 6 + .../net/runelite/rs/api/RSMouseRecorder.java | 46 + 80 files changed, 39711 insertions(+), 1759 deletions(-) create mode 100644 extended-mixin-processor/.gitignore create mode 100644 extended-mixin-processor/pom.xml create mode 100644 extended-mixin-processor/src/main/java/us/runelitepl/mixinprocessor/MethodGarbageValue.java create mode 100644 extended-mixin-processor/src/main/java/us/runelitepl/mixinprocessor/MixinProcessorMojo.java create mode 100644 extended-mixin-processor/src/main/java/us/runelitepl/mixinprocessor/annotations/Append.java create mode 100644 extended-mixin-processor/src/main/java/us/runelitepl/mixinprocessor/annotations/Inject.java create mode 100644 extended-mixin-processor/src/main/java/us/runelitepl/mixinprocessor/annotations/Overwrite.java create mode 100644 extended-mixin-processor/src/main/java/us/runelitepl/mixinprocessor/annotations/Prepend.java create mode 100644 extended-mixin-processor/src/main/java/us/runelitepl/mixinprocessor/annotations/Provided.java create mode 100644 extended-mixin-processor/src/main/java/us/runelitepl/mixinprocessor/annotations/Reobfuscate.java create mode 100644 extended-mixin-processor/src/main/java/us/runelitepl/mixinprocessor/enums/InjectionType.java create mode 100644 extended-mixin-processor/src/main/java/us/runelitepl/mixinprocessor/generators/AnnotationProcessor.java create mode 100644 extended-mixin-processor/src/main/java/us/runelitepl/mixinprocessor/generators/PatchGenerator.java create mode 100644 extended-mixin-processor/src/main/java/us/runelitepl/mixinprocessor/generators/StaticGenerator.java create mode 100644 extended-mixin-processor/src/main/java/us/runelitepl/mixinprocessor/generators/StaticStageTwoGenerator.java create mode 100644 extended-mixin-processor/src/main/java/us/runelitepl/mixinprocessor/parsers/FieldAnnotationParser.java create mode 100644 extended-mixin-processor/src/main/java/us/runelitepl/mixinprocessor/parsers/GamepackDownloader.java create mode 100644 extended-mixin-processor/src/main/java/us/runelitepl/mixinprocessor/parsers/HooksParser.java create mode 100644 extended-mixin-processor/src/main/java/us/runelitepl/mixinprocessor/parsers/MethodAnnotationParser.java create mode 100644 extended-mixin-processor/src/main/java/us/runelitepl/mixinprocessor/parsers/MethodReflector.java create mode 100644 extended-mixin-processor/src/main/java/us/runelitepl/mixinprocessor/transformers/AnnotationRemoverTransformer.java create mode 100644 extended-mixin-processor/src/main/java/us/runelitepl/mixinprocessor/transformers/AsmBaseTransformer.java create mode 100644 extended-mixin-processor/src/main/java/us/runelitepl/mixinprocessor/transformers/AsmMethodGarbageTransformer.java create mode 100644 extended-mixin-processor/src/main/java/us/runelitepl/mixinprocessor/transformers/AsmMethodSignatureTransformer.java create mode 100644 extended-mixin-processor/src/main/java/us/runelitepl/mixinprocessor/transformers/AsmNameTransformer.java create mode 100644 extended-mixin-processor/src/main/java/us/runelitepl/mixinprocessor/transformers/AsmStaticUsageTransformer.java create mode 100644 extended-mixin-processor/src/main/java/us/runelitepl/mixinprocessor/transformers/DoNothingTransformer.java create mode 100644 extended-mixin-processor/src/main/java/us/runelitepl/mixinprocessor/transformers/GetFieldDecoderTransformer.java create mode 100644 extended-mixin-processor/src/main/java/us/runelitepl/mixinprocessor/transformers/ProvidedRemoverTransformer.java create mode 100644 extended-mixin-processor/src/main/java/us/runelitepl/mixinprocessor/util/JavassistUtils.java create mode 100644 extended-mixin-processor/src/main/java/us/runelitepl/mixinprocessor/util/RefUtils.java create mode 100644 extended-mixin-processor/src/main/java/us/runelitepl/mixinprocessor/util/WebUtils.java create mode 100644 extended-mixin-processor/src/main/resources/mixin-processor-license.txt create mode 100644 extended-mixins/gamepack.deob.jar.op.json create mode 100644 extended-mixins/hooks.json create mode 100644 extended-mixins/pom.xml create mode 100644 extended-mixins/src/main/java/us/runelitepl/mixinprocessor/annotations/Append.java create mode 100644 extended-mixins/src/main/java/us/runelitepl/mixinprocessor/annotations/Inject.java create mode 100644 extended-mixins/src/main/java/us/runelitepl/mixinprocessor/annotations/Overwrite.java create mode 100644 extended-mixins/src/main/java/us/runelitepl/mixinprocessor/annotations/Prepend.java create mode 100644 extended-mixins/src/main/java/us/runelitepl/mixinprocessor/annotations/Provided.java create mode 100644 extended-mixins/src/main/java/us/runelitepl/mixinprocessor/annotations/Reobfuscate.java create mode 100644 extended-mixins/src/main/java/us/runelitepl/mixins/Actor.java create mode 100644 extended-mixins/src/main/java/us/runelitepl/mixins/Client.java create mode 100644 extended-mixins/src/main/java/us/runelitepl/mixins/MouseRecorder.java create mode 100644 extended-mixins/src/main/java/us/runelitepl/mixins/Player.java create mode 100644 extended-mixins/src/main/java/us/runelitepl/mixins/Projectile.java create mode 100644 extended-mixins/src/main/java/us/runelitepl/mixins/Scene.java create mode 100644 extended-mixins/src/main/java/us/runelitepl/mixins/_Statics_.java create mode 100644 extended-mixins/src/main/resources/extended-mixins-license.txt create mode 100644 runelite-api/src/main/java/net/runelite/api/MouseRecorder.java delete mode 100644 runelite-client/src/main/java/net/runelite/client/rs/bytecode/ByteCodePatcher.java delete mode 100644 runelite-client/src/main/java/net/runelite/client/rs/bytecode/ByteCodeUtils.java delete mode 100644 runelite-client/src/main/java/net/runelite/client/rs/bytecode/Hooks.java delete mode 100644 runelite-client/src/main/java/net/runelite/client/rs/bytecode/transformers/ActorTransform.java delete mode 100644 runelite-client/src/main/java/net/runelite/client/rs/bytecode/transformers/ClientTransform.java delete mode 100644 runelite-client/src/main/java/net/runelite/client/rs/bytecode/transformers/ErrorTransform.java delete mode 100644 runelite-client/src/main/java/net/runelite/client/rs/bytecode/transformers/PlayerTransform.java delete mode 100644 runelite-client/src/main/java/net/runelite/client/rs/bytecode/transformers/ProjectileTransform.java delete mode 100644 runelite-client/src/main/java/net/runelite/client/rs/bytecode/transformers/Transform.java create mode 100644 runelite-client/src/main/java/net/runelite/client/rs/mixins/MixinRunner.java create mode 100644 runelite-client/src/main/java/net/runelite/client/rs/mixins/transformers/AppendTransformer.java create mode 100644 runelite-client/src/main/java/net/runelite/client/rs/mixins/transformers/DoNothingTransformer.java create mode 100644 runelite-client/src/main/java/net/runelite/client/rs/mixins/transformers/InjectTransformer.java create mode 100644 runelite-client/src/main/java/net/runelite/client/rs/mixins/transformers/InterfaceTransformer.java create mode 100644 runelite-client/src/main/java/net/runelite/client/rs/mixins/transformers/MethodReflector.java create mode 100644 runelite-client/src/main/java/net/runelite/client/rs/mixins/transformers/OverwriteSanityCheck.java create mode 100644 runelite-client/src/main/java/net/runelite/client/rs/mixins/transformers/OverwriteTransformer.java create mode 100644 runelite-client/src/main/java/net/runelite/client/rs/mixins/transformers/PrependTransformer.java create mode 100644 runelite-client/src/main/java/net/runelite/client/rs/mixins/transformers/ProtectTransformer.java create mode 100644 runelite-client/src/main/java/net/runelite/client/rs/mixins/transformers/SanityChecker.java create mode 100644 runelite-client/src/main/java/net/runelite/client/util/RefUtils.java create mode 100644 runescape-api/src/main/java/net/runelite/rs/api/RSMouseRecorder.java diff --git a/extended-mixin-processor/.gitignore b/extended-mixin-processor/.gitignore new file mode 100644 index 0000000000..2e73990cc1 --- /dev/null +++ b/extended-mixin-processor/.gitignore @@ -0,0 +1 @@ +dependency-reduced-pom.xml \ No newline at end of file diff --git a/extended-mixin-processor/pom.xml b/extended-mixin-processor/pom.xml new file mode 100644 index 0000000000..553f8695bf --- /dev/null +++ b/extended-mixin-processor/pom.xml @@ -0,0 +1,231 @@ + + + + + + runelite-parent + net.runelite + 1.5.24-SNAPSHOT + + 4.0.0 + + extended-mixin-processor + maven-plugin + + extended-mixin-processor Maven Plugin + + https://www.runelitepl.us + + + ${maven.version} + + + + UTF-8 + 1.8 + 1.8 + 3.3.9 + + + + + org.apache.maven + maven-plugin-api + ${maven.version} + provided + + + org.apache.maven + maven-core + ${maven.version} + provided + + + org.apache.maven + maven-artifact + ${maven.version} + provided + + + org.apache.maven + maven-compat + ${maven.version} + test + + + org.apache.maven.plugin-tools + maven-plugin-annotations + 3.6.0 + provided + + + junit + junit + 4.12 + test + + + org.apache.maven.plugin-testing + maven-plugin-testing-harness + 3.3.0 + test + + + net.runelite + runelite-api + ${project.version} + + + net.runelite.rs + runescape-api + ${project.version} + + + net.runelite + client-patch + ${project.version} + + + com.google.guava + guava + 27.1-jre + + + + io.sigpipe + jbsdiff + 1.0 + + + + org.javassist + javassist + 3.24.1-GA + + + com.googlecode.json-simple + json-simple + 1.1.1 + + + net.lingala.zip4j + zip4j + 1.3.2 + + + + org.ow2.asm + asm-all + 6.0_BETA + + + + + + + + maven-clean-plugin + 3.1.0 + + + + maven-resources-plugin + 3.0.2 + + + maven-compiler-plugin + 3.8.0 + + + maven-plugin-plugin + 3.6.0 + + + maven-surefire-plugin + 2.22.1 + + + maven-jar-plugin + 3.0.2 + + + maven-install-plugin + 2.5.2 + + + maven-deploy-plugin + 2.8.2 + + + maven-invoker-plugin + 3.1.0 + + + + + + org.apache.maven.plugins + maven-plugin-plugin + 3.6.0 + + + true + + + + mojo-descriptor + + descriptor + + + + help-goal + + helpmojo + + + + + + org.apache.maven.plugins + maven-shade-plugin + 3.2.1 + + + package + + shade + + + false + + + + + + + diff --git a/extended-mixin-processor/src/main/java/us/runelitepl/mixinprocessor/MethodGarbageValue.java b/extended-mixin-processor/src/main/java/us/runelitepl/mixinprocessor/MethodGarbageValue.java new file mode 100644 index 0000000000..6cfb99110e --- /dev/null +++ b/extended-mixin-processor/src/main/java/us/runelitepl/mixinprocessor/MethodGarbageValue.java @@ -0,0 +1,65 @@ +/* + * Copyright (c) 2019, ThatGamerBlue + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +package us.runelitepl.mixinprocessor; + +public class MethodGarbageValue +{ + + private final String type; + private final int value; + + public MethodGarbageValue(int value) + { + if(value <= Byte.MAX_VALUE && value >= Byte.MIN_VALUE) + { + type = "B"; + } + else if(value <= Short.MAX_VALUE && value >= Short.MIN_VALUE) + { + type = "S"; + } + else + { + type = "I"; + } + this.value = value; + } + + public int getValue() + { + return value; + } + + public String getType() + { + return type; + } + + public String toString() + { + return "MethodGarbageValue[type="+getType()+",value="+getValue()+"]"; + } +} diff --git a/extended-mixin-processor/src/main/java/us/runelitepl/mixinprocessor/MixinProcessorMojo.java b/extended-mixin-processor/src/main/java/us/runelitepl/mixinprocessor/MixinProcessorMojo.java new file mode 100644 index 0000000000..99dd5fc32e --- /dev/null +++ b/extended-mixin-processor/src/main/java/us/runelitepl/mixinprocessor/MixinProcessorMojo.java @@ -0,0 +1,281 @@ +/* + * Copyright (c) 2019, ThatGamerBlue + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +package us.runelitepl.mixinprocessor; + + +import com.google.common.collect.ImmutableSet; +import com.google.common.io.ByteStreams; +import com.google.common.reflect.ClassPath; +import io.sigpipe.jbsdiff.Patch; +import javassist.ClassPool; +import javassist.CtClass; +import javassist.LoaderClassPath; +import org.objectweb.asm.AnnotationVisitor; +import org.objectweb.asm.ClassWriter; +import org.objectweb.asm.FieldVisitor; +import org.objectweb.asm.MethodVisitor; +import org.objectweb.asm.Opcodes; +import us.runelitepl.mixinprocessor.generators.AnnotationProcessor; +import us.runelitepl.mixinprocessor.generators.PatchGenerator; +import us.runelitepl.mixinprocessor.generators.StaticGenerator; +import us.runelitepl.mixinprocessor.generators.StaticStageTwoGenerator; +import us.runelitepl.mixinprocessor.parsers.GamepackDownloader; +import us.runelitepl.mixinprocessor.parsers.HooksParser; +import us.runelitepl.mixinprocessor.transformers.AsmMethodGarbageTransformer; +import us.runelitepl.mixinprocessor.transformers.AsmMethodSignatureTransformer; +import us.runelitepl.mixinprocessor.util.JavassistUtils; +import us.runelitepl.mixinprocessor.util.RefUtils; +import org.apache.maven.plugin.AbstractMojo; +import org.apache.maven.plugin.MojoExecutionException; + +import org.apache.maven.plugin.MojoFailureException; +import org.apache.maven.plugins.annotations.LifecyclePhase; +import org.apache.maven.plugins.annotations.Mojo; +import org.apache.maven.plugins.annotations.Parameter; +import org.apache.maven.plugins.annotations.ResolutionScope; +import org.apache.maven.project.MavenProject; + +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.File; +import java.io.IOException; +import java.io.InputStream; +import java.net.URL; +import java.net.URLClassLoader; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.Comparator; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * Goal which touches a timestamp file. + */ +@Mojo(name = "process-mixins", defaultPhase = LifecyclePhase.PROCESS_CLASSES, requiresDependencyResolution = + ResolutionScope.COMPILE) +public class MixinProcessorMojo + extends AbstractMojo implements Opcodes +{ + private static final String PATCHES_PACKAGE = "us.runelitepl.mixins"; + /** + * Location of the file. + */ + @Parameter(defaultValue = "${project.build.directory}", property = "outputDir", required = true) + private File outputDirectory; + + @Parameter(defaultValue = "${project}", required = true, readonly = true) + private MavenProject project; + + @Parameter(property = "process-mixins.hooks", defaultValue = "hooks.json", required = true) + private String hooks; + + @Parameter(property = "process-mixins.ops", defaultValue = "gamepack.deob.jar.op.json", required = true) + private String ops; + + private static MixinProcessorMojo INST; + + public static ClassPool classPool; + + public static HashMap fieldDecoders = new HashMap<>(); + + public static HashMap classNames = new HashMap<>(); + public static HashMap methodNames = new HashMap<>(); + public static HashMap fieldNames = new HashMap<>(); + + public static HashMap isFieldTagged = new HashMap<>(); + public static HashMap isMethodTagged = new HashMap<>(); + + public static HashMap methodGarbageValues = new HashMap<>(); + + public static HashMap gamepack = new HashMap<>(); + + public static final int BUFFER_SIZE = 1024 * 1024 * 4; + + public void execute() + throws MojoExecutionException + { + INST = this; + try + { + List runtimeClasspathElements = project.getRuntimeClasspathElements(); + URL[] runtimeUrls = new URL[runtimeClasspathElements.size()]; + for (int i = 0; i < runtimeClasspathElements.size(); i++) + { + String element = (String) runtimeClasspathElements.get(i); + runtimeUrls[i] = new File(element).toURI().toURL(); + } + URLClassLoader classLoader = new URLClassLoader(runtimeUrls, + Thread.currentThread().getContextClassLoader()); + + File outputFolder = new File(project.getBuild().getOutputDirectory()); + File projectDir = new File(System.getProperty("user.dir")); + + File hooksFile = new File(projectDir, hooks); + File opsFile = new File(projectDir, ops); + + outputFolder.mkdirs(); + + GamepackDownloader.downloadGamepack(gamepack); + + ByteArrayOutputStream patchOutputStream = new ByteArrayOutputStream(BUFFER_SIZE); // 4mb + + HooksParser.run(hooksFile, opsFile); + + classPool = new ClassPool(); + + classPool.appendClassPath((new LoaderClassPath(classLoader))); + + for (Map.Entry entry : gamepack.entrySet()) + { + byte[] b1_; + try (InputStream is = getClass().getResourceAsStream("/patch/" + entry.getKey() + ".class.bs")) + { + if (is == null) + { + stderr("IS null for %s", entry.getKey()); + continue; + } + + b1_ = ByteStreams.toByteArray(is); + } + patchOutputStream.reset(); + Patch.patch(entry.getValue(), b1_, patchOutputStream); + entry.setValue(patchOutputStream.toByteArray()); + + classPool.makeClass(new ByteArrayInputStream(entry.getValue())); + } + + + HashMap finalClasses = new HashMap<>(); + + ImmutableSet classes = + ClassPath.from(classLoader).getTopLevelClassesRecursive(PATCHES_PACKAGE); + + for (ClassPath.ClassInfo clazz : classes) + { + + stderr(""); + stderr("Annotations: %s", clazz.getSimpleName()); + + CtClass ctClass = classPool.get(clazz.getName()); + + String className = ctClass.getSimpleName(); + className = RefUtils.getObbedClassName(className); + + byte[] finalCode = JavassistUtils.getClassBytecode(ctClass); + + finalCode = new AnnotationProcessor(className, finalCode).run(); + + finalClasses.put(className, finalCode); + } + + for (Map.Entry entry : finalClasses.entrySet()) + { + String className = entry.getKey(); + byte[] finalCode = entry.getValue(); + + stderr(""); + stderr("Pass 1: %s", className); + finalCode = new AsmMethodSignatureTransformer(className, finalCode).transform(); + finalCode = new AsmMethodGarbageTransformer(className, finalCode, finalClasses).transform(); + finalClasses.put(className, finalCode); + } + + stderr(""); + stderr("Pass Statics"); + + new StaticGenerator().run(finalClasses.get(RefUtils.STATICS_STRING)); + + new StaticStageTwoGenerator(finalClasses).run(); + + for (Map.Entry entry : finalClasses.entrySet()) + { + String className = entry.getKey(); + if (className == null) + { + stderr("Class name null? %s", entry.getValue().length); + continue; + } + if (className.endsWith(RefUtils.STATICS_STRING)) + { + continue; + } + stderr(""); + stderr("Pass 2: %s", className); + + byte[] finalCode = entry.getValue(); + finalCode = new PatchGenerator(className, finalCode).run(); + + + entry.setValue(finalCode); + } + + deleteDir(new File(outputFolder, "us/runelitepl/mixins")); + + outputFolder = new File(outputFolder, "extended-mixins"); + outputFolder.mkdirs(); + + for (Map.Entry entry : finalClasses.entrySet()) + { + if (entry.getKey().contains(RefUtils.STATICS_STRING)) + { + continue; + } + Files.write(new File(outputFolder, entry.getKey() + ".class").toPath(), + entry.getValue()); + } + } + catch (Exception ex) + { + ex.printStackTrace(); + throw new MojoExecutionException(ex.getMessage()); + } + + } + + public void stderr(String s, Object... format) + { + getLog().info(String.format(s, format)); + } + + public static void log(String s, Object... format) + { + INST.stderr(s, format); + } + + static void deleteDir(File file) throws IOException + { + if (!file.exists()) + { + return; + } + Files.walk(file.toPath()) + .sorted(Comparator.reverseOrder()) + .map(Path::toFile) + .forEach(File::delete); + } +} diff --git a/extended-mixin-processor/src/main/java/us/runelitepl/mixinprocessor/annotations/Append.java b/extended-mixin-processor/src/main/java/us/runelitepl/mixinprocessor/annotations/Append.java new file mode 100644 index 0000000000..b61a0bce5f --- /dev/null +++ b/extended-mixin-processor/src/main/java/us/runelitepl/mixinprocessor/annotations/Append.java @@ -0,0 +1,34 @@ +/* + * Copyright (c) 2019, ThatGamerBlue + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +package us.runelitepl.mixinprocessor.annotations; + +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; + +@Retention(RetentionPolicy.RUNTIME) +public @interface Append +{ +} diff --git a/extended-mixin-processor/src/main/java/us/runelitepl/mixinprocessor/annotations/Inject.java b/extended-mixin-processor/src/main/java/us/runelitepl/mixinprocessor/annotations/Inject.java new file mode 100644 index 0000000000..3a1f411f7d --- /dev/null +++ b/extended-mixin-processor/src/main/java/us/runelitepl/mixinprocessor/annotations/Inject.java @@ -0,0 +1,34 @@ +/* + * Copyright (c) 2019, ThatGamerBlue + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +package us.runelitepl.mixinprocessor.annotations; + +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; + +@Retention(RetentionPolicy.RUNTIME) +public @interface Inject +{ +} diff --git a/extended-mixin-processor/src/main/java/us/runelitepl/mixinprocessor/annotations/Overwrite.java b/extended-mixin-processor/src/main/java/us/runelitepl/mixinprocessor/annotations/Overwrite.java new file mode 100644 index 0000000000..ad9a6ba06b --- /dev/null +++ b/extended-mixin-processor/src/main/java/us/runelitepl/mixinprocessor/annotations/Overwrite.java @@ -0,0 +1,34 @@ +/* + * Copyright (c) 2019, ThatGamerBlue + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +package us.runelitepl.mixinprocessor.annotations; + +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; + +@Retention(RetentionPolicy.RUNTIME) +public @interface Overwrite +{ +} diff --git a/extended-mixin-processor/src/main/java/us/runelitepl/mixinprocessor/annotations/Prepend.java b/extended-mixin-processor/src/main/java/us/runelitepl/mixinprocessor/annotations/Prepend.java new file mode 100644 index 0000000000..dcc614d9e6 --- /dev/null +++ b/extended-mixin-processor/src/main/java/us/runelitepl/mixinprocessor/annotations/Prepend.java @@ -0,0 +1,34 @@ +/* + * Copyright (c) 2019, ThatGamerBlue + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +package us.runelitepl.mixinprocessor.annotations; + +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; + +@Retention(RetentionPolicy.RUNTIME) +public @interface Prepend +{ +} diff --git a/extended-mixin-processor/src/main/java/us/runelitepl/mixinprocessor/annotations/Provided.java b/extended-mixin-processor/src/main/java/us/runelitepl/mixinprocessor/annotations/Provided.java new file mode 100644 index 0000000000..eedab52350 --- /dev/null +++ b/extended-mixin-processor/src/main/java/us/runelitepl/mixinprocessor/annotations/Provided.java @@ -0,0 +1,34 @@ +/* + * Copyright (c) 2019, ThatGamerBlue + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +package us.runelitepl.mixinprocessor.annotations; + +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; + +@Retention(RetentionPolicy.RUNTIME) +public @interface Provided +{ +} diff --git a/extended-mixin-processor/src/main/java/us/runelitepl/mixinprocessor/annotations/Reobfuscate.java b/extended-mixin-processor/src/main/java/us/runelitepl/mixinprocessor/annotations/Reobfuscate.java new file mode 100644 index 0000000000..a3f15be28c --- /dev/null +++ b/extended-mixin-processor/src/main/java/us/runelitepl/mixinprocessor/annotations/Reobfuscate.java @@ -0,0 +1,34 @@ +/* + * Copyright (c) 2019, ThatGamerBlue + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +package us.runelitepl.mixinprocessor.annotations; + +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; + +@Retention(RetentionPolicy.RUNTIME) +public @interface Reobfuscate +{ +} diff --git a/extended-mixin-processor/src/main/java/us/runelitepl/mixinprocessor/enums/InjectionType.java b/extended-mixin-processor/src/main/java/us/runelitepl/mixinprocessor/enums/InjectionType.java new file mode 100644 index 0000000000..0ce52fdcd9 --- /dev/null +++ b/extended-mixin-processor/src/main/java/us/runelitepl/mixinprocessor/enums/InjectionType.java @@ -0,0 +1,35 @@ +/* + * Copyright (c) 2019, ThatGamerBlue + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +package us.runelitepl.mixinprocessor.enums; + +public enum InjectionType +{ + INJECT, + APPEND, + OVERWRITE, + PREPEND, + PROVIDED; +} diff --git a/extended-mixin-processor/src/main/java/us/runelitepl/mixinprocessor/generators/AnnotationProcessor.java b/extended-mixin-processor/src/main/java/us/runelitepl/mixinprocessor/generators/AnnotationProcessor.java new file mode 100644 index 0000000000..e362db4828 --- /dev/null +++ b/extended-mixin-processor/src/main/java/us/runelitepl/mixinprocessor/generators/AnnotationProcessor.java @@ -0,0 +1,62 @@ +/* + * Copyright (c) 2019, ThatGamerBlue + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +package us.runelitepl.mixinprocessor.generators; + +import javassist.CannotCompileException; +import javassist.CtClass; +import us.runelitepl.mixinprocessor.MixinProcessorMojo; +import us.runelitepl.mixinprocessor.parsers.FieldAnnotationParser; +import us.runelitepl.mixinprocessor.parsers.MethodAnnotationParser; +import us.runelitepl.mixinprocessor.util.JavassistUtils; + +import java.io.ByteArrayInputStream; +import java.io.IOException; + +public class AnnotationProcessor +{ + + private final String className; + private final byte[] finalCode; + + public AnnotationProcessor(String className, byte[] finalCode) + { + this.className = className; + this.finalCode = finalCode; + } + + public byte[] run() throws IOException, CannotCompileException, ClassNotFoundException + { + byte[] newCode = finalCode; + + CtClass clazz = MixinProcessorMojo.classPool.makeClass(new ByteArrayInputStream(newCode)); + new FieldAnnotationParser(clazz).run(); + new MethodAnnotationParser(clazz).run(); + newCode = JavassistUtils.getClassBytecode(clazz); + + return newCode; + } + +} diff --git a/extended-mixin-processor/src/main/java/us/runelitepl/mixinprocessor/generators/PatchGenerator.java b/extended-mixin-processor/src/main/java/us/runelitepl/mixinprocessor/generators/PatchGenerator.java new file mode 100644 index 0000000000..106aac77dd --- /dev/null +++ b/extended-mixin-processor/src/main/java/us/runelitepl/mixinprocessor/generators/PatchGenerator.java @@ -0,0 +1,66 @@ +/* + * Copyright (c) 2019, ThatGamerBlue + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +package us.runelitepl.mixinprocessor.generators; + +import us.runelitepl.mixinprocessor.transformers.AnnotationRemoverTransformer; +import us.runelitepl.mixinprocessor.transformers.AsmMethodGarbageTransformer; +import us.runelitepl.mixinprocessor.transformers.AsmMethodSignatureTransformer; +import us.runelitepl.mixinprocessor.transformers.AsmNameTransformer; +import us.runelitepl.mixinprocessor.transformers.AsmStaticUsageTransformer; +import us.runelitepl.mixinprocessor.transformers.DoNothingTransformer; +import us.runelitepl.mixinprocessor.transformers.GetFieldDecoderTransformer; +import us.runelitepl.mixinprocessor.transformers.ProvidedRemoverTransformer; + +public class PatchGenerator +{ + + private final String className; + private final byte[] bytecode; + + public PatchGenerator(String className, byte[] bytecode) + { + this.className = className; + this.bytecode = bytecode; + } + + public byte[] run() + { + byte[] newCode = bytecode; + + newCode = new GetFieldDecoderTransformer(className, newCode).transform(); + // https://asm.ow2.io/javadoc/org/objectweb/asm/commons/Remapper.html + // https://asm.ow2.io/javadoc/org/objectweb/asm/commons/ClassRemapper.html + newCode = new AsmStaticUsageTransformer(className, newCode).transform(); + newCode = new AsmNameTransformer(className, newCode).transform(); + newCode = new ProvidedRemoverTransformer(className, newCode).transform(); + newCode = new AnnotationRemoverTransformer(className, newCode).transform(); + + + newCode = new DoNothingTransformer(className, newCode).transform(); + return newCode; + } + +} diff --git a/extended-mixin-processor/src/main/java/us/runelitepl/mixinprocessor/generators/StaticGenerator.java b/extended-mixin-processor/src/main/java/us/runelitepl/mixinprocessor/generators/StaticGenerator.java new file mode 100644 index 0000000000..3cb1441327 --- /dev/null +++ b/extended-mixin-processor/src/main/java/us/runelitepl/mixinprocessor/generators/StaticGenerator.java @@ -0,0 +1,110 @@ +/* + * Copyright (c) 2019, ThatGamerBlue + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +package us.runelitepl.mixinprocessor.generators; + +import javassist.CannotCompileException; +import javassist.CtClass; +import javassist.NotFoundException; +import us.runelitepl.mixinprocessor.MixinProcessorMojo; +import us.runelitepl.mixinprocessor.util.JavassistUtils; +import us.runelitepl.mixinprocessor.util.RefUtils; +import org.objectweb.asm.ClassReader; +import org.objectweb.asm.tree.ClassNode; +import org.objectweb.asm.tree.FieldNode; +import org.objectweb.asm.tree.MethodNode; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Set; + +public class StaticGenerator +{ + + public static HashMap> staticMethods = new HashMap<>(); + public static HashMap> staticFields = new HashMap<>(); + public static Set modifiedClasses = new HashSet<>(); + + public void run(byte[] bytecode) throws NotFoundException, IOException, CannotCompileException + { + ClassReader cr = new ClassReader(bytecode); + + ClassNode node = new ClassNode(); + cr.accept(node, 0); + + for (Object aaa : node.methods) + { + MethodNode method = (MethodNode) aaa; + + String methodName = method.name; + method.desc = RefUtils.reobMethodDescriptor(method.desc); + int access = method.access; + if ((access & 8) != 8) + { + continue; + } + String reobbed = RefUtils.reobMethodName(RefUtils.STATICS_STRING, methodName, method.desc); + if(reobbed == null) + { + MixinProcessorMojo.log("Failed to reob static method: %s %s", methodName, method.desc); + throw new RuntimeException(); + } + String[] split = reobbed.split(" "); + method.name = split[1]; + ArrayList list = staticMethods.getOrDefault(split[0], new ArrayList<>()); + list.add(method); + staticMethods.put(split[0], list); + modifiedClasses.add(split[0]); + } + + for (Object aaa : node.fields) + { + FieldNode field = (FieldNode) aaa; + + String fieldName = field.name; + field.desc = RefUtils.reobDescriptor(field.desc); + int access = field.access; + if ((access & 8) != 8) + { + continue; + } + String reobbed = RefUtils.reobFieldName(RefUtils.STATICS_STRING, fieldName, field.desc); + if(reobbed == null) + { + MixinProcessorMojo.log("Failed to reob static field: %s %s", fieldName, field.desc); + throw new RuntimeException(); + } + String[] split = reobbed.split(" "); + field.name = split[1]; + ArrayList list = staticFields.getOrDefault(split[0], new ArrayList<>()); + list.add(field); + staticFields.put(split[0], list); + modifiedClasses.add(split[0]); + } + } + +} diff --git a/extended-mixin-processor/src/main/java/us/runelitepl/mixinprocessor/generators/StaticStageTwoGenerator.java b/extended-mixin-processor/src/main/java/us/runelitepl/mixinprocessor/generators/StaticStageTwoGenerator.java new file mode 100644 index 0000000000..f0c0019943 --- /dev/null +++ b/extended-mixin-processor/src/main/java/us/runelitepl/mixinprocessor/generators/StaticStageTwoGenerator.java @@ -0,0 +1,261 @@ +/* + * Copyright (c) 2019, ThatGamerBlue + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +package us.runelitepl.mixinprocessor.generators; + +import org.objectweb.asm.Attribute; +import org.objectweb.asm.ClassReader; +import org.objectweb.asm.ClassVisitor; +import org.objectweb.asm.ClassWriter; +import org.objectweb.asm.FieldVisitor; +import org.objectweb.asm.MethodVisitor; +import org.objectweb.asm.Opcodes; +import org.objectweb.asm.tree.AnnotationNode; +import org.objectweb.asm.tree.FieldNode; +import org.objectweb.asm.tree.MethodNode; +import org.objectweb.asm.tree.TypeAnnotationNode; +import us.runelitepl.mixinprocessor.MixinProcessorMojo; +import us.runelitepl.mixinprocessor.parsers.MethodReflector; + +import java.util.HashMap; + +import static us.runelitepl.mixinprocessor.generators.StaticGenerator.modifiedClasses; +import static us.runelitepl.mixinprocessor.generators.StaticGenerator.staticFields; +import static us.runelitepl.mixinprocessor.generators.StaticGenerator.staticMethods; + +public class StaticStageTwoGenerator implements Opcodes +{ + + private HashMap classes; + + public StaticStageTwoGenerator(HashMap classes) + { + this.classes = classes; + } + + public void run() + { + for (String className : modifiedClasses) + { + byte[] targetBytecode = classes.getOrDefault(className, null); + if (targetBytecode == null) + { + //create new class + ClassWriter cw = new ClassWriter(0); + FieldVisitor fv; + MethodVisitor mv; + + cw.visit(V1_6, ACC_PUBLIC, className, null, "java/lang/Object", null); + + if (staticMethods.get(className) != null) + { + for (MethodNode method : staticMethods.get(className)) + { + mv = cw.visitMethod(method.access, method.name, method.desc, method.signature, + (String[]) method.exceptions.toArray(new String[0])); + MethodReflector reflector = new MethodReflector(mv); + method.accept(reflector); + } + } + + if (staticFields.get(className) != null) + { + for (FieldNode field : staticFields.get(className)) + { + fv = cw.visitField(field.access, field.name, field.desc, field.signature, field.value); + int i; + int n; + AnnotationNode annotation; + if (field.visibleAnnotations != null) + { + i = 0; + + for (n = field.visibleAnnotations.size(); i < n; ++i) + { + annotation = (AnnotationNode) field.visibleAnnotations.get(i); + annotation.accept(fv.visitAnnotation(annotation.desc, true)); + } + } + + if (field.invisibleAnnotations != null) + { + i = 0; + + for (n = field.invisibleAnnotations.size(); i < n; ++i) + { + annotation = (AnnotationNode) field.invisibleAnnotations.get(i); + annotation.accept(fv.visitAnnotation(annotation.desc, false)); + } + } + + TypeAnnotationNode typeAnnotation; + if (field.visibleTypeAnnotations != null) + { + i = 0; + + for (n = field.visibleTypeAnnotations.size(); i < n; ++i) + { + typeAnnotation = (TypeAnnotationNode) field.visibleTypeAnnotations.get(i); + typeAnnotation.accept(fv + .visitTypeAnnotation(typeAnnotation.typeRef, typeAnnotation.typePath, + typeAnnotation.desc, true)); + } + } + + if (field.invisibleTypeAnnotations != null) + { + i = 0; + + for (n = field.invisibleTypeAnnotations.size(); i < n; ++i) + { + typeAnnotation = (TypeAnnotationNode) field.invisibleTypeAnnotations.get(i); + typeAnnotation.accept(fv + .visitTypeAnnotation(typeAnnotation.typeRef, typeAnnotation.typePath, + typeAnnotation.desc, false)); + } + } + + if (field.attrs != null) + { + i = 0; + + for (n = field.attrs.size(); i < n; ++i) + { + fv.visitAttribute((Attribute) field.attrs.get(i)); + } + } + + fv.visitEnd(); + } + } + + cw.visitEnd(); + + targetBytecode = cw.toByteArray(); + } + else + { + ClassReader cr = new ClassReader(targetBytecode); + ClassWriter cw = new ClassWriter(cr, 0); + ClassVisitor cv = new ClassVisitor(ASM6) + { + @Override + public void visit(int version, int access, String name, String signature, String superName, String[] interfaces) + { + super.visit(version, access, name, signature, superName, interfaces); + if (staticMethods.get(className) != null) + { + for (MethodNode method : staticMethods.get(className)) + { + MethodVisitor mv = visitMethod(method.access, method.name, method.desc, + method.signature, (String[]) method.exceptions.toArray(new String[0])); + MethodReflector reflector = new MethodReflector(mv); + method.accept(reflector); + } + } + + if (staticFields.get(className) != null) + { + for (FieldNode field : staticFields.get(className)) + { + FieldVisitor fv = visitField(field.access, field.name, field.desc, field.signature, + field.value); + int i; + int n; + AnnotationNode annotation; + if (field.visibleAnnotations != null) + { + i = 0; + + for (n = field.visibleAnnotations.size(); i < n; ++i) + { + annotation = (AnnotationNode) field.visibleAnnotations.get(i); + annotation.accept(fv.visitAnnotation(annotation.desc, true)); + } + } + + if (field.invisibleAnnotations != null) + { + i = 0; + + for (n = field.invisibleAnnotations.size(); i < n; ++i) + { + annotation = (AnnotationNode) field.invisibleAnnotations.get(i); + annotation.accept(fv.visitAnnotation(annotation.desc, false)); + } + } + + TypeAnnotationNode typeAnnotation; + if (field.visibleTypeAnnotations != null) + { + i = 0; + + for (n = field.visibleTypeAnnotations.size(); i < n; ++i) + { + typeAnnotation = (TypeAnnotationNode) field.visibleTypeAnnotations.get(i); + typeAnnotation.accept(fv + .visitTypeAnnotation(typeAnnotation.typeRef, typeAnnotation.typePath, + typeAnnotation.desc, true)); + } + } + + if (field.invisibleTypeAnnotations != null) + { + i = 0; + + for (n = field.invisibleTypeAnnotations.size(); i < n; ++i) + { + typeAnnotation = (TypeAnnotationNode) field.invisibleTypeAnnotations.get(i); + typeAnnotation.accept(fv + .visitTypeAnnotation(typeAnnotation.typeRef, typeAnnotation.typePath, + typeAnnotation.desc, false)); + } + } + + if (field.attrs != null) + { + i = 0; + + for (n = field.attrs.size(); i < n; ++i) + { + fv.visitAttribute((Attribute) field.attrs.get(i)); + } + } + + fv.visitEnd(); + } + } + } + }; + cr.accept(cv, 0); + + targetBytecode = cw.toByteArray(); + } + + classes.put(className, targetBytecode); + } + } + +} diff --git a/extended-mixin-processor/src/main/java/us/runelitepl/mixinprocessor/parsers/FieldAnnotationParser.java b/extended-mixin-processor/src/main/java/us/runelitepl/mixinprocessor/parsers/FieldAnnotationParser.java new file mode 100644 index 0000000000..548a3673bd --- /dev/null +++ b/extended-mixin-processor/src/main/java/us/runelitepl/mixinprocessor/parsers/FieldAnnotationParser.java @@ -0,0 +1,110 @@ +/* + * Copyright (c) 2019, ThatGamerBlue + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +package us.runelitepl.mixinprocessor.parsers; + +import javassist.CtClass; +import javassist.CtField; +import us.runelitepl.mixinprocessor.annotations.Append; +import us.runelitepl.mixinprocessor.annotations.Inject; +import us.runelitepl.mixinprocessor.annotations.Overwrite; +import us.runelitepl.mixinprocessor.annotations.Prepend; +import us.runelitepl.mixinprocessor.annotations.Provided; +import us.runelitepl.mixinprocessor.annotations.Reobfuscate; +import us.runelitepl.mixinprocessor.enums.InjectionType; +import us.runelitepl.mixinprocessor.util.RefUtils; + +import static us.runelitepl.mixinprocessor.MixinProcessorMojo.isFieldTagged; + +public class FieldAnnotationParser +{ + + private CtClass clazz; + + public FieldAnnotationParser(CtClass clazz) + { + this.clazz = clazz; + } + + public void run() throws ClassNotFoundException + { + for (CtField field : clazz.getDeclaredFields()) + { + Object[] annotations = field.getAnnotations(); + + InjectionType type = null; + boolean reobfuscate = false; + + for (Object obj : annotations) + { + reobfuscate = obj instanceof Reobfuscate || reobfuscate; + if (obj instanceof Inject) + { + type = InjectionType.INJECT; + } + else if (obj instanceof Append) + { + type = InjectionType.APPEND; + } + else if (obj instanceof Overwrite) + { + type = InjectionType.OVERWRITE; + } + else if (obj instanceof Prepend) + { + type = InjectionType.PREPEND; + } + else if (obj instanceof Provided) + { + type = InjectionType.PROVIDED; + } + } + + String fieldOwner = field.getDeclaringClass().getSimpleName(); + String fieldName = field.getName(); + String fieldDescriptor = RefUtils.reobDescriptor(field.getSignature()); + + if (type == null) + { + throw new RuntimeException( + field.getDeclaringClass().getSimpleName() + "." + field.getName() + " is unannotated" + + "!"); + } + + if (type != InjectionType.PROVIDED && type != InjectionType.INJECT) + { + throw new RuntimeException( + field.getDeclaringClass().getSimpleName() + "." + field.getName() + " has an invalid " + + "annotation! @" + type); + } + + if (reobfuscate) + { + isFieldTagged.put(fieldOwner + " " + fieldName + " " + fieldDescriptor, true); + } + } + } + +} diff --git a/extended-mixin-processor/src/main/java/us/runelitepl/mixinprocessor/parsers/GamepackDownloader.java b/extended-mixin-processor/src/main/java/us/runelitepl/mixinprocessor/parsers/GamepackDownloader.java new file mode 100644 index 0000000000..d10b80823a --- /dev/null +++ b/extended-mixin-processor/src/main/java/us/runelitepl/mixinprocessor/parsers/GamepackDownloader.java @@ -0,0 +1,91 @@ +/* + * Copyright (c) 2019, ThatGamerBlue + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +package us.runelitepl.mixinprocessor.parsers; + +import us.runelitepl.mixinprocessor.util.WebUtils; + +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.util.HashMap; +import java.util.zip.ZipEntry; +import java.util.zip.ZipInputStream; + +public class GamepackDownloader +{ + + private static final String CONFIG_URL = "http://oldschool.runescape.com/jav_config.ws"; + private static String codebase; + private static String initial_jar; + + public static void downloadGamepack(HashMap output) throws IOException + { + parseConfig(); + byte[] gamepackJarAry = WebUtils.downloadFile(getGamepackUrl()); + ZipInputStream zipInputStream = new ZipInputStream(new ByteArrayInputStream(gamepackJarAry)); + byte[] buffer = new byte[2048]; + ZipEntry entry; + ByteArrayOutputStream fileContent = new ByteArrayOutputStream(1024*1024*4); + while ((entry = zipInputStream.getNextEntry()) != null) + { + if (entry.getName().startsWith("META-INF")) + { + continue; + } + String key = entry.getName().replace(".class", ""); + int len = 0; + while((len = zipInputStream.read(buffer)) > 0) + { + fileContent.write(buffer, 0, len); + } + output.put(key, fileContent.toByteArray()); + fileContent.reset(); + } + zipInputStream.close(); + } + + private static void parseConfig() throws IOException + { + String pageText = WebUtils.getUrlContent(CONFIG_URL); + for (String line : pageText.split("\n")) + { + if (line.startsWith("codebase=")) + { + codebase = line.replace("codebase=", ""); + } + else if (line.startsWith("initial_jar=")) + { + initial_jar = line.replace("initial_jar=", ""); + } + } + } + + public static String getGamepackUrl() + { + return codebase + initial_jar; + } + +} diff --git a/extended-mixin-processor/src/main/java/us/runelitepl/mixinprocessor/parsers/HooksParser.java b/extended-mixin-processor/src/main/java/us/runelitepl/mixinprocessor/parsers/HooksParser.java new file mode 100644 index 0000000000..111303da75 --- /dev/null +++ b/extended-mixin-processor/src/main/java/us/runelitepl/mixinprocessor/parsers/HooksParser.java @@ -0,0 +1,144 @@ +/* + * Copyright (c) 2019, ThatGamerBlue + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +package us.runelitepl.mixinprocessor.parsers; + +import us.runelitepl.mixinprocessor.MethodGarbageValue; +import us.runelitepl.mixinprocessor.MixinProcessorMojo; +import org.json.simple.JSONArray; +import org.json.simple.JSONObject; +import org.json.simple.parser.JSONParser; +import org.json.simple.parser.ParseException; + +import java.io.File; +import java.io.IOException; +import java.nio.file.Files; +import java.util.Map; + +public class HooksParser +{ + + public static void run(File hooksFile, File opsFile) throws IOException, ParseException + { + JSONParser parser = new JSONParser(); + //region hooksFile + String jsonContent = String.join("\n", Files.readAllLines(hooksFile.toPath())); + JSONArray array = (JSONArray) parser.parse(jsonContent); + + for (Object object : array) + { + JSONObject rootObject = (JSONObject) object; + String c_obbedName = (String) rootObject.get("name"); + String c_deobbedName = (String) rootObject.get("class"); + MixinProcessorMojo.classNames.put(c_deobbedName, c_obbedName); + } + + int failedFields = 0; + int failedMethods = 0; + for (Object object : array) + { + JSONObject rootObject = (JSONObject) object; + + JSONArray fieldArray = (JSONArray) rootObject.get("fields"); + for (Object fieldObj : fieldArray) + { + JSONObject field = (JSONObject) fieldObj; + String f_deobbedName = (String) field.get("field"); + String f_obbedName = (String) field.get("name"); + String f_descriptor = (String) field.get("descriptor"); + String f_owner = (String) field.get("owner"); + long f_decoder = (long) field.getOrDefault("decoder", (long) 1); + String f_deobbedOwner = null; + if(f_deobbedName.startsWith("__")) + { + continue; + } + for (Map.Entry entry : MixinProcessorMojo.classNames.entrySet()) + { + if (entry.getValue().equals(f_owner)) + { + f_deobbedOwner = entry.getKey(); + break; + } + } + if (f_deobbedOwner == null) + { + failedFields++; + //stderr("Failed to find deobbed owner for field %s.%s %s", f_owner, f_obbedName, f_descriptor); + continue; + } + MixinProcessorMojo.fieldNames.put(String.format("%s %s %s", f_deobbedOwner, f_deobbedName, f_descriptor), + String.format("%s %s", f_owner, f_obbedName)); + MixinProcessorMojo.fieldDecoders.put(String.format("%s %s", f_deobbedOwner, f_deobbedName), + f_decoder); + } + + JSONArray methodArray = (JSONArray) rootObject.get("methods"); + for (Object methodObj : methodArray) + { + JSONObject method = (JSONObject) methodObj; + String m_deobbedName = (String) method.get("method"); + String m_owner = (String) method.get("owner"); + String m_deobbedOwner = null; + String m_obbedName = (String) method.get("name"); + String m_descriptor = (String) method.get("descriptor"); + if(m_deobbedName.startsWith("__")) + { + continue; + } + for (Map.Entry entry : MixinProcessorMojo.classNames.entrySet()) + { + if (entry.getValue().equals(m_owner)) + { + m_deobbedOwner = entry.getKey(); + break; + } + } + if (m_deobbedOwner == null) + { + failedMethods++; + //stderr("Failed to find deobbed owner for method %s.%s %s", m_owner, m_obbedName, m_descriptor); + continue; + } + MixinProcessorMojo.methodNames.put(String.format("%s %s %s", m_deobbedOwner, m_deobbedName, m_descriptor), + String.format("%s %s", m_owner, m_obbedName)); + } + } + MixinProcessorMojo.log("%d unidentified fields", failedFields); + MixinProcessorMojo.log("%d unidentified methods", failedMethods); + //endregion + + //region opsFile + String opsContent = String.join("\n", Files.readAllLines(opsFile.toPath())); + JSONObject opsRoot = (JSONObject) parser.parse(opsContent); + opsRoot.forEach((key, value) -> + { + String k = (String) key; + MixinProcessorMojo.methodGarbageValues.put(k, new MethodGarbageValue(Math.toIntExact((Long) value))); + }); + //endregion + } + +} diff --git a/extended-mixin-processor/src/main/java/us/runelitepl/mixinprocessor/parsers/MethodAnnotationParser.java b/extended-mixin-processor/src/main/java/us/runelitepl/mixinprocessor/parsers/MethodAnnotationParser.java new file mode 100644 index 0000000000..fbb68d444c --- /dev/null +++ b/extended-mixin-processor/src/main/java/us/runelitepl/mixinprocessor/parsers/MethodAnnotationParser.java @@ -0,0 +1,127 @@ +/* + * Copyright (c) 2019, ThatGamerBlue + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +package us.runelitepl.mixinprocessor.parsers; + +import javassist.CtClass; +import javassist.CtMethod; +import us.runelitepl.mixinprocessor.MixinProcessorMojo; +import us.runelitepl.mixinprocessor.annotations.Append; +import us.runelitepl.mixinprocessor.annotations.Inject; +import us.runelitepl.mixinprocessor.annotations.Overwrite; +import us.runelitepl.mixinprocessor.annotations.Prepend; +import us.runelitepl.mixinprocessor.annotations.Provided; +import us.runelitepl.mixinprocessor.annotations.Reobfuscate; +import us.runelitepl.mixinprocessor.enums.InjectionType; +import us.runelitepl.mixinprocessor.util.RefUtils; + +import static us.runelitepl.mixinprocessor.MixinProcessorMojo.isMethodTagged; + +public class MethodAnnotationParser +{ + + private final CtClass patch; + + public MethodAnnotationParser(CtClass patch) + { + this.patch = patch; + } + + public void run() throws ClassNotFoundException + { + for(CtMethod method : patch.getDeclaredMethods()) + { + Object[] annotations = method.getAnnotations(); + + boolean reobfuscate = false; + InjectionType type = null; + + for (Object obj : annotations) + { + reobfuscate = obj instanceof Reobfuscate || reobfuscate; + if (obj instanceof Inject) + { + type = InjectionType.INJECT; + } + else if (obj instanceof Append) + { + type = InjectionType.APPEND; + } + else if (obj instanceof Overwrite) + { + type = InjectionType.OVERWRITE; + } + else if (obj instanceof Prepend) + { + type = InjectionType.PREPEND; + } + else if (obj instanceof Provided) + { + type = InjectionType.PROVIDED; + } + } + + + + if (type == null) + { + throw new RuntimeException( + method.getDeclaringClass().getSimpleName() + "." + method.getName() + " is unannotated" + + "!"); + } + + String methodName = method.getName(); + if (type == InjectionType.PREPEND) + { + if (!methodName.startsWith("prepend$")) + { + throw new RuntimeException( + method.getDeclaringClass().getSimpleName() + "." + method.getName() + " has a @Prepend " + + "annotation without beginning with \"prepend$\"!"); + } + } + else if (type == InjectionType.APPEND) + { + if (!methodName.startsWith("append$")) + { + throw new RuntimeException( + method.getDeclaringClass().getSimpleName() + "." + method.getName() + " has a @Append " + + "annotation without beginning with \"append$\"!"); + } + } + + if(reobfuscate) + { + MixinProcessorMojo.log("Marking: %s %s %s", method.getDeclaringClass().getSimpleName(), methodName, + RefUtils.reobMethodDescriptor(method.getSignature())); + String r = String.format("%s %s %s", method.getDeclaringClass().getSimpleName(), methodName, + RefUtils.reobMethodDescriptor(method.getSignature())); + isMethodTagged.put(r, true); + } + + } + } + +} diff --git a/extended-mixin-processor/src/main/java/us/runelitepl/mixinprocessor/parsers/MethodReflector.java b/extended-mixin-processor/src/main/java/us/runelitepl/mixinprocessor/parsers/MethodReflector.java new file mode 100644 index 0000000000..43139f82ad --- /dev/null +++ b/extended-mixin-processor/src/main/java/us/runelitepl/mixinprocessor/parsers/MethodReflector.java @@ -0,0 +1,329 @@ +/* + * Copyright (c) 2019, ThatGamerBlue + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +package us.runelitepl.mixinprocessor.parsers; + +import org.objectweb.asm.AnnotationVisitor; +import org.objectweb.asm.Attribute; +import org.objectweb.asm.Handle; +import org.objectweb.asm.Label; +import org.objectweb.asm.MethodVisitor; +import org.objectweb.asm.Opcodes; +import org.objectweb.asm.TypePath; + +public class MethodReflector extends MethodVisitor +{ + + private MethodVisitor target; + + public MethodReflector(MethodVisitor target) + { + super(Opcodes.ASM6); + this.target = target; + } + + public void visitCode() + { + if (target != null) + { + target.visitCode(); + } + super.visitCode(); + } + + public void visitEnd() + { + if (target != null) + { + target.visitEnd(); + } + super.visitEnd(); + } + + public void visitParameter(String var1, int var2) + { + if (target != null) + { + target.visitParameter(var1, var2); + } + super.visitParameter(var1, var2); + } + + public AnnotationVisitor visitAnnotationDefault() + { + if (target != null) + { + target.visitAnnotationDefault(); + } + return super.visitAnnotationDefault(); + } + + public AnnotationVisitor visitAnnotation(String var1, boolean var2) + { + if (target != null) + { + target.visitAnnotation(var1, var2); + } + return super.visitAnnotation(var1, var2); + } + + public AnnotationVisitor visitTypeAnnotation(int var1, TypePath var2, String var3, boolean var4) + { + if (target != null) + { + target.visitTypeAnnotation(var1, var2, var3, var4); + } + return super.visitTypeAnnotation(var1, var2, var3, var4); + } + + public AnnotationVisitor visitParameterAnnotation(int var1, String var2, boolean var3) + { + if (target != null) + { + target.visitParameterAnnotation(var1, var2, var3); + } + return super.visitParameterAnnotation(var1, var2, var3); + } + + public void visitAttribute(Attribute var1) + { + if (target != null) + { + target.visitAttribute(var1); + } + super.visitAttribute(var1); + } + + public void visitFrame(int var1, int var2, Object[] var3, int var4, Object[] var5) + { + if (target != null) + { + target.visitFrame(var1, var2, var3, var4, var5); + } + super.visitFrame(var1, var2, var3, var4, var5); + } + + public void visitInsn(int var1) + { + if (target != null) + { + target.visitInsn(var1); + } + super.visitInsn(var1); + } + + public void visitIntInsn(int var1, int var2) + { + if (target != null) + { + target.visitIntInsn(var1, var2); + } + super.visitIntInsn(var1, var2); + } + + public void visitVarInsn(int var1, int var2) + { + if (target != null) + { + target.visitVarInsn(var1, var2); + } + super.visitVarInsn(var1, var2); + } + + public void visitTypeInsn(int var1, String var2) + { + if (target != null) + { + target.visitTypeInsn(var1, var2); + } + super.visitTypeInsn(var1, var2); + } + + public void visitFieldInsn(int var1, String var2, String var3, String var4) + { + if (target != null) + { + target.visitFieldInsn(var1, var2, var3, var4); + } + super.visitFieldInsn(var1, var2, var3, var4); + } + + /** + * @deprecated + */ + public void visitMethodInsn(int var1, String var2, String var3, String var4) + { + if (target != null) + { + target.visitMethodInsn(var1, var2, var3, var4); + } + super.visitMethodInsn(var1, var2, var3, var4); + } + + public void visitMethodInsn(int var1, String var2, String var3, String var4, boolean var5) + { + if (target != null) + { + target.visitMethodInsn(var1, var2, var3, var4, var5); + } + super.visitMethodInsn(var1, var2, var3, var4, var5); + } + + public void visitInvokeDynamicInsn(String var1, String var2, Handle var3, Object... var4) + { + if (target != null) + { + target.visitInvokeDynamicInsn(var1, var2, var3, var4); + } + super.visitInvokeDynamicInsn(var1, var2, var3, var4); + } + + public void visitJumpInsn(int var1, Label var2) + { + if (target != null) + { + target.visitJumpInsn(var1, var2); + } + super.visitJumpInsn(var1, var2); + } + + public void visitLabel(Label var1) + { + if (target != null) + { + target.visitLabel(var1); + } + super.visitLabel(var1); + } + + public void visitLdcInsn(Object var1) + { + if (target != null) + { + target.visitLdcInsn(var1); + } + super.visitLdcInsn(var1); + } + + public void visitIincInsn(int var1, int var2) + { + if (target != null) + { + target.visitIincInsn(var1, var2); + } + super.visitIincInsn(var1, var2); + } + + public void visitTableSwitchInsn(int var1, int var2, Label var3, Label... var4) + { + if (target != null) + { + target.visitTableSwitchInsn(var1, var2, var3, var4); + } + super.visitTableSwitchInsn(var1, var2, var3, var4); + } + + public void visitLookupSwitchInsn(Label var1, int[] var2, Label[] var3) + { + if (target != null) + { + target.visitLookupSwitchInsn(var1, var2, var3); + } + super.visitLookupSwitchInsn(var1, var2, var3); + } + + public void visitMultiANewArrayInsn(String var1, int var2) + { + if (target != null) + { + target.visitMultiANewArrayInsn(var1, var2); + } + super.visitMultiANewArrayInsn(var1, var2); + } + + public AnnotationVisitor visitInsnAnnotation(int var1, TypePath var2, String var3, boolean var4) + { + if (target != null) + { + target.visitInsnAnnotation(var1, var2, var3, var4); + } + return super.visitInsnAnnotation(var1, var2, var3, var4); + } + + public void visitTryCatchBlock(Label var1, Label var2, Label var3, String var4) + { + if (target != null) + { + target.visitTryCatchBlock(var1, var2, var3, var4); + } + super.visitTryCatchBlock(var1, var2, var3, var4); + } + + public AnnotationVisitor visitTryCatchAnnotation(int var1, TypePath var2, String var3, boolean var4) + { + if (target != null) + { + target.visitTryCatchAnnotation(var1, var2, var3, var4); + } + return super.visitTryCatchAnnotation(var1, var2, var3, var4); + } + + public void visitLocalVariable(String var1, String var2, String var3, Label var4, Label var5, int var6) + { + if (target != null) + { + target.visitLocalVariable(var1, var2, var3, var4, var5, var6); + } + super.visitLocalVariable(var1, var2, var3, var4, var5, var6); + } + + public AnnotationVisitor visitLocalVariableAnnotation(int var1, TypePath var2, Label[] var3, Label[] var4, int[] var5, String var6, boolean var7) + { + if (target != null) + { + target.visitLocalVariableAnnotation(var1, var2, var3, var4, var5, var6, var7); + } + return super.visitLocalVariableAnnotation(var1, var2, var3, var4, var5, var6, var7); + } + + public void visitLineNumber(int var1, Label var2) + { + if (target != null) + { + target.visitLineNumber(var1, var2); + } + super.visitLineNumber(var1, var2); + } + + public void visitMaxs(int var1, int var2) + { + if (target != null) + { + target.visitMaxs(var1, var2); + } + super.visitMaxs(var1, var2); + } + +} diff --git a/extended-mixin-processor/src/main/java/us/runelitepl/mixinprocessor/transformers/AnnotationRemoverTransformer.java b/extended-mixin-processor/src/main/java/us/runelitepl/mixinprocessor/transformers/AnnotationRemoverTransformer.java new file mode 100644 index 0000000000..af745a80a3 --- /dev/null +++ b/extended-mixin-processor/src/main/java/us/runelitepl/mixinprocessor/transformers/AnnotationRemoverTransformer.java @@ -0,0 +1,103 @@ +/* + * Copyright (c) 2019, ThatGamerBlue + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +package us.runelitepl.mixinprocessor.transformers; + +import org.objectweb.asm.AnnotationVisitor; +import org.objectweb.asm.ClassReader; +import org.objectweb.asm.ClassVisitor; +import org.objectweb.asm.ClassWriter; +import org.objectweb.asm.FieldVisitor; +import org.objectweb.asm.MethodVisitor; +import org.objectweb.asm.Opcodes; + +public class AnnotationRemoverTransformer extends AsmBaseTransformer +{ + + private final String className; + private final byte[] bytecode; + + public AnnotationRemoverTransformer(String className, byte[] bytecode) + { + this.className = className; + this.bytecode = bytecode; + } + + @Override + public byte[] transform() + { + ClassReader cr = new ClassReader(bytecode); + ClassWriter cw = new ClassWriter(cr, 0); + cr.accept(new ClassVisitor(Opcodes.ASM6, cw) + { + @Override + public MethodVisitor visitMethod(int access, String name, String desc, String signature, String[] exceptions) + { + MethodVisitor visitor = super.visitMethod(access, name, desc, signature, exceptions); + MethodVisitor mv = new MethodVisitor(Opcodes.ASM6, visitor) + { + @Override + public AnnotationVisitor visitAnnotation(String descriptor, boolean hidden) + { + if (descriptor.equals(makeAnnotationDescriptor("Reobfuscate"))) + { + return null; + } + return super.visitAnnotation(descriptor, hidden); + } + }; + return mv; + } + + @Override + public FieldVisitor visitField(int access, String name, String descriptor, String signature, Object value) + { + FieldVisitor visitor = super.visitField(access, name, descriptor, signature, value); + return new FieldVisitor(Opcodes.ASM6, visitor) + { + @Override + public AnnotationVisitor visitAnnotation(String descriptor, boolean hidden) + { + if (descriptor.equals(makeAnnotationDescriptor("Reobfuscate"))) + { + return null; + } + if (descriptor.equals(makeAnnotationDescriptor("Provided"))) + { + return null; + } + return super.visitAnnotation(descriptor, hidden); + } + }; + } + }, 0); + return cw.toByteArray(); + } + + public static String makeAnnotationDescriptor(String s) + { + return "Lus/runelitepl/mixinprocessor/annotations/" + s + ";"; + } +} diff --git a/extended-mixin-processor/src/main/java/us/runelitepl/mixinprocessor/transformers/AsmBaseTransformer.java b/extended-mixin-processor/src/main/java/us/runelitepl/mixinprocessor/transformers/AsmBaseTransformer.java new file mode 100644 index 0000000000..5c44dbf62d --- /dev/null +++ b/extended-mixin-processor/src/main/java/us/runelitepl/mixinprocessor/transformers/AsmBaseTransformer.java @@ -0,0 +1,44 @@ +/* + * Copyright (c) 2019, ThatGamerBlue + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +package us.runelitepl.mixinprocessor.transformers; + +import org.objectweb.asm.Opcodes; + +import java.util.ArrayList; + +public abstract class AsmBaseTransformer implements Opcodes +{ + + protected final ArrayList validMethods = new ArrayList<>(); + protected final ArrayList validFields = new ArrayList<>(); + + protected void buildMethodList(){} + + protected void buildFieldList(){} + + public abstract byte[] transform(); + +} diff --git a/extended-mixin-processor/src/main/java/us/runelitepl/mixinprocessor/transformers/AsmMethodGarbageTransformer.java b/extended-mixin-processor/src/main/java/us/runelitepl/mixinprocessor/transformers/AsmMethodGarbageTransformer.java new file mode 100644 index 0000000000..e6532132ef --- /dev/null +++ b/extended-mixin-processor/src/main/java/us/runelitepl/mixinprocessor/transformers/AsmMethodGarbageTransformer.java @@ -0,0 +1,109 @@ +/* + * Copyright (c) 2019, ThatGamerBlue + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +package us.runelitepl.mixinprocessor.transformers; + +import org.objectweb.asm.ClassReader; +import org.objectweb.asm.ClassVisitor; +import org.objectweb.asm.ClassWriter; +import org.objectweb.asm.MethodVisitor; +import us.runelitepl.mixinprocessor.MethodGarbageValue; +import us.runelitepl.mixinprocessor.MixinProcessorMojo; +import us.runelitepl.mixinprocessor.util.RefUtils; + +import java.sql.Ref; +import java.util.HashMap; + +public class AsmMethodGarbageTransformer extends AsmBaseTransformer +{ + + private final String className; + private final byte[] bytecode; + private HashMap classSet; + + public AsmMethodGarbageTransformer(String className, byte[] bytecode, HashMap classSet) + { + this.className = className; + this.bytecode = bytecode; + this.classSet = classSet; + } + + @Override + public byte[] transform() + { + + ClassReader cr = new ClassReader(bytecode); + ClassWriter cw = new ClassWriter(cr, ClassWriter.COMPUTE_FRAMES); + + cr.accept(new ClassVisitor(ASM6, cw) + { + @Override + public MethodVisitor visitMethod(int access, String name, String desc, String signature, String[] exceptions) + { + MethodVisitor mv = super.visitMethod(access, name, desc, signature, exceptions); + return new MethodVisitor(ASM6, mv) + { + @Override + public void visitMethodInsn(int opcode, String owner, String name, String desc, boolean itf) + { + // get method owner.string(desc) + // check if method is annotated with @Reobfuscate + // brute force actual descriptor (check with shouldReobMethod(owner, name desc) ) + // mv.visitLdcInsn(BIPUSH, constant); + // call super method with new descriptor + + if(RefUtils.shouldReobMethod(owner, name, desc)) + { + String nc = RefUtils.reobMethodName(owner, name, desc).split(" ")[0]; + String nn = RefUtils.reobMethodName(owner, name, desc).split(" ")[1]; + String nd = RefUtils.reobMethodDescriptor(desc); + MethodGarbageValue value; + if((value = MixinProcessorMojo.methodGarbageValues.getOrDefault(String.format("%s.%s%s", + nc, nn, nd), null)) != null) + { + switch (value.getType()) + { + case "I": + super.visitLdcInsn(new Integer(value.getValue())); + break; + case "S": + super.visitIntInsn(SIPUSH, (short) value.getValue()); + break; + case "B": + super.visitIntInsn(BIPUSH, (byte) value.getValue()); + break; + } + } + } + + super.visitMethodInsn(opcode, owner, name, desc, itf); + } + }; + } + }, 0); + + return cw.toByteArray(); + } +} diff --git a/extended-mixin-processor/src/main/java/us/runelitepl/mixinprocessor/transformers/AsmMethodSignatureTransformer.java b/extended-mixin-processor/src/main/java/us/runelitepl/mixinprocessor/transformers/AsmMethodSignatureTransformer.java new file mode 100644 index 0000000000..56138d4324 --- /dev/null +++ b/extended-mixin-processor/src/main/java/us/runelitepl/mixinprocessor/transformers/AsmMethodSignatureTransformer.java @@ -0,0 +1,107 @@ +/* + * Copyright (c) 2019, ThatGamerBlue + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +package us.runelitepl.mixinprocessor.transformers; + +import org.objectweb.asm.ClassReader; +import org.objectweb.asm.ClassVisitor; +import org.objectweb.asm.ClassWriter; +import org.objectweb.asm.MethodVisitor; +import us.runelitepl.mixinprocessor.MixinProcessorMojo; +import us.runelitepl.mixinprocessor.util.RefUtils; + +public class AsmMethodSignatureTransformer extends AsmBaseTransformer +{ + + private final String className; + private final byte[] bytecode; + + public AsmMethodSignatureTransformer(String className, byte[] bytecode) + { + this.className = RefUtils.deobClassName(className); + this.bytecode = bytecode; + } + + @Override + public byte[] transform() + { + ClassReader cr = new ClassReader(bytecode); + ClassWriter cw = new ClassWriter(cr, ClassWriter.COMPUTE_FRAMES); + + cr.accept(new ClassVisitor(ASM6, cw) + { + @Override + public MethodVisitor visitMethod(int access, String name, String desc, String sig, String[] exceptions) + { + MethodVisitor mv = super.visitMethod(access, name, fixMethodDesc(className, name, desc), sig, exceptions); + return new MethodVisitor(ASM6, mv) + { + @Override + public void visitMethodInsn(int opcode, String owner, String name, String desc, boolean itf) + { + super.visitMethodInsn(opcode, owner, name, fixMethodDesc(owner, name, desc), itf); + } + }; + } + }, 0); + + return cw.toByteArray(); + } + + private String fixMethodDesc(String className, String name, String desc) + { + if(className.startsWith(RefUtils.TYPE_PREFIX)) + { + className = className.substring(RefUtils.TYPE_PREFIX.length()); + } + if (RefUtils.shouldReobMethod(className, name, desc)) + { + if (RefUtils.reobMethodName(className, name, desc) == null) + { + // get correct descriptor + String realDesc = null; + for (String s : RefUtils.POSSIBLE_GARBAGE_TYPES) + { + String check = RefUtils.reobMethodName(className, name, RefUtils.appendArgument(desc, s)); + if (check != null) + { + realDesc = RefUtils.appendArgument(desc, s); + break; + } + } + if (realDesc == null) + { + MixinProcessorMojo.log("Failed to find actual method descriptor for %s.%s%s", className, + name, desc); + throw new RuntimeException(); + } + // fixed = realDesc + MixinProcessorMojo.isMethodTagged.put(String.format("%s %s %s", className, name, realDesc), true); + return realDesc; + } + } + return desc; + } +} diff --git a/extended-mixin-processor/src/main/java/us/runelitepl/mixinprocessor/transformers/AsmNameTransformer.java b/extended-mixin-processor/src/main/java/us/runelitepl/mixinprocessor/transformers/AsmNameTransformer.java new file mode 100644 index 0000000000..08a5c818cb --- /dev/null +++ b/extended-mixin-processor/src/main/java/us/runelitepl/mixinprocessor/transformers/AsmNameTransformer.java @@ -0,0 +1,175 @@ +/* + * Copyright (c) 2019, ThatGamerBlue + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +package us.runelitepl.mixinprocessor.transformers; + +import org.objectweb.asm.ClassReader; +import org.objectweb.asm.ClassWriter; +import org.objectweb.asm.commons.ClassRemapper; +import org.objectweb.asm.commons.Remapper; +import us.runelitepl.mixinprocessor.MixinProcessorMojo; +import us.runelitepl.mixinprocessor.util.RefUtils; + +public class AsmNameTransformer extends AsmBaseTransformer +{ + + private String className; + private byte[] bytecode; + + public AsmNameTransformer(String className, byte[] bytecode) + { + this.className = className; + this.bytecode = bytecode; + } + + @Override + public byte[] transform() + { + ClassReader cr = new ClassReader(bytecode); + ClassWriter cw = new ClassWriter(cr, 0); + ClassRemapper remapper = new ClassRemapper(cw, new Remapper() + { + + final String TYPE_PREFIX = "us/runelitepl/mixins/"; + + @Override + public String map(String internalName) + { + return super.map(internalName); + } + + @Override + public String mapDesc(String descriptor) + { + return RefUtils.reobDescriptor(descriptor); + } + + @Override + public String mapFieldName(String owner, String name, String descriptor) + { + String oldName = name; + String noPackage = owner.replace(TYPE_PREFIX, ""); + + descriptor = mapDesc(descriptor); + + owner = RefUtils.reobClassName(owner); + if (RefUtils.shouldReobField(noPackage, name, descriptor)) + { + name = RefUtils.reobFieldName(noPackage, name, descriptor); + if (name == null) + { + MixinProcessorMojo.log("Failed to reobfuscate field name %s.%s", noPackage, oldName); + throw new RuntimeException(); + } + } + return super.mapFieldName(owner, name, descriptor); + } + + @Override + public String mapInvokeDynamicMethodName(String name, String descriptor) + { + throw new UnsupportedOperationException("mapInvokeDynamicMethodName: Not implemented yet," + + "\nAsmNameTransformer#mapInvokeDynamicMethodName(" + name + ", " + descriptor + ")"); + } + + @Override + public String mapMethodDesc(String descriptor) + { + return RefUtils.reobMethodDescriptor(descriptor); + } + + @Override + public String mapMethodName(String owner, String name, String descriptor) + { + String originalClass = owner; + if (originalClass.startsWith(TYPE_PREFIX)) + { + originalClass = originalClass.substring(TYPE_PREFIX.length()); + } + owner = RefUtils.reobClassName(owner); + if (name.startsWith("protect$")) + { + name = "1" + name; + } + // descriptor for reob checking is obfuscated + descriptor = mapMethodDesc(descriptor); + boolean reob = RefUtils.shouldReobMethod(originalClass, name, descriptor); + + if (reob) + { + String originalName = name; + name = RefUtils.reobMethodName(originalClass, name, descriptor); + if (name == null) + { + MixinProcessorMojo.log("Failed to reobfuscate method: %s.%s%s", originalClass, originalName, + descriptor); + throw new RuntimeException(); + } + } + + + //stderr("mapMethodName %s %s %s", owner, name, descriptor); + return super.mapMethodName(owner, name, descriptor); + } + + @Override + public String mapPackageName(String name) + { + throw new UnsupportedOperationException("mapPackageName: Not implemented yet," + + "\nAsmNameTransformer#mapPackageName(" + name + ")"); + } + + @Override + public String mapSignature(String signature, boolean isTypeSig) + { + return super.mapSignature(signature, isTypeSig); + } + + @Override + public String mapType(String internalName) + { + internalName = RefUtils.reobClassName(internalName); + return super.mapType(internalName); + } + + @Override + public String[] mapTypes(String[] internalNames) + { + return super.mapTypes(internalNames); + } + + @Override + public Object mapValue(Object value) + { + return super.mapValue(value); + } + + }); + + cr.accept(remapper, 0); + + return cw.toByteArray(); + } +} diff --git a/extended-mixin-processor/src/main/java/us/runelitepl/mixinprocessor/transformers/AsmStaticUsageTransformer.java b/extended-mixin-processor/src/main/java/us/runelitepl/mixinprocessor/transformers/AsmStaticUsageTransformer.java new file mode 100644 index 0000000000..2f0f1b8a35 --- /dev/null +++ b/extended-mixin-processor/src/main/java/us/runelitepl/mixinprocessor/transformers/AsmStaticUsageTransformer.java @@ -0,0 +1,119 @@ +/* + * Copyright (c) 2019, ThatGamerBlue + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +package us.runelitepl.mixinprocessor.transformers; + +import org.objectweb.asm.ClassReader; +import org.objectweb.asm.ClassVisitor; +import org.objectweb.asm.ClassWriter; +import org.objectweb.asm.MethodVisitor; +import us.runelitepl.mixinprocessor.MixinProcessorMojo; +import us.runelitepl.mixinprocessor.util.RefUtils; + +import static org.objectweb.asm.Opcodes.ASM6; +import static org.objectweb.asm.Opcodes.GETSTATIC; +import static org.objectweb.asm.Opcodes.INVOKESTATIC; +import static org.objectweb.asm.Opcodes.PUTSTATIC; + +public class AsmStaticUsageTransformer extends AsmBaseTransformer +{ + + private String className; + private byte[] bytecode; + private final String TYPE_PREFIX = "us/runelitepl/mixins/"; + + public AsmStaticUsageTransformer(String className, byte[] bytecode) + { + this.className = className; + this.bytecode = bytecode; + } + + @Override + public byte[] transform() + { + ClassReader cr = new ClassReader(bytecode); + ClassWriter cw = new ClassWriter(cr, 0); + ClassVisitor cv = new ClassVisitor(ASM6, cw) + { + @Override + public MethodVisitor visitMethod(int access, String name, String descriptor, String signature, String[] exceptions) + { + MethodVisitor visitor = super.visitMethod(access, name, descriptor, signature, exceptions); + return new MethodVisitor(ASM6, visitor) + { + @Override + public void visitFieldInsn(int opcode, String owner, String name, String descriptor) + { + if ((opcode == GETSTATIC || opcode == PUTSTATIC) && owner.endsWith(RefUtils.STATICS_STRING)) + { + String oldName = name; + String originalOwner = owner.replace(TYPE_PREFIX, ""); + String temp = RefUtils.reobFieldNameDangerous(name, RefUtils.reobDescriptor(descriptor)); + if (temp == null) + { + MixinProcessorMojo.log("Failed to reobfuscate class name for field %s %s %s", owner, + name, descriptor); + throw new RuntimeException(); + } + owner = temp.split(" ")[0]; + if (RefUtils.shouldReobField(originalOwner, name, RefUtils.reobDescriptor(descriptor))) + { + name = temp.split(" ")[1]; + } + } + super.visitFieldInsn(opcode, owner, name, descriptor); + } + + @Override + public void visitMethodInsn(int opcode, String owner, String name, String descriptor, boolean isInterface) + { + if(opcode == INVOKESTATIC && owner.endsWith(RefUtils.STATICS_STRING)) + { + String originalOwner = owner.replace(TYPE_PREFIX, ""); + String temp = RefUtils.reobMethodName(RefUtils.STATICS_STRING, name, descriptor); + if (temp == null) + { + MixinProcessorMojo.log("Failed to reobfuscate class name for method %s %s %s", owner, + name, descriptor); + throw new RuntimeException(); + } + owner = temp.split(" ")[0]; + if (RefUtils.shouldReobMethod(originalOwner, name, descriptor)) + { + name = temp.split(" ")[1]; + } + } + super.visitMethodInsn(opcode, owner, name, descriptor, isInterface); + } + }; + } + }; + + cr.accept(cv, 0); + + return cw.toByteArray(); + } + +} diff --git a/extended-mixin-processor/src/main/java/us/runelitepl/mixinprocessor/transformers/DoNothingTransformer.java b/extended-mixin-processor/src/main/java/us/runelitepl/mixinprocessor/transformers/DoNothingTransformer.java new file mode 100644 index 0000000000..b5174d3bd7 --- /dev/null +++ b/extended-mixin-processor/src/main/java/us/runelitepl/mixinprocessor/transformers/DoNothingTransformer.java @@ -0,0 +1,56 @@ +/* + * Copyright (c) 2019, ThatGamerBlue + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +package us.runelitepl.mixinprocessor.transformers; + +import org.objectweb.asm.ClassReader; +import org.objectweb.asm.ClassVisitor; +import org.objectweb.asm.ClassWriter; + +public class DoNothingTransformer extends AsmBaseTransformer +{ + + private final String className; + private final byte[] bytecode; + + public DoNothingTransformer(String className, byte[] bytecode) + { + this.className = className; + this.bytecode = bytecode; + } + + @Override + public byte[] transform() + { + + ClassReader cr = new ClassReader(bytecode); + ClassWriter cw = new ClassWriter(cr, ClassWriter.COMPUTE_FRAMES); + + cr.accept(new ClassVisitor(ASM6, cw) + {}, 0); + + return cw.toByteArray(); + } +} \ No newline at end of file diff --git a/extended-mixin-processor/src/main/java/us/runelitepl/mixinprocessor/transformers/GetFieldDecoderTransformer.java b/extended-mixin-processor/src/main/java/us/runelitepl/mixinprocessor/transformers/GetFieldDecoderTransformer.java new file mode 100644 index 0000000000..72dcb89b4d --- /dev/null +++ b/extended-mixin-processor/src/main/java/us/runelitepl/mixinprocessor/transformers/GetFieldDecoderTransformer.java @@ -0,0 +1,196 @@ +/* + * Copyright (c) 2019, ThatGamerBlue + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +package us.runelitepl.mixinprocessor.transformers; + +import org.objectweb.asm.ClassReader; +import org.objectweb.asm.ClassVisitor; +import org.objectweb.asm.ClassWriter; +import org.objectweb.asm.MethodVisitor; +import org.objectweb.asm.Opcodes; +import us.runelitepl.mixinprocessor.MixinProcessorMojo; +import us.runelitepl.mixinprocessor.util.RefUtils; + +public class GetFieldDecoderTransformer extends AsmBaseTransformer +{ + + private final String className; + private final byte[] classFileBytecode; + + public GetFieldDecoderTransformer(String className, byte[] bytes) + { + this.className = className; + this.classFileBytecode = bytes; + } + + @Override + public void buildMethodList() + { + ClassReader cr = new ClassReader(classFileBytecode); + ClassWriter cw = new ClassWriter(cr, 0); + cr.accept(new ClassVisitor(Opcodes.ASM6, cw) + { + @Override + public MethodVisitor visitMethod(int access, String name, String desc, String signature, + String[] exceptions) + { + final boolean[] valid = {true}; + MethodVisitor visitor = super.visitMethod(access, name, desc, signature, exceptions); + return new MethodVisitor(Opcodes.ASM6, visitor) + { + int opcodeCount = 0; + + @Override + public void visitEnd() + { + if (valid[0]) + { + MixinProcessorMojo.log("Valid method: %s %s %s %s", access, name, desc, signature); + validMethods.add(access + " " + name + " " + desc + " " + signature); + } + } + + @Override + public void visitVarInsn(int opcode, int var) + { + if (opcode != Opcodes.ALOAD || var != 0 || opcodeCount != 0) + { + valid[0] = false; + } + opcodeCount++; + + super.visitVarInsn(opcode, var); + } + + @Override + public void visitFieldInsn(int opcode, String owner, String fieldName, String signature) + { + if (opcode != Opcodes.GETFIELD || opcodeCount != 1) + { + valid[0] = false; + } + opcodeCount++; + + super.visitFieldInsn(opcode, owner, fieldName, signature); + } + + @Override + public void visitLdcInsn(Object o) + { + if (!(o instanceof Integer) && !(o instanceof Long)) + { + valid[0] = false; + } + if (opcodeCount != 2) + { + valid[0] = false; + } + opcodeCount++; + super.visitLdcInsn(o); + } + + @Override + public void visitInsn(int opcode) + { + switch (opcode) + { + case Opcodes.IMUL: + if (opcodeCount != 3) + { + valid[0] = false; + } + break; + case Opcodes.IRETURN: + if (opcodeCount != 4) + { + valid[0] = false; + } + break; + default: + valid[0] = false; + break; + } + opcodeCount++; + super.visitInsn(opcode); + } + }; + } + }, 0); + } + + public byte[] transform() + { + buildMethodList(); + ClassReader cr = new ClassReader(classFileBytecode); + ClassWriter cw = new ClassWriter(cr, 0); + cr.accept(new ClassVisitor(Opcodes.ASM6, cw) + { + @Override + public MethodVisitor visitMethod(int access, String name, String desc, String signature, String[] exceptions) + { + MethodVisitor visitor = super.visitMethod(access, name, desc, signature, exceptions); + if (!validMethods.contains(access + " " + name + " " + desc + " " + signature)) + { + return visitor; + } + return new MethodVisitor(Opcodes.ASM6, visitor) + { + String target = null; + + @Override + public void visitFieldInsn(int opcode, String owner, String fieldName, String signature) + { + target = fieldName; + super.visitFieldInsn(opcode, owner, fieldName, signature); + } + + @Override + public void visitLdcInsn(Object o) + { + if (target != null) + { + if (o instanceof Long) + { + o = MixinProcessorMojo.fieldDecoders.getOrDefault( + RefUtils.deobClassName(className) + " " + target, 1L); + } + else + { + o = Math.toIntExact(MixinProcessorMojo.fieldDecoders.getOrDefault(RefUtils.deobClassName(className) + + " " + target, + 1L)); + } + } + MixinProcessorMojo.log("\tGetFieldDecoderTransformer: %s %s %s %s %s", + RefUtils.deobClassName(className), name, target, desc, o); + super.visitLdcInsn(o); + } + }; + } + }, 0); + return cw.toByteArray(); + } + +} diff --git a/extended-mixin-processor/src/main/java/us/runelitepl/mixinprocessor/transformers/ProvidedRemoverTransformer.java b/extended-mixin-processor/src/main/java/us/runelitepl/mixinprocessor/transformers/ProvidedRemoverTransformer.java new file mode 100644 index 0000000000..8334cad1cb --- /dev/null +++ b/extended-mixin-processor/src/main/java/us/runelitepl/mixinprocessor/transformers/ProvidedRemoverTransformer.java @@ -0,0 +1,101 @@ +/* + * Copyright (c) 2019, ThatGamerBlue + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +package us.runelitepl.mixinprocessor.transformers; + +import org.objectweb.asm.ClassReader; +import org.objectweb.asm.ClassVisitor; +import org.objectweb.asm.ClassWriter; +import org.objectweb.asm.MethodVisitor; +import org.objectweb.asm.Opcodes; +import org.objectweb.asm.tree.AnnotationNode; +import org.objectweb.asm.tree.ClassNode; +import org.objectweb.asm.tree.MethodNode; +import us.runelitepl.mixinprocessor.MixinProcessorMojo; + +public class ProvidedRemoverTransformer extends AsmBaseTransformer +{ + + private final String className; + private final byte[] bytecode; + + public ProvidedRemoverTransformer(String className, byte[] bytecode) + { + this.className = className; + this.bytecode = bytecode; + } + + public void buildMethodList() + { + ClassReader cr = new ClassReader(bytecode); + ClassNode node = new ClassNode(); + cr.accept(node, 0); + + for(Object obj : node.methods) + { + MethodNode method = (MethodNode) obj; + if(method == null) + { + MixinProcessorMojo.log("ProvidedRemoverTransformer: Method null?"); + continue; + } + if(method.visibleAnnotations == null) + { + continue; + } + for(Object obj2 : method.visibleAnnotations) + { + AnnotationNode annot = (AnnotationNode) obj2; + if(annot.desc.equals(AnnotationRemoverTransformer.makeAnnotationDescriptor("Provided"))) + { + validMethods.add(method.access + " " + method.desc + " " + method.name); + } + } + } + } + + @Override + public byte[] transform() + { + buildMethodList(); + ClassReader cr = new ClassReader(bytecode); + ClassWriter cw = new ClassWriter(cr, 0); + cr.accept(new ClassVisitor(Opcodes.ASM6, cw) + { + @Override + public MethodVisitor visitMethod(int access, String name, String desc, String signature, + String[] exceptions) + { + if(validMethods.contains(access + " " + desc + " " + name)) + { + return null; + } + return super.visitMethod(access, name, desc, signature, exceptions); + } + }, 0); + + return cw.toByteArray(); + } +} diff --git a/extended-mixin-processor/src/main/java/us/runelitepl/mixinprocessor/util/JavassistUtils.java b/extended-mixin-processor/src/main/java/us/runelitepl/mixinprocessor/util/JavassistUtils.java new file mode 100644 index 0000000000..4da33b643a --- /dev/null +++ b/extended-mixin-processor/src/main/java/us/runelitepl/mixinprocessor/util/JavassistUtils.java @@ -0,0 +1,44 @@ +/* + * Copyright (c) 2019, ThatGamerBlue + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +package us.runelitepl.mixinprocessor.util; + +import javassist.CannotCompileException; +import javassist.CtClass; + +import java.io.IOException; + +public class JavassistUtils +{ + + public static byte[] getClassBytecode(CtClass clazz) throws IOException, CannotCompileException + { + clazz.stopPruning(true); + byte[] retVal = clazz.toBytecode(); + clazz.defrost(); + return retVal; + } + +} diff --git a/extended-mixin-processor/src/main/java/us/runelitepl/mixinprocessor/util/RefUtils.java b/extended-mixin-processor/src/main/java/us/runelitepl/mixinprocessor/util/RefUtils.java new file mode 100644 index 0000000000..11b94125a0 --- /dev/null +++ b/extended-mixin-processor/src/main/java/us/runelitepl/mixinprocessor/util/RefUtils.java @@ -0,0 +1,347 @@ +/* + * Copyright (c) 2019, ThatGamerBlue + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +package us.runelitepl.mixinprocessor.util; + +import us.runelitepl.mixinprocessor.MixinProcessorMojo; + +import java.util.Map; + +public class RefUtils +{ + + public static final String TYPE_PREFIX = "us/runelitepl/mixins/"; + public static final String STATICS_STRING = "_Statics_"; + public static final String[] POSSIBLE_GARBAGE_TYPES = {"I", "B", "S"}; + + public static String deobClassName(String obbed) + { + for (Map.Entry entry : MixinProcessorMojo.classNames.entrySet()) + { + if (entry.getValue().equals(obbed)) + { + return entry.getKey(); + } + } + return obbed; + } + + public static String getObbedClassName(String deob) + { + return MixinProcessorMojo.classNames.getOrDefault(deob, deob); + } + + public static String reobClassName(String deobbed) + { + String old = deobbed; + if (deobbed.contains("/")) + { + deobbed = deobbed.replaceAll(TYPE_PREFIX, ""); + deobbed = getObbedClassName(deobbed); + if (deobbed == null) + { + return old; + } + } + return deobbed; + } + + @Deprecated + public static String reobFieldNameDangerous(String deob, String desc) + { + int i = 0; + Map.Entry e1 = null; + for (Map.Entry entry : MixinProcessorMojo.fieldNames.entrySet()) + { + if (entry.getKey().endsWith(deob + " " + desc)) + { + i++; + e1 = entry; + } + } + if (i == 1) + { + return e1.getValue(); + } + return null; + } + + @Deprecated + public static String reobMethodNameDangerous(String deob, String signature) + { + int i = 0; + Map.Entry e1 = null; + for (Map.Entry entry : MixinProcessorMojo.methodNames.entrySet()) + { + if (entry.getKey().endsWith(" " + deob + " " + signature)) + { + i++; + e1 = entry; + } + } + if (i == 1) + { + return e1.getValue(); + } + return null; + } + + public static String reobFieldName(String owner, String deob, String desc) + { + if (owner.equals(RefUtils.STATICS_STRING)) + { + return reobFieldNameDangerous(deob, desc); + } + String asd = MixinProcessorMojo.fieldNames.getOrDefault(owner + " " + deob + " " + desc, null); + if (asd == null) + { + return null; + } + return asd.split(" ")[1]; + } + + public static String reobMethodName(String owner, String deob, String signature) + { + String prefix = ""; + if(owner.startsWith(RefUtils.TYPE_PREFIX)) + { + owner = owner.substring(RefUtils.TYPE_PREFIX.length()); + } + if (deob.startsWith("prepend$")) + { + prefix = "prepend$"; + deob = deob.substring("prepend$".length()); + } + else if (deob.startsWith("append$")) + { + prefix = "append$"; + deob = deob.substring("append$".length()); + } + if (owner.equals(RefUtils.STATICS_STRING)) + { + String retVal = reobMethodNameDangerous(deob, signature); + if (retVal == null) + { + return null; + } + String[] split = retVal.split(" "); + split[1] = prefix + split[1]; + return String.join(" ", split); + } + String asd = MixinProcessorMojo.methodNames.getOrDefault(owner + " " + deob + " " + signature, null); + if (asd == null) + { + return null; + } + return prefix + asd.split(" ")[1]; + } + + @Deprecated + public static boolean shouldReobFieldDangerous(String deob, String desc) + { + int i = 0; + for (Map.Entry entry : MixinProcessorMojo.isFieldTagged.entrySet()) + { + if (entry.getKey().endsWith(deob + " " + desc)) + { + i++; + } + } + if (i == 1) + { + return true; + } + return false; + } + + @Deprecated + public static boolean shouldReobMethodDangerous(String deob, String desc) + { + int i = 0; + for (Map.Entry entry : MixinProcessorMojo.isMethodTagged.entrySet()) + { + if (entry.getKey().endsWith(" " + deob + " " + desc)) + { + i++; + } + } + if (i == 1) + { + return true; + } + return false; + } + + public static boolean shouldReobField(String owner, String deob, String desc) + { + if (owner.equals(RefUtils.STATICS_STRING)) + { + return shouldReobFieldDangerous(deob, desc); + } + return MixinProcessorMojo.isFieldTagged.getOrDefault(owner + " " + deob + " " + desc, false); + } + + public static boolean shouldReobMethod(String owner, String deob, String desc) + { + if(owner.startsWith(RefUtils.TYPE_PREFIX)) + { + owner = owner.substring(RefUtils.TYPE_PREFIX.length()); + } + if (owner.equals(RefUtils.STATICS_STRING)) + { + return shouldReobMethodDangerous(deob, desc); + } + return MixinProcessorMojo.isMethodTagged.getOrDefault(owner + " " + deob + " " + desc, false); + } + + public static String reobDescriptor(String descriptor) + { + if (!descriptor.startsWith("L")) + { + return descriptor; + } + if (!descriptor.contains("us/runelitepl/mixins/")) + { + return descriptor; + } + String orig = descriptor; + descriptor = descriptor.replace("us/runelitepl/mixins/", ""); + descriptor = descriptor.substring(1, descriptor.length() - 1); + descriptor = getObbedClassName(descriptor); + if (descriptor == null) + { + return orig; + } + return "L" + descriptor + ";"; + } + + public static String reobMethodDescriptor(String descriptor) + { + int strIndex = 0; + if (descriptor.charAt(0) != '(') + { + throw new IllegalArgumentException("sig is not a method signature: " + descriptor); + } + StringBuilder deobbed = new StringBuilder(1024 * 1024); + while (strIndex < descriptor.length()) + { + switch (descriptor.charAt(strIndex)) + { + case '(': + case ')': + case 'I': + case 'B': + case 'J': + case 'S': + case 'D': + case 'F': + case 'C': + case 'Z': + case 'V': + case '[': + deobbed.append(descriptor.charAt(strIndex)); + strIndex++; + break; + case 'L': + try + { + String sigPart = descriptor.substring(strIndex, descriptor.indexOf(";", strIndex) + 1); + String className = sigPart.substring(1, sigPart.length() - 1); + className = className.replace(TYPE_PREFIX, ""); + String obbedName = MixinProcessorMojo.classNames.getOrDefault(className, null); + if (obbedName == null) + { + obbedName = className; + } + deobbed.append("L" + obbedName + ";"); + strIndex += sigPart.length(); + } + catch (StringIndexOutOfBoundsException ex) + { + System.err.println( + "Method signature %s is probably missing a semi-colon".replace("%s", descriptor)); + throw ex; + } + break; + default: + throw new IllegalArgumentException("signature is invalid: " + descriptor); + } + } + return deobbed.toString(); + } + + public static String appendArgument(String desc, String append) + { + int strIndex = 0; + if (desc.charAt(0) != '(') + { + throw new IllegalArgumentException("sig is not a method signature: " + desc); + } + StringBuilder deobbed = new StringBuilder(1024 * 1024); + while (strIndex < desc.length()) + { + switch (desc.charAt(strIndex)) + { + case ')': + deobbed.append(append); + deobbed.append(")"); + strIndex++; + break; + case '(': + case 'I': + case 'B': + case 'J': + case 'S': + case 'D': + case 'F': + case 'C': + case 'Z': + case 'V': + case '[': + deobbed.append(desc.charAt(strIndex)); + strIndex++; + break; + case 'L': + try + { + String sigPart = desc.substring(strIndex, desc.indexOf(";", strIndex) + 1); + deobbed.append(sigPart); + strIndex += sigPart.length(); + } + catch (StringIndexOutOfBoundsException ex) + { + System.err.println( + "Method signature %s is probably missing a semi-colon".replace("%s", desc)); + throw ex; + } + break; + default: + throw new IllegalArgumentException("signature is invalid: " + desc); + } + } + return deobbed.toString(); + } + +} diff --git a/extended-mixin-processor/src/main/java/us/runelitepl/mixinprocessor/util/WebUtils.java b/extended-mixin-processor/src/main/java/us/runelitepl/mixinprocessor/util/WebUtils.java new file mode 100644 index 0000000000..0b4364be6b --- /dev/null +++ b/extended-mixin-processor/src/main/java/us/runelitepl/mixinprocessor/util/WebUtils.java @@ -0,0 +1,68 @@ +/* + * Copyright (c) 2019, ThatGamerBlue + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +package us.runelitepl.mixinprocessor.util; + +import java.io.BufferedReader; +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.net.URL; +import java.net.URLConnection; +import java.nio.charset.StandardCharsets; +import java.util.stream.Collectors; + +public class WebUtils +{ + + public static String getUrlContent(String url) throws IOException + { + String pageText; + URLConnection conn = new URL(url).openConnection(); + try (BufferedReader reader = new BufferedReader( + new InputStreamReader(conn.getInputStream(), StandardCharsets.UTF_8))) + { + pageText = reader.lines().collect(Collectors.joining("\n")); + } + return pageText; + } + + public static byte[] downloadFile(String urlText) throws IOException { + URL url = new URL(urlText); + ByteArrayOutputStream output = new ByteArrayOutputStream(); + + try (InputStream inputStream = url.openStream()) { + int n = 0; + byte [] buffer = new byte[ 1024 ]; + while (-1 != (n = inputStream.read(buffer))) { + output.write(buffer, 0, n); + } + } + + return output.toByteArray(); + } + +} diff --git a/extended-mixin-processor/src/main/resources/mixin-processor-license.txt b/extended-mixin-processor/src/main/resources/mixin-processor-license.txt new file mode 100644 index 0000000000..bd0eb98d86 --- /dev/null +++ b/extended-mixin-processor/src/main/resources/mixin-processor-license.txt @@ -0,0 +1,22 @@ + Copyright (c) 2019, ThatGamerBlue + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. \ No newline at end of file diff --git a/extended-mixins/gamepack.deob.jar.op.json b/extended-mixins/gamepack.deob.jar.op.json new file mode 100644 index 0000000000..347a0fee71 --- /dev/null +++ b/extended-mixins/gamepack.deob.jar.op.json @@ -0,0 +1,864 @@ +{ + "aa.aa(IILw;I)V" : -2035282490, + "aa.ab(IILjava/util/HashSet;IB)V" : 1, + "aa.ae(Lat;Ljd;IIFB)V" : 2, + "aa.ah(Ljava/util/HashSet;IIB)V" : 3, + "aa.ai(Ljd;I)Lay;" : 868142981, + "aa.aq(IIIIII)Ljava/util/List;" : 1174387475, + "aa.at(Ljd;IIB)V" : 2, + "aa.av(IILjava/util/HashSet;IB)V" : 1, + "aa.aw(Ljd;IIIIB)V" : 2, + "aa.az(IIIIB)V" : 1, + "aa.b(I)V" : -734187576, + "aa.c(IILw;[Llv;I)V" : -2131355084, + "aa.e(ILar;[Llv;Liz;Liz;I)V" : 16776959, + "aa.f(IIIILw;I)V" : 935523592, + "aa.g(IIIB)V" : 8, + "aa.h(Liz;Ljava/lang/String;Ljava/lang/String;I)Llv;" : -751125902, + "aa.h(Ljava/util/HashSet;Ljava/util/List;I)V" : 761583671, + "aa.js(Lia;S)V" : 179, + "aa.k(IILw;Lar;I)V" : -912761612, + "aa.l(Lar;[Llv;Laf;I)V" : -1342196991, + "aa.m(I)V" : -1460781870, + "aa.n(Liz;B)Z" : -3, + "aa.o(Lar;[Llv;Laf;I)V" : 1404817235, + "aa.p(Ljy;IIILw;I)V" : 451857695, + "aa.q(Ljava/util/List;I)V" : 457654499, + "aa.r(IIILjava/util/HashSet;I)V" : 866122217, + "aa.t(Ljava/util/HashSet;IIB)V" : 1, + "aa.x(Liz;Ljava/lang/String;Ljava/lang/String;I)[Llv;" : -6949303, + "aa.y(IILw;Lar;Laf;I)V" : -1385397238, + "ab.ar(Ldo;I)V" : -1176858873, + "ac.ao(ILcs;ZI)I" : 1813401528, + "ac.h(II)V" : 1006232361, + "ac.jy([Lia;IIIIIIIB)V" : -1, + "ad.hv(IIIIIIII)V" : -430708112, + "ad.it(I)V" : -983568512, + "ae.t(II)I" : 784278107, + "af.a(I)Z" : -2131769709, + "af.a(Liz;Liz;I)Z" : -1899763683, + "ag.a(Lgx;IB)V" : -1, + "ag.ai(ILcs;ZB)I" : -1, + "ag.f(III)Lif;" : -435462727, + "ag.g(IIII)Z" : 318472532, + "ag.h(IIII)[I" : -199162200, + "ag.p(I)V" : -1011260827, + "ag.x(IIS)Z" : 5119, + "ah.kc(Lia;II)Ljava/lang/String;" : -1474185799, + "aj.cg(Lgx;ZI)V" : -1515872014, + "aj.ch(Lgx;Lgx;IZB)V" : 0, + "aj.jw(Lia;III)V" : 572830405, + "aj.kk(Lia;I)Ljava/lang/String;" : -96310975, + "aj.x(Lge;II)V" : 628965387, + "ak.ki(II)V" : -1090851287, + "ak.s(Ljava/lang/String;I)Z" : -1560533677, + "an.a(Lag;B)V" : -1, + "an.at(ILcs;ZI)I" : 1073402399, + "an.g(III)Z" : 1060896560, + "an.h(III)Lif;" : -175568126, + "an.iw(Ljg;IIIS)V" : 1400, + "an.m(I)V" : 734935008, + "an.s(IIII)Z" : -1346882543, + "an.x(IIIB)[I" : 2, + "ap.a(I)V" : 75666286, + "ap.g(I)I" : 2098880503, + "ap.h(I)V" : 1211258439, + "aq.a(Lag;B)V" : -1, + "aq.g(III)Z" : 1060896560, + "aq.h(III)Lif;" : -175568126, + "aq.iu(IIIILjava/lang/String;Ljava/lang/String;III)V" : -1659892465, + "aq.s(IIII)Z" : -1346882543, + "aq.x(IIIB)[I" : 2, + "ar.a(IIIIIIIII)V" : -2059524070, + "ar.aj(ILcs;ZI)I" : 1205981872, + "ar.b(I)V" : -901714140, + "ar.e(I)V" : -478549233, + "ar.f(I)V" : 452761503, + "ar.g(II)I" : 1269863705, + "ar.h(I)V" : -1899763684, + "ar.m(I)V" : -1516729905, + "ar.n(I)V" : -58041941, + "ar.p(B)V" : 2, + "ar.q(I)V" : -1649013667, + "ar.s(III)I" : -1801980882, + "ar.s(Lbr;II)V" : 1598019254, + "ar.x(I)V" : 1645884426, + "as.a(Lgx;I)V" : -1899763684, + "as.hn(III)V" : -16711937, + "as.s(Lfs;Lgb;I)Lfa;" : 92068864, + "as.s(Lgx;I)V" : -1171328621, + "at.aw(Lfo;IIB)Lcz;" : -1, + "at.hy(III)I" : 1565568466, + "at.k(III)Z" : 600452826, + "at.o(III)Z" : 915702491, + "at.u(B)Z" : 10, + "at.y(III)Z" : -1304203093, + "av.a(Liz;Ljava/lang/String;ZI)V" : -1168992218, + "av.b(I)V" : -317778031, + "av.f(IIIIIIIIIII)Ljava/util/List;" : 1272296080, + "av.fd(I)V" : -1013343582, + "av.g(IIIIIIIII)V" : 1968023039, + "av.gn(I)V" : -1529421636, + "av.h(IIIILjava/util/HashSet;III)V" : -1503826011, + "av.lt(IIIZI)V" : 1023839648, + "av.n(III)F" : -2092073595, + "av.p(IIIII)Li;" : 54912543, + "av.x(IIIIIIIILjava/util/HashSet;Ljava/util/HashSet;IIZI)V" : -350567508, + "aw.gf(I)Z" : -25482427, + "ax.ge(IIIIS)V" : 254, + "ay.a(Lge;I)V" : 413663544, + "ay.f(II)V" : -1832203148, + "ay.fa(Lia;III)V" : -2035282490, + "ay.fb(IB)V" : -1, + "ay.s(II)Ljd;" : 256302879, + "ay.s(Lin;IIIBZI)V" : 488112187, + "az.jl(Lia;IIZI)V" : 321367859, + "az.k(IIB)Z" : 1, + "az.s(III)I" : -1587813654, + "b.s(IB)Ljy;" : 1, + "b.x(B)I" : 2, + "ba.a(IB)Lcs;" : -1, + "ba.a(II)V" : -1476367704, + "ba.m([BIIIIIIILen;[Lfk;S)V" : 3138, + "ba.q(I)Ldv;" : 270868885, + "ba.s(IIIIB)V" : -1, + "bb.a(IIILfk;I)Z" : -747978109, + "bb.hw(B)V" : 0, + "bc.a(I)J" : 1696302624, + "bc.aa(Ljava/lang/String;S)V" : 335, + "bc.ah(Lkx;B)Z" : 0, + "bc.c(Ljava/lang/String;I)V" : 582720271, + "bc.f(Lkx;ZB)Z" : 1, + "bc.g(Lgx;IB)V" : 0, + "bc.im(III)V" : 2028526097, + "bc.l(B)Z" : 2, + "bc.m(Ljava/lang/String;B)V" : 125, + "bc.o(Ljava/lang/String;I)V" : -1157261130, + "bc.p(Lkx;I)Z" : -1555038210, + "bc.v(I)Z" : -1393904298, + "bc.x(I)V" : 1950661086, + "bd.ie(II)V" : 181127396, + "bd.o(ILcs;ZI)I" : 413151829, + "be.iv(IIIII)V" : -325933819, + "be.n(Lia;II)V" : 1817349453, + "be.s(Ljava/lang/String;B)Ljava/io/File;" : 2, + "be.u(ILcs;ZB)I" : 0, + "be.x([BB)Lcs;" : 11, + "bf.aa(B)V" : 101, + "bf.ab(I)V" : 142936820, + "bf.ah(S)V" : 200, + "bf.ai(Ljava/lang/String;I)V" : -790939352, + "bf.al(I)Llh;" : -1432486026, + "bf.an(I)V" : -668210151, + "bf.aq(B)Ljava/awt/Container;" : 17, + "bf.as(ILjava/lang/String;ZI)V" : -1600069416, + "bf.b(I)V" : -1709249029, + "bf.c(I)Z" : 671133062, + "bf.e(I)V" : -721353869, + "bf.f(Ljava/lang/Object;I)V" : 721091452, + "bf.h(III)V" : -508854098, + "bf.k(IIIB)V" : 1, + "bf.l(B)V" : 1, + "bf.p(B)Lff;" : 1, + "bf.t(I)V" : -1101149948, + "bf.v(I)V" : 546631502, + "bg.a(IS)Ljc;" : 129, + "bh.a(Lm;Lm;I)I" : -513481130, + "bh.g(I)Lbt;" : -1460580553, + "bh.gg(I)V" : 283302901, + "bi.e(ILcs;ZI)I" : -1073407294, + "bi.gd(I)V" : -2017298644, + "bj.a(IB)Z" : 29, + "bj.a(Lgx;I)Ljava/lang/Integer;" : 781966774, + "bk.gu(Lbq;I)V" : -847852752, + "bk.jc(II)Z" : -1251166831, + "bk.ku(IIII)Lbk;" : -2131355082, + "bl.a(CI)B" : 1789306866, + "bl.f(Ljava/lang/Object;ZI)[B" : -1859268163, + "bl.g(I)Z" : 459972945, + "bl.jv(Lia;I)Lia;" : 388836110, + "bl.m(B)V" : -2, + "bl.p(B)V" : 3, + "bl.x(I)V" : -2005241970, + "bl.x(IB)Z" : 0, + "bm.a(IIIIB)V" : 0, + "bm.s(IB)Lby;" : -2, + "bn.g(I)V" : 260585226, + "bn.id([Lia;IIIIIIIIB)V" : 8, + "bn.io(Ljava/lang/String;Lia;B)Ljava/lang/String;" : 30, + "bn.s(ZZI)Llv;" : 1183417792, + "bn.x(Lbf;B)V" : 5, + "bo.a(IB)Ljf;" : 3, + "bo.av(ILcs;ZI)I" : -1854356000, + "bo.f(Lge;B)V" : 2, + "bo.f(Ljava/awt/event/MouseEvent;I)I" : 578646374, + "bo.il(IIIII)V" : 1757949424, + "bp.a(I)Z" : -1433048567, + "bp.a(II)Lln;" : 302241702, + "bq.a(Lin;II)V" : 1001198726, + "bq.bd(IIIIIII)V" : 611628477, + "bq.bi(II)V" : -1433857362, + "bq.bz(IIIIIII)V" : 1567325514, + "bq.f(ILcs;ZI)I" : -1899763682, + "bq.f(Lbu;Lbu;IZIZI)I" : 1226102711, + "bq.h(ILcs;ZB)I" : -1, + "br.kv(Ljava/lang/String;ZI)V" : 1790593369, + "bs.a(I)V" : -355288644, + "bs.av([BB)[B" : 1, + "bs.ji(III)V" : 548342891, + "bt.at(I)V" : -1263025777, + "bt.gi(Lbq;II)V" : -1529490784, + "bt.s(I)Lgx;" : 74387722, + "bt.s(IIII)I" : -781205087, + "bt.v(ILcs;ZB)I" : 1, + "bu.a(IIB)I" : 1, + "bu.b(I)Z" : -1114257374, + "bu.e(I)Z" : -1716454843, + "bu.h([BZI)Ljava/lang/Object;" : 738732180, + "bu.n(I)Z" : 1001949846, + "bu.r(I)Z" : -1318371617, + "bu.t(I)Z" : -556326313, + "bv.a(I)V" : 1118589205, + "bv.is(Ljava/lang/String;Ljava/lang/String;IIIIZI)V" : 936248646, + "bw.a(IILfu;Lfk;I)Z" : -1973878234, + "bw.a(Lgx;B)V" : 9, + "bw.b(IIBI)V" : 1555038206, + "bw.e(IIBB)V" : -1, + "bw.h(B)V" : 126, + "bw.h(I)Z" : -1285553478, + "bw.m(B)I" : 1, + "bw.p(B)V" : 8, + "bw.q(I)Ldv;" : 270868885, + "bw.r(I)Z" : -1348553985, + "bw.s(B)Z" : 1, + "bw.x(B)V" : 100, + "bx.q(Lia;I[B[BB)V" : 0, + "bx.s(IB)Ljx;" : -2, + "by.ad(II)V" : -264070302, + "by.ah(IZII)V" : 261286606, + "bz.jn([Lia;Lia;ZI)V" : 1459213909, + "bz.t(ILcs;ZB)I" : 3, + "c.ib(IIIII)V" : 27853463, + "c.r(I)V" : 1334087347, + "cb.aa(ILcs;ZI)I" : 599221667, + "cb.az(ILcs;ZI)I" : -1971585838, + "cb.iz(IIIIIIIII)V" : 1136998422, + "cf.a([Ljava/lang/String;[SIIB)V" : 82, + "cf.q(IIIZII)J" : -184362900, + "cf.s(IB)Lia;" : -1, + "cg.h(II)I" : 368462775, + "cg.n(IIIB)I" : 13, + "ch.aw(ILcs;ZB)I" : -1, + "ch.s(CII)C" : 1742925831, + "ch.x(Ljava/lang/String;B)Ljava/lang/Class;" : 0, + "ck.h(B)V" : 1, + "ck.s(B)V" : 1, + "ck.x(IS)Z" : 2047, + "client.ae(I)V" : 839842829, + "client.aj(I)V" : -1093400736, + "client.au(ZB)V" : -2, + "client.av(B)V" : 1, + "client.ff(II)V" : -920552638, + "client.fi(I)V" : 610258376, + "client.fm(I)V" : -465272380, + "client.fo(I)V" : -401328439, + "client.fu(B)V" : 0, + "client.gh(B)V" : 2, + "client.gl(I)V" : -265842676, + "client.hg(Lck;I)Z" : 16776961, + "client.ic(I)Z" : 1896111338, + "client.ip(ZB)V" : 15, + "client.iy(I)V" : -1774724327, + "client.ja(Lia;I)V" : 838714686, + "client.ju(I)V" : -756058437, + "client.ln(I)Lkx;" : 49412185, + "client.r(I)V" : -1611272948, + "client.x(CII)I" : 1762474913, + "cm.a(IBI)V" : 65534, + "cm.hd(IIIIIIII)V" : -759447942, + "cm.q(I)Ldv;" : 270868885, + "cm.r(I)Z" : -1348553985, + "cm.s(IIZI)V" : 1378146881, + "co.q(I)Ldv;" : 270868885, + "cq.a(III)V" : -1070186518, + "cq.b(B)V" : -1, + "cq.gr(Ljava/lang/String;ZI)V" : -389570792, + "cq.n(B)V" : 9, + "cq.p(B)V" : -1, + "cq.q(I)V" : 628907907, + "cq.s(IB)I" : -1, + "cq.x(II)Ljava/lang/String;" : -324172300, + "cr.a(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;B)Lbl;" : 1, + "cr.s(II)Lbl;" : -1908347194, + "ct.a(IIIII)V" : -1426623809, + "ct.g(I)V" : 2019467883, + "ct.kb(Ljava/lang/String;I)V" : 1782634305, + "ct.p(Liz;II)Llv;" : 495439929, + "ct.q(I)Ldv;" : 270868885, + "ct.s(II)V" : 63583155, + "cx.m(B)Lld;" : 3, + "cy.hr(IB)V" : 1, + "cz.aj(II)V" : 1893251924, + "cz.at(I)V" : 1969212074, + "cz.au(B)V" : -1, + "cz.p([BIILen;[Lfk;I)V" : -402226336, + "da.b(CB)Z" : 1, + "da.f([BIII)I" : 1742376717, + "da.s([BIIB)V" : -1, + "da.x(ZI)V" : 495439931, + "de.g(CB)C" : 13, + "de.g(IIB)Lcs;" : 1, + "de.g([BB)V" : 2, + "de.x(B)V" : 9, + "di.a([Ljava/lang/CharSequence;III)Ljava/lang/String;" : -1699387444, + "di.jr(Lia;IB)I" : 17, + "di.ko(Lia;IIII)V" : -529963254, + "di.y(ILcs;ZI)I" : 1635420646, + "dn.a([BI)[B" : -56213800, + "dn.g(II)I" : -1564370717, + "dn.ka([Lia;II)V" : -958295899, + "dn.s(IS)I" : 16382, + "dp.a(Ljava/lang/String;Ljava/lang/Throwable;B)V" : -1, + "dp.gz(I)V" : 174309589, + "ds.a(II[II)Lce;" : -1829245270, + "ds.g(I[II)Lce;" : -915277422, + "ds.s(II[II)Lce;" : 453356516, + "ds.x(I[IB)Lce;" : 0, + "du.a(I)I" : 705859952, + "du.f(II)Z" : -159952212, + "du.g(II)[I" : 1412569886, + "du.m(IB)V" : 0, + "du.p(I)V" : 674605951, + "du.x(II)I" : -1592582549, + "dw.b(Len;[Lfk;I)V" : 1851320005, + "dw.n(Lbu;B)V" : -1, + "dx.a(IIS)I" : 4999, + "dx.f(I)V" : -787206662, + "dx.g(I)V" : -1550843987, + "dx.h([BIIB)V" : 2, + "dx.m(B)V" : 3, + "dx.p([BIIB)V" : 1, + "dy.h(Ljava/lang/CharSequence;IZI)I" : 1182321164, + "dz.s(II)Ljh;" : -12306362, + "dz.s(II)Ljt;" : -1553990030, + "e.a(I[BLfb;B)V" : 0, + "e.fv(IB)V" : 6, + "e.fz(IIB)V" : 0, + "e.ho(ZLge;I)V" : -753481020, + "ea.a(Lkl;Lkl;I)I" : 236661620, + "ed.a(Lkl;Lkl;I)I" : -1524067389, + "ed.gt(Lbq;IIIIII)V" : -845922968, + "ee.a(Lkl;Lkl;S)I" : 1500, + "ee.fw(B)V" : 5, + "ef.g(Ljava/lang/String;ILjava/lang/String;I)Z" : -1896003594, + "ef.hc(ZLge;B)V" : 49, + "ef.jg([Lia;IB)V" : 25, + "ef.x(IZIZI)V" : -1718068584, + "eg.a(Lkl;Lkl;I)I" : 843610507, + "eg.ac(ILcs;ZB)I" : 127, + "eg.s(IB)Ljn;" : 8, + "eh.a(II)Lju;" : -686750587, + "eh.ft(ZS)V" : 513, + "eh.s(II)Lix;" : 449632382, + "eh.s(Ljava/io/File;ZI)Z" : 16711935, + "ei.jd([Lia;IIIZI)V" : -720054478, + "ei.p(II)I" : 1187869470, + "ej.a(Lkl;Lkl;I)I" : -1498357881, + "ej.gs(Lbw;I)Z" : 2018992164, + "ek.s(IIILjy;II)V" : 655507997, + "el.a(Lkl;Lkl;I)I" : -1691508553, + "el.x(I)V" : -992218542, + "em.a(Ljava/io/File;I)V" : -919664594, + "em.kl(Lia;IIII)V" : -32275069, + "em.s(Ljava/lang/CharSequence;I)Z" : -1575825717, + "ep.ab(ILcs;ZI)I" : -1899763684, + "ep.b(II)Lei;" : -1071218384, + "ep.s(III)V" : -523356652, + "eq.a(Lkl;Lkl;B)I" : -2, + "er.jo(Lia;IIIIIII)V" : -37715201, + "er.m(ILcs;ZB)I" : -1, + "es.n([BI)V" : 1477873953, + "et.q(CI)Z" : 601159240, + "et.x(II)I" : -4454457, + "eu.a(Lkl;Lkl;I)I" : -847269360, + "eu.s(III)V" : -1808152535, + "ev.hi(IIZB)V" : 18, + "ey.a(Lkl;Lkl;I)I" : 2046444105, + "ey.g(Ljava/lang/String;Ljava/lang/String;ZB)Lda;" : 2, + "f.a(Lm;Lm;I)I" : 1846671743, + "f.g(ILcs;ZI)I" : 908537385, + "f.g(Lgx;II)V" : -1787245950, + "f.kp(Ljava/lang/String;ZB)Ljava/lang/String;" : 0, + "f.kt(Lia;I)I" : 557758524, + "fa.hj(IIII)I" : -127120834, + "fa.p(Lkt;Lkt;Lkt;ZB)V" : -1, + "fa.x(B)V" : -1, + "fb.a(II)[B" : 663352422, + "fb.g(I[BIZB)Z" : 15, + "fb.s(I[BII)Z" : 345161743, + "fc.lh(I)V" : -861855527, + "fc.r(ILcs;ZI)I" : 2006195166, + "fg.a(B)V" : 2, + "fg.a(S)Lfa;" : 10144, + "fg.h(Lge;II)Z" : 97676263, + "fg.ix(II)Ljava/lang/String;" : 198383047, + "fg.s(III)I" : 1327459530, + "fh.hs(IIB)V" : 0, + "fh.s(II)Ljg;" : 620258019, + "fi.a(II)Z" : 1354142902, + "fi.a(Lll;B)I" : -1, + "fi.f(B)V" : 0, + "fi.g(I)I" : -827937127, + "fi.k([BIII)V" : -1233693102, + "fi.kw(Ljava/lang/String;B)V" : 3, + "fi.x(IIIIIIB)I" : 2, + "fi.x([BIIB)I" : 1, + "fj.a(II)Z" : -1899763683, + "fj.a(Ljava/io/File;Ljava/io/File;I)V" : -1114998342, + "fj.g(B)I" : 0, + "fj.g(IIIIIIB)I" : 79, + "fj.h(B)V" : 0, + "fj.s(B)I" : 1, + "fj.x([BIII)I" : -1210405788, + "fk.a(I)V" : -611770194, + "fk.g(IIIIZB)V" : 1, + "fk.m(IIIIIZB)V" : 1, + "fk.p(IIIIZI)V" : -500057817, + "fk.s(IIIIZI)V" : 1637050670, + "fl.a(II)Lje;" : 1521679245, + "fm.ht(IIII)V" : -523356652, + "fo.a([BILjava/lang/CharSequence;I)I" : 1159428966, + "fo.g([BIIII[Lfk;I)V" : 1327459530, + "fp.s(III)I" : 1327459530, + "ft.gc(Lbw;ZS)V" : 257, + "fu.as(ILcs;ZI)I" : 302016509, + "fu.s(Lge;B)V" : 48, + "fv.a(Liz;Liz;ZII)V" : -1720129294, + "fv.g(IIB)I" : 13, + "fw.s(IS)V" : 259, + "fx.a(B)Z" : 3, + "fx.ar(ILcs;ZI)I" : -31137372, + "fx.s([BIIB)V" : 70, + "fy.a([BII[BII)I" : 1944979934, + "fy.s([BI[BIIB)I" : 20, + "fz.q(Llv;I)V" : -1078540656, + "g.kx(S)V" : 2502, + "gb.a(B)I" : 1, + "gb.g(I)V" : 521895284, + "gb.s(I)I" : 99718613, + "gb.x(I)V" : -155012128, + "gc.a(IIII)I" : -1899763684, + "gc.c(ILcs;ZB)I" : -1, + "gc.h(IIIZIZB)V" : 23, + "gc.u(III)I" : 23878205, + "ge.a(Liz;IIB)[Lld;" : 23, + "ge.jp(I)Z" : -703700792, + "ge.jq(II)I" : 1887118654, + "ge.jr(I)I" : -1075465045, + "ge.jt([BIII)V" : 1292793924, + "ge.kj(I)V" : -91714, + "gh.l(ILcs;ZB)I" : 76, + "gi.p(Ljava/lang/CharSequence;B)I" : 8, + "gj.ga(I)V" : -2035282490, + "gm.x(Ljava/lang/CharSequence;I)[B" : -1293404993, + "gn.a(Lgx;[BI)V" : -858327323, + "go.a(IZI)[B" : -1296589171, + "gq.a(Ljava/lang/CharSequence;Ljava/lang/CharSequence;IB)I" : 5, + "gq.h(IIB)I" : 1, + "gq.kr(IIIILld;Lhk;I)V" : -1418612472, + "gx.ac(B)I" : 31, + "gx.ad(B)I" : -1, + "gx.ai([BIII)V" : -594273166, + "gx.aj(S)Ljava/lang/String;" : 257, + "gx.ak([IIII)V" : -81741600, + "gx.al(B)I" : -1, + "gx.am([IIIB)V" : 0, + "gx.ao(I)I" : -316163985, + "gx.ap([II)V" : 1621051798, + "gx.aq(I)I" : -442414275, + "gx.ar(I)Ljava/lang/String;" : 770756333, + "gx.as(I)Ljava/lang/String;" : -721135627, + "gx.au(I)Ljava/lang/String;" : 1888102756, + "gx.aw(I)I" : -2142523386, + "gx.ax([II)V" : -1139374613, + "gx.az(I)I" : -1651491166, + "gx.b(ZI)V" : 1173873020, + "gx.be(S)Z" : 1107, + "gx.bu(I)I" : 2024662838, + "gx.by(I)I" : 1509644456, + "gx.c(II)V" : 1219514079, + "gx.ch([BIII)V" : 763323993, + "gx.e(Ljava/lang/String;I)V" : 1504225874, + "gx.f(IZI)Ljava/lang/String;" : 582940071, + "gx.g(I)V" : -134910295, + "gx.h(ZI)V" : 1980995418, + "gx.l(Ljava/lang/CharSequence;I)V" : 1863463456, + "gx.o([BIII)V" : -757753561, + "gx.t(Ljava/lang/String;I)V" : -997423168, + "gx.v(II)V" : -1392094080, + "gy.gq(Lbq;I)V" : 33031345, + "gz.ly(I)V" : 1339304, + "h.p(Lbu;Lbu;IZI)I" : -1748952325, + "h.s(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;I)V" : 763156645, + "hb.a(Lhl;[IIIII)V" : 1090105654, + "hb.hf(B)V" : -1, + "hb.s(Lhl;II)V" : -809158812, + "hc.a(Lds;[B[IB)Z" : 2, + "hc.gv(III)V" : -543069418, + "hc.r(CI)Z" : 1679390240, + "hk.a(III)Z" : -1128121077, + "hk.as(Ljy;B)Z" : 1, + "hk.b(Lia;IIIB)V" : 3, + "hl.an(ILcs;ZI)I" : -1910103371, + "hl.x(ILcs;ZI)I" : 385664937, + "hn.ab(II)V" : -36819028, + "hn.ah(II)V" : -1345756874, + "hn.ak(Lhl;I)I" : -520794056, + "hn.al(II)V" : -598595792, + "hn.am(Lhl;I)I" : -1122132199, + "hn.an(I)V" : 59932716, + "hn.ao(IS)V" : 128, + "hn.at(IB)V" : 1, + "hn.aw(II)V" : 167541606, + "hn.ax(Lhl;I)I" : 657286058, + "hn.b(Lhx;ZI)V" : -1551737624, + "hn.be(Lhl;[IIII)Z" : 92154578, + "hn.bf(B)V" : 1, + "hn.bo(Lhl;I)Z" : 1592628248, + "hn.g(Lhx;Liz;Lds;II)Z" : 338728781, + "hn.k(IIIB)V" : 1, + "hn.ls(Lgx;I)V" : -1236370027, + "hn.o(III)V" : 522712138, + "hn.u(IIII)V" : -1441077132, + "hn.y(Lhl;ZB)V" : 1, + "i.a(IB)Ljq;" : 13, + "i.m(II)I" : 328778210, + "ia.a([BI)Ljava/lang/String;" : -353252804, + "ia.b(ZB)Lld;" : 7, + "ia.e(IB)Lld;" : 16, + "ia.f(Lgx;B)V" : 7, + "ia.h(Lgx;I)V" : -1234429702, + "ia.m(Lgx;B)[I" : -1, + "ia.n(I)Lkt;" : 421753985, + "ia.o(ILjava/lang/String;I)V" : -1333519203, + "ia.p(Lgx;I)[Ljava/lang/Object;" : 542349862, + "ia.r(Lju;IZLil;B)Ldv;" : -2, + "ia.t(ZI)Lhk;" : -51731421, + "ic.b(Liz;IIB)Z" : -1, + "if.g([Lbu;II[I[II)V" : 1383511622, + "if.s(Lif;I)Z" : 818064734, + "ig.hu(Lbj;B)V" : 2, + "ii.n(IIIIIZB)Lld;" : 2, + "ik.g(Lge;I)V" : 1244850771, + "ik.hq(Lfh;I)V" : -1237176758, + "il.a([I[IZII)V" : -1797663590, + "il.f(I)V" : 684089267, + "il.g(IZI)V" : -310896557, + "il.h(Lgx;B)V" : 2, + "il.he(IIIIII)V" : 1597666720, + "il.m(I)Ldk;" : -398095808, + "il.p(Lju;ILju;IB)Ldv;" : 0, + "il.q(I)I" : -1107905560, + "il.s(IZI)V" : 258827147, + "in.cl(I)I" : -1072006222, + "in.dg(Lfb;I[BZB)V" : 1, + "in.dl(B)V" : 0, + "in.dn(II)Z" : 1536737195, + "in.ds(I[BZZI)V" : 956902428, + "in.dt(I)I" : -1062754734, + "in.dz(III)V" : -1693261231, + "in.q(II)I" : 1178383852, + "in.r(IB)V" : 9, + "io.p(ILcs;ZB)I" : 1, + "ip.hl(ZLge;I)V" : 1467913083, + "iq.f(IILld;FI)V" : 704611128, + "iq.g(IB)Lld;" : 0, + "iq.gb(IIIIZI)V" : 1785115947, + "iq.p(Lld;Lld;Llh;B)V" : 1, + "iq.s(II)V" : -2029849843, + "iq.x(III)V" : -2042722903, + "ir.f(I)V" : -2131355084, + "iu.ig(Lbw;IIII)V" : -685713479, + "iu.kz(IIIILld;Lhk;B)V" : 8, + "iv.a(Ljava/lang/CharSequence;I)Ljava/lang/String;" : -1913197059, + "iw.fh(IIB)V" : 2, + "iy.a(II)Lja;" : 299293337, + "iz.a([BB)V" : -1, + "iz.ab(Ljava/lang/String;Ljava/lang/String;I)Z" : 1244245246, + "iz.b(II)[B" : 987310919, + "iz.e(II)[B" : -1294518996, + "iz.f(II)Z" : -2035474006, + "iz.h(IIB)Z" : 0, + "iz.k(I)V" : -1119601835, + "iz.m(I)Z" : 35823373, + "iz.n(III)[B" : 516194823, + "iz.p(II)Z" : 541672068, + "iz.t(II)[I" : 431985491, + "iz.u(I)V" : -1524099318, + "iz.v(I[II)Z" : 227748206, + "iz.x(II[II)[B" : -834173405, + "j.a(Lag;B)V" : -1, + "j.g(CI)C" : -981963683, + "j.g(III)Z" : 1060896560, + "j.h(III)Lif;" : -175568126, + "j.hm(IIIIIIIIIB)V" : 13, + "j.iq(II)Ljava/lang/String;" : 1836496129, + "j.s(CI)Z" : 197071592, + "j.s(IIII)Z" : -1346882543, + "ja.g(Lgx;II)V" : 1365905715, + "ja.s(Lgx;B)V" : 23, + "jc.b(II)Ljc;" : 96183287, + "jc.e(ZI)Z" : 1314943295, + "jc.f(Ljc;Ljc;I)V" : -1552569050, + "jc.g(Lgx;I)V" : -1429982553, + "jc.l(ZI)Ldk;" : 1545641841, + "jc.m(II)Ldk;" : -573893718, + "jc.o(IIS)I" : 3147, + "jc.q(IB)Ldv;" : 4, + "jc.r(ZB)Ldk;" : 1, + "jc.t(ZI)Z" : 564174324, + "jc.u(ILjava/lang/String;I)Ljava/lang/String;" : -2051827725, + "jc.x(I)V" : 305928935, + "jc.x(Lgx;IB)V" : 0, + "jc.y(I)I" : 122221946, + "jd.f(ZI)Lld;" : 838332995, + "jd.h(I)V" : 65279, + "jd.n(Ljava/lang/String;B)Ljava/lang/String;" : 6, + "jd.p(II)Lld;" : 1990361836, + "jd.x(Lgx;II)V" : -2060573893, + "je.b(I)Lkt;" : -2064178208, + "je.f(B)Lld;" : 68, + "je.g(Lgx;IB)V" : -1, + "je.h(IB)Ljava/lang/String;" : 1, + "je.jx(IIIIII)V" : -508181654, + "je.m(CI)Z" : 760945280, + "je.m(I)Lld;" : -1778105957, + "je.q(I)Lld;" : -827937128, + "je.x(I)Lje;" : 943450442, + "jf.g(Lgx;II)V" : 214023150, + "jf.s(Lgx;B)V" : 3, + "jg.ah(ILcs;ZI)I" : 532847216, + "jg.b(III)I" : 10887810, + "jg.f(Lju;ILju;II)Ldv;" : -40433393, + "jg.h(Lgx;IB)V" : 64, + "jg.m(B)Ljg;" : 0, + "jg.n(ILjava/lang/String;I)Ljava/lang/String;" : -147724755, + "jg.p(I)Ldk;" : 1597666720, + "jg.q(B)Z" : -2, + "jg.s(Ljava/lang/String;ZLjava/lang/String;ZB)V" : -1, + "jg.x(Lgx;B)V" : 11, + "jh.g(Lgx;I)V" : -667595371, + "jh.h(IB)Ldv;" : 41, + "jh.x(Lgx;II)V" : -972042923, + "jl.a(Lgx;B)V" : 5, + "jl.ii(ILjava/lang/String;I)V" : -1675865809, + "jl.s(Lgx;II)V" : 572994941, + "jn.g(Lgx;I)V" : 96183287, + "jn.la(Ljava/lang/String;I)Ljava/lang/String;" : 477812378, + "jn.x(Lgx;II)V" : -1850197339, + "jo.g(Lgx;II)V" : 723793981, + "jo.h(II)V" : -740923085, + "jo.x(Lgx;III)V" : 384685616, + "jp.g(I)Z" : -498132400, + "jp.g(Lgx;II)V" : 424690960, + "jp.h(I)Lld;" : -380044805, + "jp.hp(ZI)V" : 1068773475, + "jp.s(Lgx;B)V" : 9, + "jp.x(B)Lld;" : 0, + "jq.au(ILcs;ZI)I" : -1963146961, + "jq.f(ILjava/lang/String;S)Ljava/lang/String;" : 5007, + "jq.h(III)I" : -698436080, + "jr.fn(II)V" : -1893789506, + "jr.g(Ljava/lang/CharSequence;B)Ljava/lang/String;" : -1, + "jr.jt(Lia;Ljc;IIZI)V" : -2033743109, + "jt.g(Lgx;I)V" : 721996786, + "jt.h(Ljava/lang/CharSequence;II[BII)I" : -1648858462, + "jt.k(ILcs;ZB)I" : 6, + "jt.x(Lgx;II)V" : 1576334712, + "ju.f(Ldv;III)Ldv;" : 132641558, + "ju.g(Lgx;II)V" : -613501112, + "ju.h(Ldv;II)Ldv;" : -1682213593, + "ju.m(Ldv;ILju;II)Ldv;" : 1211273008, + "ju.p(Ldv;II)Ldv;" : 172834485, + "ju.p(Lge;ILbw;II)V" : -1670832392, + "ju.q(Ldv;II)Ldv;" : -1048507799, + "ju.s(Lgx;I)V" : -1788727042, + "ju.x(B)V" : 0, + "jv.g(B)Lfa;" : 7, + "jw.a(II)Ljz;" : -1393220766, + "jw.g(Lgx;II)V" : 253176345, + "jw.h(II)V" : -89150727, + "jw.kd(Lbk;ZI)V" : -1454243751, + "jw.s(I)V" : 1378135916, + "jw.x(Lgx;III)V" : -467387569, + "jx.f(B)Ldk;" : 1, + "jx.g(Lgx;B)V" : 29, + "jx.h(I)Z" : -1555038209, + "jx.m(I)Ldk;" : -1339242269, + "jx.p(I)Z" : -1362075535, + "jx.s(Liz;III)Lld;" : 1385222262, + "jx.x(Lgx;IB)V" : 0, + "jy.b(II[[IIIILju;II)Ldv;" : 8388609, + "jy.e(I)Ljy;" : -1512852885, + "jy.f(II)Z" : 282955687, + "jy.g(S)V" : 8364, + "jy.h(Lgx;II)V" : -1717982543, + "jy.l(I)Z" : 150610019, + "jy.m(II[[IIIII)Lem;" : -372875047, + "jy.n(III)Ldk;" : -884974338, + "jy.q(II[[IIIIB)Ldv;" : 25, + "jy.r(IIB)I" : -1, + "jy.t(ILjava/lang/String;I)Ljava/lang/String;" : -1133392868, + "jy.x(Lgx;I)V" : 1763228330, + "jz.fs(IIII)V" : -1466898577, + "jz.g(Lgx;B)V" : 2, + "jz.h(I)Z" : -2131355083, + "jz.jp(Lia;B)Z" : -2, + "jz.x(Lgx;II)V" : -1511633123, + "k.hb(Lbw;IIBI)V" : -1717122274, + "k.m(B)V" : 2, + "ka.s(I)V" : -2839567, + "ka.x(I)V" : -670001098, + "kd.aa(Lkx;Lkx;I)Lkn;" : -2059524068, + "kd.ab(IB)Lkn;" : -1, + "kd.ah(I)V" : 1677000161, + "kd.an(Lkn;I)I" : -1066148450, + "kd.as(Ljava/util/Comparator;I)V" : 1772662082, + "kd.at(Lkn;I)V" : -818755498, + "kd.av(Lkn;I)V" : -1176966737, + "kd.l(Lkx;B)Z" : 100, + "kd.o(Lkx;I)Lkn;" : -1474250075, + "kd.v(Lkn;B)V" : 0, + "kd.y(Lkx;I)Lkn;" : -10040824, + "ke.a([Lkw;I)Ljava/util/HashMap;" : 943906518, + "kg.q(IIIIIILen;Lfk;I)V" : 330856458, + "kj.m(Ljava/util/Comparator;I)V" : -1871871525, + "kj.q(Lkn;Lkn;B)I" : 1, + "kl.bg(B)Z" : 1, + "km.f(I)V" : 592369164, + "km.g(I)V" : 1843719486, + "km.gj(II)V" : -1194096980, + "km.h(B)Z" : -1, + "km.s(I)Z" : -1813992429, + "kn.ae(I)Ljava/lang/String;" : 1341360476, + "kn.at(I)Ljava/lang/String;" : -1555038208, + "kn.av(Lkx;Lkx;I)V" : 275778859, + "kn.ih(IIIILjava/lang/String;I)V" : -1657907412, + "kn.ik(II)Z" : 271561465, + "kp.a(Lgx;Lgs;I)Lgs;" : -692792992, + "kr.g(Lkx;ZB)Z" : -1, + "kr.kh(Lgx;II)V" : -1134408571, + "kr.kn(Lia;I)V" : -2138249594, + "kr.n(Lgx;IB)V" : 1, + "ks.a(Lks;B)I" : 1, + "ku.g(Lgx;II)V" : -1361804166, + "kw.fk(I)V" : 1462687380, + "kw.fl(IZZZB)Lin;" : 6, + "kw.fr(B)V" : 0, + "kw.jj(B)V" : 1, + "kx.g(Lkx;I)I" : 1091130939, + "kx.s(I)Z" : 2085790353, + "ky.ck(Lgx;B)V" : 1, + "ky.cn(I)V" : 1819322040, + "ky.cr(Lgx;I)V" : -2138810208, + "ky.cv(Lkm;I)V" : -794082731, + "l.go(I)I" : 689623594, + "l.lg(I)V" : 212688817, + "l.x(IIIII)V" : 1330963020, + "lf.a(Liz;I)V" : 216314308, + "lg.a(Lkn;Lkn;B)I" : 0, + "lh.h(Llh;Llh;I)V" : -1899763684, + "lh.x(Llh;Llh;I)V" : 65281, + "li.a(Lgx;I)V" : 82212899, + "lk.a(Lkn;Lkn;B)I" : 3, + "lm.a(I)Lli;" : -1704489684, + "lo.ae(ILcs;ZI)I" : 491075880, + "lq.a(Liz;Liz;Liz;Lkt;Ljava/util/HashMap;[Llv;B)V" : 2, + "lq.aa(IIIIIII)V" : -1022244844, + "lq.ab(IIIIB)V" : 15, + "lq.ai(IIIB)V" : 4, + "lq.aj(III)V" : -1596162919, + "lq.an(IB)F" : 0, + "lq.ap(II)V" : -368766016, + "lq.aq(I)I" : 96183288, + "lq.ar(IIII)V" : -1654813278, + "lq.as(III)V" : -418862019, + "lq.at(I)I" : -1389281243, + "lq.au(II)Lag;" : -482362793, + "lq.az(B)Lif;" : 0, + "lq.b(I)Z" : 1196890805, + "lq.bb(S)Lat;" : 3647, + "lq.bg(II)Z" : -827937128, + "lq.bi(IZI)V" : 1401518352, + "lq.bn(ILif;S)Lif;" : 3622, + "lq.bo(II)V" : 517430306, + "lq.bp(I)Z" : 115992480, + "lq.br(IIIIIII)V" : -1670644894, + "lq.bv(II)Z" : 2068200578, + "lq.bw(B)Lat;" : 0, + "lq.bz(IZI)V" : -345932703, + "lq.c(IIIIIII)Z" : 977978274, + "lq.e(IIIZB)V" : -1, + "lq.f(I)V" : -1442221252, + "lq.g(IIZIIIII)V" : -311515493, + "lq.k(IIIB)V" : -1, + "lq.m(IIZI)V" : 443741720, + "lq.n(IIIB)Lag;" : 1, + "lq.p(I)V" : 946356797, + "lq.r(II)V" : -1958030248, + "lq.t(I)I" : -1613065466, + "lq.v(IIIIII)V" : 1578223622, + "lq.x(IIZZI)V" : 703776978, + "lq.y(Lag;Lif;Lif;ZI)V" : 559163206, + "lr.f([BIIB)Z" : 1, + "lw.a(Ljava/lang/String;B)V" : 0, + "lw.s(B)I" : 1, + "m.s(IIII)Lcs;" : -3560696, + "m.x([BIIIIIII[Lfk;S)V" : 254, + "m.y(IIIB)I" : 0, + "n.a(Lm;Lm;I)I" : 965460013, + "n.g(III)Lia;" : -115409750, + "n.jk(II)V" : -1949538187, + "o.a(Lgx;I)V" : -2015278485, + "o.gx(Lbw;III)V" : 16748609, + "o.hh(I)V" : 900432092, + "o.s(Lgx;I)V" : -1171328621, + "p.a(Ljava/util/Comparator;ZB)V" : -1, + "p.f([BIIB)Ljava/lang/String;" : 1, + "p.gk(ZB)V" : 1, + "p.jz(Lia;III)V" : -1232547140, + "p.km(IB)V" : 1, + "q.a(Lm;Lm;I)I" : 806214979, + "r.a(Lm;Lm;I)I" : -587761847, + "r.q(I)Ljava/lang/String;" : 1332980896, + "s.ac(I)I" : 756871814, + "s.fx(B)V" : 1, + "s.jh(Lia;III)V" : -718297066, + "s.kq(Lia;I)Z" : -1017775700, + "t.lf(B)Z" : 0, + "v.a(Lag;B)V" : -1, + "v.fy(Ljava/lang/String;I)V" : -1100446886, + "v.g(III)Z" : 1060896560, + "v.gw(B)V" : 9, + "v.h(III)Lif;" : -175568126, + "v.s(IIII)Z" : -1346882543, + "v.s([BIII)Ljava/lang/String;" : -2131355082, + "v.x(IIIB)[I" : 2, + "w.e(IILgx;II)V" : -1175687218, + "w.in(IIIIIIS)V" : 254, + "w.m(I)Z" : 665939044, + "w.n(IILgx;B)V" : 1, + "w.o(III)I" : 174332944, + "w.q(Liz;I)V" : -1888528129, + "w.r(IILgx;II)V" : -2131355082, + "x.g(Ljava/lang/Class;I)La;" : -559220730, + "x.s(Ljava/lang/Class;I)Lx;" : -803222413, + "y.g(IB)Ly;" : 7, + "y.h(Lgx;IIIIIIB)V" : 2, + "y.if(B)V" : 10, + "y.s(CI)Z" : 1212295357, + "y.s(FB)Z" : 0, + "y.s(Lge;II)V" : 1027527763, + "z.fc(Lju;IIII)V" : 2082929660, + "z.jb(IB)V" : 15 +} \ No newline at end of file diff --git a/extended-mixins/hooks.json b/extended-mixins/hooks.json new file mode 100644 index 0000000000..95dc4d9b6f --- /dev/null +++ b/extended-mixins/hooks.json @@ -0,0 +1,32406 @@ +[ { + "class" : "AbstractByteArrayCopier", + "name" : "gl", + "super" : "java.lang.Object", + "access" : 1057, + "interfaces" : [ ], + "fields" : [ ], + "methods" : [ { + "method" : "get", + "owner" : "gl", + "name" : "a", + "access" : 1024, + "parameters" : [ ], + "descriptor" : "(I)[B" + }, { + "method" : "set", + "owner" : "gl", + "name" : "s", + "access" : 1024, + "parameters" : [ "array" ], + "descriptor" : "([BB)V" + } ], + "constructors" : [ { + "access" : 0, + "descriptor" : "()V" + } ] +}, { + "class" : "ModelData0", + "name" : "ek", + "super" : "java.lang.Object", + "access" : 33, + "interfaces" : [ ], + "fields" : [ ], + "methods" : [ ], + "constructors" : [ { + "access" : 0, + "descriptor" : "()V" + } ] +}, { + "class" : "SecureRandomFuture", + "name" : "cp", + "super" : "java.lang.Object", + "access" : 33, + "interfaces" : [ ], + "fields" : [ { + "field" : "executor", + "owner" : "cp", + "name" : "a", + "access" : 0, + "descriptor" : "Ljava/util/concurrent/ExecutorService;" + }, { + "field" : "future", + "owner" : "cp", + "name" : "s", + "access" : 0, + "descriptor" : "Ljava/util/concurrent/Future;" + } ], + "methods" : [ { + "method" : "get", + "owner" : "cp", + "name" : "g", + "access" : 0, + "parameters" : [ ], + "descriptor" : "(I)Ljava/security/SecureRandom;" + }, { + "method" : "isDone", + "owner" : "cp", + "name" : "s", + "access" : 0, + "parameters" : [ ], + "descriptor" : "(S)Z" + }, { + "method" : "shutdown", + "owner" : "cp", + "name" : "a", + "access" : 0, + "parameters" : [ ], + "descriptor" : "(I)V" + } ], + "constructors" : [ { + "access" : 0, + "descriptor" : "()V" + } ] +}, { + "class" : "SoundEnvelope", + "name" : "cl", + "super" : "java.lang.Object", + "access" : 33, + "interfaces" : [ ], + "fields" : [ { + "field" : "amplitude", + "owner" : "cl", + "name" : "n", + "access" : 0, + "descriptor" : "I" + }, { + "field" : "durations", + "owner" : "cl", + "name" : "s", + "access" : 0, + "descriptor" : "[I" + }, { + "field" : "end", + "owner" : "cl", + "name" : "f", + "access" : 0, + "descriptor" : "I" + }, { + "field" : "form", + "owner" : "cl", + "name" : "p", + "access" : 0, + "descriptor" : "I" + }, { + "field" : "max", + "owner" : "cl", + "name" : "e", + "access" : 0, + "descriptor" : "I" + }, { + "field" : "phaseIndex", + "owner" : "cl", + "name" : "q", + "access" : 0, + "descriptor" : "I" + }, { + "field" : "phases", + "owner" : "cl", + "name" : "g", + "access" : 0, + "descriptor" : "[I" + }, { + "field" : "segments", + "owner" : "cl", + "name" : "a", + "access" : 0, + "descriptor" : "I" + }, { + "field" : "start", + "owner" : "cl", + "name" : "h", + "access" : 0, + "descriptor" : "I" + }, { + "field" : "step", + "owner" : "cl", + "name" : "b", + "access" : 0, + "descriptor" : "I" + }, { + "field" : "ticks", + "owner" : "cl", + "name" : "m", + "access" : 0, + "descriptor" : "I" + } ], + "methods" : [ { + "method" : "decode", + "owner" : "cl", + "name" : "a", + "access" : 16, + "parameters" : [ "buffer" ], + "descriptor" : "(Lgx;)V" + }, { + "method" : "decodeSegments", + "owner" : "cl", + "name" : "s", + "access" : 16, + "parameters" : [ "buffer" ], + "descriptor" : "(Lgx;)V" + }, { + "method" : "doStep", + "owner" : "cl", + "name" : "x", + "access" : 16, + "parameters" : [ "n" ], + "descriptor" : "(I)I" + }, { + "method" : "reset", + "owner" : "cl", + "name" : "g", + "access" : 16, + "parameters" : [ ], + "descriptor" : "()V" + } ], + "constructors" : [ { + "access" : 0, + "descriptor" : "()V" + } ] +}, { + "class" : "Strings", + "name" : "it", + "super" : "java.lang.Object", + "access" : 33, + "interfaces" : [ ], + "fields" : [ ], + "methods" : [ ], + "constructors" : [ ] +}, { + "class" : "WorldMapCacheName", + "name" : "ae", + "super" : "java.lang.Object", + "access" : 33, + "interfaces" : [ ], + "fields" : [ { + "field" : "name", + "owner" : "ae", + "name" : "f", + "access" : 17, + "descriptor" : "Ljava/lang/String;" + } ], + "methods" : [ ], + "constructors" : [ { + "access" : 0, + "descriptor" : "(Ljava/lang/String;)V" + } ] +}, { + "class" : "GzipDecompressor", + "name" : "gn", + "super" : "java.lang.Object", + "access" : 33, + "interfaces" : [ ], + "fields" : [ { + "field" : "inflater", + "owner" : "gn", + "name" : "a", + "access" : 0, + "descriptor" : "Ljava/util/zip/Inflater;" + } ], + "methods" : [ { + "method" : "decompress", + "owner" : "gn", + "name" : "a", + "access" : 1, + "descriptor" : "(Lgx;[BI)V" + } ], + "constructors" : [ { + "access" : 1, + "descriptor" : "()V" + }, { + "access" : 0, + "descriptor" : "(III)V" + } ] +}, { + "class" : "DevicePcmPlayer", + "name" : "ap", + "super" : "cz", + "access" : 33, + "interfaces" : [ ], + "fields" : [ { + "field" : "byteSamples", + "owner" : "ap", + "name" : "x", + "access" : 0, + "descriptor" : "[B" + }, { + "field" : "capacity2", + "owner" : "ap", + "name" : "g", + "access" : 0, + "descriptor" : "I", + "decoder" : 1111177813 + }, { + "field" : "format", + "owner" : "ap", + "name" : "a", + "access" : 0, + "descriptor" : "Ljavax/sound/sampled/AudioFormat;" + }, { + "field" : "line", + "owner" : "ap", + "name" : "s", + "access" : 0, + "descriptor" : "Ljavax/sound/sampled/SourceDataLine;" + } ], + "methods" : [ { + "method" : "close", + "owner" : "ap", + "name" : "h", + "access" : 4, + "parameters" : [ ], + "descriptor" : "(I)V" + }, { + "method" : "discard", + "owner" : "ap", + "name" : "f", + "access" : 4, + "parameters" : [ ], + "descriptor" : "(B)V" + }, { + "method" : "init", + "owner" : "ap", + "name" : "a", + "access" : 4, + "parameters" : [ ], + "descriptor" : "(I)V" + }, { + "method" : "open", + "owner" : "ap", + "name" : "s", + "access" : 4, + "parameters" : [ "bufferSize" ], + "descriptor" : "(II)V" + }, { + "method" : "position", + "owner" : "ap", + "name" : "g", + "access" : 4, + "parameters" : [ ], + "descriptor" : "(I)I" + }, { + "method" : "write", + "owner" : "ap", + "name" : "x", + "access" : 4, + "parameters" : [ ], + "descriptor" : "()V" + } ], + "constructors" : [ { + "access" : 0, + "descriptor" : "()V" + } ] +}, { + "class" : "ClientPacket", + "name" : "fs", + "super" : "java.lang.Object", + "access" : 33, + "interfaces" : [ "fr" ], + "fields" : [ { + "field" : "id", + "owner" : "fs", + "name" : "ce", + "access" : 16, + "descriptor" : "I", + "decoder" : 1670370847 + }, { + "field" : "length", + "owner" : "fs", + "name" : "cj", + "access" : 16, + "descriptor" : "I", + "decoder" : -1187486687 + } ], + "methods" : [ ], + "constructors" : [ { + "access" : 0, + "descriptor" : "(II)V" + } ] +}, { + "class" : "Canvas", + "name" : "ad", + "super" : "java.awt.Canvas", + "access" : 49, + "interfaces" : [ ], + "fields" : [ { + "field" : "component", + "owner" : "ad", + "name" : "a", + "access" : 0, + "descriptor" : "Ljava/awt/Component;" + } ], + "methods" : [ { + "method" : "paint", + "owner" : "ad", + "name" : "paint", + "access" : 17, + "parameters" : [ "g" ], + "descriptor" : "(Ljava/awt/Graphics;)V" + }, { + "method" : "update", + "owner" : "ad", + "name" : "update", + "access" : 17, + "parameters" : [ "g" ], + "descriptor" : "(Ljava/awt/Graphics;)V" + } ], + "constructors" : [ { + "access" : 0, + "descriptor" : "(Ljava/awt/Component;)V" + } ] +}, { + "class" : "TilePaint", + "name" : "eb", + "super" : "java.lang.Object", + "access" : 49, + "interfaces" : [ ], + "fields" : [ { + "field" : "isFlat", + "owner" : "eb", + "name" : "f", + "access" : 0, + "descriptor" : "Z" + }, { + "field" : "neColor", + "owner" : "eb", + "name" : "g", + "access" : 0, + "descriptor" : "I", + "decoder" : -275155701 + }, { + "field" : "nwColor", + "owner" : "eb", + "name" : "x", + "access" : 0, + "descriptor" : "I", + "decoder" : 994726533 + }, { + "field" : "rgb", + "owner" : "eb", + "name" : "p", + "access" : 0, + "descriptor" : "I", + "decoder" : 837082755 + }, { + "field" : "seColor", + "owner" : "eb", + "name" : "s", + "access" : 0, + "descriptor" : "I", + "decoder" : 1505559839 + }, { + "field" : "swColor", + "owner" : "eb", + "name" : "a", + "access" : 0, + "descriptor" : "I", + "decoder" : 772918589 + }, { + "field" : "texture", + "owner" : "eb", + "name" : "h", + "access" : 0, + "descriptor" : "I", + "decoder" : -1130157059 + } ], + "methods" : [ ], + "constructors" : [ { + "access" : 0, + "descriptor" : "(IIIIIIZ)V" + } ] +}, { + "class" : "Task", + "name" : "fn", + "super" : "java.lang.Object", + "access" : 33, + "interfaces" : [ ], + "fields" : [ { + "field" : "intArgument", + "owner" : "fn", + "name" : "p", + "access" : 1, + "descriptor" : "I" + }, { + "field" : "next", + "owner" : "fn", + "name" : "a", + "access" : 0, + "descriptor" : "Lfn;" + }, { + "field" : "objectArgument", + "owner" : "fn", + "name" : "m", + "access" : 0, + "descriptor" : "Ljava/lang/Object;" + }, { + "field" : "result", + "owner" : "fn", + "name" : "q", + "access" : 65, + "descriptor" : "Ljava/lang/Object;" + }, { + "field" : "status", + "owner" : "fn", + "name" : "h", + "access" : 65, + "descriptor" : "I" + }, { + "field" : "type", + "owner" : "fn", + "name" : "f", + "access" : 0, + "descriptor" : "I", + "decoder" : 57507535 + } ], + "methods" : [ ], + "constructors" : [ { + "access" : 0, + "descriptor" : "()V" + } ] +}, { + "class" : "Formatting", + "name" : "cg", + "super" : "java.lang.Object", + "access" : 33, + "interfaces" : [ ], + "fields" : [ ], + "methods" : [ ], + "constructors" : [ ] +}, { + "class" : "AbstractRasterProvider", + "name" : "lr", + "super" : "java.lang.Object", + "access" : 1057, + "interfaces" : [ ], + "fields" : [ { + "field" : "height", + "owner" : "lr", + "name" : "h", + "access" : 1, + "descriptor" : "I", + "decoder" : -1014058049 + }, { + "field" : "pixels", + "owner" : "lr", + "name" : "g", + "access" : 1, + "descriptor" : "[I" + }, { + "field" : "width", + "owner" : "lr", + "name" : "x", + "access" : 1, + "descriptor" : "I", + "decoder" : 1926491113 + } ], + "methods" : [ { + "method" : "apply", + "owner" : "lr", + "name" : "u", + "access" : 17, + "parameters" : [ ], + "descriptor" : "(B)V" + }, { + "method" : "draw", + "owner" : "lr", + "name" : "g", + "access" : 1025, + "parameters" : [ "x", "y", "width", "height" ], + "descriptor" : "(IIIII)V" + }, { + "method" : "drawFull", + "owner" : "lr", + "name" : "s", + "access" : 1025, + "parameters" : [ "x", "y" ], + "descriptor" : "(IIB)V" + } ], + "constructors" : [ { + "access" : 4, + "descriptor" : "()V" + } ] +}, { + "class" : "Decimator", + "name" : "dn", + "super" : "java.lang.Object", + "access" : 33, + "interfaces" : [ ], + "fields" : [ { + "field" : "inputRate", + "owner" : "dn", + "name" : "x", + "access" : 0, + "descriptor" : "I", + "decoder" : -1689769765 + }, { + "field" : "outputRate", + "owner" : "dn", + "name" : "h", + "access" : 0, + "descriptor" : "I", + "decoder" : -1300300777 + }, { + "field" : "table", + "owner" : "dn", + "name" : "f", + "access" : 0, + "descriptor" : "[[I" + } ], + "methods" : [ { + "method" : "resample", + "owner" : "dn", + "name" : "a", + "access" : 0, + "descriptor" : "([BI)[B" + }, { + "method" : "scalePosition", + "owner" : "dn", + "name" : "g", + "access" : 0, + "parameters" : [ "position" ], + "descriptor" : "(II)I" + }, { + "method" : "scaleRate", + "owner" : "dn", + "name" : "s", + "access" : 0, + "parameters" : [ "rate" ], + "descriptor" : "(IS)I" + } ], + "constructors" : [ { + "access" : 1, + "descriptor" : "(II)V" + } ] +}, { + "class" : "DirectByteArrayCopier", + "name" : "gu", + "super" : "gl", + "access" : 33, + "interfaces" : [ ], + "fields" : [ { + "field" : "directBuffer", + "owner" : "gu", + "name" : "a", + "access" : 0, + "descriptor" : "Ljava/nio/ByteBuffer;" + } ], + "methods" : [ { + "method" : "get", + "owner" : "gu", + "name" : "a", + "access" : 0, + "parameters" : [ ], + "descriptor" : "(I)[B" + }, { + "method" : "set", + "owner" : "gu", + "name" : "s", + "access" : 0, + "parameters" : [ "array" ], + "descriptor" : "([BB)V" + } ], + "constructors" : [ { + "access" : 0, + "descriptor" : "()V" + } ] +}, { + "class" : "FriendLoginUpdate", + "name" : "kg", + "super" : "hh", + "access" : 33, + "interfaces" : [ ], + "fields" : [ { + "field" : "time", + "owner" : "kg", + "name" : "g", + "access" : 1, + "descriptor" : "I", + "decoder" : -1833392209 + }, { + "field" : "username", + "owner" : "kg", + "name" : "x", + "access" : 1, + "descriptor" : "Lkx;" + }, { + "field" : "world", + "owner" : "kg", + "name" : "h", + "access" : 1, + "descriptor" : "S" + } ], + "methods" : [ ], + "constructors" : [ { + "access" : 0, + "descriptor" : "(Lkx;I)V" + } ] +}, { + "class" : "Varps", + "name" : "hs", + "super" : "java.lang.Object", + "access" : 33, + "interfaces" : [ ], + "fields" : [ ], + "methods" : [ ], + "constructors" : [ ] +}, { + "class" : "Varcs", + "name" : "cq", + "super" : "java.lang.Object", + "access" : 33, + "interfaces" : [ ], + "fields" : [ { + "field" : "intsPersistence", + "owner" : "cq", + "name" : "g", + "access" : 0, + "descriptor" : "[Z" + }, { + "field" : "lastWriteTimeMs", + "owner" : "cq", + "name" : "p", + "access" : 0, + "descriptor" : "J", + "decoder" : 4713395565269692703 + }, { + "field" : "map", + "owner" : "cq", + "name" : "x", + "access" : 0, + "descriptor" : "Ljava/util/Map;" + }, { + "field" : "strings", + "owner" : "cq", + "name" : "h", + "access" : 0, + "descriptor" : "[Ljava/lang/String;" + }, { + "field" : "unwrittenChanges", + "owner" : "cq", + "name" : "f", + "access" : 0, + "descriptor" : "Z" + } ], + "methods" : [ { + "method" : "clearTransient", + "owner" : "cq", + "name" : "p", + "access" : 0, + "parameters" : [ ], + "descriptor" : "(B)V" + }, { + "method" : "getInt", + "owner" : "cq", + "name" : "s", + "access" : 0, + "parameters" : [ "index" ], + "descriptor" : "(IB)I" + }, { + "method" : "getPreferencesFile", + "owner" : "cq", + "name" : "m", + "access" : 0, + "descriptor" : "(ZI)Lda;" + }, { + "method" : "getString", + "owner" : "cq", + "name" : "x", + "access" : 0, + "parameters" : [ "index" ], + "descriptor" : "(II)Ljava/lang/String;" + }, { + "method" : "getStringOld", + "owner" : "cq", + "name" : "f", + "access" : 0, + "parameters" : [ "index" ], + "descriptor" : "(II)Ljava/lang/String;" + }, { + "method" : "hasUnwrittenChanges", + "owner" : "cq", + "name" : "e", + "access" : 0, + "parameters" : [ ], + "descriptor" : "(B)Z" + }, { + "method" : "read", + "owner" : "cq", + "name" : "b", + "access" : 0, + "descriptor" : "(B)V" + }, { + "method" : "setInt", + "owner" : "cq", + "name" : "a", + "access" : 0, + "parameters" : [ "index", "n" ], + "descriptor" : "(III)V" + }, { + "method" : "setString", + "owner" : "cq", + "name" : "g", + "access" : 0, + "parameters" : [ "index", "s" ], + "descriptor" : "(ILjava/lang/String;I)V" + }, { + "method" : "setStringOld", + "owner" : "cq", + "name" : "h", + "access" : 0, + "parameters" : [ "index", "s" ], + "descriptor" : "(ILjava/lang/String;I)V" + }, { + "method" : "tryWrite", + "owner" : "cq", + "name" : "n", + "access" : 0, + "parameters" : [ ], + "descriptor" : "(B)V" + }, { + "method" : "write", + "owner" : "cq", + "name" : "q", + "access" : 0, + "descriptor" : "(I)V" + } ], + "constructors" : [ { + "access" : 0, + "descriptor" : "()V" + } ] +}, { + "class" : "Node", + "name" : "hy", + "super" : "java.lang.Object", + "access" : 33, + "interfaces" : [ ], + "fields" : [ { + "field" : "key", + "owner" : "hy", + "name" : "co", + "access" : 1, + "descriptor" : "J" + }, { + "field" : "next", + "owner" : "hy", + "name" : "ck", + "access" : 0, + "descriptor" : "Lhy;" + }, { + "field" : "previous", + "owner" : "hy", + "name" : "cr", + "access" : 1, + "descriptor" : "Lhy;" + } ], + "methods" : [ { + "method" : "hasNext", + "owner" : "hy", + "name" : "ko", + "access" : 1, + "parameters" : [ ], + "descriptor" : "()Z" + }, { + "method" : "remove", + "owner" : "hy", + "name" : "kl", + "access" : 1, + "parameters" : [ ], + "descriptor" : "()V" + } ], + "constructors" : [ { + "access" : 4, + "descriptor" : "()V" + } ] +}, { + "class" : "ClientPacketMarker", + "name" : "fr", + "super" : "java.lang.Object", + "access" : 1537, + "interfaces" : [ ], + "fields" : [ ], + "methods" : [ ], + "constructors" : [ ] +}, { + "class" : "ServerPacket", + "name" : "fc", + "super" : "java.lang.Object", + "access" : 33, + "interfaces" : [ ], + "fields" : [ { + "field" : "id", + "owner" : "fc", + "name" : "ct", + "access" : 17, + "descriptor" : "I", + "decoder" : -164635975 + }, { + "field" : "length", + "owner" : "fc", + "name" : "cb", + "access" : 17, + "descriptor" : "I", + "decoder" : -949915423 + } ], + "methods" : [ ], + "constructors" : [ { + "access" : 0, + "descriptor" : "(II)V" + } ] +}, { + "class" : "DualNode", + "name" : "ho", + "super" : "hy", + "access" : 33, + "interfaces" : [ ], + "fields" : [ { + "field" : "keyDual", + "owner" : "ho", + "name" : "cn", + "access" : 0, + "descriptor" : "J" + }, { + "field" : "nextDual", + "owner" : "ho", + "name" : "cv", + "access" : 1, + "descriptor" : "Lho;" + }, { + "field" : "previousDual", + "owner" : "ho", + "name" : "cw", + "access" : 1, + "descriptor" : "Lho;" + } ], + "methods" : [ { + "method" : "removeDual", + "owner" : "ho", + "name" : "cv", + "access" : 1, + "parameters" : [ ], + "descriptor" : "()V" + } ], + "constructors" : [ { + "access" : 4, + "descriptor" : "()V" + } ] +}, { + "class" : "EnumDefinition", + "name" : "jf", + "super" : "ho", + "access" : 33, + "interfaces" : [ ], + "fields" : [ { + "field" : "defaultInt", + "owner" : "jf", + "name" : "f", + "access" : 1, + "descriptor" : "I", + "decoder" : -1768409015 + }, { + "field" : "defaultString", + "owner" : "jf", + "name" : "h", + "access" : 1, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "intVals", + "owner" : "jf", + "name" : "q", + "access" : 1, + "descriptor" : "[I" + }, { + "field" : "keyType", + "owner" : "jf", + "name" : "g", + "access" : 1, + "descriptor" : "C" + }, { + "field" : "keys", + "owner" : "jf", + "name" : "m", + "access" : 1, + "descriptor" : "[I" + }, { + "field" : "size0", + "owner" : "jf", + "name" : "p", + "access" : 1, + "descriptor" : "I", + "decoder" : -1311220831 + }, { + "field" : "stringVals", + "owner" : "jf", + "name" : "b", + "access" : 1, + "descriptor" : "[Ljava/lang/String;" + }, { + "field" : "valType", + "owner" : "jf", + "name" : "x", + "access" : 1, + "descriptor" : "C" + } ], + "methods" : [ { + "method" : "read", + "owner" : "jf", + "name" : "s", + "access" : 0, + "descriptor" : "(Lgx;B)V" + }, { + "method" : "readNext", + "owner" : "jf", + "name" : "g", + "access" : 0, + "descriptor" : "(Lgx;II)V" + }, { + "method" : "size", + "owner" : "jf", + "name" : "x", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(I)I" + } ], + "constructors" : [ { + "access" : 0, + "descriptor" : "()V" + } ] +}, { + "class" : "ByteArrayNode", + "name" : "hq", + "super" : "hy", + "access" : 33, + "interfaces" : [ ], + "fields" : [ { + "field" : "byteArray", + "owner" : "hq", + "name" : "a", + "access" : 1, + "descriptor" : "[B" + } ], + "methods" : [ ], + "constructors" : [ { + "access" : 1, + "descriptor" : "([B)V" + } ] +}, { + "class" : "Clock", + "name" : "fl", + "super" : "java.lang.Object", + "access" : 1057, + "interfaces" : [ ], + "fields" : [ ], + "methods" : [ { + "method" : "mark", + "owner" : "fl", + "name" : "a", + "access" : 1025, + "parameters" : [ ], + "descriptor" : "(B)V" + }, { + "method" : "wait", + "owner" : "fl", + "name" : "s", + "access" : 1025, + "parameters" : [ "cycleMs", "minSleepMs" ], + "descriptor" : "(III)I" + } ], + "constructors" : [ { + "access" : 0, + "descriptor" : "()V" + } ] +}, { + "class" : "AbstractSocket", + "name" : "fq", + "super" : "java.lang.Object", + "access" : 1057, + "interfaces" : [ ], + "fields" : [ ], + "methods" : [ { + "method" : "available", + "owner" : "fq", + "name" : "s", + "access" : 1025, + "parameters" : [ ], + "descriptor" : "(B)I" + }, { + "method" : "close", + "owner" : "fq", + "name" : "f", + "access" : 1025, + "parameters" : [ ], + "descriptor" : "(B)V" + }, { + "method" : "isAvailable", + "owner" : "fq", + "name" : "a", + "access" : 1025, + "parameters" : [ "length" ], + "descriptor" : "(II)Z" + }, { + "method" : "read", + "owner" : "fq", + "name" : "x", + "access" : 1025, + "parameters" : [ "dst", "dstIndex", "length" ], + "descriptor" : "([BIIB)I" + }, { + "method" : "readUnsignedByte", + "owner" : "fq", + "name" : "g", + "access" : 1025, + "parameters" : [ ], + "descriptor" : "(I)I" + }, { + "method" : "write", + "owner" : "fq", + "name" : "h", + "access" : 1025, + "parameters" : [ "src", "srcIndex", "length" ], + "descriptor" : "([BIII)V" + } ], + "constructors" : [ { + "access" : 0, + "descriptor" : "()V" + } ] +}, { + "class" : "ItemContainer", + "name" : "bv", + "super" : "hy", + "access" : 33, + "interfaces" : [ ], + "fields" : [ { + "field" : "ids", + "owner" : "bv", + "name" : "s", + "access" : 0, + "descriptor" : "[I" + }, { + "field" : "quantities", + "owner" : "bv", + "name" : "g", + "access" : 0, + "descriptor" : "[I" + } ], + "methods" : [ ], + "constructors" : [ { + "access" : 0, + "descriptor" : "()V" + } ] +}, { + "class" : "ByteArrayPool", + "name" : "go", + "super" : "java.lang.Object", + "access" : 33, + "interfaces" : [ ], + "fields" : [ ], + "methods" : [ ], + "constructors" : [ ] +}, { + "class" : "MouseWheel", + "name" : "ff", + "super" : "java.lang.Object", + "access" : 1537, + "interfaces" : [ ], + "fields" : [ ], + "methods" : [ { + "method" : "useRotation", + "owner" : "ff", + "name" : "g", + "access" : 1025, + "parameters" : [ ], + "descriptor" : "(B)I" + } ], + "constructors" : [ ] +}, { + "class" : "RasterProvider", + "name" : "am", + "super" : "lr", + "access" : 49, + "interfaces" : [ ], + "fields" : [ { + "field" : "component0", + "owner" : "am", + "name" : "a", + "access" : 0, + "descriptor" : "Ljava/awt/Component;" + }, { + "field" : "image", + "owner" : "am", + "name" : "s", + "access" : 0, + "descriptor" : "Ljava/awt/Image;" + } ], + "methods" : [ { + "method" : "draw", + "owner" : "am", + "name" : "g", + "access" : 17, + "parameters" : [ "x", "y", "width", "height" ], + "descriptor" : "(IIIII)V" + }, { + "method" : "draw0", + "owner" : "am", + "name" : "h", + "access" : 16, + "parameters" : [ "graphics", "x", "y", "width", "height" ], + "descriptor" : "(Ljava/awt/Graphics;IIIII)V" + }, { + "method" : "drawFull", + "owner" : "am", + "name" : "s", + "access" : 17, + "parameters" : [ "x", "y" ], + "descriptor" : "(IIB)V" + }, { + "method" : "drawFull0", + "owner" : "am", + "name" : "x", + "access" : 16, + "parameters" : [ "graphics", "x", "y" ], + "descriptor" : "(Ljava/awt/Graphics;IIB)V" + }, { + "method" : "setComponent", + "owner" : "am", + "name" : "a", + "access" : 16, + "descriptor" : "(Ljava/awt/Component;B)V" + } ], + "constructors" : [ { + "access" : 0, + "descriptor" : "(IILjava/awt/Component;)V" + } ] +}, { + "class" : "ServerBuild", + "name" : "ix", + "super" : "java.lang.Object", + "access" : 33, + "interfaces" : [ ], + "fields" : [ { + "field" : "id", + "owner" : "ix", + "name" : "f", + "access" : 16, + "descriptor" : "I", + "decoder" : -70287847 + }, { + "field" : "name", + "owner" : "ix", + "name" : "h", + "access" : 17, + "descriptor" : "Ljava/lang/String;" + } ], + "methods" : [ ], + "constructors" : [ { + "access" : 0, + "descriptor" : "(Ljava/lang/String;I)V" + } ] +}, { + "class" : "StudioGame", + "name" : "ib", + "super" : "java.lang.Object", + "access" : 33, + "interfaces" : [ "gr" ], + "fields" : [ { + "field" : "id", + "owner" : "ib", + "name" : "m", + "access" : 16, + "descriptor" : "I", + "decoder" : -821473595 + }, { + "field" : "name", + "owner" : "ib", + "name" : "p", + "access" : 17, + "descriptor" : "Ljava/lang/String;" + } ], + "methods" : [ { + "method" : "ordinal", + "owner" : "ib", + "name" : "x", + "access" : 1, + "descriptor" : "(I)I" + } ], + "constructors" : [ { + "access" : 0, + "descriptor" : "(Ljava/lang/String;Ljava/lang/String;I)V" + } ] +}, { + "class" : "TriBool", + "name" : "kz", + "super" : "java.lang.Object", + "access" : 33, + "interfaces" : [ ], + "fields" : [ ], + "methods" : [ ], + "constructors" : [ { + "access" : 0, + "descriptor" : "()V" + } ] +}, { + "class" : "UnderlayDefinition", + "name" : "jo", + "super" : "ho", + "access" : 33, + "interfaces" : [ ], + "fields" : [ { + "field" : "hue", + "owner" : "jo", + "name" : "x", + "access" : 1, + "descriptor" : "I", + "decoder" : -923744073 + }, { + "field" : "hueMultiplier", + "owner" : "jo", + "name" : "p", + "access" : 1, + "descriptor" : "I", + "decoder" : -1613065465 + }, { + "field" : "lightness", + "owner" : "jo", + "name" : "f", + "access" : 1, + "descriptor" : "I", + "decoder" : -1957094679 + }, { + "field" : "rgb", + "owner" : "jo", + "name" : "g", + "access" : 0, + "descriptor" : "I", + "decoder" : -1269432375 + }, { + "field" : "saturation", + "owner" : "jo", + "name" : "h", + "access" : 1, + "descriptor" : "I", + "decoder" : -207542285 + } ], + "methods" : [ { + "method" : "init", + "owner" : "jo", + "name" : "s", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(I)V" + }, { + "method" : "read", + "owner" : "jo", + "name" : "g", + "access" : 1, + "descriptor" : "(Lgx;II)V" + }, { + "method" : "readNext", + "owner" : "jo", + "name" : "x", + "access" : 0, + "descriptor" : "(Lgx;III)V" + }, { + "method" : "setHsl", + "owner" : "jo", + "name" : "h", + "access" : 0, + "parameters" : [ "rgb" ], + "descriptor" : "(II)V" + } ], + "constructors" : [ { + "access" : 1, + "descriptor" : "()V" + } ] +}, { + "class" : "WidgetGroupParent", + "name" : "bk", + "super" : "hy", + "access" : 33, + "interfaces" : [ ], + "fields" : [ { + "field" : "group", + "owner" : "bk", + "name" : "a", + "access" : 0, + "descriptor" : "I", + "decoder" : -912519809 + }, { + "field" : "keep", + "owner" : "bk", + "name" : "g", + "access" : 0, + "descriptor" : "Z" + }, { + "field" : "type", + "owner" : "bk", + "name" : "s", + "access" : 0, + "descriptor" : "I", + "decoder" : -1353246179 + } ], + "methods" : [ ], + "constructors" : [ { + "access" : 0, + "descriptor" : "()V" + } ] +}, { + "class" : "ParamKeyDefinition", + "name" : "jz", + "super" : "ho", + "access" : 33, + "interfaces" : [ ], + "fields" : [ { + "field" : "isMembersOnly", + "owner" : "jz", + "name" : "f", + "access" : 0, + "descriptor" : "Z" + }, { + "field" : "keyInt", + "owner" : "jz", + "name" : "x", + "access" : 1, + "descriptor" : "I", + "decoder" : 387040489 + }, { + "field" : "keyString", + "owner" : "jz", + "name" : "h", + "access" : 1, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "type", + "owner" : "jz", + "name" : "g", + "access" : 0, + "descriptor" : "C" + } ], + "methods" : [ { + "method" : "init", + "owner" : "jz", + "name" : "s", + "access" : 0, + "parameters" : [ ], + "descriptor" : "(I)V" + }, { + "method" : "isString", + "owner" : "jz", + "name" : "h", + "access" : 1, + "descriptor" : "(I)Z" + }, { + "method" : "read", + "owner" : "jz", + "name" : "g", + "access" : 0, + "descriptor" : "(Lgx;B)V" + }, { + "method" : "readNext", + "owner" : "jz", + "name" : "x", + "access" : 0, + "descriptor" : "(Lgx;II)V" + } ], + "constructors" : [ { + "access" : 0, + "descriptor" : "()V" + } ] +}, { + "class" : "NetFileRequest", + "name" : "ig", + "super" : "ho", + "access" : 33, + "interfaces" : [ ], + "fields" : [ { + "field" : "crc", + "owner" : "ig", + "name" : "s", + "access" : 1, + "descriptor" : "I", + "decoder" : 751928619 + }, { + "field" : "indexCache", + "owner" : "ig", + "name" : "a", + "access" : 1, + "descriptor" : "Lin;" + }, { + "field" : "padding", + "owner" : "ig", + "name" : "g", + "access" : 1, + "descriptor" : "B" + } ], + "methods" : [ ], + "constructors" : [ { + "access" : 0, + "descriptor" : "()V" + } ] +}, { + "class" : "Buddy", + "name" : "kl", + "super" : "kn", + "access" : 33, + "interfaces" : [ ], + "fields" : [ { + "field" : "int2", + "owner" : "kl", + "name" : "f", + "access" : 1, + "descriptor" : "I", + "decoder" : -2143445875 + }, { + "field" : "rank", + "owner" : "kl", + "name" : "p", + "access" : 1, + "descriptor" : "I", + "decoder" : 1644405117 + }, { + "field" : "world0", + "owner" : "kl", + "name" : "h", + "access" : 1, + "descriptor" : "I", + "decoder" : 2063532353 + } ], + "methods" : [ { + "method" : "hasWorld", + "owner" : "kl", + "name" : "bg", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(B)Z" + }, { + "method" : "set", + "owner" : "kl", + "name" : "bp", + "access" : 0, + "descriptor" : "(III)V" + }, { + "method" : "world", + "owner" : "kl", + "name" : "bv", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(I)I" + } ], + "constructors" : [ { + "access" : 0, + "descriptor" : "()V" + } ] +}, { + "class" : "GrandExchangeEvents", + "name" : "p", + "super" : "java.lang.Object", + "access" : 33, + "interfaces" : [ ], + "fields" : [ { + "field" : "events", + "owner" : "p", + "name" : "a", + "access" : 17, + "descriptor" : "Ljava/util/List;" + } ], + "methods" : [ { + "method" : "sort", + "owner" : "p", + "name" : "a", + "access" : 1, + "descriptor" : "(Ljava/util/Comparator;ZB)V" + } ], + "constructors" : [ { + "access" : 1, + "descriptor" : "(Lgx;Z)V" + } ] +}, { + "class" : "WorldMapIndexCacheLoader", + "name" : "lw", + "super" : "java.lang.Object", + "access" : 33, + "interfaces" : [ ], + "fields" : [ { + "field" : "cacheName", + "owner" : "lw", + "name" : "h", + "access" : 0, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "indexCache", + "owner" : "lw", + "name" : "f", + "access" : 0, + "descriptor" : "Liz;" + }, { + "field" : "isLoaded0", + "owner" : "lw", + "name" : "m", + "access" : 0, + "descriptor" : "Z" + }, { + "field" : "percentLoaded0", + "owner" : "lw", + "name" : "p", + "access" : 0, + "descriptor" : "I", + "decoder" : -233880955 + } ], + "methods" : [ { + "method" : "isLoaded", + "owner" : "lw", + "name" : "g", + "access" : 0, + "parameters" : [ ], + "descriptor" : "(I)Z" + }, { + "method" : "load", + "owner" : "lw", + "name" : "s", + "access" : 0, + "parameters" : [ ], + "descriptor" : "(B)I" + }, { + "method" : "percentLoaded", + "owner" : "lw", + "name" : "x", + "access" : 0, + "parameters" : [ ], + "descriptor" : "(I)I" + }, { + "method" : "reset", + "owner" : "lw", + "name" : "a", + "access" : 0, + "parameters" : [ "cacheName" ], + "descriptor" : "(Ljava/lang/String;B)V" + } ], + "constructors" : [ { + "access" : 0, + "descriptor" : "(Liz;)V" + } ] +}, { + "class" : "MenuAction", + "name" : "ca", + "super" : "java.lang.Object", + "access" : 33, + "interfaces" : [ ], + "fields" : [ { + "field" : "action", + "owner" : "ca", + "name" : "h", + "access" : 0, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "argument0", + "owner" : "ca", + "name" : "x", + "access" : 0, + "descriptor" : "I", + "decoder" : 1344341039 + }, { + "field" : "argument1", + "owner" : "ca", + "name" : "a", + "access" : 0, + "descriptor" : "I", + "decoder" : 1584952213 + }, { + "field" : "argument2", + "owner" : "ca", + "name" : "s", + "access" : 0, + "descriptor" : "I", + "decoder" : -1666165603 + }, { + "field" : "opcode", + "owner" : "ca", + "name" : "g", + "access" : 0, + "descriptor" : "I", + "decoder" : -583181833 + } ], + "methods" : [ ], + "constructors" : [ { + "access" : 0, + "descriptor" : "()V" + } ] +}, { + "class" : "RunException", + "name" : "fe", + "super" : "java.lang.RuntimeException", + "access" : 33, + "interfaces" : [ ], + "fields" : [ { + "field" : "string", + "owner" : "fe", + "name" : "h", + "access" : 0, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "throwable", + "owner" : "fe", + "name" : "f", + "access" : 0, + "descriptor" : "Ljava/lang/Throwable;" + } ], + "methods" : [ ], + "constructors" : [ { + "access" : 0, + "descriptor" : "(Ljava/lang/Throwable;Ljava/lang/String;)V" + } ] +}, { + "class" : "PcmPlayerProvider", + "name" : "cw", + "super" : "java.lang.Object", + "access" : 1537, + "interfaces" : [ ], + "fields" : [ ], + "methods" : [ { + "method" : "player", + "owner" : "cw", + "name" : "a", + "access" : 1025, + "descriptor" : "(I)Lcz;" + } ], + "constructors" : [ ] +}, { + "class" : "NanoClock", + "name" : "fp", + "super" : "fl", + "access" : 33, + "interfaces" : [ ], + "fields" : [ { + "field" : "lastTimeNano", + "owner" : "fp", + "name" : "a", + "access" : 0, + "descriptor" : "J", + "decoder" : 5500580908329817685 + } ], + "methods" : [ { + "method" : "mark", + "owner" : "fp", + "name" : "a", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(B)V" + }, { + "method" : "wait", + "owner" : "fp", + "name" : "s", + "access" : 1, + "parameters" : [ "cycleMs", "minSleepMs" ], + "descriptor" : "(III)I" + } ], + "constructors" : [ { + "access" : 1, + "descriptor" : "()V" + } ] +}, { + "class" : "VarpDefinition", + "name" : "jn", + "super" : "ho", + "access" : 33, + "interfaces" : [ ], + "fields" : [ { + "field" : "type", + "owner" : "jn", + "name" : "x", + "access" : 1, + "descriptor" : "I", + "decoder" : 1819484817 + } ], + "methods" : [ { + "method" : "read", + "owner" : "jn", + "name" : "g", + "access" : 0, + "descriptor" : "(Lgx;I)V" + }, { + "method" : "readNext", + "owner" : "jn", + "name" : "x", + "access" : 0, + "descriptor" : "(Lgx;II)V" + } ], + "constructors" : [ { + "access" : 0, + "descriptor" : "()V" + } ] +}, { + "class" : "ClientParameter", + "name" : "jb", + "super" : "java.lang.Object", + "access" : 33, + "interfaces" : [ ], + "fields" : [ { + "field" : "id", + "owner" : "jb", + "name" : "v", + "access" : 17, + "descriptor" : "Ljava/lang/String;" + } ], + "methods" : [ ], + "constructors" : [ { + "access" : 0, + "descriptor" : "(Ljava/lang/String;Ljava/lang/String;)V" + } ] +}, { + "class" : "SpriteMask", + "name" : "hk", + "super" : "ho", + "access" : 33, + "interfaces" : [ ], + "fields" : [ { + "field" : "height", + "owner" : "hk", + "name" : "s", + "access" : 17, + "descriptor" : "I", + "decoder" : 190259019 + }, { + "field" : "width", + "owner" : "hk", + "name" : "a", + "access" : 17, + "descriptor" : "I", + "decoder" : 456307015 + }, { + "field" : "xStarts", + "owner" : "hk", + "name" : "x", + "access" : 17, + "descriptor" : "[I" + }, { + "field" : "xWidths", + "owner" : "hk", + "name" : "g", + "access" : 17, + "descriptor" : "[I" + } ], + "methods" : [ { + "method" : "contains", + "owner" : "hk", + "name" : "a", + "access" : 1, + "parameters" : [ "x", "y" ], + "descriptor" : "(III)Z" + } ], + "constructors" : [ { + "access" : 0, + "descriptor" : "(II[I[II)V" + } ] +}, { + "class" : "UrlRequest", + "name" : "ez", + "super" : "java.lang.Object", + "access" : 33, + "interfaces" : [ ], + "fields" : [ { + "field" : "isDone0", + "owner" : "ez", + "name" : "s", + "access" : 64, + "descriptor" : "Z" + }, { + "field" : "response0", + "owner" : "ez", + "name" : "g", + "access" : 64, + "descriptor" : "[B" + }, { + "field" : "url", + "owner" : "ez", + "name" : "a", + "access" : 16, + "descriptor" : "Ljava/net/URL;" + } ], + "methods" : [ { + "method" : "getResponse", + "owner" : "ez", + "name" : "s", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(B)[B" + }, { + "method" : "isDone", + "owner" : "ez", + "name" : "a", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(I)Z" + } ], + "constructors" : [ { + "access" : 0, + "descriptor" : "(Ljava/net/URL;)V" + } ] +}, { + "class" : "Rasterizer2D", + "name" : "lb", + "super" : "ho", + "access" : 33, + "interfaces" : [ ], + "fields" : [ ], + "methods" : [ ], + "constructors" : [ { + "access" : 4, + "descriptor" : "()V" + } ] +}, { + "class" : "Usernamed", + "name" : "ko", + "super" : "java.lang.Object", + "access" : 1537, + "interfaces" : [ ], + "fields" : [ ], + "methods" : [ { + "method" : "username", + "owner" : "ko", + "name" : "ln", + "access" : 1025, + "descriptor" : "(I)Lkx;" + } ], + "constructors" : [ ] +}, { + "class" : "Entity", + "name" : "em", + "super" : "ho", + "access" : 1057, + "interfaces" : [ ], + "fields" : [ { + "field" : "height", + "owner" : "em", + "name" : "cs", + "access" : 1, + "descriptor" : "I", + "decoder" : -460629523 + } ], + "methods" : [ { + "method" : "draw", + "owner" : "em", + "name" : "cb", + "access" : 0, + "parameters" : [ "yaw", "cameraPitchSine", "cameraPitchCosine", "cameraYawSine", "cameraYawCosine", "x", "y", "z", "tag" ], + "descriptor" : "(IIIIIIIIJ)V" + }, { + "method" : "getModel", + "owner" : "em", + "name" : "q", + "access" : 4, + "parameters" : [ ], + "descriptor" : "(I)Ldv;" + } ], + "constructors" : [ { + "access" : 4, + "descriptor" : "()V" + } ] +}, { + "class" : "WallDecoration", + "name" : "ef", + "super" : "java.lang.Object", + "access" : 49, + "interfaces" : [ ], + "fields" : [ { + "field" : "entity1", + "owner" : "ef", + "name" : "m", + "access" : 1, + "descriptor" : "Lem;" + }, { + "field" : "entity2", + "owner" : "ef", + "name" : "q", + "access" : 1, + "descriptor" : "Lem;" + }, { + "field" : "flags", + "owner" : "ef", + "name" : "n", + "access" : 0, + "descriptor" : "I", + "decoder" : -1941711703 + }, { + "field" : "int7", + "owner" : "ef", + "name" : "h", + "access" : 0, + "descriptor" : "I", + "decoder" : 1554727321 + }, { + "field" : "orientation", + "owner" : "ef", + "name" : "x", + "access" : 0, + "descriptor" : "I", + "decoder" : 205892101 + }, { + "field" : "tag", + "owner" : "ef", + "name" : "b", + "access" : 1, + "descriptor" : "J", + "decoder" : -7300530763844858277 + }, { + "field" : "tileHeight", + "owner" : "ef", + "name" : "a", + "access" : 0, + "descriptor" : "I", + "decoder" : -103719315 + }, { + "field" : "x", + "owner" : "ef", + "name" : "s", + "access" : 0, + "descriptor" : "I", + "decoder" : 1049239705 + }, { + "field" : "xOffset", + "owner" : "ef", + "name" : "f", + "access" : 0, + "descriptor" : "I", + "decoder" : -1246331161 + }, { + "field" : "y", + "owner" : "ef", + "name" : "g", + "access" : 0, + "descriptor" : "I", + "decoder" : 465213843 + }, { + "field" : "yOffset", + "owner" : "ef", + "name" : "p", + "access" : 0, + "descriptor" : "I", + "decoder" : 399558767 + } ], + "methods" : [ ], + "constructors" : [ { + "access" : 0, + "descriptor" : "()V" + } ] +}, { + "class" : "Projectile", + "name" : "ct", + "super" : "em", + "access" : 49, + "interfaces" : [ ], + "fields" : [ { + "field" : "accelerationZ", + "owner" : "ct", + "name" : "v", + "access" : 0, + "descriptor" : "D" + }, { + "field" : "cycleEnd", + "owner" : "ct", + "name" : "m", + "access" : 0, + "descriptor" : "I", + "decoder" : 506418453 + }, { + "field" : "cycleStart", + "owner" : "ct", + "name" : "p", + "access" : 0, + "descriptor" : "I", + "decoder" : -1432275439 + }, { + "field" : "frame", + "owner" : "ct", + "name" : "c", + "access" : 0, + "descriptor" : "I", + "decoder" : -455933117 + }, { + "field" : "frameCycle", + "owner" : "ct", + "name" : "j", + "access" : 0, + "descriptor" : "I", + "decoder" : -44715143 + }, { + "field" : "id", + "owner" : "ct", + "name" : "a", + "access" : 0, + "descriptor" : "I", + "decoder" : 595928693 + }, { + "field" : "int3", + "owner" : "ct", + "name" : "q", + "access" : 0, + "descriptor" : "I", + "decoder" : 2028992299 + }, { + "field" : "int4", + "owner" : "ct", + "name" : "b", + "access" : 0, + "descriptor" : "I", + "decoder" : 1443812039 + }, { + "field" : "int5", + "owner" : "ct", + "name" : "f", + "access" : 0, + "descriptor" : "I", + "decoder" : -204280907 + }, { + "field" : "isMoving", + "owner" : "ct", + "name" : "e", + "access" : 0, + "descriptor" : "Z" + }, { + "field" : "pitch", + "owner" : "ct", + "name" : "w", + "access" : 0, + "descriptor" : "I", + "decoder" : -77331817 + }, { + "field" : "plane", + "owner" : "ct", + "name" : "s", + "access" : 0, + "descriptor" : "I", + "decoder" : 1964390021 + }, { + "field" : "sequenceDefinition", + "owner" : "ct", + "name" : "i", + "access" : 0, + "descriptor" : "Lju;" + }, { + "field" : "sourceX", + "owner" : "ct", + "name" : "g", + "access" : 0, + "descriptor" : "I", + "decoder" : 1259021119 + }, { + "field" : "sourceY", + "owner" : "ct", + "name" : "x", + "access" : 0, + "descriptor" : "I", + "decoder" : -142241487 + }, { + "field" : "sourceZ", + "owner" : "ct", + "name" : "h", + "access" : 0, + "descriptor" : "I", + "decoder" : -2091027413 + }, { + "field" : "speed", + "owner" : "ct", + "name" : "y", + "access" : 0, + "descriptor" : "D" + }, { + "field" : "speedX", + "owner" : "ct", + "name" : "o", + "access" : 0, + "descriptor" : "D" + }, { + "field" : "speedY", + "owner" : "ct", + "name" : "u", + "access" : 0, + "descriptor" : "D" + }, { + "field" : "speedZ", + "owner" : "ct", + "name" : "k", + "access" : 0, + "descriptor" : "D" + }, { + "field" : "targetIndex", + "owner" : "ct", + "name" : "n", + "access" : 0, + "descriptor" : "I", + "decoder" : -1655053057 + }, { + "field" : "x", + "owner" : "ct", + "name" : "r", + "access" : 0, + "descriptor" : "D" + }, { + "field" : "y", + "owner" : "ct", + "name" : "t", + "access" : 0, + "descriptor" : "D" + }, { + "field" : "yaw", + "owner" : "ct", + "name" : "d", + "access" : 0, + "descriptor" : "I", + "decoder" : -412451625 + }, { + "field" : "z", + "owner" : "ct", + "name" : "l", + "access" : 0, + "descriptor" : "D" + } ], + "methods" : [ { + "method" : "advance", + "owner" : "ct", + "name" : "s", + "access" : 16, + "parameters" : [ "cycles" ], + "descriptor" : "(II)V" + }, { + "method" : "getModel", + "owner" : "ct", + "name" : "q", + "access" : 20, + "parameters" : [ ], + "descriptor" : "(I)Ldv;" + }, { + "method" : "setDestination", + "owner" : "ct", + "name" : "a", + "access" : 16, + "parameters" : [ "x", "y", "height", "cycle" ], + "descriptor" : "(IIIII)V" + } ], + "constructors" : [ { + "access" : 0, + "descriptor" : "(IIIIIIIIIII)V" + } ] +}, { + "class" : "DevicePcmPlayerProvider", + "name" : "ac", + "super" : "java.lang.Object", + "access" : 33, + "interfaces" : [ "cw" ], + "fields" : [ ], + "methods" : [ { + "method" : "player", + "owner" : "ac", + "name" : "a", + "access" : 1, + "descriptor" : "(I)Lcz;" + } ], + "constructors" : [ { + "access" : 0, + "descriptor" : "()V" + } ] +}, { + "class" : "WorldMapSection", + "name" : "au", + "super" : "java.lang.Object", + "access" : 1537, + "interfaces" : [ ], + "fields" : [ ], + "methods" : [ { + "method" : "containsCoord", + "owner" : "au", + "name" : "s", + "access" : 1025, + "parameters" : [ "plane", "x", "y" ], + "descriptor" : "(IIII)Z" + }, { + "method" : "containsPosition", + "owner" : "au", + "name" : "g", + "access" : 1025, + "parameters" : [ "x", "y" ], + "descriptor" : "(III)Z" + }, { + "method" : "coord", + "owner" : "au", + "name" : "h", + "access" : 1025, + "parameters" : [ "x", "y" ], + "descriptor" : "(III)Lif;" + }, { + "method" : "expandBounds", + "owner" : "au", + "name" : "a", + "access" : 1025, + "parameters" : [ "area" ], + "descriptor" : "(Lag;B)V" + }, { + "method" : "position", + "owner" : "au", + "name" : "x", + "access" : 1025, + "parameters" : [ "plane", "x", "y" ], + "descriptor" : "(IIIB)[I" + }, { + "method" : "read", + "owner" : "au", + "name" : "f", + "access" : 1025, + "parameters" : [ "buffer" ], + "descriptor" : "(Lgx;B)V" + } ], + "constructors" : [ ] +}, { + "class" : "AbstractFont", + "name" : "kf", + "super" : "lb", + "access" : 1057, + "interfaces" : [ ], + "fields" : [ { + "field" : "advances", + "owner" : "kf", + "name" : "s", + "access" : 0, + "descriptor" : "[I" + }, { + "field" : "ascent", + "owner" : "kf", + "name" : "p", + "access" : 1, + "descriptor" : "I" + }, { + "field" : "heights", + "owner" : "kf", + "name" : "x", + "access" : 0, + "descriptor" : "[I" + }, { + "field" : "kerning", + "owner" : "kf", + "name" : "n", + "access" : 0, + "descriptor" : "[B" + }, { + "field" : "leftBearings", + "owner" : "kf", + "name" : "h", + "access" : 0, + "descriptor" : "[I" + }, { + "field" : "maxAscent", + "owner" : "kf", + "name" : "m", + "access" : 1, + "descriptor" : "I" + }, { + "field" : "maxDescent", + "owner" : "kf", + "name" : "q", + "access" : 1, + "descriptor" : "I" + }, { + "field" : "pixels", + "owner" : "kf", + "name" : "a", + "access" : 0, + "descriptor" : "[[B" + }, { + "field" : "topBearings", + "owner" : "kf", + "name" : "f", + "access" : 0, + "descriptor" : "[I" + }, { + "field" : "widths", + "owner" : "kf", + "name" : "g", + "access" : 0, + "descriptor" : "[I" + } ], + "methods" : [ { + "method" : "breakLines", + "owner" : "kf", + "name" : "q", + "access" : 1, + "parameters" : [ "s", "lineWidths", "linesDst" ], + "descriptor" : "(Ljava/lang/String;[I[Ljava/lang/String;)I" + }, { + "method" : "calculateLineJustification", + "owner" : "kf", + "name" : "ah", + "access" : 0, + "parameters" : [ "s", "lineWidth" ], + "descriptor" : "(Ljava/lang/String;I)V" + }, { + "method" : "charWidth", + "owner" : "kf", + "name" : "p", + "access" : 0, + "parameters" : [ "c" ], + "descriptor" : "(C)I" + }, { + "method" : "decodeTag", + "owner" : "kf", + "name" : "ab", + "access" : 0, + "parameters" : [ "s" ], + "descriptor" : "(Ljava/lang/String;)V" + }, { + "method" : "draw", + "owner" : "kf", + "name" : "r", + "access" : 1, + "parameters" : [ "s", "x", "y", "color", "shadow" ], + "descriptor" : "(Ljava/lang/String;IIII)V" + }, { + "method" : "draw0", + "owner" : "kf", + "name" : "aw", + "access" : 0, + "parameters" : [ "s", "x", "y" ], + "descriptor" : "(Ljava/lang/String;II)V" + }, { + "method" : "drawAlpha", + "owner" : "kf", + "name" : "t", + "access" : 1, + "parameters" : [ "s", "x", "y", "color", "shadow", "alpha" ], + "descriptor" : "(Ljava/lang/String;IIIII)V" + }, { + "method" : "drawCentered", + "owner" : "kf", + "name" : "o", + "access" : 1, + "parameters" : [ "s", "x", "y", "color", "shadow" ], + "descriptor" : "(Ljava/lang/String;IIII)V" + }, { + "method" : "drawCenteredShake", + "owner" : "kf", + "name" : "v", + "access" : 1, + "parameters" : [ "s", "x", "y", "color", "shadow", "seed", "seed2" ], + "descriptor" : "(Ljava/lang/String;IIIIII)V" + }, { + "method" : "drawCenteredWave", + "owner" : "kf", + "name" : "y", + "access" : 1, + "parameters" : [ "s", "x", "y", "color", "shadow", "seed" ], + "descriptor" : "(Ljava/lang/String;IIIII)V" + }, { + "method" : "drawCenteredWave2", + "owner" : "kf", + "name" : "k", + "access" : 1, + "parameters" : [ "s", "x", "y", "color", "shadow", "seed" ], + "descriptor" : "(Ljava/lang/String;IIIII)V" + }, { + "method" : "drawGlyph", + "owner" : "kf", + "name" : "a", + "access" : 1024, + "parameters" : [ "pixels", "x", "y", "width", "height", "color" ], + "descriptor" : "([BIIIII)V" + }, { + "method" : "drawGlyphAlpha", + "owner" : "kf", + "name" : "s", + "access" : 1024, + "parameters" : [ "pixels", "x", "y", "width", "height", "color", "alpha" ], + "descriptor" : "([BIIIIII)V" + }, { + "method" : "drawLines", + "owner" : "kf", + "name" : "u", + "access" : 1, + "parameters" : [ "s", "x", "y", "width", "height", "color", "shadow", "xAlignment", "yAlignment", "lineHeight" ], + "descriptor" : "(Ljava/lang/String;IIIIIIIII)I" + }, { + "method" : "drawRandomAlphaAndSpacing", + "owner" : "kf", + "name" : "c", + "access" : 1, + "parameters" : [ "s", "x", "y", "color", "shadow", "seed" ], + "descriptor" : "(Ljava/lang/String;IIIII)V" + }, { + "method" : "drawRightAligned", + "owner" : "kf", + "name" : "l", + "access" : 1, + "parameters" : [ "s", "x", "y", "color", "shadow" ], + "descriptor" : "(Ljava/lang/String;IIII)V" + }, { + "method" : "drawWithOffsets0", + "owner" : "kf", + "name" : "an", + "access" : 0, + "parameters" : [ "s", "x", "y", "xs", "ys" ], + "descriptor" : "(Ljava/lang/String;II[I[I)V" + }, { + "method" : "lineCount", + "owner" : "kf", + "name" : "n", + "access" : 1, + "parameters" : [ "s", "lineWidth" ], + "descriptor" : "(Ljava/lang/String;I)I" + }, { + "method" : "lineWidth", + "owner" : "kf", + "name" : "b", + "access" : 1, + "parameters" : [ "s", "lineWidth" ], + "descriptor" : "(Ljava/lang/String;I)I" + }, { + "method" : "readMetrics", + "owner" : "kf", + "name" : "h", + "access" : 0, + "parameters" : [ "bytes" ], + "descriptor" : "([B)V" + }, { + "method" : "reset", + "owner" : "kf", + "name" : "aa", + "access" : 0, + "parameters" : [ "color", "shadow" ], + "descriptor" : "(II)V" + }, { + "method" : "stringWidth", + "owner" : "kf", + "name" : "m", + "access" : 1, + "parameters" : [ "s" ], + "descriptor" : "(Ljava/lang/String;)I" + } ], + "constructors" : [ { + "access" : 0, + "descriptor" : "([B[I[I[I[I[I[[B)V" + }, { + "access" : 0, + "descriptor" : "([B)V" + } ] +}, { + "class" : "WorldMapEvent", + "name" : "ai", + "super" : "java.lang.Object", + "access" : 33, + "interfaces" : [ ], + "fields" : [ { + "field" : "coord1", + "owner" : "ai", + "name" : "s", + "access" : 1, + "descriptor" : "Lif;" + }, { + "field" : "coord2", + "owner" : "ai", + "name" : "g", + "access" : 1, + "descriptor" : "Lif;" + }, { + "field" : "mapElement", + "owner" : "ai", + "name" : "a", + "access" : 1, + "descriptor" : "I", + "decoder" : -1978146945 + } ], + "methods" : [ ], + "constructors" : [ { + "access" : 1, + "descriptor" : "(ILif;Lif;)V" + } ] +}, { + "class" : "PlatformInfoProvider", + "name" : "lx", + "super" : "java.lang.Object", + "access" : 1537, + "interfaces" : [ ], + "fields" : [ ], + "methods" : [ { + "method" : "get", + "owner" : "lx", + "name" : "a", + "access" : 1025, + "parameters" : [ ], + "descriptor" : "(I)Lli;" + } ], + "constructors" : [ ] +}, { + "class" : "Skeleton", + "name" : "ev", + "super" : "hy", + "access" : 33, + "interfaces" : [ ], + "fields" : [ { + "field" : "count", + "owner" : "ev", + "name" : "s", + "access" : 0, + "descriptor" : "I", + "decoder" : -534781423 + }, { + "field" : "id", + "owner" : "ev", + "name" : "a", + "access" : 0, + "descriptor" : "I", + "decoder" : -1289791215 + }, { + "field" : "labels", + "owner" : "ev", + "name" : "x", + "access" : 0, + "descriptor" : "[[I" + }, { + "field" : "transformTypes", + "owner" : "ev", + "name" : "g", + "access" : 0, + "descriptor" : "[I" + } ], + "methods" : [ ], + "constructors" : [ { + "access" : 0, + "descriptor" : "(I[B)V" + } ] +}, { + "class" : "StructDefinition", + "name" : "jq", + "super" : "ho", + "access" : 33, + "interfaces" : [ ], + "fields" : [ { + "field" : "params", + "owner" : "jq", + "name" : "g", + "access" : 0, + "descriptor" : "Lgs;" + } ], + "methods" : [ { + "method" : "getIntParam", + "owner" : "jq", + "name" : "h", + "access" : 1, + "descriptor" : "(III)I" + }, { + "method" : "getStringParam", + "owner" : "jq", + "name" : "f", + "access" : 1, + "descriptor" : "(ILjava/lang/String;S)Ljava/lang/String;" + }, { + "method" : "init", + "owner" : "jq", + "name" : "s", + "access" : 0, + "parameters" : [ ], + "descriptor" : "(I)V" + }, { + "method" : "read", + "owner" : "jq", + "name" : "g", + "access" : 0, + "descriptor" : "(Lgx;B)V" + }, { + "method" : "readNext", + "owner" : "jq", + "name" : "x", + "access" : 0, + "descriptor" : "(Lgx;II)V" + } ], + "constructors" : [ { + "access" : 0, + "descriptor" : "()V" + } ] +}, { + "class" : "Login", + "name" : "cc", + "super" : "java.lang.Object", + "access" : 33, + "interfaces" : [ ], + "fields" : [ ], + "methods" : [ ], + "constructors" : [ ] +}, { + "class" : "ReflectionCheck", + "name" : "ly", + "super" : "hy", + "access" : 33, + "interfaces" : [ ], + "fields" : [ { + "field" : "arguments", + "owner" : "ly", + "name" : "m", + "access" : 0, + "descriptor" : "[[[B" + }, { + "field" : "creationErrors", + "owner" : "ly", + "name" : "x", + "access" : 0, + "descriptor" : "[I" + }, { + "field" : "fields", + "owner" : "ly", + "name" : "h", + "access" : 0, + "descriptor" : "[Ljava/lang/reflect/Field;" + }, { + "field" : "id", + "owner" : "ly", + "name" : "a", + "access" : 0, + "descriptor" : "I", + "decoder" : 2098891529 + }, { + "field" : "intReplaceValues", + "owner" : "ly", + "name" : "f", + "access" : 0, + "descriptor" : "[I" + }, { + "field" : "methods", + "owner" : "ly", + "name" : "p", + "access" : 0, + "descriptor" : "[Ljava/lang/reflect/Method;" + }, { + "field" : "operations", + "owner" : "ly", + "name" : "g", + "access" : 0, + "descriptor" : "[I" + }, { + "field" : "size", + "owner" : "ly", + "name" : "s", + "access" : 0, + "descriptor" : "I", + "decoder" : -1743299775 + } ], + "methods" : [ ], + "constructors" : [ { + "access" : 0, + "descriptor" : "()V" + } ] +}, { + "class" : "Message", + "name" : "bl", + "super" : "ho", + "access" : 33, + "interfaces" : [ ], + "fields" : [ { + "field" : "count", + "owner" : "bl", + "name" : "a", + "access" : 0, + "descriptor" : "I", + "decoder" : -1952141511 + }, { + "field" : "cycle", + "owner" : "bl", + "name" : "s", + "access" : 0, + "descriptor" : "I", + "decoder" : -304319161 + }, { + "field" : "isFromFriend0", + "owner" : "bl", + "name" : "f", + "access" : 0, + "descriptor" : "Lkz;" + }, { + "field" : "isFromIgnored0", + "owner" : "bl", + "name" : "p", + "access" : 0, + "descriptor" : "Lkz;" + }, { + "field" : "prefix", + "owner" : "bl", + "name" : "m", + "access" : 0, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "sender", + "owner" : "bl", + "name" : "x", + "access" : 0, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "senderUsername", + "owner" : "bl", + "name" : "h", + "access" : 0, + "descriptor" : "Lkx;" + }, { + "field" : "text", + "owner" : "bl", + "name" : "q", + "access" : 0, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "type", + "owner" : "bl", + "name" : "g", + "access" : 0, + "descriptor" : "I", + "decoder" : 1927995217 + } ], + "methods" : [ { + "method" : "clearIsFromFriend", + "owner" : "bl", + "name" : "s", + "access" : 0, + "parameters" : [ ], + "descriptor" : "(I)V" + }, { + "method" : "clearIsFromIgnored", + "owner" : "bl", + "name" : "h", + "access" : 0, + "parameters" : [ ], + "descriptor" : "(I)V" + }, { + "method" : "fillIsFromFriend", + "owner" : "bl", + "name" : "x", + "access" : 0, + "parameters" : [ ], + "descriptor" : "(I)V" + }, { + "method" : "fillIsFromIgnored", + "owner" : "bl", + "name" : "p", + "access" : 0, + "parameters" : [ ], + "descriptor" : "(B)V" + }, { + "method" : "fillSenderUsername", + "owner" : "bl", + "name" : "m", + "access" : 16, + "parameters" : [ ], + "descriptor" : "(B)V" + }, { + "method" : "isFromFriend", + "owner" : "bl", + "name" : "g", + "access" : 16, + "parameters" : [ ], + "descriptor" : "(I)Z" + }, { + "method" : "isFromIgnored", + "owner" : "bl", + "name" : "f", + "access" : 16, + "parameters" : [ ], + "descriptor" : "(B)Z" + }, { + "method" : "set", + "owner" : "bl", + "name" : "a", + "access" : 0, + "parameters" : [ "type", "sender", "prefix", "text" ], + "descriptor" : "(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;I)V" + } ], + "constructors" : [ { + "access" : 0, + "descriptor" : "(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" + } ] +}, { + "class" : "NodeHashTable", + "name" : "ht", + "super" : "java.lang.Object", + "access" : 49, + "interfaces" : [ ], + "fields" : [ { + "field" : "buckets", + "owner" : "ht", + "name" : "s", + "access" : 0, + "descriptor" : "[Lhy;" + }, { + "field" : "current", + "owner" : "ht", + "name" : "x", + "access" : 0, + "descriptor" : "Lhy;" + }, { + "field" : "currentGet", + "owner" : "ht", + "name" : "g", + "access" : 0, + "descriptor" : "Lhy;" + }, { + "field" : "index", + "owner" : "ht", + "name" : "h", + "access" : 0, + "descriptor" : "I" + }, { + "field" : "size", + "owner" : "ht", + "name" : "a", + "access" : 0, + "descriptor" : "I" + } ], + "methods" : [ { + "method" : "clear", + "owner" : "ht", + "name" : "g", + "access" : 0, + "parameters" : [ ], + "descriptor" : "()V" + }, { + "method" : "first", + "owner" : "ht", + "name" : "x", + "access" : 1, + "parameters" : [ ], + "descriptor" : "()Lhy;" + }, { + "method" : "get", + "owner" : "ht", + "name" : "a", + "access" : 1, + "parameters" : [ "key" ], + "descriptor" : "(J)Lhy;" + }, { + "method" : "next", + "owner" : "ht", + "name" : "h", + "access" : 1, + "parameters" : [ ], + "descriptor" : "()Lhy;" + }, { + "method" : "put", + "owner" : "ht", + "name" : "s", + "access" : 1, + "parameters" : [ "node", "key" ], + "descriptor" : "(Lhy;J)V" + } ], + "constructors" : [ { + "access" : 1, + "descriptor" : "(I)V" + } ] +}, { + "class" : "IntegerNode", + "name" : "he", + "super" : "hy", + "access" : 33, + "interfaces" : [ ], + "fields" : [ { + "field" : "integer", + "owner" : "he", + "name" : "a", + "access" : 1, + "descriptor" : "I" + } ], + "methods" : [ ], + "constructors" : [ { + "access" : 1, + "descriptor" : "(I)V" + } ] +}, { + "class" : "IntHashTable", + "name" : "gt", + "super" : "java.lang.Object", + "access" : 33, + "interfaces" : [ ], + "fields" : [ { + "field" : "array", + "owner" : "gt", + "name" : "a", + "access" : 0, + "descriptor" : "[I" + } ], + "methods" : [ { + "method" : "get", + "owner" : "gt", + "name" : "a", + "access" : 1, + "descriptor" : "(I)I" + } ], + "constructors" : [ { + "access" : 1, + "descriptor" : "([I)V" + } ] +}, { + "class" : "ScriptFrame", + "name" : "bz", + "super" : "java.lang.Object", + "access" : 33, + "interfaces" : [ ], + "fields" : [ { + "field" : "intLocals", + "owner" : "bz", + "name" : "g", + "access" : 0, + "descriptor" : "[I" + }, { + "field" : "pc", + "owner" : "bz", + "name" : "s", + "access" : 0, + "descriptor" : "I", + "decoder" : -1508273535 + }, { + "field" : "script", + "owner" : "bz", + "name" : "a", + "access" : 0, + "descriptor" : "Lcs;" + }, { + "field" : "stringLocals", + "owner" : "bz", + "name" : "x", + "access" : 0, + "descriptor" : "[Ljava/lang/String;" + } ], + "methods" : [ ], + "constructors" : [ { + "access" : 0, + "descriptor" : "()V" + } ] +}, { + "class" : "Enumerated", + "name" : "gr", + "super" : "java.lang.Object", + "access" : 1537, + "interfaces" : [ ], + "fields" : [ ], + "methods" : [ { + "method" : "ordinal", + "owner" : "gr", + "name" : "x", + "access" : 1025, + "parameters" : [ ], + "descriptor" : "(I)I" + } ], + "constructors" : [ ] +}, { + "class" : "DualNodeDeque", + "name" : "gd", + "super" : "java.lang.Object", + "access" : 49, + "interfaces" : [ ], + "fields" : [ { + "field" : "sentinel", + "owner" : "gd", + "name" : "a", + "access" : 0, + "descriptor" : "Lho;" + } ], + "methods" : [ { + "method" : "addFirst", + "owner" : "gd", + "name" : "a", + "access" : 1, + "descriptor" : "(Lho;)V" + }, { + "method" : "addLast", + "owner" : "gd", + "name" : "s", + "access" : 1, + "descriptor" : "(Lho;)V" + }, { + "method" : "clear", + "owner" : "gd", + "name" : "f", + "access" : 0, + "descriptor" : "()V" + }, { + "method" : "last", + "owner" : "gd", + "name" : "h", + "access" : 1, + "descriptor" : "()Lho;" + }, { + "method" : "removeLast", + "owner" : "gd", + "name" : "x", + "access" : 0, + "descriptor" : "()Lho;" + } ], + "constructors" : [ { + "access" : 1, + "descriptor" : "()V" + } ] +}, { + "class" : "HealthBarUpdate", + "name" : "by", + "super" : "hy", + "access" : 33, + "interfaces" : [ ], + "fields" : [ { + "field" : "cycle", + "owner" : "by", + "name" : "a", + "access" : 0, + "descriptor" : "I", + "decoder" : -1922137535 + }, { + "field" : "cycleOffset", + "owner" : "by", + "name" : "x", + "access" : 0, + "descriptor" : "I", + "decoder" : 1553815911 + }, { + "field" : "health", + "owner" : "by", + "name" : "s", + "access" : 0, + "descriptor" : "I", + "decoder" : -1554469757 + }, { + "field" : "health2", + "owner" : "by", + "name" : "g", + "access" : 0, + "descriptor" : "I", + "decoder" : 1566650169 + } ], + "methods" : [ { + "method" : "set", + "owner" : "by", + "name" : "a", + "access" : 0, + "descriptor" : "(IIIIB)V" + } ], + "constructors" : [ { + "access" : 0, + "descriptor" : "(IIII)V" + } ] +}, { + "class" : "Rasterizer3D", + "name" : "df", + "super" : "lb", + "access" : 33, + "interfaces" : [ ], + "fields" : [ ], + "methods" : [ ], + "constructors" : [ ] +}, { + "class" : "ObjectNode", + "name" : "gv", + "super" : "hy", + "access" : 33, + "interfaces" : [ ], + "fields" : [ { + "field" : "obj", + "owner" : "gv", + "name" : "a", + "access" : 17, + "descriptor" : "Ljava/lang/Object;" + } ], + "methods" : [ ], + "constructors" : [ { + "access" : 1, + "descriptor" : "(Ljava/lang/Object;)V" + } ] +}, { + "class" : "ClanMate", + "name" : "km", + "super" : "kl", + "access" : 33, + "interfaces" : [ ], + "fields" : [ { + "field" : "isFriend0", + "owner" : "km", + "name" : "a", + "access" : 0, + "descriptor" : "Lkz;" + }, { + "field" : "isIgnored0", + "owner" : "km", + "name" : "s", + "access" : 0, + "descriptor" : "Lkz;" + } ], + "methods" : [ { + "method" : "clearIsFriend", + "owner" : "km", + "name" : "a", + "access" : 0, + "parameters" : [ ], + "descriptor" : "(I)V" + }, { + "method" : "clearIsIgnored", + "owner" : "km", + "name" : "x", + "access" : 0, + "parameters" : [ ], + "descriptor" : "(I)V" + }, { + "method" : "fillIsFriend", + "owner" : "km", + "name" : "g", + "access" : 0, + "parameters" : [ ], + "descriptor" : "(I)V" + }, { + "method" : "fillIsIgnored", + "owner" : "km", + "name" : "f", + "access" : 0, + "parameters" : [ ], + "descriptor" : "(I)V" + }, { + "method" : "isFriend", + "owner" : "km", + "name" : "s", + "access" : 17, + "parameters" : [ ], + "descriptor" : "(I)Z" + }, { + "method" : "isIgnored", + "owner" : "km", + "name" : "h", + "access" : 17, + "parameters" : [ ], + "descriptor" : "(B)Z" + } ], + "constructors" : [ { + "access" : 0, + "descriptor" : "()V" + } ] +}, { + "class" : "WorldMapLabel", + "name" : "ay", + "super" : "java.lang.Object", + "access" : 33, + "interfaces" : [ ], + "fields" : [ { + "field" : "height", + "owner" : "ay", + "name" : "g", + "access" : 0, + "descriptor" : "I", + "decoder" : 65766785 + }, { + "field" : "size", + "owner" : "ay", + "name" : "x", + "access" : 0, + "descriptor" : "Ly;" + }, { + "field" : "text", + "owner" : "ay", + "name" : "a", + "access" : 0, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "width", + "owner" : "ay", + "name" : "s", + "access" : 0, + "descriptor" : "I", + "decoder" : 110876147 + } ], + "methods" : [ ], + "constructors" : [ { + "access" : 0, + "descriptor" : "(Ljava/lang/String;IILy;)V" + } ] +}, { + "class" : "Font", + "name" : "kt", + "super" : "kf", + "access" : 49, + "interfaces" : [ ], + "fields" : [ ], + "methods" : [ { + "method" : "drawGlyph", + "owner" : "kt", + "name" : "a", + "access" : 16, + "descriptor" : "([BIIIII)V" + }, { + "method" : "drawGlyphAlpha", + "owner" : "kt", + "name" : "s", + "access" : 16, + "descriptor" : "([BIIIIII)V" + } ], + "constructors" : [ { + "access" : 1, + "descriptor" : "([B[I[I[I[I[I[[B)V" + }, { + "access" : 1, + "descriptor" : "([B)V" + } ] +}, { + "class" : "FloorDecoration", + "name" : "dw", + "super" : "java.lang.Object", + "access" : 49, + "interfaces" : [ ], + "fields" : [ { + "field" : "entity", + "owner" : "dw", + "name" : "x", + "access" : 1, + "descriptor" : "Lem;" + }, { + "field" : "flags", + "owner" : "dw", + "name" : "f", + "access" : 0, + "descriptor" : "I", + "decoder" : 1275172067 + }, { + "field" : "tag", + "owner" : "dw", + "name" : "h", + "access" : 1, + "descriptor" : "J", + "decoder" : -7746942760389518379 + }, { + "field" : "tileHeight", + "owner" : "dw", + "name" : "a", + "access" : 0, + "descriptor" : "I", + "decoder" : 64699151 + }, { + "field" : "x", + "owner" : "dw", + "name" : "s", + "access" : 0, + "descriptor" : "I", + "decoder" : 1267567225 + }, { + "field" : "y", + "owner" : "dw", + "name" : "g", + "access" : 0, + "descriptor" : "I", + "decoder" : 1290086305 + } ], + "methods" : [ ], + "constructors" : [ { + "access" : 0, + "descriptor" : "()V" + } ] +}, { + "class" : "NodeDeque", + "name" : "hv", + "super" : "java.lang.Object", + "access" : 33, + "interfaces" : [ ], + "fields" : [ { + "field" : "current", + "owner" : "hv", + "name" : "s", + "access" : 0, + "descriptor" : "Lhy;" + }, { + "field" : "sentinel", + "owner" : "hv", + "name" : "a", + "access" : 1, + "descriptor" : "Lhy;" + } ], + "methods" : [ { + "method" : "addFirst", + "owner" : "hv", + "name" : "s", + "access" : 1, + "parameters" : [ "node" ], + "descriptor" : "(Lhy;)V" + }, { + "method" : "addLast", + "owner" : "hv", + "name" : "g", + "access" : 1, + "parameters" : [ "node" ], + "descriptor" : "(Lhy;)V" + }, { + "method" : "clear", + "owner" : "hv", + "name" : "a", + "access" : 1, + "parameters" : [ ], + "descriptor" : "()V" + }, { + "method" : "first", + "owner" : "hv", + "name" : "m", + "access" : 1, + "parameters" : [ ], + "descriptor" : "()Lhy;" + }, { + "method" : "last", + "owner" : "hv", + "name" : "p", + "access" : 1, + "parameters" : [ ], + "descriptor" : "()Lhy;" + }, { + "method" : "next", + "owner" : "hv", + "name" : "b", + "access" : 1, + "parameters" : [ ], + "descriptor" : "()Lhy;" + }, { + "method" : "previous", + "owner" : "hv", + "name" : "q", + "access" : 1, + "parameters" : [ ], + "descriptor" : "()Lhy;" + }, { + "method" : "removeFirst", + "owner" : "hv", + "name" : "f", + "access" : 1, + "parameters" : [ ], + "descriptor" : "()Lhy;" + }, { + "method" : "removeLast", + "owner" : "hv", + "name" : "h", + "access" : 1, + "parameters" : [ ], + "descriptor" : "()Lhy;" + } ], + "constructors" : [ { + "access" : 1, + "descriptor" : "()V" + } ] +}, { + "class" : "GroundItemPile", + "name" : "dy", + "super" : "java.lang.Object", + "access" : 49, + "interfaces" : [ ], + "fields" : [ { + "field" : "first", + "owner" : "dy", + "name" : "x", + "access" : 0, + "descriptor" : "Lem;" + }, { + "field" : "height", + "owner" : "dy", + "name" : "m", + "access" : 0, + "descriptor" : "I", + "decoder" : -683834749 + }, { + "field" : "second", + "owner" : "dy", + "name" : "h", + "access" : 0, + "descriptor" : "Lem;" + }, { + "field" : "tag", + "owner" : "dy", + "name" : "p", + "access" : 0, + "descriptor" : "J", + "decoder" : 4919486212967381457 + }, { + "field" : "third", + "owner" : "dy", + "name" : "f", + "access" : 0, + "descriptor" : "Lem;" + }, { + "field" : "tileHeight", + "owner" : "dy", + "name" : "a", + "access" : 0, + "descriptor" : "I", + "decoder" : -1922326197 + }, { + "field" : "x", + "owner" : "dy", + "name" : "s", + "access" : 0, + "descriptor" : "I", + "decoder" : 1126674869 + }, { + "field" : "y", + "owner" : "dy", + "name" : "g", + "access" : 0, + "descriptor" : "I", + "decoder" : -571565015 + } ], + "methods" : [ ], + "constructors" : [ { + "access" : 0, + "descriptor" : "()V" + } ] +}, { + "class" : "GraphicsObject", + "name" : "ba", + "super" : "em", + "access" : 49, + "interfaces" : [ ], + "fields" : [ { + "field" : "cycleStart", + "owner" : "ba", + "name" : "s", + "access" : 0, + "descriptor" : "I", + "decoder" : 679010059 + }, { + "field" : "frame", + "owner" : "ba", + "name" : "m", + "access" : 0, + "descriptor" : "I", + "decoder" : 953575315 + }, { + "field" : "frameCycle", + "owner" : "ba", + "name" : "q", + "access" : 0, + "descriptor" : "I", + "decoder" : 1058182045 + }, { + "field" : "height", + "owner" : "ba", + "name" : "f", + "access" : 0, + "descriptor" : "I", + "decoder" : -867255925 + }, { + "field" : "id", + "owner" : "ba", + "name" : "a", + "access" : 0, + "descriptor" : "I", + "decoder" : 1538944877 + }, { + "field" : "isFinished", + "owner" : "ba", + "name" : "b", + "access" : 0, + "descriptor" : "Z" + }, { + "field" : "plane", + "owner" : "ba", + "name" : "g", + "access" : 0, + "descriptor" : "I", + "decoder" : 1320502275 + }, { + "field" : "sequenceDefinition", + "owner" : "ba", + "name" : "p", + "access" : 0, + "descriptor" : "Lju;" + }, { + "field" : "x", + "owner" : "ba", + "name" : "h", + "access" : 0, + "descriptor" : "I", + "decoder" : 1605641487 + }, { + "field" : "y", + "owner" : "ba", + "name" : "x", + "access" : 0, + "descriptor" : "I", + "decoder" : 1424250479 + } ], + "methods" : [ { + "method" : "advance", + "owner" : "ba", + "name" : "a", + "access" : 16, + "parameters" : [ "cycles" ], + "descriptor" : "(II)V" + }, { + "method" : "getModel", + "owner" : "ba", + "name" : "q", + "access" : 20, + "parameters" : [ ], + "descriptor" : "(I)Ldv;" + } ], + "constructors" : [ { + "access" : 0, + "descriptor" : "(IIIIIII)V" + } ] +}, { + "class" : "LoginPacket", + "name" : "fv", + "super" : "java.lang.Object", + "access" : 33, + "interfaces" : [ "fr" ], + "fields" : [ { + "field" : "id", + "owner" : "fv", + "name" : "f", + "access" : 17, + "descriptor" : "I", + "decoder" : -1772519349 + } ], + "methods" : [ ], + "constructors" : [ { + "access" : 0, + "descriptor" : "(II)V" + } ] +}, { + "class" : "AbstractSound", + "name" : "dj", + "super" : "hy", + "access" : 1057, + "interfaces" : [ ], + "fields" : [ { + "field" : "position", + "owner" : "dj", + "name" : "f", + "access" : 0, + "descriptor" : "I" + } ], + "methods" : [ ], + "constructors" : [ { + "access" : 0, + "descriptor" : "()V" + } ] +}, { + "class" : "VarbitDefinition", + "name" : "jt", + "super" : "ho", + "access" : 33, + "interfaces" : [ ], + "fields" : [ { + "field" : "highBit", + "owner" : "jt", + "name" : "h", + "access" : 1, + "descriptor" : "I", + "decoder" : -1702644217 + }, { + "field" : "lowBit", + "owner" : "jt", + "name" : "x", + "access" : 1, + "descriptor" : "I", + "decoder" : 111370627 + }, { + "field" : "varp", + "owner" : "jt", + "name" : "g", + "access" : 1, + "descriptor" : "I", + "decoder" : -2032962997 + } ], + "methods" : [ { + "method" : "read", + "owner" : "jt", + "name" : "g", + "access" : 0, + "descriptor" : "(Lgx;I)V" + }, { + "method" : "readNext", + "owner" : "jt", + "name" : "x", + "access" : 0, + "descriptor" : "(Lgx;II)V" + } ], + "constructors" : [ { + "access" : 0, + "descriptor" : "()V" + } ] +}, { + "class" : "Bzip2Decompressor", + "name" : "ga", + "super" : "java.lang.Object", + "access" : 49, + "interfaces" : [ ], + "fields" : [ ], + "methods" : [ ], + "constructors" : [ ] +}, { + "class" : "DynamicObject", + "name" : "co", + "super" : "em", + "access" : 33, + "interfaces" : [ ], + "fields" : [ { + "field" : "cycleStart", + "owner" : "co", + "name" : "q", + "access" : 0, + "descriptor" : "I", + "decoder" : 1071500809 + }, { + "field" : "frame", + "owner" : "co", + "name" : "m", + "access" : 0, + "descriptor" : "I", + "decoder" : -267134163 + }, { + "field" : "id", + "owner" : "co", + "name" : "a", + "access" : 0, + "descriptor" : "I", + "decoder" : -1934319317 + }, { + "field" : "orientation", + "owner" : "co", + "name" : "g", + "access" : 0, + "descriptor" : "I", + "decoder" : 1318398919 + }, { + "field" : "plane", + "owner" : "co", + "name" : "x", + "access" : 0, + "descriptor" : "I", + "decoder" : -1836194755 + }, { + "field" : "sequenceDefinition", + "owner" : "co", + "name" : "p", + "access" : 0, + "descriptor" : "Lju;" + }, { + "field" : "type", + "owner" : "co", + "name" : "s", + "access" : 0, + "descriptor" : "I", + "decoder" : 1671892841 + }, { + "field" : "x", + "owner" : "co", + "name" : "h", + "access" : 0, + "descriptor" : "I", + "decoder" : -1957562685 + }, { + "field" : "y", + "owner" : "co", + "name" : "f", + "access" : 0, + "descriptor" : "I", + "decoder" : 99477863 + } ], + "methods" : [ { + "method" : "getModel", + "owner" : "co", + "name" : "q", + "access" : 20, + "parameters" : [ ], + "descriptor" : "(I)Ldv;" + } ], + "constructors" : [ { + "access" : 0, + "descriptor" : "(IIIIIIIZLem;)V" + } ] +}, { + "class" : "InvDefinition", + "name" : "ja", + "super" : "ho", + "access" : 33, + "interfaces" : [ ], + "fields" : [ { + "field" : "size", + "owner" : "ja", + "name" : "g", + "access" : 1, + "descriptor" : "I", + "decoder" : -733268637 + } ], + "methods" : [ { + "method" : "read", + "owner" : "ja", + "name" : "s", + "access" : 0, + "descriptor" : "(Lgx;B)V" + }, { + "method" : "readNext", + "owner" : "ja", + "name" : "g", + "access" : 0, + "descriptor" : "(Lgx;II)V" + } ], + "constructors" : [ { + "access" : 0, + "descriptor" : "()V" + } ] +}, { + "class" : "GroundItem", + "name" : "cb", + "super" : "em", + "access" : 49, + "interfaces" : [ ], + "fields" : [ { + "field" : "id", + "owner" : "cb", + "name" : "a", + "access" : 0, + "descriptor" : "I", + "decoder" : 1683486297 + }, { + "field" : "quantity", + "owner" : "cb", + "name" : "s", + "access" : 0, + "descriptor" : "I", + "decoder" : 729993939 + } ], + "methods" : [ { + "method" : "getModel", + "owner" : "cb", + "name" : "q", + "access" : 20, + "parameters" : [ ], + "descriptor" : "(I)Ldv;" + } ], + "constructors" : [ { + "access" : 0, + "descriptor" : "()V" + } ] +}, { + "class" : "IndexStore", + "name" : "fb", + "super" : "java.lang.Object", + "access" : 49, + "interfaces" : [ ], + "fields" : [ { + "field" : "dataFile", + "owner" : "fb", + "name" : "s", + "access" : 0, + "descriptor" : "Ldx;" + }, { + "field" : "index", + "owner" : "fb", + "name" : "x", + "access" : 0, + "descriptor" : "I", + "decoder" : 1958721637 + }, { + "field" : "indexFile", + "owner" : "fb", + "name" : "g", + "access" : 0, + "descriptor" : "Ldx;" + }, { + "field" : "maxEntrySize", + "owner" : "fb", + "name" : "h", + "access" : 0, + "descriptor" : "I", + "decoder" : -1029369667 + } ], + "methods" : [ { + "method" : "read", + "owner" : "fb", + "name" : "a", + "access" : 1, + "parameters" : [ "entry" ], + "descriptor" : "(II)[B" + }, { + "method" : "write", + "owner" : "fb", + "name" : "s", + "access" : 1, + "descriptor" : "(I[BII)Z" + }, { + "method" : "write0", + "owner" : "fb", + "name" : "g", + "access" : 0, + "descriptor" : "(I[BIZB)Z" + } ], + "constructors" : [ { + "access" : 1, + "descriptor" : "(ILdx;Ldx;I)V" + } ] +}, { + "class" : "Wrapper", + "name" : "hg", + "super" : "ho", + "access" : 1057, + "interfaces" : [ ], + "fields" : [ { + "field" : "size", + "owner" : "hg", + "name" : "s", + "access" : 16, + "descriptor" : "I" + } ], + "methods" : [ { + "method" : "get", + "owner" : "hg", + "name" : "a", + "access" : 1024, + "parameters" : [ ], + "descriptor" : "()Ljava/lang/Object;" + }, { + "method" : "isSoft", + "owner" : "hg", + "name" : "s", + "access" : 1024, + "parameters" : [ ], + "descriptor" : "()Z" + } ], + "constructors" : [ { + "access" : 0, + "descriptor" : "(I)V" + } ] +}, { + "class" : "UserList", + "name" : "kd", + "super" : "java.lang.Object", + "access" : 1057, + "interfaces" : [ ], + "fields" : [ { + "field" : "array", + "owner" : "kd", + "name" : "f", + "access" : 0, + "descriptor" : "[Lkn;" + }, { + "field" : "capacity", + "owner" : "kd", + "name" : "x", + "access" : 16, + "descriptor" : "I", + "decoder" : 1426289773 + }, { + "field" : "comparator", + "owner" : "kd", + "name" : "q", + "access" : 0, + "descriptor" : "Ljava/util/Comparator;" + }, { + "field" : "previousUsernamesMap", + "owner" : "kd", + "name" : "m", + "access" : 0, + "descriptor" : "Ljava/util/HashMap;" + }, { + "field" : "size0", + "owner" : "kd", + "name" : "h", + "access" : 0, + "descriptor" : "I", + "decoder" : -525617491 + }, { + "field" : "usernamesMap", + "owner" : "kd", + "name" : "p", + "access" : 0, + "descriptor" : "Ljava/util/HashMap;" + } ], + "methods" : [ { + "method" : "addComparator", + "owner" : "kd", + "name" : "as", + "access" : 17, + "parameters" : [ "c" ], + "descriptor" : "(Ljava/util/Comparator;I)V" + }, { + "method" : "addLast", + "owner" : "kd", + "name" : "aa", + "access" : 0, + "parameters" : [ "username", "previousUsername" ], + "descriptor" : "(Lkx;Lkx;I)Lkn;" + }, { + "method" : "addLastNoPreviousUsername", + "owner" : "kd", + "name" : "c", + "access" : 0, + "parameters" : [ "username" ], + "descriptor" : "(Lkx;I)Lkn;" + }, { + "method" : "arrayAddLast", + "owner" : "kd", + "name" : "ae", + "access" : 16, + "parameters" : [ "user" ], + "descriptor" : "(Lkn;I)V" + }, { + "method" : "arrayRemove", + "owner" : "kd", + "name" : "au", + "access" : 16, + "parameters" : [ "index" ], + "descriptor" : "(IB)V" + }, { + "method" : "changeName", + "owner" : "kd", + "name" : "aw", + "access" : 16, + "parameters" : [ "user", "username", "previousUsername" ], + "descriptor" : "(Lkn;Lkx;Lkx;I)V" + }, { + "method" : "clear", + "owner" : "kd", + "name" : "e", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(I)V" + }, { + "method" : "contains", + "owner" : "kd", + "name" : "l", + "access" : 1, + "parameters" : [ "username" ], + "descriptor" : "(Lkx;B)Z" + }, { + "method" : "get", + "owner" : "kd", + "name" : "ab", + "access" : 17, + "parameters" : [ "index" ], + "descriptor" : "(IB)Lkn;" + }, { + "method" : "getByCurrentUsername", + "owner" : "kd", + "name" : "u", + "access" : 0, + "parameters" : [ "username" ], + "descriptor" : "(Lkx;B)Lkn;" + }, { + "method" : "getByPreviousUsername", + "owner" : "kd", + "name" : "y", + "access" : 0, + "parameters" : [ "previousUsername" ], + "descriptor" : "(Lkx;I)Lkn;" + }, { + "method" : "getByUsername", + "owner" : "kd", + "name" : "o", + "access" : 1, + "parameters" : [ "username" ], + "descriptor" : "(Lkx;I)Lkn;" + }, { + "method" : "indexOf", + "owner" : "kd", + "name" : "an", + "access" : 16, + "parameters" : [ "user" ], + "descriptor" : "(Lkn;I)I" + }, { + "method" : "isFull", + "owner" : "kd", + "name" : "t", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(I)Z" + }, { + "method" : "mapPut", + "owner" : "kd", + "name" : "av", + "access" : 16, + "parameters" : [ "user" ], + "descriptor" : "(Lkn;I)V" + }, { + "method" : "mapRemove", + "owner" : "kd", + "name" : "at", + "access" : 16, + "parameters" : [ "user" ], + "descriptor" : "(Lkn;I)V" + }, { + "method" : "newInstance", + "owner" : "kd", + "name" : "a", + "access" : 1024, + "parameters" : [ ], + "descriptor" : "(I)Lkn;" + }, { + "method" : "newTypedArray", + "owner" : "kd", + "name" : "s", + "access" : 1024, + "parameters" : [ "size" ], + "descriptor" : "(IB)[Lkn;" + }, { + "method" : "remove", + "owner" : "kd", + "name" : "v", + "access" : 16, + "parameters" : [ "user" ], + "descriptor" : "(Lkn;B)V" + }, { + "method" : "removeByUsername", + "owner" : "kd", + "name" : "k", + "access" : 17, + "parameters" : [ "username" ], + "descriptor" : "(Lkx;I)Z" + }, { + "method" : "removeComparator", + "owner" : "kd", + "name" : "aj", + "access" : 17, + "parameters" : [ ], + "descriptor" : "(B)V" + }, { + "method" : "size", + "owner" : "kd", + "name" : "r", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(I)I" + }, { + "method" : "sort", + "owner" : "kd", + "name" : "ah", + "access" : 17, + "parameters" : [ ], + "descriptor" : "(I)V" + } ], + "constructors" : [ { + "access" : 0, + "descriptor" : "(I)V" + } ] +}, { + "class" : "SoundCache", + "name" : "ds", + "super" : "java.lang.Object", + "access" : 33, + "interfaces" : [ ], + "fields" : [ { + "field" : "musicSampleIndex", + "owner" : "ds", + "name" : "s", + "access" : 0, + "descriptor" : "Liz;" + }, { + "field" : "musicSamples", + "owner" : "ds", + "name" : "g", + "access" : 0, + "descriptor" : "Lht;" + }, { + "field" : "rawSounds", + "owner" : "ds", + "name" : "x", + "access" : 0, + "descriptor" : "Lht;" + }, { + "field" : "soundEffectIndex", + "owner" : "ds", + "name" : "a", + "access" : 0, + "descriptor" : "Liz;" + } ], + "methods" : [ { + "method" : "getMusicSample", + "owner" : "ds", + "name" : "x", + "access" : 1, + "descriptor" : "(I[IB)Lce;" + }, { + "method" : "getMusicSample0", + "owner" : "ds", + "name" : "s", + "access" : 0, + "descriptor" : "(II[II)Lce;" + }, { + "method" : "getSoundEffect", + "owner" : "ds", + "name" : "g", + "access" : 1, + "descriptor" : "(I[II)Lce;" + }, { + "method" : "getSoundEffect0", + "owner" : "ds", + "name" : "a", + "access" : 0, + "descriptor" : "(II[II)Lce;" + } ], + "constructors" : [ { + "access" : 1, + "descriptor" : "(Liz;Liz;)V" + } ] +}, { + "class" : "Messages", + "name" : "cf", + "super" : "java.lang.Object", + "access" : 33, + "interfaces" : [ ], + "fields" : [ ], + "methods" : [ ], + "constructors" : [ ] +}, { + "class" : "BoundaryObject", + "name" : "ep", + "super" : "java.lang.Object", + "access" : 49, + "interfaces" : [ ], + "fields" : [ { + "field" : "entity1", + "owner" : "ep", + "name" : "f", + "access" : 1, + "descriptor" : "Lem;" + }, { + "field" : "entity2", + "owner" : "ep", + "name" : "p", + "access" : 1, + "descriptor" : "Lem;" + }, { + "field" : "flags", + "owner" : "ep", + "name" : "q", + "access" : 0, + "descriptor" : "I", + "decoder" : 1561916487 + }, { + "field" : "orientationA", + "owner" : "ep", + "name" : "x", + "access" : 0, + "descriptor" : "I", + "decoder" : 1799011399 + }, { + "field" : "orientationB", + "owner" : "ep", + "name" : "h", + "access" : 0, + "descriptor" : "I", + "decoder" : -346291033 + }, { + "field" : "tag", + "owner" : "ep", + "name" : "m", + "access" : 1, + "descriptor" : "J", + "decoder" : 6449850688779105297 + }, { + "field" : "tileHeight", + "owner" : "ep", + "name" : "a", + "access" : 0, + "descriptor" : "I", + "decoder" : -940943055 + }, { + "field" : "x", + "owner" : "ep", + "name" : "s", + "access" : 0, + "descriptor" : "I", + "decoder" : 794221253 + }, { + "field" : "y", + "owner" : "ep", + "name" : "g", + "access" : 0, + "descriptor" : "I", + "decoder" : -1427779503 + } ], + "methods" : [ ], + "constructors" : [ { + "access" : 0, + "descriptor" : "()V" + } ] +}, { + "class" : "Skills", + "name" : "iu", + "super" : "java.lang.Object", + "access" : 33, + "interfaces" : [ ], + "fields" : [ ], + "methods" : [ ], + "constructors" : [ ] +}, { + "class" : "DirectWrapper", + "name" : "gf", + "super" : "hg", + "access" : 33, + "interfaces" : [ ], + "fields" : [ { + "field" : "obj", + "owner" : "gf", + "name" : "a", + "access" : 0, + "descriptor" : "Ljava/lang/Object;" + } ], + "methods" : [ { + "method" : "get", + "owner" : "gf", + "name" : "a", + "access" : 0, + "parameters" : [ ], + "descriptor" : "()Ljava/lang/Object;" + }, { + "method" : "isSoft", + "owner" : "gf", + "name" : "s", + "access" : 0, + "parameters" : [ ], + "descriptor" : "()Z" + } ], + "constructors" : [ { + "access" : 0, + "descriptor" : "(Ljava/lang/Object;I)V" + } ] +}, { + "class" : "AttackOption", + "name" : "cx", + "super" : "java.lang.Object", + "access" : 33, + "interfaces" : [ "gr" ], + "fields" : [ { + "field" : "id", + "owner" : "cx", + "name" : "h", + "access" : 16, + "descriptor" : "I", + "decoder" : 1462687381 + } ], + "methods" : [ { + "method" : "ordinal", + "owner" : "cx", + "name" : "x", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(I)I" + } ], + "constructors" : [ { + "access" : 0, + "descriptor" : "(I)V" + } ] +}, { + "class" : "NetCache", + "name" : "io", + "super" : "java.lang.Object", + "access" : 33, + "interfaces" : [ ], + "fields" : [ ], + "methods" : [ ], + "constructors" : [ ] +}, { + "class" : "Animation", + "name" : "dm", + "super" : "java.lang.Object", + "access" : 33, + "interfaces" : [ ], + "fields" : [ { + "field" : "hasAlphaTransform", + "owner" : "dm", + "name" : "n", + "access" : 0, + "descriptor" : "Z" + }, { + "field" : "skeleton", + "owner" : "dm", + "name" : "h", + "access" : 0, + "descriptor" : "Lev;" + }, { + "field" : "transformCount", + "owner" : "dm", + "name" : "f", + "access" : 0, + "descriptor" : "I" + }, { + "field" : "transformSkeletonLabels", + "owner" : "dm", + "name" : "p", + "access" : 0, + "descriptor" : "[I" + }, { + "field" : "transformXs", + "owner" : "dm", + "name" : "m", + "access" : 0, + "descriptor" : "[I" + }, { + "field" : "transformYs", + "owner" : "dm", + "name" : "q", + "access" : 0, + "descriptor" : "[I" + }, { + "field" : "transformZs", + "owner" : "dm", + "name" : "b", + "access" : 0, + "descriptor" : "[I" + } ], + "methods" : [ ], + "constructors" : [ { + "access" : 0, + "descriptor" : "([BLev;)V" + } ] +}, { + "class" : "HealthBar", + "name" : "bm", + "super" : "hy", + "access" : 33, + "interfaces" : [ ], + "fields" : [ { + "field" : "definition", + "owner" : "bm", + "name" : "g", + "access" : 0, + "descriptor" : "Ljp;" + }, { + "field" : "updates", + "owner" : "bm", + "name" : "x", + "access" : 0, + "descriptor" : "Lhj;" + } ], + "methods" : [ { + "method" : "get", + "owner" : "bm", + "name" : "s", + "access" : 0, + "parameters" : [ "cycle" ], + "descriptor" : "(IB)Lby;" + }, { + "method" : "isEmpty", + "owner" : "bm", + "name" : "g", + "access" : 0, + "parameters" : [ ], + "descriptor" : "(B)Z" + }, { + "method" : "put", + "owner" : "bm", + "name" : "a", + "access" : 0, + "descriptor" : "(IIIIB)V" + } ], + "constructors" : [ { + "access" : 0, + "descriptor" : "(Ljp;)V" + } ] +}, { + "class" : "Frames", + "name" : "ei", + "super" : "ho", + "access" : 33, + "interfaces" : [ ], + "fields" : [ { + "field" : "frames", + "owner" : "ei", + "name" : "a", + "access" : 0, + "descriptor" : "[Ldm;" + } ], + "methods" : [ { + "method" : "hasAlphaTransform", + "owner" : "ei", + "name" : "a", + "access" : 1, + "parameters" : [ "frame" ], + "descriptor" : "(IB)Z" + } ], + "constructors" : [ { + "access" : 1, + "descriptor" : "(Liz;Liz;IZ)V" + } ] +}, { + "class" : "DesktopPlatformInfoProvider", + "name" : "lm", + "super" : "java.lang.Object", + "access" : 33, + "interfaces" : [ "lx" ], + "fields" : [ ], + "methods" : [ { + "method" : "get", + "owner" : "lm", + "name" : "a", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(I)Lli;" + } ], + "constructors" : [ { + "access" : 1, + "descriptor" : "()V" + } ] +}, { + "class" : "ChatChannel", + "name" : "cr", + "super" : "java.lang.Object", + "access" : 33, + "interfaces" : [ ], + "fields" : [ { + "field" : "count", + "owner" : "cr", + "name" : "g", + "access" : 0, + "descriptor" : "I", + "decoder" : 1313704483 + }, { + "field" : "messages", + "owner" : "cr", + "name" : "s", + "access" : 0, + "descriptor" : "[Lbl;" + } ], + "methods" : [ { + "method" : "addMessage", + "owner" : "cr", + "name" : "a", + "access" : 0, + "parameters" : [ "type", "sender", "text", "prefix" ], + "descriptor" : "(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;B)Lbl;" + }, { + "method" : "getMessage", + "owner" : "cr", + "name" : "s", + "access" : 0, + "parameters" : [ "index" ], + "descriptor" : "(II)Lbl;" + }, { + "method" : "size", + "owner" : "cr", + "name" : "g", + "access" : 0, + "parameters" : [ ], + "descriptor" : "(I)I" + } ], + "constructors" : [ { + "access" : 0, + "descriptor" : "()V" + } ] +}, { + "class" : "Interpreter", + "name" : "bx", + "super" : "java.lang.Object", + "access" : 33, + "interfaces" : [ ], + "fields" : [ ], + "methods" : [ ], + "constructors" : [ ] +}, { + "class" : "DemotingHashTable", + "name" : "ha", + "super" : "java.lang.Object", + "access" : 49, + "interfaces" : [ ], + "fields" : [ { + "field" : "capacity", + "owner" : "ha", + "name" : "a", + "access" : 0, + "descriptor" : "I" + }, { + "field" : "hashTable", + "owner" : "ha", + "name" : "g", + "access" : 0, + "descriptor" : "Lgs;" + }, { + "field" : "queue", + "owner" : "ha", + "name" : "x", + "access" : 0, + "descriptor" : "Lhw;" + }, { + "field" : "remaining", + "owner" : "ha", + "name" : "s", + "access" : 0, + "descriptor" : "I" + } ], + "methods" : [ { + "method" : "clear", + "owner" : "ha", + "name" : "f", + "access" : 1, + "parameters" : [ ], + "descriptor" : "()V" + }, { + "method" : "demote", + "owner" : "ha", + "name" : "h", + "access" : 1, + "parameters" : [ "softeningLevel" ], + "descriptor" : "(I)V" + }, { + "method" : "get", + "owner" : "ha", + "name" : "a", + "access" : 1, + "parameters" : [ "key" ], + "descriptor" : "(J)Ljava/lang/Object;" + }, { + "method" : "put", + "owner" : "ha", + "name" : "x", + "access" : 1, + "parameters" : [ "value", "key", "size" ], + "descriptor" : "(Ljava/lang/Object;JI)V" + }, { + "method" : "remove", + "owner" : "ha", + "name" : "s", + "access" : 0, + "parameters" : [ "key" ], + "descriptor" : "(J)V" + }, { + "method" : "removeWrapper", + "owner" : "ha", + "name" : "g", + "access" : 0, + "parameters" : [ "wrapper" ], + "descriptor" : "(Lhg;)V" + } ], + "constructors" : [ { + "access" : 1, + "descriptor" : "(II)V" + } ] +}, { + "class" : "IndexStoreAction", + "name" : "iw", + "super" : "hy", + "access" : 33, + "interfaces" : [ ], + "fields" : [ { + "field" : "data", + "owner" : "iw", + "name" : "s", + "access" : 0, + "descriptor" : "[B" + }, { + "field" : "indexCache", + "owner" : "iw", + "name" : "x", + "access" : 0, + "descriptor" : "Lin;" + }, { + "field" : "indexStore", + "owner" : "iw", + "name" : "g", + "access" : 0, + "descriptor" : "Lfb;" + }, { + "field" : "type", + "owner" : "iw", + "name" : "a", + "access" : 0, + "descriptor" : "I", + "decoder" : 610796045 + } ], + "methods" : [ ], + "constructors" : [ { + "access" : 0, + "descriptor" : "()V" + } ] +}, { + "class" : "SoftWrapper", + "name" : "hi", + "super" : "hg", + "access" : 33, + "interfaces" : [ ], + "fields" : [ { + "field" : "ref", + "owner" : "hi", + "name" : "a", + "access" : 0, + "descriptor" : "Ljava/lang/ref/SoftReference;" + } ], + "methods" : [ { + "method" : "get", + "owner" : "hi", + "name" : "a", + "access" : 0, + "parameters" : [ ], + "descriptor" : "()Ljava/lang/Object;" + }, { + "method" : "isSoft", + "owner" : "hi", + "name" : "s", + "access" : 0, + "parameters" : [ ], + "descriptor" : "()Z" + } ], + "constructors" : [ { + "access" : 0, + "descriptor" : "(Ljava/lang/Object;I)V" + } ] +}, { + "class" : "IgnoreList", + "name" : "ku", + "super" : "kd", + "access" : 33, + "interfaces" : [ ], + "fields" : [ { + "field" : "loginType", + "owner" : "ku", + "name" : "g", + "access" : 16, + "descriptor" : "Lll;" + } ], + "methods" : [ { + "method" : "newInstance", + "owner" : "ku", + "name" : "a", + "access" : 0, + "descriptor" : "(I)Lkn;" + }, { + "method" : "newTypedArray", + "owner" : "ku", + "name" : "s", + "access" : 0, + "descriptor" : "(IB)[Lkn;" + }, { + "method" : "read", + "owner" : "ku", + "name" : "g", + "access" : 1, + "parameters" : [ "buffer", "n" ], + "descriptor" : "(Lgx;II)V" + } ], + "constructors" : [ { + "access" : 1, + "descriptor" : "(Lll;)V" + } ] +}, { + "class" : "ViewportMouse", + "name" : "di", + "super" : "java.lang.Object", + "access" : 33, + "interfaces" : [ ], + "fields" : [ ], + "methods" : [ ], + "constructors" : [ ] +}, { + "class" : "Tiles", + "name" : "bd", + "super" : "java.lang.Object", + "access" : 49, + "interfaces" : [ ], + "fields" : [ ], + "methods" : [ ], + "constructors" : [ ] +}, { + "class" : "Players", + "name" : "cd", + "super" : "java.lang.Object", + "access" : 33, + "interfaces" : [ ], + "fields" : [ ], + "methods" : [ ], + "constructors" : [ ] +}, { + "class" : "WorldComparator", + "name" : "f", + "super" : "java.lang.Object", + "access" : 48, + "interfaces" : [ "java.util.Comparator" ], + "fields" : [ ], + "methods" : [ { + "method" : "__a_0", + "owner" : "f", + "name" : "a", + "access" : 0, + "parameters" : [ "arg0", "arg1" ], + "descriptor" : "(Lm;Lm;I)I" + }, { + "method" : "__compare_1", + "owner" : "f", + "name" : "compare", + "access" : 1, + "parameters" : [ "arg0", "arg1" ], + "descriptor" : "(Ljava/lang/Object;Ljava/lang/Object;)I" + }, { + "method" : "__equals_2", + "owner" : "f", + "name" : "equals", + "access" : 1, + "parameters" : [ "arg0" ], + "descriptor" : "(Ljava/lang/Object;)Z" + } ], + "constructors" : [ { + "access" : 0, + "descriptor" : "()V" + } ] +}, { + "class" : "GrandExchangeEvent", + "name" : "m", + "super" : "java.lang.Object", + "access" : 33, + "interfaces" : [ ], + "fields" : [ { + "field" : "grandExchangeOffer", + "owner" : "m", + "name" : "g", + "access" : 17, + "descriptor" : "Lb;" + }, { + "field" : "string1", + "owner" : "m", + "name" : "x", + "access" : 0, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "string2", + "owner" : "m", + "name" : "h", + "access" : 0, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "world", + "owner" : "m", + "name" : "a", + "access" : 17, + "descriptor" : "I", + "decoder" : -1759845203 + }, { + "field" : "__s", + "owner" : "m", + "name" : "s", + "access" : 17, + "descriptor" : "J", + "decoder" : -3414339192986390507 + } ], + "methods" : [ { + "method" : "__a_3", + "owner" : "m", + "name" : "a", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(B)Ljava/lang/String;" + }, { + "method" : "__s_4", + "owner" : "m", + "name" : "s", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(I)Ljava/lang/String;" + } ], + "constructors" : [ { + "access" : 0, + "descriptor" : "(Lgx;BI)V" + } ] +}, { + "class" : "TotalQuantityComparator", + "name" : "q", + "super" : "java.lang.Object", + "access" : 48, + "interfaces" : [ "java.util.Comparator" ], + "fields" : [ ], + "methods" : [ { + "method" : "__a_5", + "owner" : "q", + "name" : "a", + "access" : 0, + "parameters" : [ "arg0", "arg1" ], + "descriptor" : "(Lm;Lm;I)I" + }, { + "method" : "__compare_6", + "owner" : "q", + "name" : "compare", + "access" : 1, + "parameters" : [ "arg0", "arg1" ], + "descriptor" : "(Ljava/lang/Object;Ljava/lang/Object;)I" + }, { + "method" : "__equals_7", + "owner" : "q", + "name" : "equals", + "access" : 1, + "parameters" : [ "arg0" ], + "descriptor" : "(Ljava/lang/Object;)Z" + } ], + "constructors" : [ { + "access" : 0, + "descriptor" : "()V" + } ] +}, { + "class" : "GrandExchangeOffer", + "name" : "b", + "super" : "java.lang.Object", + "access" : 33, + "interfaces" : [ ], + "fields" : [ { + "field" : "currentPrice", + "owner" : "b", + "name" : "f", + "access" : 1, + "descriptor" : "I", + "decoder" : -868595835 + }, { + "field" : "currentQuantity", + "owner" : "b", + "name" : "h", + "access" : 1, + "descriptor" : "I", + "decoder" : 2001614177 + }, { + "field" : "id", + "owner" : "b", + "name" : "s", + "access" : 1, + "descriptor" : "I", + "decoder" : -639745279 + }, { + "field" : "state", + "owner" : "b", + "name" : "a", + "access" : 0, + "descriptor" : "B" + }, { + "field" : "totalQuantity", + "owner" : "b", + "name" : "x", + "access" : 1, + "descriptor" : "I", + "decoder" : 767275651 + }, { + "field" : "unitPrice", + "owner" : "b", + "name" : "g", + "access" : 1, + "descriptor" : "I", + "decoder" : 880192857 + } ], + "methods" : [ { + "method" : "status", + "owner" : "b", + "name" : "g", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(B)I" + }, { + "method" : "type", + "owner" : "b", + "name" : "x", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(B)I" + }, { + "method" : "__s_8", + "owner" : "b", + "name" : "s", + "access" : 0, + "parameters" : [ "arg0" ], + "descriptor" : "(Ljava/lang/Integer;I)V" + }, { + "method" : "__h_9", + "owner" : "b", + "name" : "h", + "access" : 0, + "parameters" : [ "arg0" ], + "descriptor" : "(II)V" + }, { + "method" : "__f_10", + "owner" : "b", + "name" : "f", + "access" : 0, + "parameters" : [ "arg0" ], + "descriptor" : "(IS)V" + } ], + "constructors" : [ { + "access" : 1, + "descriptor" : "()V" + }, { + "access" : 1, + "descriptor" : "(Lgx;Z)V" + } ] +}, { + "class" : "UnitPriceComparator", + "name" : "n", + "super" : "java.lang.Object", + "access" : 48, + "interfaces" : [ "java.util.Comparator" ], + "fields" : [ ], + "methods" : [ { + "method" : "__a_11", + "owner" : "n", + "name" : "a", + "access" : 0, + "parameters" : [ "arg0", "arg1" ], + "descriptor" : "(Lm;Lm;I)I" + }, { + "method" : "__compare_12", + "owner" : "n", + "name" : "compare", + "access" : 1, + "parameters" : [ "arg0", "arg1" ], + "descriptor" : "(Ljava/lang/Object;Ljava/lang/Object;)I" + }, { + "method" : "__equals_13", + "owner" : "n", + "name" : "equals", + "access" : 1, + "parameters" : [ "arg0" ], + "descriptor" : "(Ljava/lang/Object;)Z" + } ], + "constructors" : [ { + "access" : 0, + "descriptor" : "()V" + } ] +}, { + "class" : "WorldMapLabelSize", + "name" : "y", + "super" : "java.lang.Object", + "access" : 33, + "interfaces" : [ ], + "fields" : [ { + "field" : "__f", + "owner" : "y", + "name" : "f", + "access" : 16, + "descriptor" : "I", + "decoder" : -980199831 + }, { + "field" : "__h", + "owner" : "y", + "name" : "h", + "access" : 16, + "descriptor" : "I", + "decoder" : -1197932527 + }, { + "field" : "__x", + "owner" : "y", + "name" : "x", + "access" : 16, + "descriptor" : "I", + "decoder" : 319484891 + } ], + "methods" : [ { + "method" : "__s_14", + "owner" : "y", + "name" : "s", + "access" : 0, + "parameters" : [ "arg0" ], + "descriptor" : "(FB)Z" + } ], + "constructors" : [ { + "access" : 0, + "descriptor" : "(III)V" + } ] +}, { + "class" : "WorldMapIcon1", + "name" : "k", + "super" : "at", + "access" : 33, + "interfaces" : [ ], + "fields" : [ { + "field" : "label0", + "owner" : "k", + "name" : "s", + "access" : 16, + "descriptor" : "Lay;" + }, { + "field" : "__a", + "owner" : "k", + "name" : "a", + "access" : 16, + "descriptor" : "I", + "decoder" : 973204081 + }, { + "field" : "__g", + "owner" : "k", + "name" : "g", + "access" : 16, + "descriptor" : "I", + "decoder" : -1717211973 + }, { + "field" : "__x", + "owner" : "k", + "name" : "x", + "access" : 16, + "descriptor" : "I", + "decoder" : -1954196195 + } ], + "methods" : [ { + "method" : "__a_15", + "owner" : "k", + "name" : "a", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(B)I" + }, { + "method" : "__s_16", + "owner" : "k", + "name" : "s", + "access" : 0, + "parameters" : [ ], + "descriptor" : "(I)Lay;" + }, { + "method" : "__g_17", + "owner" : "k", + "name" : "g", + "access" : 0, + "parameters" : [ ], + "descriptor" : "(I)I" + }, { + "method" : "__x_18", + "owner" : "k", + "name" : "x", + "access" : 0, + "parameters" : [ ], + "descriptor" : "(B)I" + } ], + "constructors" : [ { + "access" : 0, + "descriptor" : "(Lif;Lif;ILay;)V" + } ] +}, { + "class" : "WorldMapSection0", + "name" : "v", + "super" : "java.lang.Object", + "access" : 33, + "interfaces" : [ "au" ], + "fields" : [ { + "field" : "__a", + "owner" : "v", + "name" : "a", + "access" : 0, + "descriptor" : "I", + "decoder" : 695461503 + }, { + "field" : "__b", + "owner" : "v", + "name" : "b", + "access" : 0, + "descriptor" : "I", + "decoder" : -2039396665 + }, { + "field" : "__e", + "owner" : "v", + "name" : "e", + "access" : 0, + "descriptor" : "I", + "decoder" : 97318001 + }, { + "field" : "__f", + "owner" : "v", + "name" : "f", + "access" : 0, + "descriptor" : "I", + "decoder" : 1002264543 + }, { + "field" : "__g", + "owner" : "v", + "name" : "g", + "access" : 0, + "descriptor" : "I", + "decoder" : 1116313163 + }, { + "field" : "__h", + "owner" : "v", + "name" : "h", + "access" : 0, + "descriptor" : "I", + "decoder" : -1556447169 + }, { + "field" : "__m", + "owner" : "v", + "name" : "m", + "access" : 0, + "descriptor" : "I", + "decoder" : 6176523 + }, { + "field" : "__n", + "owner" : "v", + "name" : "n", + "access" : 0, + "descriptor" : "I", + "decoder" : 1766272803 + }, { + "field" : "__p", + "owner" : "v", + "name" : "p", + "access" : 0, + "descriptor" : "I", + "decoder" : 999990857 + }, { + "field" : "__q", + "owner" : "v", + "name" : "q", + "access" : 0, + "descriptor" : "I", + "decoder" : -1893926923 + }, { + "field" : "__r", + "owner" : "v", + "name" : "r", + "access" : 0, + "descriptor" : "I", + "decoder" : -579170277 + }, { + "field" : "__s", + "owner" : "v", + "name" : "s", + "access" : 0, + "descriptor" : "I", + "decoder" : 1135050285 + }, { + "field" : "__t", + "owner" : "v", + "name" : "t", + "access" : 0, + "descriptor" : "I", + "decoder" : 2046412045 + }, { + "field" : "__x", + "owner" : "v", + "name" : "x", + "access" : 0, + "descriptor" : "I", + "decoder" : -710075067 + } ], + "methods" : [ { + "method" : "__a_19", + "owner" : "v", + "name" : "a", + "access" : 1, + "parameters" : [ "arg0" ], + "descriptor" : "(Lag;B)V" + }, { + "method" : "__s_20", + "owner" : "v", + "name" : "s", + "access" : 1, + "parameters" : [ "arg0", "arg1", "arg2" ], + "descriptor" : "(IIII)Z" + }, { + "method" : "__g_21", + "owner" : "v", + "name" : "g", + "access" : 1, + "parameters" : [ "arg0", "arg1" ], + "descriptor" : "(III)Z" + }, { + "method" : "__x_22", + "owner" : "v", + "name" : "x", + "access" : 1, + "parameters" : [ "arg0", "arg1", "arg2" ], + "descriptor" : "(IIIB)[I" + }, { + "method" : "__h_23", + "owner" : "v", + "name" : "h", + "access" : 1, + "parameters" : [ "arg0", "arg1" ], + "descriptor" : "(III)Lif;" + }, { + "method" : "__f_24", + "owner" : "v", + "name" : "f", + "access" : 1, + "parameters" : [ "arg0" ], + "descriptor" : "(Lgx;B)V" + }, { + "method" : "__p_25", + "owner" : "v", + "name" : "p", + "access" : 0, + "parameters" : [ ], + "descriptor" : "(B)V" + } ], + "constructors" : [ { + "access" : 0, + "descriptor" : "()V" + } ] +}, { + "class" : "WorldMapSectionType", + "name" : "d", + "super" : "java.lang.Object", + "access" : 33, + "interfaces" : [ "gr" ], + "fields" : [ { + "field" : "id", + "owner" : "d", + "name" : "f", + "access" : 16, + "descriptor" : "B" + }, { + "field" : "type", + "owner" : "d", + "name" : "h", + "access" : 16, + "descriptor" : "I", + "decoder" : 1714622099 + } ], + "methods" : [ { + "method" : "__x_26", + "owner" : "d", + "name" : "x", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(I)I" + } ], + "constructors" : [ { + "access" : 0, + "descriptor" : "(IB)V" + } ] +}, { + "class" : "WorldMapIcon2", + "name" : "c", + "super" : "at", + "access" : 33, + "interfaces" : [ ], + "fields" : [ { + "field" : "label0", + "owner" : "c", + "name" : "x", + "access" : 0, + "descriptor" : "Lay;" + }, { + "field" : "__f", + "owner" : "c", + "name" : "f", + "access" : 0, + "descriptor" : "I", + "decoder" : 114444835 + }, { + "field" : "__g", + "owner" : "c", + "name" : "g", + "access" : 0, + "descriptor" : "I", + "decoder" : 1355038263 + }, { + "field" : "__h", + "owner" : "c", + "name" : "h", + "access" : 0, + "descriptor" : "I", + "decoder" : -256381101 + }, { + "field" : "__s", + "owner" : "c", + "name" : "s", + "access" : 16, + "descriptor" : "Laa;" + }, { + "field" : "__a", + "owner" : "c", + "name" : "a", + "access" : 16, + "descriptor" : "I", + "decoder" : 540736045 + } ], + "methods" : [ { + "method" : "__r_27", + "owner" : "c", + "name" : "r", + "access" : 0, + "parameters" : [ ], + "descriptor" : "(I)V" + }, { + "method" : "__a_28", + "owner" : "c", + "name" : "a", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(B)I" + }, { + "method" : "__s_29", + "owner" : "c", + "name" : "s", + "access" : 0, + "parameters" : [ ], + "descriptor" : "(I)Lay;" + }, { + "method" : "__g_30", + "owner" : "c", + "name" : "g", + "access" : 0, + "parameters" : [ ], + "descriptor" : "(I)I" + }, { + "method" : "__x_31", + "owner" : "c", + "name" : "x", + "access" : 0, + "parameters" : [ ], + "descriptor" : "(B)I" + } ], + "constructors" : [ { + "access" : 0, + "descriptor" : "(Lif;Lif;ILaa;)V" + } ] +}, { + "class" : "WorldMapSection3", + "name" : "j", + "super" : "java.lang.Object", + "access" : 33, + "interfaces" : [ "au" ], + "fields" : [ { + "field" : "__a", + "owner" : "j", + "name" : "a", + "access" : 0, + "descriptor" : "I", + "decoder" : 822317281 + }, { + "field" : "__b", + "owner" : "j", + "name" : "b", + "access" : 0, + "descriptor" : "I", + "decoder" : 1023412949 + }, { + "field" : "__f", + "owner" : "j", + "name" : "f", + "access" : 0, + "descriptor" : "I", + "decoder" : 759266465 + }, { + "field" : "__g", + "owner" : "j", + "name" : "g", + "access" : 0, + "descriptor" : "I", + "decoder" : 780633471 + }, { + "field" : "__h", + "owner" : "j", + "name" : "h", + "access" : 0, + "descriptor" : "I", + "decoder" : -1653980999 + }, { + "field" : "__m", + "owner" : "j", + "name" : "m", + "access" : 0, + "descriptor" : "I", + "decoder" : -732185941 + }, { + "field" : "__p", + "owner" : "j", + "name" : "p", + "access" : 0, + "descriptor" : "I", + "decoder" : -1908347193 + }, { + "field" : "__q", + "owner" : "j", + "name" : "q", + "access" : 0, + "descriptor" : "I", + "decoder" : -89751177 + }, { + "field" : "__s", + "owner" : "j", + "name" : "s", + "access" : 0, + "descriptor" : "I", + "decoder" : 1669145125 + }, { + "field" : "__x", + "owner" : "j", + "name" : "x", + "access" : 0, + "descriptor" : "I", + "decoder" : 1218050245 + } ], + "methods" : [ { + "method" : "__a_32", + "owner" : "j", + "name" : "a", + "access" : 1, + "parameters" : [ "arg0" ], + "descriptor" : "(Lag;B)V" + }, { + "method" : "__s_33", + "owner" : "j", + "name" : "s", + "access" : 1, + "parameters" : [ "arg0", "arg1", "arg2" ], + "descriptor" : "(IIII)Z" + }, { + "method" : "__g_34", + "owner" : "j", + "name" : "g", + "access" : 1, + "parameters" : [ "arg0", "arg1" ], + "descriptor" : "(III)Z" + }, { + "method" : "__x_35", + "owner" : "j", + "name" : "x", + "access" : 1, + "parameters" : [ "arg0", "arg1", "arg2" ], + "descriptor" : "(IIIB)[I" + }, { + "method" : "__h_36", + "owner" : "j", + "name" : "h", + "access" : 1, + "parameters" : [ "arg0", "arg1" ], + "descriptor" : "(III)Lif;" + }, { + "method" : "__f_37", + "owner" : "j", + "name" : "f", + "access" : 1, + "parameters" : [ "arg0" ], + "descriptor" : "(Lgx;B)V" + }, { + "method" : "__p_38", + "owner" : "j", + "name" : "p", + "access" : 0, + "parameters" : [ ], + "descriptor" : "(B)V" + } ], + "constructors" : [ { + "access" : 0, + "descriptor" : "()V" + } ] +}, { + "class" : "WorldMapArea", + "name" : "ag", + "super" : "java.lang.Object", + "access" : 33, + "interfaces" : [ ], + "fields" : [ { + "field" : "archiveName0", + "owner" : "ag", + "name" : "s", + "access" : 0, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "id0", + "owner" : "ag", + "name" : "a", + "access" : 0, + "descriptor" : "I", + "decoder" : 83737119 + }, { + "field" : "isMain0", + "owner" : "ag", + "name" : "n", + "access" : 0, + "descriptor" : "Z" + }, { + "field" : "maxX0", + "owner" : "ag", + "name" : "m", + "access" : 0, + "descriptor" : "I", + "decoder" : -340079057 + }, { + "field" : "maxY0", + "owner" : "ag", + "name" : "b", + "access" : 0, + "descriptor" : "I", + "decoder" : -1758029463 + }, { + "field" : "minX0", + "owner" : "ag", + "name" : "p", + "access" : 0, + "descriptor" : "I", + "decoder" : 1515198533 + }, { + "field" : "minY0", + "owner" : "ag", + "name" : "q", + "access" : 0, + "descriptor" : "I", + "decoder" : -1053186251 + }, { + "field" : "name0", + "owner" : "ag", + "name" : "g", + "access" : 0, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "origin0", + "owner" : "ag", + "name" : "f", + "access" : 0, + "descriptor" : "Lif;" + }, { + "field" : "sections", + "owner" : "ag", + "name" : "e", + "access" : 0, + "descriptor" : "Ljava/util/LinkedList;" + }, { + "field" : "zoom0", + "owner" : "ag", + "name" : "h", + "access" : 0, + "descriptor" : "I", + "decoder" : 2090188445 + }, { + "field" : "__x", + "owner" : "ag", + "name" : "x", + "access" : 0, + "descriptor" : "I", + "decoder" : -449130723 + } ], + "methods" : [ { + "method" : "archiveName", + "owner" : "ag", + "name" : "b", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(B)Ljava/lang/String;" + }, { + "method" : "containsCoord", + "owner" : "ag", + "name" : "g", + "access" : 1, + "parameters" : [ "plane", "x", "y" ], + "descriptor" : "(IIII)Z" + }, { + "method" : "containsPosition", + "owner" : "ag", + "name" : "x", + "access" : 1, + "parameters" : [ "x", "y" ], + "descriptor" : "(IIS)Z" + }, { + "method" : "coord", + "owner" : "ag", + "name" : "f", + "access" : 1, + "parameters" : [ "x", "y" ], + "descriptor" : "(III)Lif;" + }, { + "method" : "id", + "owner" : "ag", + "name" : "m", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(B)I" + }, { + "method" : "isMain", + "owner" : "ag", + "name" : "q", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(I)Z" + }, { + "method" : "maxX", + "owner" : "ag", + "name" : "l", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(I)I" + }, { + "method" : "maxY", + "owner" : "ag", + "name" : "u", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(I)I" + }, { + "method" : "minX", + "owner" : "ag", + "name" : "t", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(I)I" + }, { + "method" : "minY", + "owner" : "ag", + "name" : "o", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(B)I" + }, { + "method" : "name", + "owner" : "ag", + "name" : "n", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(B)Ljava/lang/String;" + }, { + "method" : "origin", + "owner" : "ag", + "name" : "c", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(I)Lif;" + }, { + "method" : "originPlane", + "owner" : "ag", + "name" : "k", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(I)I" + }, { + "method" : "originX", + "owner" : "ag", + "name" : "y", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(I)I" + }, { + "method" : "originY", + "owner" : "ag", + "name" : "v", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(I)I" + }, { + "method" : "position", + "owner" : "ag", + "name" : "h", + "access" : 1, + "parameters" : [ "plane", "x", "y" ], + "descriptor" : "(IIII)[I" + }, { + "method" : "read", + "owner" : "ag", + "name" : "a", + "access" : 1, + "descriptor" : "(Lgx;IB)V" + }, { + "method" : "readWorldMapSection", + "owner" : "ag", + "name" : "s", + "access" : 0, + "descriptor" : "(Lgx;I)Lau;" + }, { + "method" : "setBounds", + "owner" : "ag", + "name" : "p", + "access" : 0, + "parameters" : [ ], + "descriptor" : "(I)V" + }, { + "method" : "zoom", + "owner" : "ag", + "name" : "r", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(I)I" + }, { + "method" : "__e_39", + "owner" : "ag", + "name" : "e", + "access" : 0, + "parameters" : [ ], + "descriptor" : "(B)I" + } ], + "constructors" : [ { + "access" : 1, + "descriptor" : "()V" + } ] +}, { + "class" : "WorldMapRegion", + "name" : "aa", + "super" : "java.lang.Object", + "access" : 33, + "interfaces" : [ ], + "fields" : [ { + "field" : "fonts", + "owner" : "aa", + "name" : "t", + "access" : 16, + "descriptor" : "Ljava/util/HashMap;" + }, { + "field" : "iconsList", + "owner" : "aa", + "name" : "e", + "access" : 0, + "descriptor" : "Ljava/util/List;" + }, { + "field" : "iconsMap", + "owner" : "aa", + "name" : "r", + "access" : 0, + "descriptor" : "Ljava/util/HashMap;" + }, { + "field" : "x", + "owner" : "aa", + "name" : "f", + "access" : 0, + "descriptor" : "I", + "decoder" : -2040938815 + }, { + "field" : "y", + "owner" : "aa", + "name" : "p", + "access" : 0, + "descriptor" : "I", + "decoder" : 456795829 + }, { + "field" : "__b", + "owner" : "aa", + "name" : "b", + "access" : 0, + "descriptor" : "I", + "decoder" : 1559167195 + }, { + "field" : "__n", + "owner" : "aa", + "name" : "n", + "access" : 0, + "descriptor" : "I", + "decoder" : -827937127 + }, { + "field" : "__q", + "owner" : "aa", + "name" : "q", + "access" : 0, + "descriptor" : "Ljava/util/LinkedList;" + } ], + "methods" : [ { + "method" : "icons", + "owner" : "aa", + "name" : "al", + "access" : 0, + "parameters" : [ ], + "descriptor" : "(B)Ljava/util/List;" + }, { + "method" : "__g_40", + "owner" : "aa", + "name" : "g", + "access" : 0, + "parameters" : [ "arg0", "arg1", "arg2" ], + "descriptor" : "(IIIB)V" + }, { + "method" : "__h_41", + "owner" : "aa", + "name" : "h", + "access" : 0, + "parameters" : [ "arg0", "arg1" ], + "descriptor" : "(Ljava/util/HashSet;Ljava/util/List;I)V" + }, { + "method" : "__m_42", + "owner" : "aa", + "name" : "m", + "access" : 0, + "parameters" : [ ], + "descriptor" : "(I)V" + }, { + "method" : "__q_43", + "owner" : "aa", + "name" : "q", + "access" : 0, + "parameters" : [ "arg0" ], + "descriptor" : "(Ljava/util/List;I)V" + }, { + "method" : "__b_44", + "owner" : "aa", + "name" : "b", + "access" : 0, + "parameters" : [ ], + "descriptor" : "(I)V" + }, { + "method" : "__n_45", + "owner" : "aa", + "name" : "n", + "access" : 0, + "parameters" : [ "arg0" ], + "descriptor" : "(Liz;B)Z" + }, { + "method" : "__r_46", + "owner" : "aa", + "name" : "r", + "access" : 0, + "parameters" : [ "arg0", "arg1", "arg2", "arg3" ], + "descriptor" : "(IIILjava/util/HashSet;I)V" + }, { + "method" : "__t_47", + "owner" : "aa", + "name" : "t", + "access" : 0, + "parameters" : [ "arg0", "arg1", "arg2" ], + "descriptor" : "(Ljava/util/HashSet;IIB)V" + }, { + "method" : "__ab_48", + "owner" : "aa", + "name" : "ab", + "access" : 0, + "parameters" : [ "arg0", "arg1", "arg2", "arg3" ], + "descriptor" : "(IILjava/util/HashSet;IB)V" + }, { + "method" : "__ah_49", + "owner" : "aa", + "name" : "ah", + "access" : 0, + "parameters" : [ "arg0", "arg1", "arg2" ], + "descriptor" : "(Ljava/util/HashSet;IIB)V" + }, { + "method" : "__aw_50", + "owner" : "aa", + "name" : "aw", + "access" : 0, + "parameters" : [ "arg0", "arg1", "arg2", "arg3", "arg4" ], + "descriptor" : "(Ljd;IIIIB)V" + }, { + "method" : "__an_51", + "owner" : "aa", + "name" : "an", + "access" : 0, + "parameters" : [ "arg0", "arg1", "arg2", "arg3" ], + "descriptor" : "(Lat;IIFI)V" + }, { + "method" : "__at_52", + "owner" : "aa", + "name" : "at", + "access" : 0, + "parameters" : [ "arg0", "arg1", "arg2" ], + "descriptor" : "(Ljd;IIB)V" + }, { + "method" : "__ae_53", + "owner" : "aa", + "name" : "ae", + "access" : 0, + "parameters" : [ "arg0", "arg1", "arg2", "arg3", "arg4" ], + "descriptor" : "(Lat;Ljd;IIFB)V" + }, { + "method" : "__av_54", + "owner" : "aa", + "name" : "av", + "access" : 0, + "parameters" : [ "arg0", "arg1", "arg2", "arg3" ], + "descriptor" : "(IILjava/util/HashSet;IB)V" + }, { + "method" : "__ar_55", + "owner" : "aa", + "name" : "ar", + "access" : 0, + "parameters" : [ "arg0" ], + "descriptor" : "(IB)Lay;" + }, { + "method" : "__ai_56", + "owner" : "aa", + "name" : "ai", + "access" : 0, + "parameters" : [ "arg0" ], + "descriptor" : "(Ljd;I)Lay;" + }, { + "method" : "__aq_57", + "owner" : "aa", + "name" : "aq", + "access" : 0, + "parameters" : [ "arg0", "arg1", "arg2", "arg3", "arg4" ], + "descriptor" : "(IIIIII)Ljava/util/List;" + }, { + "method" : "__az_58", + "owner" : "aa", + "name" : "az", + "access" : 0, + "parameters" : [ "arg0", "arg1", "arg2", "arg3" ], + "descriptor" : "(IIIIB)V" + } ], + "constructors" : [ { + "access" : 0, + "descriptor" : "(IIILjava/util/HashMap;)V" + } ] +}, { + "class" : "WorldMapSection2", + "name" : "an", + "super" : "java.lang.Object", + "access" : 33, + "interfaces" : [ "au" ], + "fields" : [ { + "field" : "__a", + "owner" : "an", + "name" : "a", + "access" : 0, + "descriptor" : "I", + "decoder" : -184754843 + }, { + "field" : "__f", + "owner" : "an", + "name" : "f", + "access" : 0, + "descriptor" : "I", + "decoder" : 1166178053 + }, { + "field" : "__g", + "owner" : "an", + "name" : "g", + "access" : 0, + "descriptor" : "I", + "decoder" : -488123313 + }, { + "field" : "__h", + "owner" : "an", + "name" : "h", + "access" : 0, + "descriptor" : "I", + "decoder" : 1971572017 + }, { + "field" : "__s", + "owner" : "an", + "name" : "s", + "access" : 0, + "descriptor" : "I", + "decoder" : 623001821 + }, { + "field" : "__x", + "owner" : "an", + "name" : "x", + "access" : 0, + "descriptor" : "I", + "decoder" : 1863463455 + } ], + "methods" : [ { + "method" : "__a_59", + "owner" : "an", + "name" : "a", + "access" : 1, + "parameters" : [ "arg0" ], + "descriptor" : "(Lag;B)V" + }, { + "method" : "__s_60", + "owner" : "an", + "name" : "s", + "access" : 1, + "parameters" : [ "arg0", "arg1", "arg2" ], + "descriptor" : "(IIII)Z" + }, { + "method" : "__g_61", + "owner" : "an", + "name" : "g", + "access" : 1, + "parameters" : [ "arg0", "arg1" ], + "descriptor" : "(III)Z" + }, { + "method" : "__x_62", + "owner" : "an", + "name" : "x", + "access" : 1, + "parameters" : [ "arg0", "arg1", "arg2" ], + "descriptor" : "(IIIB)[I" + }, { + "method" : "__h_63", + "owner" : "an", + "name" : "h", + "access" : 1, + "parameters" : [ "arg0", "arg1" ], + "descriptor" : "(III)Lif;" + }, { + "method" : "__f_64", + "owner" : "an", + "name" : "f", + "access" : 1, + "parameters" : [ "arg0" ], + "descriptor" : "(Lgx;B)V" + }, { + "method" : "__p_65", + "owner" : "an", + "name" : "p", + "access" : 0, + "parameters" : [ ], + "descriptor" : "(B)V" + } ], + "constructors" : [ { + "access" : 0, + "descriptor" : "()V" + } ] +}, { + "class" : "AbstractWorldMapIcon", + "name" : "at", + "super" : "java.lang.Object", + "access" : 1057, + "interfaces" : [ ], + "fields" : [ { + "field" : "coord1", + "owner" : "at", + "name" : "m", + "access" : 17, + "descriptor" : "Lif;" + }, { + "field" : "coord2", + "owner" : "at", + "name" : "p", + "access" : 17, + "descriptor" : "Lif;" + }, { + "field" : "__b", + "owner" : "at", + "name" : "b", + "access" : 0, + "descriptor" : "I", + "decoder" : -2109258973 + }, { + "field" : "__q", + "owner" : "at", + "name" : "q", + "access" : 0, + "descriptor" : "I", + "decoder" : 599188537 + } ], + "methods" : [ { + "method" : "element", + "owner" : "at", + "name" : "a", + "access" : 1025, + "parameters" : [ ], + "descriptor" : "(B)I" + }, { + "method" : "label", + "owner" : "at", + "name" : "s", + "access" : 1024, + "parameters" : [ ], + "descriptor" : "(I)Lay;" + }, { + "method" : "__o_66", + "owner" : "at", + "name" : "o", + "access" : 0, + "parameters" : [ "arg0", "arg1" ], + "descriptor" : "(III)Z" + }, { + "method" : "__u_67", + "owner" : "at", + "name" : "u", + "access" : 0, + "parameters" : [ ], + "descriptor" : "(B)Z" + }, { + "method" : "__y_68", + "owner" : "at", + "name" : "y", + "access" : 0, + "parameters" : [ "arg0", "arg1" ], + "descriptor" : "(III)Z" + }, { + "method" : "__k_69", + "owner" : "at", + "name" : "k", + "access" : 0, + "parameters" : [ "arg0", "arg1" ], + "descriptor" : "(III)Z" + }, { + "method" : "__x_70", + "owner" : "at", + "name" : "x", + "access" : 1024, + "parameters" : [ ], + "descriptor" : "(B)I" + }, { + "method" : "__g_71", + "owner" : "at", + "name" : "g", + "access" : 1024, + "parameters" : [ ], + "descriptor" : "(I)I" + } ], + "constructors" : [ { + "access" : 0, + "descriptor" : "(Lif;Lif;)V" + } ] +}, { + "class" : "WorldMapManager", + "name" : "av", + "super" : "java.lang.Object", + "access" : 49, + "interfaces" : [ ], + "fields" : [ { + "field" : "fonts", + "owner" : "av", + "name" : "n", + "access" : 16, + "descriptor" : "Ljava/util/HashMap;" + }, { + "field" : "icons", + "owner" : "av", + "name" : "h", + "access" : 0, + "descriptor" : "Ljava/util/HashMap;" + }, { + "field" : "isLoaded0", + "owner" : "av", + "name" : "a", + "access" : 0, + "descriptor" : "Z" + }, { + "field" : "loadStarted", + "owner" : "av", + "name" : "s", + "access" : 0, + "descriptor" : "Z" + }, { + "field" : "mapAreaData", + "owner" : "av", + "name" : "g", + "access" : 0, + "descriptor" : "Laj;" + }, { + "field" : "mapSceneSprites", + "owner" : "av", + "name" : "m", + "access" : 0, + "descriptor" : "[Llv;" + }, { + "field" : "overviewSprite", + "owner" : "av", + "name" : "x", + "access" : 0, + "descriptor" : "Lld;" + }, { + "field" : "regions", + "owner" : "av", + "name" : "f", + "access" : 0, + "descriptor" : "[[Laa;" + }, { + "field" : "__e", + "owner" : "av", + "name" : "e", + "access" : 0, + "descriptor" : "I", + "decoder" : 1632051693 + }, { + "field" : "__l", + "owner" : "av", + "name" : "l", + "access" : 0, + "descriptor" : "I", + "decoder" : -1531384229 + }, { + "field" : "__r", + "owner" : "av", + "name" : "r", + "access" : 0, + "descriptor" : "I", + "decoder" : 649473809 + }, { + "field" : "__t", + "owner" : "av", + "name" : "t", + "access" : 0, + "descriptor" : "I", + "decoder" : -213701855 + }, { + "field" : "__p", + "owner" : "av", + "name" : "p", + "access" : 0, + "descriptor" : "Ljava/util/HashMap;" + }, { + "field" : "__b", + "owner" : "av", + "name" : "b", + "access" : 16, + "descriptor" : "Liz;" + }, { + "field" : "__q", + "owner" : "av", + "name" : "q", + "access" : 16, + "descriptor" : "Liz;" + }, { + "field" : "__o", + "owner" : "av", + "name" : "o", + "access" : 1, + "descriptor" : "I", + "decoder" : 384685617 + } ], + "methods" : [ { + "method" : "buildIcons", + "owner" : "av", + "name" : "q", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(B)Ljava/util/HashMap;" + }, { + "method" : "buildIcons0", + "owner" : "av", + "name" : "b", + "access" : 0, + "parameters" : [ ], + "descriptor" : "(I)V" + }, { + "method" : "clearIcons", + "owner" : "av", + "name" : "s", + "access" : 17, + "parameters" : [ ], + "descriptor" : "(I)V" + }, { + "method" : "drawOverview", + "owner" : "av", + "name" : "h", + "access" : 1, + "descriptor" : "(IIIILjava/util/HashSet;III)V" + }, { + "method" : "isLoaded", + "owner" : "av", + "name" : "m", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(B)Z" + }, { + "method" : "load", + "owner" : "av", + "name" : "a", + "access" : 1, + "parameters" : [ "indexCache", "cacheName", "isMembersWorld" ], + "descriptor" : "(Liz;Ljava/lang/String;ZI)V" + }, { + "method" : "__g_72", + "owner" : "av", + "name" : "g", + "access" : 17, + "parameters" : [ "arg0", "arg1", "arg2", "arg3", "arg4", "arg5", "arg6", "arg7" ], + "descriptor" : "(IIIIIIIII)V" + }, { + "method" : "__x_73", + "owner" : "av", + "name" : "x", + "access" : 17, + "parameters" : [ "arg0", "arg1", "arg2", "arg3", "arg4", "arg5", "arg6", "arg7", "arg8", "arg9", "arg10", "arg11", "arg12" ], + "descriptor" : "(IIIIIIIILjava/util/HashSet;Ljava/util/HashSet;IIZI)V" + }, { + "method" : "__f_74", + "owner" : "av", + "name" : "f", + "access" : 1, + "parameters" : [ "arg0", "arg1", "arg2", "arg3", "arg4", "arg5", "arg6", "arg7", "arg8", "arg9" ], + "descriptor" : "(IIIIIIIIIII)Ljava/util/List;" + }, { + "method" : "__n_75", + "owner" : "av", + "name" : "n", + "access" : 0, + "parameters" : [ "arg0", "arg1" ], + "descriptor" : "(III)F" + } ], + "constructors" : [ { + "access" : 1, + "descriptor" : "([Llv;Ljava/util/HashMap;Liz;Liz;)V" + } ] +}, { + "class" : "WorldMapAreaData", + "name" : "aj", + "super" : "ag", + "access" : 33, + "interfaces" : [ ], + "fields" : [ { + "field" : "__r", + "owner" : "aj", + "name" : "r", + "access" : 0, + "descriptor" : "Ljava/util/HashSet;" + }, { + "field" : "__t", + "owner" : "aj", + "name" : "t", + "access" : 0, + "descriptor" : "Ljava/util/HashSet;" + }, { + "field" : "__l", + "owner" : "aj", + "name" : "l", + "access" : 0, + "descriptor" : "Ljava/util/List;" + } ], + "methods" : [ { + "method" : "__ch_76", + "owner" : "aj", + "name" : "ch", + "access" : 0, + "parameters" : [ "arg0", "arg1", "arg2", "arg3" ], + "descriptor" : "(Lgx;Lgx;IZB)V" + }, { + "method" : "__cg_77", + "owner" : "aj", + "name" : "cg", + "access" : 0, + "parameters" : [ "arg0", "arg1" ], + "descriptor" : "(Lgx;ZI)V" + } ], + "constructors" : [ { + "access" : 0, + "descriptor" : "()V" + } ] +}, { + "class" : "WorldMapSection1", + "name" : "aq", + "super" : "java.lang.Object", + "access" : 33, + "interfaces" : [ "au" ], + "fields" : [ { + "field" : "__a", + "owner" : "aq", + "name" : "a", + "access" : 0, + "descriptor" : "I", + "decoder" : 2081917621 + }, { + "field" : "__b", + "owner" : "aq", + "name" : "b", + "access" : 0, + "descriptor" : "I", + "decoder" : 1773785027 + }, { + "field" : "__f", + "owner" : "aq", + "name" : "f", + "access" : 0, + "descriptor" : "I", + "decoder" : -1161060141 + }, { + "field" : "__g", + "owner" : "aq", + "name" : "g", + "access" : 0, + "descriptor" : "I", + "decoder" : 1730483659 + }, { + "field" : "__h", + "owner" : "aq", + "name" : "h", + "access" : 0, + "descriptor" : "I", + "decoder" : 1321512583 + }, { + "field" : "__m", + "owner" : "aq", + "name" : "m", + "access" : 0, + "descriptor" : "I", + "decoder" : -348215523 + }, { + "field" : "__p", + "owner" : "aq", + "name" : "p", + "access" : 0, + "descriptor" : "I", + "decoder" : 1285948983 + }, { + "field" : "__q", + "owner" : "aq", + "name" : "q", + "access" : 0, + "descriptor" : "I", + "decoder" : 2062936797 + }, { + "field" : "__s", + "owner" : "aq", + "name" : "s", + "access" : 0, + "descriptor" : "I", + "decoder" : 970753025 + }, { + "field" : "__x", + "owner" : "aq", + "name" : "x", + "access" : 0, + "descriptor" : "I", + "decoder" : -1010655039 + } ], + "methods" : [ { + "method" : "__a_78", + "owner" : "aq", + "name" : "a", + "access" : 1, + "parameters" : [ "arg0" ], + "descriptor" : "(Lag;B)V" + }, { + "method" : "__s_79", + "owner" : "aq", + "name" : "s", + "access" : 1, + "parameters" : [ "arg0", "arg1", "arg2" ], + "descriptor" : "(IIII)Z" + }, { + "method" : "__g_80", + "owner" : "aq", + "name" : "g", + "access" : 1, + "parameters" : [ "arg0", "arg1" ], + "descriptor" : "(III)Z" + }, { + "method" : "__x_81", + "owner" : "aq", + "name" : "x", + "access" : 1, + "parameters" : [ "arg0", "arg1", "arg2" ], + "descriptor" : "(IIIB)[I" + }, { + "method" : "__h_82", + "owner" : "aq", + "name" : "h", + "access" : 1, + "parameters" : [ "arg0", "arg1" ], + "descriptor" : "(III)Lif;" + }, { + "method" : "__f_83", + "owner" : "aq", + "name" : "f", + "access" : 1, + "parameters" : [ "arg0" ], + "descriptor" : "(Lgx;B)V" + }, { + "method" : "__p_84", + "owner" : "aq", + "name" : "p", + "access" : 0, + "parameters" : [ ], + "descriptor" : "(I)V" + } ], + "constructors" : [ { + "access" : 0, + "descriptor" : "()V" + } ] +}, { + "class" : "MouseWheelHandler", + "name" : "al", + "super" : "java.lang.Object", + "access" : 49, + "interfaces" : [ "ff", "java.awt.event.MouseWheelListener" ], + "fields" : [ { + "field" : "rotation", + "owner" : "al", + "name" : "a", + "access" : 0, + "descriptor" : "I", + "decoder" : -1114257373 + } ], + "methods" : [ { + "method" : "addTo", + "owner" : "al", + "name" : "a", + "access" : 0, + "parameters" : [ "component" ], + "descriptor" : "(Ljava/awt/Component;I)V" + }, { + "method" : "removeFrom", + "owner" : "al", + "name" : "s", + "access" : 0, + "parameters" : [ "component" ], + "descriptor" : "(Ljava/awt/Component;I)V" + }, { + "method" : "useRotation", + "owner" : "al", + "name" : "g", + "access" : 33, + "parameters" : [ ], + "descriptor" : "(B)I" + }, { + "method" : "__mouseWheelMoved_85", + "owner" : "al", + "name" : "mouseWheelMoved", + "access" : 33, + "parameters" : [ "arg0" ], + "descriptor" : "(Ljava/awt/event/MouseWheelEvent;)V" + } ], + "constructors" : [ { + "access" : 0, + "descriptor" : "()V" + } ] +}, { + "class" : "KeyHandler", + "name" : "az", + "super" : "java.lang.Object", + "access" : 49, + "interfaces" : [ "java.awt.event.KeyListener", "java.awt.event.FocusListener" ], + "fields" : [ ], + "methods" : [ { + "method" : "keyPressed", + "owner" : "az", + "name" : "keyPressed", + "access" : 49, + "parameters" : [ "ke" ], + "descriptor" : "(Ljava/awt/event/KeyEvent;)V" + }, { + "method" : "__keyReleased_86", + "owner" : "az", + "name" : "keyReleased", + "access" : 49, + "parameters" : [ "arg0" ], + "descriptor" : "(Ljava/awt/event/KeyEvent;)V" + }, { + "method" : "__keyTyped_87", + "owner" : "az", + "name" : "keyTyped", + "access" : 17, + "parameters" : [ "arg0" ], + "descriptor" : "(Ljava/awt/event/KeyEvent;)V" + }, { + "method" : "__focusGained_88", + "owner" : "az", + "name" : "focusGained", + "access" : 17, + "parameters" : [ "arg0" ], + "descriptor" : "(Ljava/awt/event/FocusEvent;)V" + }, { + "method" : "__focusLost_89", + "owner" : "az", + "name" : "focusLost", + "access" : 49, + "parameters" : [ "arg0" ], + "descriptor" : "(Ljava/awt/event/FocusEvent;)V" + } ], + "constructors" : [ { + "access" : 0, + "descriptor" : "()V" + } ] +}, { + "class" : "GameShell", + "name" : "bf", + "super" : "java.applet.Applet", + "access" : 1057, + "interfaces" : [ "java.lang.Runnable", "java.awt.event.FocusListener", "java.awt.event.WindowListener" ], + "fields" : [ { + "field" : "canvas", + "owner" : "bf", + "name" : "aw", + "access" : 0, + "descriptor" : "Ljava/awt/Canvas;" + }, { + "field" : "canvasSetTimeMs", + "owner" : "bf", + "name" : "aj", + "access" : 64, + "descriptor" : "J", + "decoder" : -1598657648971181769 + }, { + "field" : "canvasX", + "owner" : "bf", + "name" : "d", + "access" : 0, + "descriptor" : "I", + "decoder" : -436883039 + }, { + "field" : "canvasY", + "owner" : "bf", + "name" : "i", + "access" : 0, + "descriptor" : "I", + "decoder" : -2122739505 + }, { + "field" : "clipboard", + "owner" : "bf", + "name" : "aq", + "access" : 0, + "descriptor" : "Ljava/awt/datatransfer/Clipboard;" + }, { + "field" : "contentHeight", + "owner" : "bf", + "name" : "v", + "access" : 4, + "descriptor" : "I", + "decoder" : -115409751 + }, { + "field" : "contentHeight0", + "owner" : "bf", + "name" : "ag", + "access" : 0, + "descriptor" : "I", + "decoder" : -1394216331 + }, { + "field" : "contentWidth", + "owner" : "bf", + "name" : "k", + "access" : 4, + "descriptor" : "I", + "decoder" : -1412716173 + }, { + "field" : "contentWidth0", + "owner" : "bf", + "name" : "z", + "access" : 0, + "descriptor" : "I", + "decoder" : 1305585803 + }, { + "field" : "eventQueue", + "owner" : "bf", + "name" : "al", + "access" : 16, + "descriptor" : "Ljava/awt/EventQueue;" + }, { + "field" : "frame", + "owner" : "bf", + "name" : "ah", + "access" : 0, + "descriptor" : "Ljava/awt/Frame;" + }, { + "field" : "hasErrored", + "owner" : "bf", + "name" : "p", + "access" : 0, + "descriptor" : "Z" + }, { + "field" : "isCanvasInvalid", + "owner" : "bf", + "name" : "au", + "access" : 64, + "descriptor" : "Z" + }, { + "field" : "mouseWheelHandler", + "owner" : "bf", + "name" : "ai", + "access" : 0, + "descriptor" : "Lal;" + }, { + "field" : "stopTimeMs", + "owner" : "bf", + "name" : "h", + "access" : 8, + "descriptor" : "J", + "decoder" : 2200593536258227471 + }, { + "field" : "__av", + "owner" : "bf", + "name" : "av", + "access" : 0, + "descriptor" : "Z" + }, { + "field" : "__af", + "owner" : "bf", + "name" : "af", + "access" : 0, + "descriptor" : "I", + "decoder" : 1759103007 + }, { + "field" : "__ay", + "owner" : "bf", + "name" : "ay", + "access" : 0, + "descriptor" : "I", + "decoder" : -245156879 + }, { + "field" : "__an", + "owner" : "bf", + "name" : "an", + "access" : 64, + "descriptor" : "Z" + } ], + "methods" : [ { + "method" : "addCanvas", + "owner" : "bf", + "name" : "v", + "access" : 48, + "parameters" : [ ], + "descriptor" : "(I)V" + }, { + "method" : "checkHost", + "owner" : "bf", + "name" : "c", + "access" : 20, + "parameters" : [ ], + "descriptor" : "(I)Z" + }, { + "method" : "clearBackground", + "owner" : "bf", + "name" : "t", + "access" : 0, + "parameters" : [ ], + "descriptor" : "(I)V" + }, { + "method" : "clipboardSetString", + "owner" : "bf", + "name" : "q", + "access" : 4, + "parameters" : [ "s" ], + "descriptor" : "(Ljava/lang/String;I)V" + }, { + "method" : "container", + "owner" : "bf", + "name" : "aq", + "access" : 0, + "parameters" : [ ], + "descriptor" : "(B)Ljava/awt/Container;" + }, { + "method" : "drawInitial", + "owner" : "bf", + "name" : "as", + "access" : 20, + "descriptor" : "(ILjava/lang/String;ZI)V" + }, { + "method" : "error", + "owner" : "bf", + "name" : "ai", + "access" : 4, + "parameters" : [ "type" ], + "descriptor" : "(Ljava/lang/String;I)V" + }, { + "method" : "focusGained", + "owner" : "bf", + "name" : "focusGained", + "access" : 17, + "descriptor" : "(Ljava/awt/event/FocusEvent;)V" + }, { + "method" : "getFrameContentBounds", + "owner" : "bf", + "name" : "al", + "access" : 0, + "parameters" : [ ], + "descriptor" : "(I)Llh;" + }, { + "method" : "hasFrame", + "owner" : "bf", + "name" : "az", + "access" : 20, + "parameters" : [ ], + "descriptor" : "(I)Z" + }, { + "method" : "kill", + "owner" : "bf", + "name" : "an", + "access" : 48, + "parameters" : [ ], + "descriptor" : "(I)V" + }, { + "method" : "kill0", + "owner" : "bf", + "name" : "aj", + "access" : 1028, + "parameters" : [ ], + "descriptor" : "(I)V" + }, { + "method" : "mouseWheel", + "owner" : "bf", + "name" : "p", + "access" : 4, + "parameters" : [ ], + "descriptor" : "(B)Lff;" + }, { + "method" : "paint", + "owner" : "bf", + "name" : "paint", + "access" : 49, + "parameters" : [ "g" ], + "descriptor" : "(Ljava/awt/Graphics;)V" + }, { + "method" : "replaceCanvas", + "owner" : "bf", + "name" : "l", + "access" : 16, + "parameters" : [ ], + "descriptor" : "(B)V" + }, { + "method" : "run", + "owner" : "bf", + "name" : "run", + "access" : 1, + "descriptor" : "()V" + }, { + "method" : "setUp", + "owner" : "bf", + "name" : "ae", + "access" : 1028, + "parameters" : [ ], + "descriptor" : "(I)V" + }, { + "method" : "setUpClipboard", + "owner" : "bf", + "name" : "m", + "access" : 4, + "parameters" : [ ], + "descriptor" : "(I)V" + }, { + "method" : "setUpKeyboard", + "owner" : "bf", + "name" : "b", + "access" : 20, + "parameters" : [ ], + "descriptor" : "(I)V" + }, { + "method" : "setUpMouse", + "owner" : "bf", + "name" : "n", + "access" : 20, + "parameters" : [ ], + "descriptor" : "(I)V" + }, { + "method" : "startThread", + "owner" : "bf", + "name" : "k", + "access" : 20, + "parameters" : [ "width", "height", "revision" ], + "descriptor" : "(IIIB)V" + }, { + "method" : "update", + "owner" : "bf", + "name" : "update", + "access" : 17, + "parameters" : [ "g" ], + "descriptor" : "(Ljava/awt/Graphics;)V" + }, { + "method" : "__h_90", + "owner" : "bf", + "name" : "h", + "access" : 20, + "parameters" : [ "arg0", "arg1" ], + "descriptor" : "(III)V" + }, { + "method" : "__f_91", + "owner" : "bf", + "name" : "f", + "access" : 16, + "parameters" : [ "arg0" ], + "descriptor" : "(Ljava/lang/Object;I)V" + }, { + "method" : "__e_92", + "owner" : "bf", + "name" : "e", + "access" : 16, + "parameters" : [ ], + "descriptor" : "(I)V" + }, { + "method" : "__aa_93", + "owner" : "bf", + "name" : "aa", + "access" : 0, + "parameters" : [ ], + "descriptor" : "(B)V" + }, { + "method" : "__ab_94", + "owner" : "bf", + "name" : "ab", + "access" : 0, + "parameters" : [ ], + "descriptor" : "(I)V" + }, { + "method" : "__ah_95", + "owner" : "bf", + "name" : "ah", + "access" : 16, + "parameters" : [ ], + "descriptor" : "(S)V" + }, { + "method" : "__aw_96", + "owner" : "bf", + "name" : "aw", + "access" : 16, + "parameters" : [ ], + "descriptor" : "(I)V" + }, { + "method" : "__start_97", + "owner" : "bf", + "name" : "start", + "access" : 17, + "parameters" : [ ], + "descriptor" : "()V" + }, { + "method" : "__stop_98", + "owner" : "bf", + "name" : "stop", + "access" : 17, + "parameters" : [ ], + "descriptor" : "()V" + }, { + "method" : "__destroy_99", + "owner" : "bf", + "name" : "destroy", + "access" : 17, + "parameters" : [ ], + "descriptor" : "()V" + }, { + "method" : "__focusLost_100", + "owner" : "bf", + "name" : "focusLost", + "access" : 17, + "parameters" : [ "arg0" ], + "descriptor" : "(Ljava/awt/event/FocusEvent;)V" + }, { + "method" : "__windowActivated_101", + "owner" : "bf", + "name" : "windowActivated", + "access" : 17, + "parameters" : [ "arg0" ], + "descriptor" : "(Ljava/awt/event/WindowEvent;)V" + }, { + "method" : "__windowClosed_102", + "owner" : "bf", + "name" : "windowClosed", + "access" : 17, + "parameters" : [ "arg0" ], + "descriptor" : "(Ljava/awt/event/WindowEvent;)V" + }, { + "method" : "__windowClosing_103", + "owner" : "bf", + "name" : "windowClosing", + "access" : 17, + "parameters" : [ "arg0" ], + "descriptor" : "(Ljava/awt/event/WindowEvent;)V" + }, { + "method" : "__windowDeactivated_104", + "owner" : "bf", + "name" : "windowDeactivated", + "access" : 17, + "parameters" : [ "arg0" ], + "descriptor" : "(Ljava/awt/event/WindowEvent;)V" + }, { + "method" : "__windowDeiconified_105", + "owner" : "bf", + "name" : "windowDeiconified", + "access" : 17, + "parameters" : [ "arg0" ], + "descriptor" : "(Ljava/awt/event/WindowEvent;)V" + }, { + "method" : "__windowIconified_106", + "owner" : "bf", + "name" : "windowIconified", + "access" : 17, + "parameters" : [ "arg0" ], + "descriptor" : "(Ljava/awt/event/WindowEvent;)V" + }, { + "method" : "__windowOpened_107", + "owner" : "bf", + "name" : "windowOpened", + "access" : 17, + "parameters" : [ "arg0" ], + "descriptor" : "(Ljava/awt/event/WindowEvent;)V" + }, { + "method" : "__ar_108", + "owner" : "bf", + "name" : "ar", + "access" : 20, + "parameters" : [ ], + "descriptor" : "(I)V" + }, { + "method" : "__r_109", + "owner" : "bf", + "name" : "r", + "access" : 1028, + "parameters" : [ ], + "descriptor" : "(I)V" + }, { + "method" : "__av_110", + "owner" : "bf", + "name" : "av", + "access" : 1028, + "parameters" : [ ], + "descriptor" : "(B)V" + }, { + "method" : "__init_111", + "owner" : "bf", + "name" : "init", + "access" : 1025, + "parameters" : [ ], + "descriptor" : "()V" + }, { + "method" : "__ao_112", + "owner" : "bf", + "name" : "ao", + "access" : 1028, + "parameters" : [ ], + "descriptor" : "(I)V" + }, { + "method" : "__au_113", + "owner" : "bf", + "name" : "au", + "access" : 1028, + "parameters" : [ "arg0" ], + "descriptor" : "(ZB)V" + } ], + "constructors" : [ { + "access" : 4, + "descriptor" : "()V" + } ] +}, { + "class" : "MouseHandler", + "name" : "bo", + "super" : "java.lang.Object", + "access" : 33, + "interfaces" : [ "java.awt.event.MouseListener", "java.awt.event.MouseMotionListener", "java.awt.event.FocusListener" ], + "fields" : [ ], + "methods" : [ { + "method" : "getButton", + "owner" : "bo", + "name" : "f", + "access" : 16, + "parameters" : [ "mouseEvent" ], + "descriptor" : "(Ljava/awt/event/MouseEvent;I)I" + }, { + "method" : "mouseMoved", + "owner" : "bo", + "name" : "mouseMoved", + "access" : 49, + "descriptor" : "(Ljava/awt/event/MouseEvent;)V" + }, { + "method" : "mousePressed", + "owner" : "bo", + "name" : "mousePressed", + "access" : 49, + "descriptor" : "(Ljava/awt/event/MouseEvent;)V" + }, { + "method" : "__mouseReleased_114", + "owner" : "bo", + "name" : "mouseReleased", + "access" : 49, + "parameters" : [ "arg0" ], + "descriptor" : "(Ljava/awt/event/MouseEvent;)V" + }, { + "method" : "__mouseClicked_115", + "owner" : "bo", + "name" : "mouseClicked", + "access" : 17, + "parameters" : [ "arg0" ], + "descriptor" : "(Ljava/awt/event/MouseEvent;)V" + }, { + "method" : "__mouseEntered_116", + "owner" : "bo", + "name" : "mouseEntered", + "access" : 49, + "parameters" : [ "arg0" ], + "descriptor" : "(Ljava/awt/event/MouseEvent;)V" + }, { + "method" : "__mouseExited_117", + "owner" : "bo", + "name" : "mouseExited", + "access" : 49, + "parameters" : [ "arg0" ], + "descriptor" : "(Ljava/awt/event/MouseEvent;)V" + }, { + "method" : "__mouseDragged_118", + "owner" : "bo", + "name" : "mouseDragged", + "access" : 49, + "parameters" : [ "arg0" ], + "descriptor" : "(Ljava/awt/event/MouseEvent;)V" + }, { + "method" : "__focusGained_119", + "owner" : "bo", + "name" : "focusGained", + "access" : 17, + "parameters" : [ "arg0" ], + "descriptor" : "(Ljava/awt/event/FocusEvent;)V" + }, { + "method" : "__focusLost_120", + "owner" : "bo", + "name" : "focusLost", + "access" : 49, + "parameters" : [ "arg0" ], + "descriptor" : "(Ljava/awt/event/FocusEvent;)V" + } ], + "constructors" : [ { + "access" : 0, + "descriptor" : "()V" + } ] +}, { + "class" : "SecureRandomCallable", + "name" : "bi", + "super" : "java.lang.Object", + "access" : 33, + "interfaces" : [ "java.util.concurrent.Callable" ], + "fields" : [ ], + "methods" : [ { + "method" : "__call_121", + "owner" : "bi", + "name" : "call", + "access" : 1, + "parameters" : [ ], + "descriptor" : "()Ljava/lang/Object;" + } ], + "constructors" : [ { + "access" : 0, + "descriptor" : "()V" + } ] +}, { + "class" : "IndexCacheLoader", + "name" : "bp", + "super" : "java.lang.Object", + "access" : 33, + "interfaces" : [ ], + "fields" : [ { + "field" : "indexCache", + "owner" : "bp", + "name" : "a", + "access" : 16, + "descriptor" : "Lin;" + }, { + "field" : "__g", + "owner" : "bp", + "name" : "g", + "access" : 0, + "descriptor" : "I", + "decoder" : 1280592929 + }, { + "field" : "__s", + "owner" : "bp", + "name" : "s", + "access" : 16, + "descriptor" : "I", + "decoder" : -1652610261 + } ], + "methods" : [ { + "method" : "__a_122", + "owner" : "bp", + "name" : "a", + "access" : 0, + "parameters" : [ ], + "descriptor" : "(I)Z" + } ], + "constructors" : [ { + "access" : 0, + "descriptor" : "(Lin;Ljava/lang/String;)V" + } ] +}, { + "class" : "ScriptEvent", + "name" : "br", + "super" : "hy", + "access" : 33, + "interfaces" : [ ], + "fields" : [ { + "field" : "args0", + "owner" : "br", + "name" : "a", + "access" : 0, + "descriptor" : "[Ljava/lang/Object;" + }, { + "field" : "boolean1", + "owner" : "br", + "name" : "s", + "access" : 0, + "descriptor" : "Z" + }, { + "field" : "dragTarget", + "owner" : "br", + "name" : "p", + "access" : 0, + "descriptor" : "Lia;" + }, { + "field" : "keyPressed", + "owner" : "br", + "name" : "q", + "access" : 0, + "descriptor" : "I", + "decoder" : -2039703453 + }, { + "field" : "keyTyped", + "owner" : "br", + "name" : "m", + "access" : 0, + "descriptor" : "I", + "decoder" : -96271991 + }, { + "field" : "mouseX", + "owner" : "br", + "name" : "x", + "access" : 0, + "descriptor" : "I", + "decoder" : -1419270535 + }, { + "field" : "mouseY", + "owner" : "br", + "name" : "h", + "access" : 0, + "descriptor" : "I", + "decoder" : -988996033 + }, { + "field" : "opIndex", + "owner" : "br", + "name" : "f", + "access" : 0, + "descriptor" : "I", + "decoder" : 1496955721 + }, { + "field" : "targetName", + "owner" : "br", + "name" : "b", + "access" : 0, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "type0", + "owner" : "br", + "name" : "e", + "access" : 0, + "descriptor" : "I", + "decoder" : -599757907 + }, { + "field" : "widget", + "owner" : "br", + "name" : "g", + "access" : 0, + "descriptor" : "Lia;" + }, { + "field" : "__n", + "owner" : "br", + "name" : "n", + "access" : 0, + "descriptor" : "I", + "decoder" : -1169064191 + } ], + "methods" : [ { + "method" : "setArgs", + "owner" : "br", + "name" : "a", + "access" : 1, + "parameters" : [ "args" ], + "descriptor" : "([Ljava/lang/Object;I)V" + }, { + "method" : "setType", + "owner" : "br", + "name" : "s", + "access" : 1, + "parameters" : [ "type" ], + "descriptor" : "(IB)V" + } ], + "constructors" : [ { + "access" : 1, + "descriptor" : "()V" + } ] +}, { + "class" : "MouseRecorder", + "name" : "bn", + "super" : "java.lang.Object", + "access" : 33, + "interfaces" : [ "java.lang.Runnable" ], + "fields" : [ { + "field" : "index", + "owner" : "bn", + "name" : "g", + "access" : 0, + "descriptor" : "I", + "decoder" : -1127531481 + }, { + "field" : "isRunning", + "owner" : "bn", + "name" : "a", + "access" : 0, + "descriptor" : "Z" + }, { + "field" : "lock", + "owner" : "bn", + "name" : "s", + "access" : 0, + "descriptor" : "Ljava/lang/Object;" + }, { + "field" : "millis", + "owner" : "bn", + "name" : "f", + "access" : 0, + "descriptor" : "[J" + }, { + "field" : "xs", + "owner" : "bn", + "name" : "x", + "access" : 0, + "descriptor" : "[I" + }, { + "field" : "ys", + "owner" : "bn", + "name" : "h", + "access" : 0, + "descriptor" : "[I" + } ], + "methods" : [ { + "method" : "__run_123", + "owner" : "bn", + "name" : "run", + "access" : 1, + "parameters" : [ ], + "descriptor" : "()V" + } ], + "constructors" : [ { + "access" : 0, + "descriptor" : "()V" + } ] +}, { + "class" : "Player", + "name" : "bw", + "super" : "bq", + "access" : 49, + "interfaces" : [ ], + "fields" : [ { + "field" : "actions", + "owner" : "bw", + "name" : "f", + "access" : 0, + "descriptor" : "[Ljava/lang/String;" + }, { + "field" : "animationCycleEnd", + "owner" : "bw", + "name" : "n", + "access" : 0, + "descriptor" : "I", + "decoder" : -1372159177 + }, { + "field" : "animationCycleStart", + "owner" : "bw", + "name" : "b", + "access" : 0, + "descriptor" : "I", + "decoder" : -666305427 + }, { + "field" : "appearance", + "owner" : "bw", + "name" : "s", + "access" : 0, + "descriptor" : "Lil;" + }, { + "field" : "combatLevel", + "owner" : "bw", + "name" : "p", + "access" : 0, + "descriptor" : "I", + "decoder" : 130093369 + }, { + "field" : "headIconPk", + "owner" : "bw", + "name" : "g", + "access" : 0, + "descriptor" : "I", + "decoder" : -225579375 + }, { + "field" : "headIconPrayer", + "owner" : "bw", + "name" : "x", + "access" : 0, + "descriptor" : "I", + "decoder" : 841091679 + }, { + "field" : "index", + "owner" : "bw", + "name" : "c", + "access" : 0, + "descriptor" : "I", + "decoder" : 85931753 + }, { + "field" : "isFriend", + "owner" : "bw", + "name" : "j", + "access" : 0, + "descriptor" : "Lkz;" + }, { + "field" : "isHidden", + "owner" : "bw", + "name" : "w", + "access" : 0, + "descriptor" : "Z" + }, { + "field" : "isInClanChat", + "owner" : "bw", + "name" : "z", + "access" : 0, + "descriptor" : "Lkz;" + }, { + "field" : "isUnanimated", + "owner" : "bw", + "name" : "v", + "access" : 0, + "descriptor" : "Z" + }, { + "field" : "model0", + "owner" : "bw", + "name" : "l", + "access" : 0, + "descriptor" : "Ldv;" + }, { + "field" : "plane", + "owner" : "bw", + "name" : "i", + "access" : 0, + "descriptor" : "I", + "decoder" : 1598019255 + }, { + "field" : "skillLevel", + "owner" : "bw", + "name" : "m", + "access" : 0, + "descriptor" : "I", + "decoder" : -507227167 + }, { + "field" : "team", + "owner" : "bw", + "name" : "d", + "access" : 0, + "descriptor" : "I", + "decoder" : 1580341907 + }, { + "field" : "tileHeight", + "owner" : "bw", + "name" : "q", + "access" : 0, + "descriptor" : "I", + "decoder" : -676759193 + }, { + "field" : "tileHeight2", + "owner" : "bw", + "name" : "r", + "access" : 0, + "descriptor" : "I", + "decoder" : 1646896689 + }, { + "field" : "tileX", + "owner" : "bw", + "name" : "af", + "access" : 0, + "descriptor" : "I", + "decoder" : -169880463 + }, { + "field" : "tileY", + "owner" : "bw", + "name" : "ay", + "access" : 0, + "descriptor" : "I", + "decoder" : 1778383835 + }, { + "field" : "username", + "owner" : "bw", + "name" : "a", + "access" : 0, + "descriptor" : "Lkx;" + }, { + "field" : "__ag", + "owner" : "bw", + "name" : "ag", + "access" : 0, + "descriptor" : "Z" + }, { + "field" : "__e", + "owner" : "bw", + "name" : "e", + "access" : 0, + "descriptor" : "I", + "decoder" : 1007197773 + }, { + "field" : "__k", + "owner" : "bw", + "name" : "k", + "access" : 0, + "descriptor" : "I", + "decoder" : 2058832411 + }, { + "field" : "__o", + "owner" : "bw", + "name" : "o", + "access" : 0, + "descriptor" : "I", + "decoder" : -647731317 + }, { + "field" : "__t", + "owner" : "bw", + "name" : "t", + "access" : 0, + "descriptor" : "I", + "decoder" : -429766051 + }, { + "field" : "__u", + "owner" : "bw", + "name" : "u", + "access" : 0, + "descriptor" : "I", + "decoder" : 1193024319 + }, { + "field" : "__y", + "owner" : "bw", + "name" : "y", + "access" : 0, + "descriptor" : "I", + "decoder" : -258556587 + } ], + "methods" : [ { + "method" : "getModel", + "owner" : "bw", + "name" : "q", + "access" : 20, + "parameters" : [ ], + "descriptor" : "(I)Ldv;" + }, { + "method" : "isVisible", + "owner" : "bw", + "name" : "r", + "access" : 16, + "parameters" : [ ], + "descriptor" : "(I)Z" + }, { + "method" : "read", + "owner" : "bw", + "name" : "a", + "access" : 16, + "parameters" : [ "buffer" ], + "descriptor" : "(Lgx;B)V" + }, { + "method" : "resetPath", + "owner" : "bw", + "name" : "n", + "access" : 0, + "parameters" : [ "x", "y" ], + "descriptor" : "(III)V" + }, { + "method" : "transformedSize", + "owner" : "bw", + "name" : "m", + "access" : 0, + "parameters" : [ ], + "descriptor" : "(B)I" + }, { + "method" : "__s_124", + "owner" : "bw", + "name" : "s", + "access" : 0, + "parameters" : [ ], + "descriptor" : "(B)Z" + }, { + "method" : "__g_125", + "owner" : "bw", + "name" : "g", + "access" : 0, + "parameters" : [ ], + "descriptor" : "(I)V" + }, { + "method" : "__x_126", + "owner" : "bw", + "name" : "x", + "access" : 0, + "parameters" : [ ], + "descriptor" : "(B)V" + }, { + "method" : "__h_127", + "owner" : "bw", + "name" : "h", + "access" : 0, + "parameters" : [ ], + "descriptor" : "(I)Z" + }, { + "method" : "__f_128", + "owner" : "bw", + "name" : "f", + "access" : 0, + "parameters" : [ ], + "descriptor" : "(I)V" + }, { + "method" : "__p_129", + "owner" : "bw", + "name" : "p", + "access" : 0, + "parameters" : [ ], + "descriptor" : "(B)V" + }, { + "method" : "__b_130", + "owner" : "bw", + "name" : "b", + "access" : 16, + "parameters" : [ "arg0", "arg1", "arg2" ], + "descriptor" : "(IIBI)V" + }, { + "method" : "__e_131", + "owner" : "bw", + "name" : "e", + "access" : 16, + "parameters" : [ "arg0", "arg1", "arg2" ], + "descriptor" : "(IIBB)V" + } ], + "constructors" : [ { + "access" : 0, + "descriptor" : "()V" + } ] +}, { + "class" : "OwnWorldComparator", + "name" : "bh", + "super" : "java.lang.Object", + "access" : 33, + "interfaces" : [ "java.util.Comparator" ], + "fields" : [ { + "field" : "__a", + "owner" : "bh", + "name" : "a", + "access" : 0, + "descriptor" : "Z" + } ], + "methods" : [ { + "method" : "__a_132", + "owner" : "bh", + "name" : "a", + "access" : 0, + "parameters" : [ "arg0", "arg1" ], + "descriptor" : "(Lm;Lm;I)I" + }, { + "method" : "__compare_133", + "owner" : "bh", + "name" : "compare", + "access" : 1, + "parameters" : [ "arg0", "arg1" ], + "descriptor" : "(Ljava/lang/Object;Ljava/lang/Object;)I" + }, { + "method" : "__equals_134", + "owner" : "bh", + "name" : "equals", + "access" : 1, + "parameters" : [ "arg0" ], + "descriptor" : "(Ljava/lang/Object;)Z" + } ], + "constructors" : [ { + "access" : 0, + "descriptor" : "()V" + } ] +}, { + "class" : "Actor", + "name" : "bq", + "super" : "em", + "access" : 1057, + "interfaces" : [ ], + "fields" : [ { + "field" : "defaultHeight", + "owner" : "bq", + "name" : "ca", + "access" : 0, + "descriptor" : "I", + "decoder" : 685164573 + }, { + "field" : "false0", + "owner" : "bq", + "name" : "bp", + "access" : 0, + "descriptor" : "Z" + }, { + "field" : "healthBars", + "owner" : "bq", + "name" : "bz", + "access" : 0, + "descriptor" : "Lhj;" + }, { + "field" : "heightOffset", + "owner" : "bq", + "name" : "bt", + "access" : 0, + "descriptor" : "I", + "decoder" : 895752093 + }, { + "field" : "hitSplatCount", + "owner" : "bq", + "name" : "ak", + "access" : 0, + "descriptor" : "B" + }, { + "field" : "hitSplatCycles", + "owner" : "bq", + "name" : "bo", + "access" : 0, + "descriptor" : "[I" + }, { + "field" : "hitSplatTypes", + "owner" : "bq", + "name" : "am", + "access" : 0, + "descriptor" : "[I" + }, { + "field" : "hitSplatTypes2", + "owner" : "bq", + "name" : "be", + "access" : 0, + "descriptor" : "[I" + }, { + "field" : "hitSplatValues", + "owner" : "bq", + "name" : "bf", + "access" : 0, + "descriptor" : "[I" + }, { + "field" : "hitSplatValues2", + "owner" : "bq", + "name" : "bd", + "access" : 0, + "descriptor" : "[I" + }, { + "field" : "idleSequence", + "owner" : "bq", + "name" : "ae", + "access" : 0, + "descriptor" : "I", + "decoder" : -121701009 + }, { + "field" : "isAutoChatting", + "owner" : "bq", + "name" : "az", + "access" : 0, + "descriptor" : "Z" + }, { + "field" : "movementFrame", + "owner" : "bq", + "name" : "bk", + "access" : 0, + "descriptor" : "I", + "decoder" : 1407567875 + }, { + "field" : "movementFrameCycle", + "owner" : "bq", + "name" : "br", + "access" : 0, + "descriptor" : "I", + "decoder" : -718435821 + }, { + "field" : "movementSequence", + "owner" : "bq", + "name" : "bg", + "access" : 0, + "descriptor" : "I", + "decoder" : -153239745 + }, { + "field" : "npcCycle", + "owner" : "bq", + "name" : "cg", + "access" : 0, + "descriptor" : "I", + "decoder" : -2123022555 + }, { + "field" : "orientation", + "owner" : "bq", + "name" : "cy", + "access" : 0, + "descriptor" : "I", + "decoder" : 626883897 + }, { + "field" : "overheadText", + "owner" : "bq", + "name" : "al", + "access" : 0, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "overheadTextColor", + "owner" : "bq", + "name" : "ad", + "access" : 0, + "descriptor" : "I", + "decoder" : 1214946269 + }, { + "field" : "overheadTextCyclesRemaining", + "owner" : "bq", + "name" : "ao", + "access" : 0, + "descriptor" : "I", + "decoder" : 849184353 + }, { + "field" : "overheadTextEffect", + "owner" : "bq", + "name" : "ax", + "access" : 0, + "descriptor" : "I", + "decoder" : 1527954605 + }, { + "field" : "pathLength", + "owner" : "bq", + "name" : "ct", + "access" : 0, + "descriptor" : "I", + "decoder" : -1560785533 + }, { + "field" : "pathTraversed", + "owner" : "bq", + "name" : "cd", + "access" : 0, + "descriptor" : "[B" + }, { + "field" : "pathX", + "owner" : "bq", + "name" : "cb", + "access" : 0, + "descriptor" : "[I" + }, { + "field" : "pathY", + "owner" : "bq", + "name" : "cp", + "access" : 0, + "descriptor" : "[I" + }, { + "field" : "playerCycle", + "owner" : "bq", + "name" : "at", + "access" : 0, + "descriptor" : "I", + "decoder" : -1667088189 + }, { + "field" : "runSequence", + "owner" : "bq", + "name" : "aq", + "access" : 0, + "descriptor" : "I", + "decoder" : -1732730569 + }, { + "field" : "sequence", + "owner" : "bq", + "name" : "bn", + "access" : 0, + "descriptor" : "I", + "decoder" : -319378323 + }, { + "field" : "sequenceDelay", + "owner" : "bq", + "name" : "bw", + "access" : 0, + "descriptor" : "I", + "decoder" : 397052649 + }, { + "field" : "sequenceFrame", + "owner" : "bq", + "name" : "bl", + "access" : 0, + "descriptor" : "I", + "decoder" : 1278509105 + }, { + "field" : "sequenceFrameCycle", + "owner" : "bq", + "name" : "bb", + "access" : 0, + "descriptor" : "I", + "decoder" : -1370039961 + }, { + "field" : "size", + "owner" : "bq", + "name" : "an", + "access" : 0, + "descriptor" : "I", + "decoder" : -1322552639 + }, { + "field" : "spotAnimation", + "owner" : "bq", + "name" : "bj", + "access" : 0, + "descriptor" : "I", + "decoder" : -1484984709 + }, { + "field" : "spotAnimationFrame", + "owner" : "bq", + "name" : "bq", + "access" : 0, + "descriptor" : "I", + "decoder" : 1050412339 + }, { + "field" : "spotAnimationFrameCycle", + "owner" : "bq", + "name" : "by", + "access" : 0, + "descriptor" : "I", + "decoder" : -706448991 + }, { + "field" : "targetIndex", + "owner" : "bq", + "name" : "bi", + "access" : 0, + "descriptor" : "I", + "decoder" : -1157261129 + }, { + "field" : "turnLeftSequence", + "owner" : "bq", + "name" : "av", + "access" : 0, + "descriptor" : "I", + "decoder" : -2023022381 + }, { + "field" : "turnRightSequence", + "owner" : "bq", + "name" : "au", + "access" : 0, + "descriptor" : "I", + "decoder" : -112176649 + }, { + "field" : "walkSequence", + "owner" : "bq", + "name" : "aj", + "access" : 0, + "descriptor" : "I", + "decoder" : -305543637 + }, { + "field" : "walkTurnLeftSequence", + "owner" : "bq", + "name" : "ar", + "access" : 0, + "descriptor" : "I", + "decoder" : -835556093 + }, { + "field" : "walkTurnRightSequence", + "owner" : "bq", + "name" : "ai", + "access" : 0, + "descriptor" : "I", + "decoder" : 1401491189 + }, { + "field" : "walkTurnSequence", + "owner" : "bq", + "name" : "as", + "access" : 0, + "descriptor" : "I", + "decoder" : 529424019 + }, { + "field" : "x", + "owner" : "bq", + "name" : "aa", + "access" : 0, + "descriptor" : "I", + "decoder" : -1234429701 + }, { + "field" : "y", + "owner" : "bq", + "name" : "ab", + "access" : 0, + "descriptor" : "I", + "decoder" : 1597666721 + }, { + "field" : "__ac", + "owner" : "bq", + "name" : "ac", + "access" : 0, + "descriptor" : "Z" + }, { + "field" : "__aw", + "owner" : "bq", + "name" : "aw", + "access" : 0, + "descriptor" : "Z" + }, { + "field" : "__ah", + "owner" : "bq", + "name" : "ah", + "access" : 0, + "descriptor" : "I", + "decoder" : 832489571 + }, { + "field" : "__ba", + "owner" : "bq", + "name" : "ba", + "access" : 0, + "descriptor" : "I", + "decoder" : -1657595709 + }, { + "field" : "__bc", + "owner" : "bq", + "name" : "bc", + "access" : 0, + "descriptor" : "I", + "decoder" : -645429661 + }, { + "field" : "__bh", + "owner" : "bq", + "name" : "bh", + "access" : 0, + "descriptor" : "I", + "decoder" : -765100633 + }, { + "field" : "__bm", + "owner" : "bq", + "name" : "bm", + "access" : 0, + "descriptor" : "I", + "decoder" : 1357876641 + }, { + "field" : "__bs", + "owner" : "bq", + "name" : "bs", + "access" : 0, + "descriptor" : "I", + "decoder" : -889714255 + }, { + "field" : "__bu", + "owner" : "bq", + "name" : "bu", + "access" : 0, + "descriptor" : "I", + "decoder" : -942376823 + }, { + "field" : "__bv", + "owner" : "bq", + "name" : "bv", + "access" : 0, + "descriptor" : "I", + "decoder" : -1393318171 + }, { + "field" : "__bx", + "owner" : "bq", + "name" : "bx", + "access" : 0, + "descriptor" : "I", + "decoder" : -998815435 + }, { + "field" : "__cc", + "owner" : "bq", + "name" : "cc", + "access" : 0, + "descriptor" : "I", + "decoder" : 1110409789 + }, { + "field" : "__cf", + "owner" : "bq", + "name" : "cf", + "access" : 0, + "descriptor" : "I", + "decoder" : -1251865369 + }, { + "field" : "__ch", + "owner" : "bq", + "name" : "ch", + "access" : 0, + "descriptor" : "I", + "decoder" : -2049705409 + }, { + "field" : "__cm", + "owner" : "bq", + "name" : "cm", + "access" : 0, + "descriptor" : "I", + "decoder" : -29901391 + }, { + "field" : "__cq", + "owner" : "bq", + "name" : "cq", + "access" : 0, + "descriptor" : "I", + "decoder" : 1068430487 + }, { + "field" : "__cx", + "owner" : "bq", + "name" : "cx", + "access" : 0, + "descriptor" : "I", + "decoder" : 959033621 + } ], + "methods" : [ { + "method" : "addHealthBar", + "owner" : "bq", + "name" : "bz", + "access" : 16, + "parameters" : [ "healthBarDefinition", "cycle", "n0", "n1", "n2", "n3" ], + "descriptor" : "(IIIIIII)V" + }, { + "method" : "addHitSplat", + "owner" : "bq", + "name" : "bd", + "access" : 16, + "parameters" : [ "type", "value", "type2", "value2", "cycle", "cycle2" ], + "descriptor" : "(IIIIIII)V" + }, { + "method" : "isVisible", + "owner" : "bq", + "name" : "r", + "access" : 0, + "parameters" : [ ], + "descriptor" : "(I)Z" + }, { + "method" : "removeHealthBar", + "owner" : "bq", + "name" : "bi", + "access" : 16, + "parameters" : [ "healthBarDefinition" ], + "descriptor" : "(II)V" + }, { + "method" : "__be_143", + "owner" : "bq", + "name" : "be", + "access" : 16, + "parameters" : [ ], + "descriptor" : "(I)V" + } ], + "constructors" : [ { + "access" : 0, + "descriptor" : "()V" + } ] +}, { + "class" : "World", + "name" : "bu", + "super" : "java.lang.Object", + "access" : 33, + "interfaces" : [ ], + "fields" : [ { + "field" : "activity", + "owner" : "bu", + "name" : "l", + "access" : 0, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "host", + "owner" : "bu", + "name" : "t", + "access" : 0, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "id", + "owner" : "bu", + "name" : "n", + "access" : 0, + "descriptor" : "I", + "decoder" : -302226347 + }, { + "field" : "index", + "owner" : "bu", + "name" : "u", + "access" : 0, + "descriptor" : "I", + "decoder" : 1757323849 + }, { + "field" : "location", + "owner" : "bu", + "name" : "o", + "access" : 0, + "descriptor" : "I", + "decoder" : 914192843 + }, { + "field" : "population", + "owner" : "bu", + "name" : "r", + "access" : 0, + "descriptor" : "I", + "decoder" : -1720648033 + }, { + "field" : "properties", + "owner" : "bu", + "name" : "e", + "access" : 0, + "descriptor" : "I", + "decoder" : -1056458959 + } ], + "methods" : [ { + "method" : "__b_144", + "owner" : "bu", + "name" : "b", + "access" : 0, + "parameters" : [ ], + "descriptor" : "(I)Z" + }, { + "method" : "__n_145", + "owner" : "bu", + "name" : "n", + "access" : 0, + "parameters" : [ ], + "descriptor" : "(I)Z" + }, { + "method" : "__e_146", + "owner" : "bu", + "name" : "e", + "access" : 0, + "parameters" : [ ], + "descriptor" : "(I)Z" + }, { + "method" : "__r_147", + "owner" : "bu", + "name" : "r", + "access" : 0, + "parameters" : [ ], + "descriptor" : "(I)Z" + }, { + "method" : "__t_148", + "owner" : "bu", + "name" : "t", + "access" : 0, + "parameters" : [ ], + "descriptor" : "(I)Z" + }, { + "method" : "__l_149", + "owner" : "bu", + "name" : "l", + "access" : 0, + "parameters" : [ ], + "descriptor" : "(I)Z" + } ], + "constructors" : [ { + "access" : 0, + "descriptor" : "()V" + } ] +}, { + "class" : "ClientPreferences", + "name" : "bt", + "super" : "java.lang.Object", + "access" : 33, + "interfaces" : [ ], + "fields" : [ { + "field" : "hideUsername", + "owner" : "bt", + "name" : "p", + "access" : 0, + "descriptor" : "Z" + }, { + "field" : "parameters", + "owner" : "bt", + "name" : "m", + "access" : 0, + "descriptor" : "Ljava/util/LinkedHashMap;" + }, { + "field" : "rememberedUsername", + "owner" : "bt", + "name" : "f", + "access" : 0, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "roofsHidden", + "owner" : "bt", + "name" : "g", + "access" : 0, + "descriptor" : "Z" + }, { + "field" : "titleMusicDisabled", + "owner" : "bt", + "name" : "x", + "access" : 0, + "descriptor" : "Z" + }, { + "field" : "windowMode", + "owner" : "bt", + "name" : "h", + "access" : 0, + "descriptor" : "I", + "decoder" : -668421335 + } ], + "methods" : [ { + "method" : "toBuffer", + "owner" : "bt", + "name" : "s", + "access" : 0, + "parameters" : [ ], + "descriptor" : "(I)Lgx;" + }, { + "method" : "__a_150", + "owner" : "bt", + "name" : "a", + "access" : 0, + "parameters" : [ "arg0" ], + "descriptor" : "(ZB)V" + } ], + "constructors" : [ { + "access" : 0, + "descriptor" : "()V" + }, { + "access" : 0, + "descriptor" : "(Lgx;)V" + } ] +}, { + "class" : "FriendSystem", + "name" : "bc", + "super" : "java.lang.Object", + "access" : 33, + "interfaces" : [ ], + "fields" : [ { + "field" : "friendsList", + "owner" : "bc", + "name" : "h", + "access" : 17, + "descriptor" : "Lkr;" + }, { + "field" : "ignoreList", + "owner" : "bc", + "name" : "f", + "access" : 17, + "descriptor" : "Lku;" + }, { + "field" : "loginType", + "owner" : "bc", + "name" : "x", + "access" : 16, + "descriptor" : "Lll;" + }, { + "field" : "__p", + "owner" : "bc", + "name" : "p", + "access" : 0, + "descriptor" : "I", + "decoder" : -2083063705 + } ], + "methods" : [ { + "method" : "clear", + "owner" : "bc", + "name" : "h", + "access" : 16, + "parameters" : [ ], + "descriptor" : "(B)V" + }, { + "method" : "removeFriend", + "owner" : "bc", + "name" : "c", + "access" : 16, + "parameters" : [ "name" ], + "descriptor" : "(Ljava/lang/String;I)V" + }, { + "method" : "removeIgnore", + "owner" : "bc", + "name" : "aa", + "access" : 16, + "parameters" : [ "name" ], + "descriptor" : "(Ljava/lang/String;S)V" + }, { + "method" : "__a_151", + "owner" : "bc", + "name" : "a", + "access" : 0, + "parameters" : [ ], + "descriptor" : "(I)Z" + }, { + "method" : "__s_152", + "owner" : "bc", + "name" : "s", + "access" : 16, + "parameters" : [ ], + "descriptor" : "(B)V" + }, { + "method" : "__g_153", + "owner" : "bc", + "name" : "g", + "access" : 16, + "parameters" : [ "arg0", "arg1" ], + "descriptor" : "(Lgx;IB)V" + }, { + "method" : "__x_154", + "owner" : "bc", + "name" : "x", + "access" : 16, + "parameters" : [ ], + "descriptor" : "(I)V" + }, { + "method" : "__f_155", + "owner" : "bc", + "name" : "f", + "access" : 16, + "parameters" : [ "arg0", "arg1" ], + "descriptor" : "(Lkx;ZB)Z" + }, { + "method" : "__p_156", + "owner" : "bc", + "name" : "p", + "access" : 16, + "parameters" : [ "arg0" ], + "descriptor" : "(Lkx;I)Z" + }, { + "method" : "__m_157", + "owner" : "bc", + "name" : "m", + "access" : 16, + "parameters" : [ "arg0" ], + "descriptor" : "(Ljava/lang/String;B)V" + }, { + "method" : "__l_158", + "owner" : "bc", + "name" : "l", + "access" : 16, + "parameters" : [ ], + "descriptor" : "(B)Z" + }, { + "method" : "__o_159", + "owner" : "bc", + "name" : "o", + "access" : 16, + "parameters" : [ "arg0" ], + "descriptor" : "(Ljava/lang/String;I)V" + }, { + "method" : "__v_160", + "owner" : "bc", + "name" : "v", + "access" : 16, + "parameters" : [ ], + "descriptor" : "(I)Z" + }, { + "method" : "__ah_161", + "owner" : "bc", + "name" : "ah", + "access" : 16, + "parameters" : [ "arg0" ], + "descriptor" : "(Lkx;B)Z" + } ], + "constructors" : [ { + "access" : 0, + "descriptor" : "(Lll;)V" + } ] +}, { + "class" : "ObjectSound", + "name" : "bs", + "super" : "hy", + "access" : 49, + "interfaces" : [ ], + "fields" : [ { + "field" : "obj", + "owner" : "bs", + "name" : "r", + "access" : 0, + "descriptor" : "Ljy;" + }, { + "field" : "soundEffectId", + "owner" : "bs", + "name" : "q", + "access" : 0, + "descriptor" : "I", + "decoder" : -807786543 + }, { + "field" : "soundEffectIds", + "owner" : "bs", + "name" : "e", + "access" : 0, + "descriptor" : "[I" + }, { + "field" : "stream1", + "owner" : "bs", + "name" : "b", + "access" : 0, + "descriptor" : "Ldt;" + }, { + "field" : "stream2", + "owner" : "bs", + "name" : "l", + "access" : 0, + "descriptor" : "Ldt;" + }, { + "field" : "__f", + "owner" : "bs", + "name" : "f", + "access" : 0, + "descriptor" : "I", + "decoder" : -437401471 + }, { + "field" : "__g", + "owner" : "bs", + "name" : "g", + "access" : 0, + "descriptor" : "I", + "decoder" : 1251333887 + }, { + "field" : "__h", + "owner" : "bs", + "name" : "h", + "access" : 0, + "descriptor" : "I", + "decoder" : 1536927781 + }, { + "field" : "__m", + "owner" : "bs", + "name" : "m", + "access" : 0, + "descriptor" : "I", + "decoder" : -1314334491 + }, { + "field" : "__n", + "owner" : "bs", + "name" : "n", + "access" : 0, + "descriptor" : "I", + "decoder" : -1014964059 + }, { + "field" : "__p", + "owner" : "bs", + "name" : "p", + "access" : 0, + "descriptor" : "I", + "decoder" : -1992310679 + }, { + "field" : "__s", + "owner" : "bs", + "name" : "s", + "access" : 0, + "descriptor" : "I", + "decoder" : -312559283 + }, { + "field" : "__t", + "owner" : "bs", + "name" : "t", + "access" : 0, + "descriptor" : "I", + "decoder" : 66985199 + }, { + "field" : "__x", + "owner" : "bs", + "name" : "x", + "access" : 0, + "descriptor" : "I", + "decoder" : 1613863125 + } ], + "methods" : [ { + "method" : "set", + "owner" : "bs", + "name" : "a", + "access" : 0, + "parameters" : [ ], + "descriptor" : "(I)V" + } ], + "constructors" : [ { + "access" : 0, + "descriptor" : "()V" + } ] +}, { + "class" : "Npc", + "name" : "cm", + "super" : "bq", + "access" : 49, + "interfaces" : [ ], + "fields" : [ { + "field" : "definition", + "owner" : "cm", + "name" : "a", + "access" : 0, + "descriptor" : "Ljg;" + } ], + "methods" : [ { + "method" : "getModel", + "owner" : "cm", + "name" : "q", + "access" : 20, + "parameters" : [ ], + "descriptor" : "(I)Ldv;" + }, { + "method" : "isVisible", + "owner" : "cm", + "name" : "r", + "access" : 16, + "parameters" : [ ], + "descriptor" : "(I)Z" + }, { + "method" : "__a_162", + "owner" : "cm", + "name" : "a", + "access" : 16, + "parameters" : [ "arg0", "arg1" ], + "descriptor" : "(IBI)V" + }, { + "method" : "__s_163", + "owner" : "cm", + "name" : "s", + "access" : 16, + "parameters" : [ "arg0", "arg1", "arg2" ], + "descriptor" : "(IIZI)V" + } ], + "constructors" : [ { + "access" : 0, + "descriptor" : "()V" + } ] +}, { + "class" : "Script", + "name" : "cs", + "super" : "ho", + "access" : 33, + "interfaces" : [ ], + "fields" : [ { + "field" : "intArgumentCount", + "owner" : "cs", + "name" : "p", + "access" : 0, + "descriptor" : "I", + "decoder" : -591471643 + }, { + "field" : "intOperands", + "owner" : "cs", + "name" : "g", + "access" : 0, + "descriptor" : "[I" + }, { + "field" : "localIntCount", + "owner" : "cs", + "name" : "h", + "access" : 0, + "descriptor" : "I", + "decoder" : -1628931263 + }, { + "field" : "localStringCount", + "owner" : "cs", + "name" : "f", + "access" : 0, + "descriptor" : "I", + "decoder" : -255128747 + }, { + "field" : "opcodes", + "owner" : "cs", + "name" : "s", + "access" : 0, + "descriptor" : "[I" + }, { + "field" : "stringArgumentCount", + "owner" : "cs", + "name" : "m", + "access" : 0, + "descriptor" : "I", + "decoder" : 1575135525 + }, { + "field" : "stringOperands", + "owner" : "cs", + "name" : "x", + "access" : 0, + "descriptor" : "[Ljava/lang/String;" + }, { + "field" : "switches", + "owner" : "cs", + "name" : "q", + "access" : 0, + "descriptor" : "[Lgs;" + } ], + "methods" : [ { + "method" : "__h_164", + "owner" : "cs", + "name" : "h", + "access" : 0, + "parameters" : [ "arg0" ], + "descriptor" : "(IB)[Lgs;" + } ], + "constructors" : [ { + "access" : 0, + "descriptor" : "()V" + } ] +}, { + "class" : "PacketWriter", + "name" : "ck", + "super" : "java.lang.Object", + "access" : 33, + "interfaces" : [ ], + "fields" : [ { + "field" : "buffer", + "owner" : "ck", + "name" : "x", + "access" : 0, + "descriptor" : "Lgx;" + }, { + "field" : "isaacCipher", + "owner" : "ck", + "name" : "h", + "access" : 1, + "descriptor" : "Lgb;" + }, { + "field" : "packetBuffer", + "owner" : "ck", + "name" : "f", + "access" : 0, + "descriptor" : "Lge;" + }, { + "field" : "packetBufferNodes", + "owner" : "ck", + "name" : "s", + "access" : 0, + "descriptor" : "Lhj;" + }, { + "field" : "serverPacket0", + "owner" : "ck", + "name" : "p", + "access" : 0, + "descriptor" : "Lfc;" + }, { + "field" : "serverPacket0Length", + "owner" : "ck", + "name" : "m", + "access" : 0, + "descriptor" : "I", + "decoder" : 233463175 + }, { + "field" : "socket0", + "owner" : "ck", + "name" : "a", + "access" : 0, + "descriptor" : "Lfq;" + }, { + "field" : "__q", + "owner" : "ck", + "name" : "q", + "access" : 0, + "descriptor" : "Z" + }, { + "field" : "__e", + "owner" : "ck", + "name" : "e", + "access" : 0, + "descriptor" : "Lfc;" + }, { + "field" : "__r", + "owner" : "ck", + "name" : "r", + "access" : 0, + "descriptor" : "Lfc;" + }, { + "field" : "__t", + "owner" : "ck", + "name" : "t", + "access" : 0, + "descriptor" : "Lfc;" + }, { + "field" : "__b", + "owner" : "ck", + "name" : "b", + "access" : 0, + "descriptor" : "I", + "decoder" : -1632797297 + }, { + "field" : "__g", + "owner" : "ck", + "name" : "g", + "access" : 0, + "descriptor" : "I", + "decoder" : -1498910999 + }, { + "field" : "__n", + "owner" : "ck", + "name" : "n", + "access" : 0, + "descriptor" : "I", + "decoder" : -1340854521 + } ], + "methods" : [ { + "method" : "close", + "owner" : "ck", + "name" : "h", + "access" : 0, + "parameters" : [ ], + "descriptor" : "(B)V" + }, { + "method" : "getSocket", + "owner" : "ck", + "name" : "p", + "access" : 0, + "parameters" : [ ], + "descriptor" : "(B)Lfq;" + }, { + "method" : "removeSocket", + "owner" : "ck", + "name" : "f", + "access" : 0, + "parameters" : [ ], + "descriptor" : "(B)V" + }, { + "method" : "setSocket", + "owner" : "ck", + "name" : "x", + "access" : 0, + "parameters" : [ "socket" ], + "descriptor" : "(Lfq;I)V" + }, { + "method" : "__a_165", + "owner" : "ck", + "name" : "a", + "access" : 16, + "parameters" : [ ], + "descriptor" : "(B)V" + }, { + "method" : "__s_166", + "owner" : "ck", + "name" : "s", + "access" : 16, + "parameters" : [ ], + "descriptor" : "(B)V" + }, { + "method" : "__g_167", + "owner" : "ck", + "name" : "g", + "access" : 17, + "parameters" : [ "arg0" ], + "descriptor" : "(Lfa;I)V" + } ], + "constructors" : [ { + "access" : 0, + "descriptor" : "()V" + } ] +}, { + "class" : "PcmStreamMixer", + "name" : "cn", + "super" : "do", + "access" : 33, + "interfaces" : [ ], + "fields" : [ { + "field" : "subStreams", + "owner" : "cn", + "name" : "a", + "access" : 0, + "descriptor" : "Lhv;" + }, { + "field" : "__s", + "owner" : "cn", + "name" : "s", + "access" : 0, + "descriptor" : "Lhv;" + }, { + "field" : "__g", + "owner" : "cn", + "name" : "g", + "access" : 0, + "descriptor" : "I" + }, { + "field" : "__x", + "owner" : "cn", + "name" : "x", + "access" : 0, + "descriptor" : "I" + } ], + "methods" : [ { + "method" : "addSubStream", + "owner" : "cn", + "name" : "a", + "access" : 49, + "parameters" : [ "subStream" ], + "descriptor" : "(Ldo;)V" + }, { + "method" : "firstSubStream", + "owner" : "cn", + "name" : "f", + "access" : 4, + "parameters" : [ ], + "descriptor" : "()Ldo;" + }, { + "method" : "nextSubStream", + "owner" : "cn", + "name" : "p", + "access" : 4, + "parameters" : [ ], + "descriptor" : "()Ldo;" + }, { + "method" : "removeSubStream", + "owner" : "cn", + "name" : "s", + "access" : 49, + "parameters" : [ "subStream" ], + "descriptor" : "(Ldo;)V" + }, { + "method" : "skipSubStreams", + "owner" : "cn", + "name" : "e", + "access" : 0, + "parameters" : [ "length" ], + "descriptor" : "(I)V" + }, { + "method" : "updateSubStreams", + "owner" : "cn", + "name" : "b", + "access" : 0, + "parameters" : [ "buffer", "start", "end" ], + "descriptor" : "([III)V" + }, { + "method" : "__g_168", + "owner" : "cn", + "name" : "g", + "access" : 0, + "parameters" : [ ], + "descriptor" : "()V" + }, { + "method" : "__x_169", + "owner" : "cn", + "name" : "x", + "access" : 0, + "parameters" : [ "arg0", "arg1" ], + "descriptor" : "(Lhy;Ldl;)V" + }, { + "method" : "__h_170", + "owner" : "cn", + "name" : "h", + "access" : 0, + "parameters" : [ "arg0" ], + "descriptor" : "(Ldl;)V" + }, { + "method" : "__m_171", + "owner" : "cn", + "name" : "m", + "access" : 4, + "parameters" : [ ], + "descriptor" : "()I" + }, { + "method" : "__q_172", + "owner" : "cn", + "name" : "q", + "access" : 49, + "parameters" : [ "arg0", "arg1", "arg2" ], + "descriptor" : "([III)V" + }, { + "method" : "__n_173", + "owner" : "cn", + "name" : "n", + "access" : 49, + "parameters" : [ "arg0" ], + "descriptor" : "(I)V" + } ], + "constructors" : [ { + "access" : 1, + "descriptor" : "()V" + } ] +}, { + "class" : "SoundEffect", + "name" : "cu", + "super" : "java.lang.Object", + "access" : 33, + "interfaces" : [ ], + "fields" : [ { + "field" : "end", + "owner" : "cu", + "name" : "x", + "access" : 0, + "descriptor" : "I" + }, { + "field" : "instruments", + "owner" : "cu", + "name" : "s", + "access" : 0, + "descriptor" : "[Ldc;" + }, { + "field" : "start", + "owner" : "cu", + "name" : "g", + "access" : 0, + "descriptor" : "I" + } ], + "methods" : [ { + "method" : "mix", + "owner" : "cu", + "name" : "x", + "access" : 16, + "parameters" : [ ], + "descriptor" : "()[B" + }, { + "method" : "toRawSound", + "owner" : "cu", + "name" : "s", + "access" : 1, + "parameters" : [ ], + "descriptor" : "()Lce;" + }, { + "method" : "__g_174", + "owner" : "cu", + "name" : "g", + "access" : 17, + "parameters" : [ ], + "descriptor" : "()I" + } ], + "constructors" : [ { + "access" : 0, + "descriptor" : "(Lgx;)V" + } ] +}, { + "class" : "MusicSample", + "name" : "ci", + "super" : "hy", + "access" : 33, + "interfaces" : [ ], + "fields" : [ { + "field" : "end", + "owner" : "ci", + "name" : "h", + "access" : 0, + "descriptor" : "I" + }, { + "field" : "sampleCount", + "owner" : "ci", + "name" : "g", + "access" : 0, + "descriptor" : "I" + }, { + "field" : "sampleRate", + "owner" : "ci", + "name" : "s", + "access" : 0, + "descriptor" : "I" + }, { + "field" : "samples", + "owner" : "ci", + "name" : "ah", + "access" : 0, + "descriptor" : "[B" + }, { + "field" : "start", + "owner" : "ci", + "name" : "x", + "access" : 0, + "descriptor" : "I" + }, { + "field" : "__f", + "owner" : "ci", + "name" : "f", + "access" : 0, + "descriptor" : "Z" + }, { + "field" : "__w", + "owner" : "ci", + "name" : "w", + "access" : 0, + "descriptor" : "Z" + }, { + "field" : "__a", + "owner" : "ci", + "name" : "a", + "access" : 0, + "descriptor" : "[[B" + }, { + "field" : "__k", + "owner" : "ci", + "name" : "k", + "access" : 0, + "descriptor" : "[F" + }, { + "field" : "__an", + "owner" : "ci", + "name" : "an", + "access" : 0, + "descriptor" : "I" + }, { + "field" : "__aw", + "owner" : "ci", + "name" : "aw", + "access" : 0, + "descriptor" : "I" + }, { + "field" : "__d", + "owner" : "ci", + "name" : "d", + "access" : 0, + "descriptor" : "I" + }, { + "field" : "__v", + "owner" : "ci", + "name" : "v", + "access" : 0, + "descriptor" : "I" + } ], + "methods" : [ { + "method" : "read", + "owner" : "ci", + "name" : "h", + "access" : 0, + "descriptor" : "([B)V" + }, { + "method" : "toRawSound", + "owner" : "ci", + "name" : "b", + "access" : 0, + "descriptor" : "([I)Lce;" + }, { + "method" : "__p_175", + "owner" : "ci", + "name" : "p", + "access" : 0, + "parameters" : [ "arg0" ], + "descriptor" : "(I)[F" + } ], + "constructors" : [ { + "access" : 0, + "descriptor" : "([B)V" + } ] +}, { + "class" : "RawSound", + "name" : "ce", + "super" : "dj", + "access" : 33, + "interfaces" : [ ], + "fields" : [ { + "field" : "end", + "owner" : "ce", + "name" : "x", + "access" : 0, + "descriptor" : "I" + }, { + "field" : "sampleRate", + "owner" : "ce", + "name" : "a", + "access" : 1, + "descriptor" : "I" + }, { + "field" : "samples", + "owner" : "ce", + "name" : "s", + "access" : 1, + "descriptor" : "[B" + }, { + "field" : "start", + "owner" : "ce", + "name" : "g", + "access" : 1, + "descriptor" : "I" + }, { + "field" : "__h", + "owner" : "ce", + "name" : "h", + "access" : 1, + "descriptor" : "Z" + } ], + "methods" : [ { + "method" : "resample", + "owner" : "ce", + "name" : "a", + "access" : 1, + "parameters" : [ "decimator" ], + "descriptor" : "(Ldn;)Lce;" + } ], + "constructors" : [ { + "access" : 0, + "descriptor" : "(I[BII)V" + }, { + "access" : 0, + "descriptor" : "(I[BIIZ)V" + } ] +}, { + "class" : "PcmPlayer", + "name" : "cz", + "super" : "java.lang.Object", + "access" : 33, + "interfaces" : [ ], + "fields" : [ { + "field" : "capacity", + "owner" : "cz", + "name" : "y", + "access" : 0, + "descriptor" : "I", + "decoder" : -810290507 + }, { + "field" : "frequency", + "owner" : "cz", + "name" : "k", + "access" : 0, + "descriptor" : "I", + "decoder" : -1959673417 + }, { + "field" : "nextPosition", + "owner" : "cz", + "name" : "c", + "access" : 0, + "descriptor" : "I", + "decoder" : -1366297195 + }, { + "field" : "retryTimeMs", + "owner" : "cz", + "name" : "d", + "access" : 0, + "descriptor" : "J", + "decoder" : 5497426224088795273 + }, { + "field" : "samples", + "owner" : "cz", + "name" : "t", + "access" : 4, + "descriptor" : "[I" + }, { + "field" : "stream0", + "owner" : "cz", + "name" : "l", + "access" : 0, + "descriptor" : "Ldo;" + }, { + "field" : "timeMs", + "owner" : "cz", + "name" : "u", + "access" : 0, + "descriptor" : "J", + "decoder" : 5440291444380244465 + }, { + "field" : "__z", + "owner" : "cz", + "name" : "z", + "access" : 0, + "descriptor" : "Z" + }, { + "field" : "__an", + "owner" : "cz", + "name" : "an", + "access" : 0, + "descriptor" : "[Ldo;" + }, { + "field" : "__aw", + "owner" : "cz", + "name" : "aw", + "access" : 0, + "descriptor" : "[Ldo;" + }, { + "field" : "__ah", + "owner" : "cz", + "name" : "ah", + "access" : 0, + "descriptor" : "I", + "decoder" : 1816555939 + }, { + "field" : "__i", + "owner" : "cz", + "name" : "i", + "access" : 0, + "descriptor" : "I", + "decoder" : -1869318031 + }, { + "field" : "__o", + "owner" : "cz", + "name" : "o", + "access" : 0, + "descriptor" : "I", + "decoder" : 1156813405 + }, { + "field" : "__v", + "owner" : "cz", + "name" : "v", + "access" : 0, + "descriptor" : "I", + "decoder" : 1555639263 + }, { + "field" : "__w", + "owner" : "cz", + "name" : "w", + "access" : 0, + "descriptor" : "I", + "decoder" : 1059470161 + }, { + "field" : "__j", + "owner" : "cz", + "name" : "j", + "access" : 0, + "descriptor" : "J", + "decoder" : 2364871167386266887 + } ], + "methods" : [ { + "method" : "close", + "owner" : "cz", + "name" : "h", + "access" : 4, + "parameters" : [ ], + "descriptor" : "(I)V" + }, { + "method" : "discard", + "owner" : "cz", + "name" : "f", + "access" : 4, + "parameters" : [ ], + "descriptor" : "(B)V" + }, { + "method" : "fill", + "owner" : "cz", + "name" : "as", + "access" : 16, + "parameters" : [ "buffer", "length" ], + "descriptor" : "([II)V" + }, { + "method" : "init", + "owner" : "cz", + "name" : "a", + "access" : 4, + "parameters" : [ ], + "descriptor" : "(I)V" + }, { + "method" : "open", + "owner" : "cz", + "name" : "s", + "access" : 4, + "parameters" : [ "bufferSize" ], + "descriptor" : "(II)V" + }, { + "method" : "position", + "owner" : "cz", + "name" : "g", + "access" : 4, + "parameters" : [ ], + "descriptor" : "(I)I" + }, { + "method" : "run", + "owner" : "cz", + "name" : "at", + "access" : 49, + "parameters" : [ ], + "descriptor" : "(I)V" + }, { + "method" : "setStream", + "owner" : "cz", + "name" : "an", + "access" : 49, + "parameters" : [ "stream" ], + "descriptor" : "(Ldo;B)V" + }, { + "method" : "shutdown", + "owner" : "cz", + "name" : "au", + "access" : 49, + "parameters" : [ ], + "descriptor" : "(B)V" + }, { + "method" : "skip", + "owner" : "cz", + "name" : "aj", + "access" : 16, + "parameters" : [ "length" ], + "descriptor" : "(II)V" + }, { + "method" : "tryDiscard", + "owner" : "cz", + "name" : "av", + "access" : 49, + "parameters" : [ ], + "descriptor" : "(I)V" + }, { + "method" : "write", + "owner" : "cz", + "name" : "x", + "access" : 4, + "parameters" : [ ], + "descriptor" : "()V" + }, { + "method" : "__ae_176", + "owner" : "cz", + "name" : "ae", + "access" : 17, + "parameters" : [ ], + "descriptor" : "(I)V" + }, { + "method" : "__ai_177", + "owner" : "cz", + "name" : "ai", + "access" : 16, + "parameters" : [ "arg0", "arg1" ], + "descriptor" : "(Ldo;II)V" + } ], + "constructors" : [ { + "access" : 4, + "descriptor" : "()V" + } ] +}, { + "class" : "SoundSystem", + "name" : "dz", + "super" : "java.lang.Object", + "access" : 33, + "interfaces" : [ "java.lang.Runnable" ], + "fields" : [ { + "field" : "players", + "owner" : "dz", + "name" : "a", + "access" : 64, + "descriptor" : "[Lcz;" + } ], + "methods" : [ { + "method" : "__run_178", + "owner" : "dz", + "name" : "run", + "access" : 1, + "parameters" : [ ], + "descriptor" : "()V" + } ], + "constructors" : [ { + "access" : 0, + "descriptor" : "()V" + } ] +}, { + "class" : "PcmStreamMixerListener", + "name" : "dl", + "super" : "hy", + "access" : 1057, + "interfaces" : [ ], + "fields" : [ { + "field" : "__a", + "owner" : "dl", + "name" : "a", + "access" : 0, + "descriptor" : "I" + } ], + "methods" : [ { + "method" : "remove2", + "owner" : "dl", + "name" : "a", + "access" : 1024, + "parameters" : [ ], + "descriptor" : "()V" + }, { + "method" : "update", + "owner" : "dl", + "name" : "s", + "access" : 1024, + "parameters" : [ "mixer" ], + "descriptor" : "(Lcn;)I" + } ], + "constructors" : [ ] +}, { + "class" : "RawPcmStream", + "name" : "dt", + "super" : "do", + "access" : 33, + "interfaces" : [ ], + "fields" : [ { + "field" : "end", + "owner" : "dt", + "name" : "b", + "access" : 0, + "descriptor" : "I" + }, { + "field" : "start", + "owner" : "dt", + "name" : "q", + "access" : 0, + "descriptor" : "I" + }, { + "field" : "__n", + "owner" : "dt", + "name" : "n", + "access" : 0, + "descriptor" : "Z" + }, { + "field" : "__a", + "owner" : "dt", + "name" : "a", + "access" : 0, + "descriptor" : "I" + }, { + "field" : "__e", + "owner" : "dt", + "name" : "e", + "access" : 0, + "descriptor" : "I" + }, { + "field" : "__f", + "owner" : "dt", + "name" : "f", + "access" : 0, + "descriptor" : "I" + }, { + "field" : "__g", + "owner" : "dt", + "name" : "g", + "access" : 0, + "descriptor" : "I" + }, { + "field" : "__h", + "owner" : "dt", + "name" : "h", + "access" : 0, + "descriptor" : "I" + }, { + "field" : "__l", + "owner" : "dt", + "name" : "l", + "access" : 0, + "descriptor" : "I" + }, { + "field" : "__m", + "owner" : "dt", + "name" : "m", + "access" : 0, + "descriptor" : "I" + }, { + "field" : "__p", + "owner" : "dt", + "name" : "p", + "access" : 0, + "descriptor" : "I" + }, { + "field" : "__r", + "owner" : "dt", + "name" : "r", + "access" : 0, + "descriptor" : "I" + }, { + "field" : "__s", + "owner" : "dt", + "name" : "s", + "access" : 0, + "descriptor" : "I" + }, { + "field" : "__t", + "owner" : "dt", + "name" : "t", + "access" : 0, + "descriptor" : "I" + }, { + "field" : "__x", + "owner" : "dt", + "name" : "x", + "access" : 0, + "descriptor" : "I" + } ], + "methods" : [ { + "method" : "__ap_179", + "owner" : "dt", + "name" : "ap", + "access" : 0, + "parameters" : [ ], + "descriptor" : "()I" + }, { + "method" : "__h_180", + "owner" : "dt", + "name" : "h", + "access" : 0, + "parameters" : [ ], + "descriptor" : "()V" + }, { + "method" : "__b_181", + "owner" : "dt", + "name" : "b", + "access" : 33, + "parameters" : [ "arg0" ], + "descriptor" : "(I)V" + }, { + "method" : "__e_182", + "owner" : "dt", + "name" : "e", + "access" : 33, + "parameters" : [ "arg0" ], + "descriptor" : "(I)V" + }, { + "method" : "__r_183", + "owner" : "dt", + "name" : "r", + "access" : 32, + "parameters" : [ "arg0" ], + "descriptor" : "(I)V" + }, { + "method" : "__t_184", + "owner" : "dt", + "name" : "t", + "access" : 32, + "parameters" : [ "arg0", "arg1" ], + "descriptor" : "(II)V" + }, { + "method" : "__l_185", + "owner" : "dt", + "name" : "l", + "access" : 33, + "parameters" : [ ], + "descriptor" : "()I" + }, { + "method" : "__o_186", + "owner" : "dt", + "name" : "o", + "access" : 33, + "parameters" : [ ], + "descriptor" : "()I" + }, { + "method" : "__u_187", + "owner" : "dt", + "name" : "u", + "access" : 33, + "parameters" : [ "arg0" ], + "descriptor" : "(I)V" + }, { + "method" : "__y_188", + "owner" : "dt", + "name" : "y", + "access" : 33, + "parameters" : [ "arg0" ], + "descriptor" : "(Z)V" + }, { + "method" : "__k_189", + "owner" : "dt", + "name" : "k", + "access" : 0, + "parameters" : [ ], + "descriptor" : "()V" + }, { + "method" : "__v_190", + "owner" : "dt", + "name" : "v", + "access" : 33, + "parameters" : [ "arg0", "arg1" ], + "descriptor" : "(II)V" + }, { + "method" : "__c_191", + "owner" : "dt", + "name" : "c", + "access" : 33, + "parameters" : [ "arg0", "arg1", "arg2" ], + "descriptor" : "(III)V" + }, { + "method" : "__aa_192", + "owner" : "dt", + "name" : "aa", + "access" : 33, + "parameters" : [ "arg0" ], + "descriptor" : "(I)V" + }, { + "method" : "__ab_193", + "owner" : "dt", + "name" : "ab", + "access" : 33, + "parameters" : [ "arg0" ], + "descriptor" : "(I)V" + }, { + "method" : "__ah_194", + "owner" : "dt", + "name" : "ah", + "access" : 33, + "parameters" : [ ], + "descriptor" : "()I" + }, { + "method" : "__aw_195", + "owner" : "dt", + "name" : "aw", + "access" : 1, + "parameters" : [ ], + "descriptor" : "()Z" + }, { + "method" : "__an_196", + "owner" : "dt", + "name" : "an", + "access" : 1, + "parameters" : [ ], + "descriptor" : "()Z" + }, { + "method" : "__f_197", + "owner" : "dt", + "name" : "f", + "access" : 4, + "parameters" : [ ], + "descriptor" : "()Ldo;" + }, { + "method" : "__p_198", + "owner" : "dt", + "name" : "p", + "access" : 4, + "parameters" : [ ], + "descriptor" : "()Ldo;" + }, { + "method" : "__m_199", + "owner" : "dt", + "name" : "m", + "access" : 4, + "parameters" : [ ], + "descriptor" : "()I" + }, { + "method" : "__q_200", + "owner" : "dt", + "name" : "q", + "access" : 33, + "parameters" : [ "arg0", "arg1", "arg2" ], + "descriptor" : "([III)V" + }, { + "method" : "__n_201", + "owner" : "dt", + "name" : "n", + "access" : 33, + "parameters" : [ "arg0" ], + "descriptor" : "(I)V" + }, { + "method" : "__at_202", + "owner" : "dt", + "name" : "at", + "access" : 0, + "parameters" : [ "arg0", "arg1", "arg2", "arg3", "arg4" ], + "descriptor" : "([IIIII)I" + }, { + "method" : "__al_203", + "owner" : "dt", + "name" : "al", + "access" : 0, + "parameters" : [ "arg0", "arg1", "arg2", "arg3", "arg4" ], + "descriptor" : "([IIIII)I" + }, { + "method" : "__ao_204", + "owner" : "dt", + "name" : "ao", + "access" : 0, + "parameters" : [ ], + "descriptor" : "()Z" + } ], + "constructors" : [ { + "access" : 0, + "descriptor" : "(Lce;II)V" + }, { + "access" : 0, + "descriptor" : "(Lce;III)V" + } ] +}, { + "class" : "AudioFilter", + "name" : "dr", + "super" : "java.lang.Object", + "access" : 33, + "interfaces" : [ ], + "fields" : [ { + "field" : "__a", + "owner" : "dr", + "name" : "a", + "access" : 0, + "descriptor" : "[I" + }, { + "field" : "__h", + "owner" : "dr", + "name" : "h", + "access" : 0, + "descriptor" : "[I" + }, { + "field" : "__g", + "owner" : "dr", + "name" : "g", + "access" : 0, + "descriptor" : "[[[I" + }, { + "field" : "__x", + "owner" : "dr", + "name" : "x", + "access" : 0, + "descriptor" : "[[[I" + } ], + "methods" : [ { + "method" : "__a_205", + "owner" : "dr", + "name" : "a", + "access" : 0, + "parameters" : [ "arg0", "arg1", "arg2" ], + "descriptor" : "(IIF)F" + }, { + "method" : "__g_206", + "owner" : "dr", + "name" : "g", + "access" : 0, + "parameters" : [ "arg0", "arg1", "arg2" ], + "descriptor" : "(IIF)F" + }, { + "method" : "__x_207", + "owner" : "dr", + "name" : "x", + "access" : 0, + "parameters" : [ "arg0", "arg1" ], + "descriptor" : "(IF)I" + }, { + "method" : "__h_208", + "owner" : "dr", + "name" : "h", + "access" : 16, + "parameters" : [ "arg0", "arg1" ], + "descriptor" : "(Lgx;Lcl;)V" + } ], + "constructors" : [ { + "access" : 0, + "descriptor" : "()V" + } ] +}, { + "class" : "PcmStream", + "name" : "do", + "super" : "hy", + "access" : 1057, + "interfaces" : [ ], + "fields" : [ { + "field" : "active", + "owner" : "do", + "name" : "k", + "access" : 64, + "descriptor" : "Z" + }, { + "field" : "after", + "owner" : "do", + "name" : "o", + "access" : 0, + "descriptor" : "Ldo;" + }, { + "field" : "sound", + "owner" : "do", + "name" : "y", + "access" : 0, + "descriptor" : "Ldj;" + }, { + "field" : "__u", + "owner" : "do", + "name" : "u", + "access" : 0, + "descriptor" : "I" + } ], + "methods" : [ { + "method" : "fill", + "owner" : "do", + "name" : "q", + "access" : 1028, + "parameters" : [ "buffer", "start", "end" ], + "descriptor" : "([III)V" + }, { + "method" : "firstSubStream", + "owner" : "do", + "name" : "f", + "access" : 1028, + "parameters" : [ ], + "descriptor" : "()Ldo;" + }, { + "method" : "nextSubStream", + "owner" : "do", + "name" : "p", + "access" : 1028, + "parameters" : [ ], + "descriptor" : "()Ldo;" + }, { + "method" : "skip", + "owner" : "do", + "name" : "n", + "access" : 1028, + "parameters" : [ "length" ], + "descriptor" : "(I)V" + }, { + "method" : "update", + "owner" : "do", + "name" : "fn", + "access" : 16, + "parameters" : [ "buffer", "start", "end" ], + "descriptor" : "([III)V" + }, { + "method" : "__ap_209", + "owner" : "do", + "name" : "ap", + "access" : 0, + "parameters" : [ ], + "descriptor" : "()I" + }, { + "method" : "__m_210", + "owner" : "do", + "name" : "m", + "access" : 1028, + "parameters" : [ ], + "descriptor" : "()I" + } ], + "constructors" : [ { + "access" : 4, + "descriptor" : "()V" + } ] +}, { + "class" : "Instrument", + "name" : "dc", + "super" : "java.lang.Object", + "access" : 33, + "interfaces" : [ ], + "fields" : [ { + "field" : "delayDecay", + "owner" : "dc", + "name" : "r", + "access" : 0, + "descriptor" : "I" + }, { + "field" : "delayTime", + "owner" : "dc", + "name" : "e", + "access" : 0, + "descriptor" : "I" + }, { + "field" : "duration", + "owner" : "dc", + "name" : "o", + "access" : 0, + "descriptor" : "I" + }, { + "field" : "filter", + "owner" : "dc", + "name" : "t", + "access" : 0, + "descriptor" : "Ldr;" + }, { + "field" : "offset", + "owner" : "dc", + "name" : "u", + "access" : 0, + "descriptor" : "I" + }, { + "field" : "oscillatorDelays", + "owner" : "dc", + "name" : "n", + "access" : 0, + "descriptor" : "[I" + }, { + "field" : "oscillatorPitch", + "owner" : "dc", + "name" : "b", + "access" : 0, + "descriptor" : "[I" + }, { + "field" : "oscillatorVolume", + "owner" : "dc", + "name" : "q", + "access" : 0, + "descriptor" : "[I" + }, { + "field" : "__a", + "owner" : "dc", + "name" : "a", + "access" : 0, + "descriptor" : "Lcl;" + }, { + "field" : "__f", + "owner" : "dc", + "name" : "f", + "access" : 0, + "descriptor" : "Lcl;" + }, { + "field" : "__g", + "owner" : "dc", + "name" : "g", + "access" : 0, + "descriptor" : "Lcl;" + }, { + "field" : "__h", + "owner" : "dc", + "name" : "h", + "access" : 0, + "descriptor" : "Lcl;" + }, { + "field" : "__l", + "owner" : "dc", + "name" : "l", + "access" : 0, + "descriptor" : "Lcl;" + }, { + "field" : "__m", + "owner" : "dc", + "name" : "m", + "access" : 0, + "descriptor" : "Lcl;" + }, { + "field" : "__p", + "owner" : "dc", + "name" : "p", + "access" : 0, + "descriptor" : "Lcl;" + }, { + "field" : "__s", + "owner" : "dc", + "name" : "s", + "access" : 0, + "descriptor" : "Lcl;" + }, { + "field" : "__x", + "owner" : "dc", + "name" : "x", + "access" : 0, + "descriptor" : "Lcl;" + } ], + "methods" : [ { + "method" : "decode", + "owner" : "dc", + "name" : "g", + "access" : 16, + "parameters" : [ "buffer" ], + "descriptor" : "(Lgx;)V" + }, { + "method" : "evaluateWave", + "owner" : "dc", + "name" : "s", + "access" : 16, + "descriptor" : "(III)I" + }, { + "method" : "synthesize", + "owner" : "dc", + "name" : "a", + "access" : 16, + "descriptor" : "(II)[I" + } ], + "constructors" : [ { + "access" : 0, + "descriptor" : "()V" + } ] +}, { + "class" : "BufferedFile", + "name" : "dx", + "super" : "java.lang.Object", + "access" : 33, + "interfaces" : [ ], + "fields" : [ { + "field" : "accessFile", + "owner" : "dx", + "name" : "a", + "access" : 0, + "descriptor" : "Lda;" + }, { + "field" : "capacity", + "owner" : "dx", + "name" : "b", + "access" : 0, + "descriptor" : "J", + "decoder" : 7625560096165464275 + }, { + "field" : "readBuffer", + "owner" : "dx", + "name" : "s", + "access" : 0, + "descriptor" : "[B" + }, { + "field" : "writeBuffer", + "owner" : "dx", + "name" : "h", + "access" : 0, + "descriptor" : "[B" + }, { + "field" : "__p", + "owner" : "dx", + "name" : "p", + "access" : 0, + "descriptor" : "I", + "decoder" : 1377119707 + }, { + "field" : "__x", + "owner" : "dx", + "name" : "x", + "access" : 0, + "descriptor" : "I", + "decoder" : 1529466497 + }, { + "field" : "__f", + "owner" : "dx", + "name" : "f", + "access" : 0, + "descriptor" : "J", + "decoder" : 4118804273345043159 + }, { + "field" : "__g", + "owner" : "dx", + "name" : "g", + "access" : 0, + "descriptor" : "J", + "decoder" : 3783110478113031363 + }, { + "field" : "__m", + "owner" : "dx", + "name" : "m", + "access" : 0, + "descriptor" : "J", + "decoder" : -7495971393692368667 + }, { + "field" : "__n", + "owner" : "dx", + "name" : "n", + "access" : 0, + "descriptor" : "J", + "decoder" : -2543243651016552385 + }, { + "field" : "__q", + "owner" : "dx", + "name" : "q", + "access" : 0, + "descriptor" : "J", + "decoder" : 8900813318100807425 + } ], + "methods" : [ { + "method" : "close", + "owner" : "dx", + "name" : "a", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(I)V" + }, { + "method" : "flush", + "owner" : "dx", + "name" : "m", + "access" : 0, + "parameters" : [ ], + "descriptor" : "(B)V" + }, { + "method" : "length", + "owner" : "dx", + "name" : "g", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(S)J" + }, { + "method" : "load", + "owner" : "dx", + "name" : "f", + "access" : 0, + "parameters" : [ ], + "descriptor" : "(I)V" + }, { + "method" : "read", + "owner" : "dx", + "name" : "h", + "access" : 1, + "parameters" : [ "dst", "dstIndex", "length" ], + "descriptor" : "([BIIB)V" + }, { + "method" : "readFill", + "owner" : "dx", + "name" : "x", + "access" : 1, + "parameters" : [ "dst" ], + "descriptor" : "([BI)V" + }, { + "method" : "seek", + "owner" : "dx", + "name" : "s", + "access" : 1, + "parameters" : [ "index" ], + "descriptor" : "(J)V" + }, { + "method" : "write", + "owner" : "dx", + "name" : "p", + "access" : 1, + "parameters" : [ "src", "srcIndex", "length" ], + "descriptor" : "([BIIB)V" + } ], + "constructors" : [ { + "access" : 1, + "descriptor" : "(Lda;II)V" + } ] +}, { + "class" : "AccessFile", + "name" : "da", + "super" : "java.lang.Object", + "access" : 49, + "interfaces" : [ ], + "fields" : [ { + "field" : "capacity", + "owner" : "da", + "name" : "s", + "access" : 0, + "descriptor" : "J", + "decoder" : 5301123448086758809 + }, { + "field" : "file", + "owner" : "da", + "name" : "a", + "access" : 0, + "descriptor" : "Ljava/io/RandomAccessFile;" + }, { + "field" : "index", + "owner" : "da", + "name" : "g", + "access" : 0, + "descriptor" : "J", + "decoder" : 8108136151641546007 + } ], + "methods" : [ { + "method" : "close", + "owner" : "da", + "name" : "g", + "access" : 17, + "parameters" : [ ], + "descriptor" : "(S)V" + }, { + "method" : "closeSync", + "owner" : "da", + "name" : "x", + "access" : 17, + "parameters" : [ "sync" ], + "descriptor" : "(ZI)V" + }, { + "method" : "length", + "owner" : "da", + "name" : "h", + "access" : 17, + "parameters" : [ ], + "descriptor" : "(I)J" + }, { + "method" : "read", + "owner" : "da", + "name" : "f", + "access" : 17, + "parameters" : [ "dst", "dstIndex", "length" ], + "descriptor" : "([BIII)I" + }, { + "method" : "seek", + "owner" : "da", + "name" : "a", + "access" : 16, + "parameters" : [ "index" ], + "descriptor" : "(J)V" + }, { + "method" : "write", + "owner" : "da", + "name" : "s", + "access" : 17, + "parameters" : [ "src", "srcIndex", "length" ], + "descriptor" : "([BIIB)V" + }, { + "method" : "__finalize_211", + "owner" : "da", + "name" : "finalize", + "access" : 4, + "parameters" : [ ], + "descriptor" : "()V" + } ], + "constructors" : [ { + "access" : 1, + "descriptor" : "(Ljava/io/File;Ljava/lang/String;J)V" + } ] +}, { + "class" : "TextureProvider", + "name" : "du", + "super" : "java.lang.Object", + "access" : 33, + "interfaces" : [ "ew" ], + "fields" : [ { + "field" : "brightness0", + "owner" : "du", + "name" : "h", + "access" : 0, + "descriptor" : "D" + }, { + "field" : "capacity", + "owner" : "du", + "name" : "g", + "access" : 0, + "descriptor" : "I", + "decoder" : -1519057499 + }, { + "field" : "deque", + "owner" : "du", + "name" : "s", + "access" : 0, + "descriptor" : "Lhv;" + }, { + "field" : "indexCache", + "owner" : "du", + "name" : "p", + "access" : 0, + "descriptor" : "Liz;" + }, { + "field" : "remaining", + "owner" : "du", + "name" : "x", + "access" : 0, + "descriptor" : "I", + "decoder" : -2014379947 + }, { + "field" : "textureSize", + "owner" : "du", + "name" : "f", + "access" : 0, + "descriptor" : "I", + "decoder" : 956040443 + }, { + "field" : "textures", + "owner" : "du", + "name" : "a", + "access" : 0, + "descriptor" : "[Ldb;" + } ], + "methods" : [ { + "method" : "animate", + "owner" : "du", + "name" : "m", + "access" : 1, + "parameters" : [ "n" ], + "descriptor" : "(IB)V" + }, { + "method" : "clear", + "owner" : "du", + "name" : "p", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(I)V" + }, { + "method" : "isLowDetail", + "owner" : "du", + "name" : "f", + "access" : 1, + "descriptor" : "(II)Z" + }, { + "method" : "load", + "owner" : "du", + "name" : "g", + "access" : 1, + "descriptor" : "(II)[I" + }, { + "method" : "setBrightness", + "owner" : "du", + "name" : "s", + "access" : 1, + "parameters" : [ "brightness" ], + "descriptor" : "(D)V" + }, { + "method" : "__a_212", + "owner" : "du", + "name" : "a", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(I)I" + }, { + "method" : "__x_213", + "owner" : "du", + "name" : "x", + "access" : 1, + "parameters" : [ "arg0" ], + "descriptor" : "(II)I" + }, { + "method" : "__h_214", + "owner" : "du", + "name" : "h", + "access" : 1, + "parameters" : [ "arg0" ], + "descriptor" : "(IB)Z" + } ], + "constructors" : [ { + "access" : 1, + "descriptor" : "(Liz;Liz;IDI)V" + } ] +}, { + "class" : "ModelData", + "name" : "dk", + "super" : "em", + "access" : 33, + "interfaces" : [ ], + "fields" : [ { + "field" : "faceAlphas", + "owner" : "dk", + "name" : "n", + "access" : 0, + "descriptor" : "[B" + }, { + "field" : "faceColors", + "owner" : "dk", + "name" : "r", + "access" : 0, + "descriptor" : "[S" + }, { + "field" : "faceCount", + "owner" : "dk", + "name" : "h", + "access" : 0, + "descriptor" : "I" + }, { + "field" : "faceLabelsAlpha", + "owner" : "dk", + "name" : "c", + "access" : 0, + "descriptor" : "[[I" + }, { + "field" : "faceNormals", + "owner" : "dk", + "name" : "j", + "access" : 0, + "descriptor" : "[Leo;" + }, { + "field" : "faceTextures", + "owner" : "dk", + "name" : "t", + "access" : 0, + "descriptor" : "[S" + }, { + "field" : "indices1", + "owner" : "dk", + "name" : "f", + "access" : 0, + "descriptor" : "[I" + }, { + "field" : "indices2", + "owner" : "dk", + "name" : "p", + "access" : 0, + "descriptor" : "[I" + }, { + "field" : "indices3", + "owner" : "dk", + "name" : "m", + "access" : 0, + "descriptor" : "[I" + }, { + "field" : "isBoundsCalculated", + "owner" : "dk", + "name" : "aa", + "access" : 0, + "descriptor" : "Z" + }, { + "field" : "vertexLabels", + "owner" : "dk", + "name" : "i", + "access" : 0, + "descriptor" : "[[I" + }, { + "field" : "verticesCount", + "owner" : "dk", + "name" : "a", + "access" : 0, + "descriptor" : "I" + }, { + "field" : "verticesX", + "owner" : "dk", + "name" : "s", + "access" : 0, + "descriptor" : "[I" + }, { + "field" : "verticesY", + "owner" : "dk", + "name" : "g", + "access" : 0, + "descriptor" : "[I" + }, { + "field" : "verticesZ", + "owner" : "dk", + "name" : "x", + "access" : 0, + "descriptor" : "[I" + }, { + "field" : "__l", + "owner" : "dk", + "name" : "l", + "access" : 0, + "descriptor" : "B" + }, { + "field" : "__b", + "owner" : "dk", + "name" : "b", + "access" : 0, + "descriptor" : "[B" + }, { + "field" : "__e", + "owner" : "dk", + "name" : "e", + "access" : 0, + "descriptor" : "[B" + }, { + "field" : "__q", + "owner" : "dk", + "name" : "q", + "access" : 0, + "descriptor" : "[B" + }, { + "field" : "__u", + "owner" : "dk", + "name" : "u", + "access" : 0, + "descriptor" : "[B" + }, { + "field" : "__ag", + "owner" : "dk", + "name" : "ag", + "access" : 0, + "descriptor" : "[Ldp;" + }, { + "field" : "__z", + "owner" : "dk", + "name" : "z", + "access" : 0, + "descriptor" : "[Ldp;" + }, { + "field" : "__ab", + "owner" : "dk", + "name" : "ab", + "access" : 0, + "descriptor" : "I" + }, { + "field" : "__ah", + "owner" : "dk", + "name" : "ah", + "access" : 0, + "descriptor" : "I" + }, { + "field" : "__an", + "owner" : "dk", + "name" : "an", + "access" : 0, + "descriptor" : "I" + }, { + "field" : "__at", + "owner" : "dk", + "name" : "at", + "access" : 0, + "descriptor" : "I" + }, { + "field" : "__aw", + "owner" : "dk", + "name" : "aw", + "access" : 0, + "descriptor" : "I" + }, { + "field" : "__o", + "owner" : "dk", + "name" : "o", + "access" : 0, + "descriptor" : "I" + }, { + "field" : "__d", + "owner" : "dk", + "name" : "d", + "access" : 0, + "descriptor" : "[I" + }, { + "field" : "__w", + "owner" : "dk", + "name" : "w", + "access" : 0, + "descriptor" : "[I" + }, { + "field" : "__k", + "owner" : "dk", + "name" : "k", + "access" : 0, + "descriptor" : "[S" + }, { + "field" : "__v", + "owner" : "dk", + "name" : "v", + "access" : 0, + "descriptor" : "[S" + }, { + "field" : "__y", + "owner" : "dk", + "name" : "y", + "access" : 0, + "descriptor" : "[S" + }, { + "field" : "__af", + "owner" : "dk", + "name" : "af", + "access" : 1, + "descriptor" : "S" + }, { + "field" : "__ay", + "owner" : "dk", + "name" : "ay", + "access" : 1, + "descriptor" : "S" + } ], + "methods" : [ { + "method" : "invalidate", + "owner" : "dk", + "name" : "k", + "access" : 0, + "parameters" : [ ], + "descriptor" : "()V" + }, { + "method" : "recolor", + "owner" : "dk", + "name" : "t", + "access" : 1, + "parameters" : [ "from", "to" ], + "descriptor" : "(SS)V" + }, { + "method" : "retexture", + "owner" : "dk", + "name" : "l", + "access" : 1, + "parameters" : [ "from", "to" ], + "descriptor" : "(SS)V" + }, { + "method" : "toModel", + "owner" : "dk", + "name" : "aa", + "access" : 17, + "parameters" : [ "a", "b", "c", "d", "e" ], + "descriptor" : "(IIIII)Ldv;" + }, { + "method" : "__s_215", + "owner" : "dk", + "name" : "s", + "access" : 0, + "parameters" : [ "arg0" ], + "descriptor" : "([B)V" + }, { + "method" : "__g_216", + "owner" : "dk", + "name" : "g", + "access" : 0, + "parameters" : [ "arg0" ], + "descriptor" : "([B)V" + }, { + "method" : "__x_217", + "owner" : "dk", + "name" : "x", + "access" : 16, + "parameters" : [ "arg0", "arg1" ], + "descriptor" : "(Ldk;I)I" + }, { + "method" : "__h_218", + "owner" : "dk", + "name" : "h", + "access" : 1, + "parameters" : [ ], + "descriptor" : "()Ldk;" + }, { + "method" : "__f_219", + "owner" : "dk", + "name" : "f", + "access" : 1, + "parameters" : [ "arg0", "arg1", "arg2", "arg3", "arg4", "arg5" ], + "descriptor" : "([[IIIIZI)Ldk;" + }, { + "method" : "__p_220", + "owner" : "dk", + "name" : "p", + "access" : 0, + "parameters" : [ ], + "descriptor" : "()V" + }, { + "method" : "__m_221", + "owner" : "dk", + "name" : "m", + "access" : 1, + "parameters" : [ ], + "descriptor" : "()V" + }, { + "method" : "__b_222", + "owner" : "dk", + "name" : "b", + "access" : 1, + "parameters" : [ ], + "descriptor" : "()V" + }, { + "method" : "__n_223", + "owner" : "dk", + "name" : "n", + "access" : 1, + "parameters" : [ ], + "descriptor" : "()V" + }, { + "method" : "__e_224", + "owner" : "dk", + "name" : "e", + "access" : 1, + "parameters" : [ "arg0" ], + "descriptor" : "(I)V" + }, { + "method" : "__r_225", + "owner" : "dk", + "name" : "r", + "access" : 1, + "parameters" : [ "arg0", "arg1", "arg2" ], + "descriptor" : "(III)V" + }, { + "method" : "__o_226", + "owner" : "dk", + "name" : "o", + "access" : 1, + "parameters" : [ ], + "descriptor" : "()V" + }, { + "method" : "__u_227", + "owner" : "dk", + "name" : "u", + "access" : 1, + "parameters" : [ "arg0", "arg1", "arg2" ], + "descriptor" : "(III)V" + }, { + "method" : "__y_228", + "owner" : "dk", + "name" : "y", + "access" : 1, + "parameters" : [ ], + "descriptor" : "()V" + }, { + "method" : "__v_229", + "owner" : "dk", + "name" : "v", + "access" : 0, + "parameters" : [ ], + "descriptor" : "()V" + } ], + "constructors" : [ { + "access" : 0, + "descriptor" : "()V" + }, { + "access" : 0, + "descriptor" : "([B)V" + }, { + "access" : 1, + "descriptor" : "([Ldk;I)V" + }, { + "access" : 1, + "descriptor" : "(Ldk;ZZZZ)V" + } ] +}, { + "class" : "TileModel", + "name" : "dh", + "super" : "java.lang.Object", + "access" : 49, + "interfaces" : [ ], + "fields" : [ { + "field" : "isFlat", + "owner" : "dh", + "name" : "n", + "access" : 0, + "descriptor" : "Z" + }, { + "field" : "overlayRgb", + "owner" : "dh", + "name" : "l", + "access" : 0, + "descriptor" : "I" + }, { + "field" : "rotation", + "owner" : "dh", + "name" : "r", + "access" : 0, + "descriptor" : "I" + }, { + "field" : "shape", + "owner" : "dh", + "name" : "e", + "access" : 0, + "descriptor" : "I" + }, { + "field" : "underlayRgb", + "owner" : "dh", + "name" : "t", + "access" : 0, + "descriptor" : "I" + }, { + "field" : "__a", + "owner" : "dh", + "name" : "a", + "access" : 0, + "descriptor" : "[I" + }, { + "field" : "__b", + "owner" : "dh", + "name" : "b", + "access" : 0, + "descriptor" : "[I" + }, { + "field" : "__f", + "owner" : "dh", + "name" : "f", + "access" : 0, + "descriptor" : "[I" + }, { + "field" : "__g", + "owner" : "dh", + "name" : "g", + "access" : 0, + "descriptor" : "[I" + }, { + "field" : "__h", + "owner" : "dh", + "name" : "h", + "access" : 0, + "descriptor" : "[I" + }, { + "field" : "__m", + "owner" : "dh", + "name" : "m", + "access" : 0, + "descriptor" : "[I" + }, { + "field" : "__p", + "owner" : "dh", + "name" : "p", + "access" : 0, + "descriptor" : "[I" + }, { + "field" : "__q", + "owner" : "dh", + "name" : "q", + "access" : 0, + "descriptor" : "[I" + }, { + "field" : "__s", + "owner" : "dh", + "name" : "s", + "access" : 0, + "descriptor" : "[I" + }, { + "field" : "__x", + "owner" : "dh", + "name" : "x", + "access" : 0, + "descriptor" : "[I" + } ], + "methods" : [ ], + "constructors" : [ { + "access" : 0, + "descriptor" : "(IIIIIIIIIIIIIIIIIII)V" + } ] +}, { + "class" : "Texture", + "name" : "db", + "super" : "hy", + "access" : 33, + "interfaces" : [ ], + "fields" : [ { + "field" : "animationDirection", + "owner" : "db", + "name" : "n", + "access" : 0, + "descriptor" : "I" + }, { + "field" : "animationSpeed", + "owner" : "db", + "name" : "e", + "access" : 0, + "descriptor" : "I" + }, { + "field" : "int1", + "owner" : "db", + "name" : "h", + "access" : 0, + "descriptor" : "I" + }, { + "field" : "isLoaded", + "owner" : "db", + "name" : "t", + "access" : 0, + "descriptor" : "Z" + }, { + "field" : "pixels", + "owner" : "db", + "name" : "r", + "access" : 0, + "descriptor" : "[I" + }, { + "field" : "records", + "owner" : "db", + "name" : "p", + "access" : 0, + "descriptor" : "[I" + }, { + "field" : "__f", + "owner" : "db", + "name" : "f", + "access" : 0, + "descriptor" : "Z" + }, { + "field" : "__b", + "owner" : "db", + "name" : "b", + "access" : 0, + "descriptor" : "[I" + }, { + "field" : "__m", + "owner" : "db", + "name" : "m", + "access" : 0, + "descriptor" : "[I" + }, { + "field" : "__q", + "owner" : "db", + "name" : "q", + "access" : 0, + "descriptor" : "[I" + } ], + "methods" : [ { + "method" : "animate", + "owner" : "db", + "name" : "g", + "access" : 0, + "parameters" : [ "n" ], + "descriptor" : "(I)V" + }, { + "method" : "reset", + "owner" : "db", + "name" : "s", + "access" : 0, + "descriptor" : "()V" + }, { + "method" : "__a_230", + "owner" : "db", + "name" : "a", + "access" : 0, + "parameters" : [ "arg0", "arg1", "arg2" ], + "descriptor" : "(DILiz;)Z" + } ], + "constructors" : [ { + "access" : 0, + "descriptor" : "(Lgx;)V" + } ] +}, { + "class" : "Tile", + "name" : "de", + "super" : "hy", + "access" : 49, + "interfaces" : [ ], + "fields" : [ { + "field" : "boundaryObject", + "owner" : "de", + "name" : "p", + "access" : 0, + "descriptor" : "Lep;" + }, { + "field" : "drawGameObjectEdges", + "owner" : "de", + "name" : "k", + "access" : 0, + "descriptor" : "I", + "decoder" : -200015443 + }, { + "field" : "drawGameObjects", + "owner" : "de", + "name" : "y", + "access" : 0, + "descriptor" : "Z" + }, { + "field" : "drawPrimary", + "owner" : "de", + "name" : "o", + "access" : 0, + "descriptor" : "Z" + }, { + "field" : "drawSecondary", + "owner" : "de", + "name" : "u", + "access" : 0, + "descriptor" : "Z" + }, { + "field" : "floorDecoration", + "owner" : "de", + "name" : "q", + "access" : 0, + "descriptor" : "Ldw;" + }, { + "field" : "gameObjectEdgeMasks", + "owner" : "de", + "name" : "r", + "access" : 0, + "descriptor" : "[I" + }, { + "field" : "gameObjects", + "owner" : "de", + "name" : "e", + "access" : 0, + "descriptor" : "[Ler;" + }, { + "field" : "gameObjectsCount", + "owner" : "de", + "name" : "n", + "access" : 0, + "descriptor" : "I", + "decoder" : -1960775337 + }, { + "field" : "gameObjectsEdgeMask", + "owner" : "de", + "name" : "t", + "access" : 0, + "descriptor" : "I", + "decoder" : -2089434541 + }, { + "field" : "groundItemPile", + "owner" : "de", + "name" : "b", + "access" : 0, + "descriptor" : "Ldy;" + }, { + "field" : "linkedBelowTile", + "owner" : "de", + "name" : "i", + "access" : 0, + "descriptor" : "Lde;" + }, { + "field" : "minPlane", + "owner" : "de", + "name" : "l", + "access" : 0, + "descriptor" : "I", + "decoder" : -799286185 + }, { + "field" : "model", + "owner" : "de", + "name" : "f", + "access" : 0, + "descriptor" : "Ldh;" + }, { + "field" : "originalPlane", + "owner" : "de", + "name" : "x", + "access" : 0, + "descriptor" : "I", + "decoder" : -433608359 + }, { + "field" : "paint", + "owner" : "de", + "name" : "h", + "access" : 0, + "descriptor" : "Leb;" + }, { + "field" : "plane", + "owner" : "de", + "name" : "a", + "access" : 0, + "descriptor" : "I", + "decoder" : 1819906267 + }, { + "field" : "wallDecoration", + "owner" : "de", + "name" : "m", + "access" : 0, + "descriptor" : "Lef;" + }, { + "field" : "x", + "owner" : "de", + "name" : "s", + "access" : 0, + "descriptor" : "I", + "decoder" : 1458265213 + }, { + "field" : "y", + "owner" : "de", + "name" : "g", + "access" : 0, + "descriptor" : "I", + "decoder" : -270087367 + }, { + "field" : "__d", + "owner" : "de", + "name" : "d", + "access" : 0, + "descriptor" : "I", + "decoder" : -1115844587 + }, { + "field" : "__v", + "owner" : "de", + "name" : "v", + "access" : 0, + "descriptor" : "I", + "decoder" : 1274390359 + }, { + "field" : "__w", + "owner" : "de", + "name" : "w", + "access" : 0, + "descriptor" : "I", + "decoder" : 2039042225 + } ], + "methods" : [ ], + "constructors" : [ { + "access" : 0, + "descriptor" : "(III)V" + } ] +}, { + "class" : "Model", + "name" : "dv", + "super" : "em", + "access" : 33, + "interfaces" : [ ], + "fields" : [ { + "field" : "bottomY", + "owner" : "dv", + "name" : "ay", + "access" : 0, + "descriptor" : "I" + }, { + "field" : "boundsType", + "owner" : "dv", + "name" : "af", + "access" : 0, + "descriptor" : "I" + }, { + "field" : "diameter", + "owner" : "dv", + "name" : "ab", + "access" : 0, + "descriptor" : "I" + }, { + "field" : "faceAlphas", + "owner" : "dv", + "name" : "u", + "access" : 0, + "descriptor" : "[B" + }, { + "field" : "faceColors1", + "owner" : "dv", + "name" : "r", + "access" : 0, + "descriptor" : "[I" + }, { + "field" : "faceColors2", + "owner" : "dv", + "name" : "t", + "access" : 0, + "descriptor" : "[I" + }, { + "field" : "faceColors3", + "owner" : "dv", + "name" : "l", + "access" : 0, + "descriptor" : "[I" + }, { + "field" : "faceLabelsAlpha", + "owner" : "dv", + "name" : "z", + "access" : 0, + "descriptor" : "[[I" + }, { + "field" : "faceTextures", + "owner" : "dv", + "name" : "k", + "access" : 0, + "descriptor" : "[S" + }, { + "field" : "indices1", + "owner" : "dv", + "name" : "b", + "access" : 0, + "descriptor" : "[I" + }, { + "field" : "indices2", + "owner" : "dv", + "name" : "n", + "access" : 0, + "descriptor" : "[I" + }, { + "field" : "indices3", + "owner" : "dv", + "name" : "e", + "access" : 0, + "descriptor" : "[I" + }, { + "field" : "indicesCount", + "owner" : "dv", + "name" : "q", + "access" : 0, + "descriptor" : "I" + }, { + "field" : "isSingleTile", + "owner" : "dv", + "name" : "ag", + "access" : 1, + "descriptor" : "Z" + }, { + "field" : "radius", + "owner" : "dv", + "name" : "ah", + "access" : 0, + "descriptor" : "I" + }, { + "field" : "vertexLabels", + "owner" : "dv", + "name" : "j", + "access" : 0, + "descriptor" : "[[I" + }, { + "field" : "verticesCount", + "owner" : "dv", + "name" : "h", + "access" : 0, + "descriptor" : "I" + }, { + "field" : "verticesX", + "owner" : "dv", + "name" : "f", + "access" : 0, + "descriptor" : "[I" + }, { + "field" : "verticesY", + "owner" : "dv", + "name" : "p", + "access" : 0, + "descriptor" : "[I" + }, { + "field" : "verticesZ", + "owner" : "dv", + "name" : "m", + "access" : 0, + "descriptor" : "[I" + }, { + "field" : "xMid", + "owner" : "dv", + "name" : "aw", + "access" : 0, + "descriptor" : "I" + }, { + "field" : "xMidOffset", + "owner" : "dv", + "name" : "ae", + "access" : 0, + "descriptor" : "I" + }, { + "field" : "xzRadius", + "owner" : "dv", + "name" : "aa", + "access" : 0, + "descriptor" : "I" + }, { + "field" : "yMid", + "owner" : "dv", + "name" : "an", + "access" : 0, + "descriptor" : "I" + }, { + "field" : "yMidOffset", + "owner" : "dv", + "name" : "av", + "access" : 0, + "descriptor" : "I" + }, { + "field" : "zMid", + "owner" : "dv", + "name" : "at", + "access" : 0, + "descriptor" : "I" + }, { + "field" : "zMidOffset", + "owner" : "dv", + "name" : "au", + "access" : 0, + "descriptor" : "I" + }, { + "field" : "__v", + "owner" : "dv", + "name" : "v", + "access" : 0, + "descriptor" : "B" + }, { + "field" : "__o", + "owner" : "dv", + "name" : "o", + "access" : 0, + "descriptor" : "[B" + }, { + "field" : "__y", + "owner" : "dv", + "name" : "y", + "access" : 0, + "descriptor" : "[B" + }, { + "field" : "__d", + "owner" : "dv", + "name" : "d", + "access" : 0, + "descriptor" : "I" + }, { + "field" : "__c", + "owner" : "dv", + "name" : "c", + "access" : 0, + "descriptor" : "[I" + }, { + "field" : "__i", + "owner" : "dv", + "name" : "i", + "access" : 0, + "descriptor" : "[I" + }, { + "field" : "__w", + "owner" : "dv", + "name" : "w", + "access" : 0, + "descriptor" : "[I" + } ], + "methods" : [ { + "method" : "animate", + "owner" : "dv", + "name" : "n", + "access" : 1, + "parameters" : [ "frames", "frame" ], + "descriptor" : "(Lei;I)V" + }, { + "method" : "animate2", + "owner" : "dv", + "name" : "e", + "access" : 1, + "descriptor" : "(Lei;ILei;I[I)V" + }, { + "method" : "calculateBoundingBox", + "owner" : "dv", + "name" : "h", + "access" : 0, + "parameters" : [ "yaw" ], + "descriptor" : "(I)V" + }, { + "method" : "calculateBoundsCylinder", + "owner" : "dv", + "name" : "f", + "access" : 1, + "parameters" : [ ], + "descriptor" : "()V" + }, { + "method" : "copy0", + "owner" : "dv", + "name" : "x", + "access" : 0, + "descriptor" : "(ZLdv;[B)Ldv;" + }, { + "method" : "draw", + "owner" : "dv", + "name" : "cb", + "access" : 0, + "parameters" : [ "yaw", "cameraPitchSine", "cameraPitchCosine", "cameraYawSine", "cameraYawCosine", "x", "y", "z", "tag" ], + "descriptor" : "(IIIIIIIIJ)V" + }, { + "method" : "draw0", + "owner" : "dv", + "name" : "aa", + "access" : 16, + "descriptor" : "(ZZZJ)V" + }, { + "method" : "offsetBy", + "owner" : "dv", + "name" : "y", + "access" : 1, + "parameters" : [ "x", "y", "z" ], + "descriptor" : "(III)V" + }, { + "method" : "resetBounds", + "owner" : "dv", + "name" : "b", + "access" : 0, + "parameters" : [ ], + "descriptor" : "()V" + }, { + "method" : "rotateY180", + "owner" : "dv", + "name" : "l", + "access" : 1, + "parameters" : [ ], + "descriptor" : "()V" + }, { + "method" : "rotateY270Ccw", + "owner" : "dv", + "name" : "o", + "access" : 1, + "parameters" : [ ], + "descriptor" : "()V" + }, { + "method" : "rotateY90Ccw", + "owner" : "dv", + "name" : "t", + "access" : 1, + "parameters" : [ ], + "descriptor" : "()V" + }, { + "method" : "rotateZ", + "owner" : "dv", + "name" : "u", + "access" : 1, + "parameters" : [ "pitch" ], + "descriptor" : "(I)V" + }, { + "method" : "scale", + "owner" : "dv", + "name" : "k", + "access" : 1, + "parameters" : [ "x", "y", "z" ], + "descriptor" : "(III)V" + }, { + "method" : "toSharedSequenceModel", + "owner" : "dv", + "name" : "s", + "access" : 1, + "parameters" : [ "b" ], + "descriptor" : "(Z)Ldv;" + }, { + "method" : "toSharedSpotAnimationModel", + "owner" : "dv", + "name" : "g", + "access" : 1, + "parameters" : [ "b" ], + "descriptor" : "(Z)Ldv;" + }, { + "method" : "transform", + "owner" : "dv", + "name" : "r", + "access" : 0, + "parameters" : [ "type", "labels", "tx", "ty", "tz" ], + "descriptor" : "(I[IIII)V" + }, { + "method" : "__a_231", + "owner" : "dv", + "name" : "a", + "access" : 1, + "parameters" : [ "arg0", "arg1", "arg2", "arg3", "arg4", "arg5" ], + "descriptor" : "([[IIIIZI)Ldv;" + }, { + "method" : "__p_232", + "owner" : "dv", + "name" : "p", + "access" : 0, + "parameters" : [ ], + "descriptor" : "()V" + }, { + "method" : "__m_233", + "owner" : "dv", + "name" : "m", + "access" : 1, + "parameters" : [ ], + "descriptor" : "()I" + }, { + "method" : "__v_234", + "owner" : "dv", + "name" : "v", + "access" : 17, + "parameters" : [ "arg0", "arg1", "arg2", "arg3", "arg4", "arg5", "arg6" ], + "descriptor" : "(IIIIIII)V" + }, { + "method" : "__c_235", + "owner" : "dv", + "name" : "c", + "access" : 17, + "parameters" : [ "arg0", "arg1", "arg2", "arg3", "arg4", "arg5", "arg6", "arg7" ], + "descriptor" : "(IIIIIIII)V" + }, { + "method" : "__ab_236", + "owner" : "dv", + "name" : "ab", + "access" : 16, + "parameters" : [ "arg0" ], + "descriptor" : "(I)V" + }, { + "method" : "__ah_237", + "owner" : "dv", + "name" : "ah", + "access" : 16, + "parameters" : [ "arg0" ], + "descriptor" : "(I)V" + } ], + "constructors" : [ { + "access" : 0, + "descriptor" : "()V" + }, { + "access" : 1, + "descriptor" : "([Ldv;I)V" + } ] +}, { + "class" : "VertexNormal", + "name" : "dp", + "super" : "java.lang.Object", + "access" : 33, + "interfaces" : [ ], + "fields" : [ { + "field" : "__a", + "owner" : "dp", + "name" : "a", + "access" : 0, + "descriptor" : "I", + "decoder" : -487750023 + }, { + "field" : "__g", + "owner" : "dp", + "name" : "g", + "access" : 0, + "descriptor" : "I", + "decoder" : -1669185731 + }, { + "field" : "__s", + "owner" : "dp", + "name" : "s", + "access" : 0, + "descriptor" : "I", + "decoder" : 409052541 + }, { + "field" : "__x", + "owner" : "dp", + "name" : "x", + "access" : 0, + "descriptor" : "I", + "decoder" : 384760089 + } ], + "methods" : [ ], + "constructors" : [ { + "access" : 0, + "descriptor" : "()V" + }, { + "access" : 0, + "descriptor" : "(Ldp;)V" + } ] +}, { + "class" : "Scene", + "name" : "en", + "super" : "java.lang.Object", + "access" : 33, + "interfaces" : [ ], + "fields" : [ { + "field" : "minPlane", + "owner" : "en", + "name" : "p", + "access" : 0, + "descriptor" : "I" + }, { + "field" : "planes", + "owner" : "en", + "name" : "s", + "access" : 0, + "descriptor" : "I" + }, { + "field" : "tempGameObjects", + "owner" : "en", + "name" : "q", + "access" : 0, + "descriptor" : "[Ler;" + }, { + "field" : "tempGameObjectsCount", + "owner" : "en", + "name" : "m", + "access" : 0, + "descriptor" : "I" + }, { + "field" : "tileHeights", + "owner" : "en", + "name" : "h", + "access" : 0, + "descriptor" : "[[[I" + }, { + "field" : "tiles", + "owner" : "en", + "name" : "f", + "access" : 0, + "descriptor" : "[[[Lde;" + }, { + "field" : "xSize", + "owner" : "en", + "name" : "g", + "access" : 0, + "descriptor" : "I" + }, { + "field" : "ySize", + "owner" : "en", + "name" : "x", + "access" : 0, + "descriptor" : "I" + }, { + "field" : "__bi", + "owner" : "en", + "name" : "bi", + "access" : 0, + "descriptor" : "[[I" + }, { + "field" : "__bp", + "owner" : "en", + "name" : "bp", + "access" : 0, + "descriptor" : "[[I" + }, { + "field" : "__b", + "owner" : "en", + "name" : "b", + "access" : 0, + "descriptor" : "[[[I" + } ], + "methods" : [ { + "method" : "addTile", + "owner" : "en", + "name" : "f", + "access" : 1, + "descriptor" : "(IIIIIIIIIIIIIIIIIIII)V" + }, { + "method" : "clear", + "owner" : "en", + "name" : "a", + "access" : 1, + "parameters" : [ ], + "descriptor" : "()V" + }, { + "method" : "clearTempGameObjects", + "owner" : "en", + "name" : "l", + "access" : 1, + "parameters" : [ ], + "descriptor" : "()V" + }, { + "method" : "draw", + "owner" : "en", + "name" : "ap", + "access" : 1, + "parameters" : [ "x", "y", "z", "pitch", "yaw", "plane" ], + "descriptor" : "(IIIIII)V" + }, { + "method" : "drawTile", + "owner" : "en", + "name" : "ak", + "access" : 0, + "parameters" : [ "tile", "b" ], + "descriptor" : "(Lde;Z)V" + }, { + "method" : "drawTileMinimap", + "owner" : "en", + "name" : "aq", + "access" : 1, + "parameters" : [ "pixels", "index", "width", "plane", "x", "y" ], + "descriptor" : "([IIIIII)V" + }, { + "method" : "getBoundaryObject", + "owner" : "en", + "name" : "ab", + "access" : 1, + "parameters" : [ "plane", "x", "y" ], + "descriptor" : "(III)Lep;" + }, { + "method" : "getFloorDecoration", + "owner" : "en", + "name" : "an", + "access" : 1, + "parameters" : [ "plane", "x", "y" ], + "descriptor" : "(III)Ldw;" + }, { + "method" : "getFloorDecorationTag", + "owner" : "en", + "name" : "au", + "access" : 1, + "parameters" : [ "plane", "x", "y" ], + "descriptor" : "(III)J" + }, { + "method" : "getObjectFlags", + "owner" : "en", + "name" : "aj", + "access" : 1, + "parameters" : [ "plane", "x", "y", "id" ], + "descriptor" : "(IIIJ)I" + }, { + "method" : "getWallDecoration", + "owner" : "en", + "name" : "ah", + "access" : 1, + "parameters" : [ "plane", "x", "y" ], + "descriptor" : "(III)Lef;" + }, { + "method" : "init", + "owner" : "en", + "name" : "s", + "access" : 1, + "parameters" : [ "minPlane" ], + "descriptor" : "(I)V" + }, { + "method" : "menuOpen", + "owner" : "en", + "name" : "ac", + "access" : 1, + "parameters" : [ "plane", "screenX", "screenY", "b" ], + "descriptor" : "(IIIZ)V" + }, { + "method" : "newBoundaryObject", + "owner" : "en", + "name" : "q", + "access" : 1, + "parameters" : [ "plane", "x", "y", "tileHeight", "entity1", "entity2", "orientationA", "orientationB", "tag", "flags" ], + "descriptor" : "(IIIILem;Lem;IIJI)V" + }, { + "method" : "newFloorDecoration", + "owner" : "en", + "name" : "p", + "access" : 1, + "parameters" : [ "plane", "x", "y", "tileHeight", "entity", "tag", "flags" ], + "descriptor" : "(IIIILem;JI)V" + }, { + "method" : "newGameObject", + "owner" : "en", + "name" : "t", + "access" : 0, + "parameters" : [ "plane", "startX", "startY", "sizeX", "sizeY", "centerX", "centerY", "height", "entity", "orientation", "isTemp", "tag", "flags" ], + "descriptor" : "(IIIIIIIILem;IZJI)Z" + }, { + "method" : "newGroundItemPile", + "owner" : "en", + "name" : "m", + "access" : 1, + "parameters" : [ "plane", "x", "y", "tileHeight", "first", "tag", "second", "third" ], + "descriptor" : "(IIIILem;JLem;Lem;)V" + }, { + "method" : "newWallDecoration", + "owner" : "en", + "name" : "b", + "access" : 1, + "parameters" : [ "plane", "x", "y", "tileHeight", "entity1", "entity2", "orientation", "int7", "xOffset", "yOffset", "tag", "flags" ], + "descriptor" : "(IIIILem;Lem;IIIIJI)V" + }, { + "method" : "occlude", + "owner" : "en", + "name" : "bd", + "access" : 0, + "parameters" : [ ], + "descriptor" : "()V" + }, { + "method" : "removeBoundaryObject", + "owner" : "en", + "name" : "y", + "access" : 1, + "parameters" : [ "plane", "x", "y" ], + "descriptor" : "(III)V" + }, { + "method" : "removeFloorDecoration", + "owner" : "en", + "name" : "c", + "access" : 1, + "parameters" : [ "plane", "x", "y" ], + "descriptor" : "(III)V" + }, { + "method" : "removeGameObject", + "owner" : "en", + "name" : "o", + "access" : 0, + "parameters" : [ "gameObject" ], + "descriptor" : "(Ler;)V" + }, { + "method" : "removeGroundItemPile", + "owner" : "en", + "name" : "aa", + "access" : 1, + "parameters" : [ "plane", "x", "y" ], + "descriptor" : "(III)V" + }, { + "method" : "removeWallDecoration", + "owner" : "en", + "name" : "k", + "access" : 1, + "parameters" : [ "plane", "x", "y" ], + "descriptor" : "(III)V" + }, { + "method" : "setLinkBelow", + "owner" : "en", + "name" : "g", + "access" : 1, + "parameters" : [ "x", "y" ], + "descriptor" : "(II)V" + }, { + "method" : "setTileMinPlane", + "owner" : "en", + "name" : "h", + "access" : 1, + "parameters" : [ "plane", "x", "y", "minPlane" ], + "descriptor" : "(IIII)V" + }, { + "method" : "__n_238", + "owner" : "en", + "name" : "n", + "access" : 1, + "parameters" : [ "arg0", "arg1", "arg2", "arg3", "arg4", "arg5", "arg6", "arg7", "arg8", "arg9" ], + "descriptor" : "(IIIIIILem;IJI)Z" + }, { + "method" : "__e_239", + "owner" : "en", + "name" : "e", + "access" : 1, + "parameters" : [ "arg0", "arg1", "arg2", "arg3", "arg4", "arg5", "arg6", "arg7", "arg8" ], + "descriptor" : "(IIIIILem;IJZ)Z" + }, { + "method" : "__r_240", + "owner" : "en", + "name" : "r", + "access" : 1, + "parameters" : [ "arg0", "arg1", "arg2", "arg3", "arg4", "arg5", "arg6", "arg7", "arg8", "arg9", "arg10", "arg11" ], + "descriptor" : "(IIIIILem;IJIIII)Z" + }, { + "method" : "__u_241", + "owner" : "en", + "name" : "u", + "access" : 1, + "parameters" : [ "arg0", "arg1", "arg2", "arg3" ], + "descriptor" : "(IIII)V" + }, { + "method" : "__v_242", + "owner" : "en", + "name" : "v", + "access" : 1, + "parameters" : [ "arg0", "arg1", "arg2" ], + "descriptor" : "(III)V" + }, { + "method" : "__aw_243", + "owner" : "en", + "name" : "aw", + "access" : 1, + "parameters" : [ "arg0", "arg1", "arg2" ], + "descriptor" : "(III)Ler;" + }, { + "method" : "__at_244", + "owner" : "en", + "name" : "at", + "access" : 1, + "parameters" : [ "arg0", "arg1", "arg2" ], + "descriptor" : "(III)J" + }, { + "method" : "__ae_245", + "owner" : "en", + "name" : "ae", + "access" : 1, + "parameters" : [ "arg0", "arg1", "arg2" ], + "descriptor" : "(III)J" + }, { + "method" : "__av_246", + "owner" : "en", + "name" : "av", + "access" : 1, + "parameters" : [ "arg0", "arg1", "arg2" ], + "descriptor" : "(III)J" + }, { + "method" : "__as_247", + "owner" : "en", + "name" : "as", + "access" : 1, + "parameters" : [ "arg0", "arg1", "arg2" ], + "descriptor" : "(III)V" + }, { + "method" : "__ar_248", + "owner" : "en", + "name" : "ar", + "access" : 0, + "parameters" : [ "arg0", "arg1", "arg2", "arg3" ], + "descriptor" : "(Ldk;III)V" + }, { + "method" : "__ai_249", + "owner" : "en", + "name" : "ai", + "access" : 0, + "parameters" : [ "arg0", "arg1", "arg2", "arg3", "arg4", "arg5" ], + "descriptor" : "(Ldk;IIIII)V" + }, { + "method" : "__ao_250", + "owner" : "en", + "name" : "ao", + "access" : 1, + "parameters" : [ ], + "descriptor" : "()V" + }, { + "method" : "__am_251", + "owner" : "en", + "name" : "am", + "access" : 0, + "parameters" : [ "arg0", "arg1", "arg2", "arg3", "arg4", "arg5", "arg6", "arg7" ], + "descriptor" : "(Leb;IIIIIII)V" + }, { + "method" : "__bf_252", + "owner" : "en", + "name" : "bf", + "access" : 0, + "parameters" : [ "arg0", "arg1", "arg2", "arg3", "arg4", "arg5", "arg6" ], + "descriptor" : "(Ldh;IIIIII)V" + }, { + "method" : "__bz_253", + "owner" : "en", + "name" : "bz", + "access" : 0, + "parameters" : [ "arg0", "arg1", "arg2" ], + "descriptor" : "(III)Z" + }, { + "method" : "__bi_254", + "owner" : "en", + "name" : "bi", + "access" : 0, + "parameters" : [ "arg0", "arg1", "arg2", "arg3" ], + "descriptor" : "(IIII)Z" + }, { + "method" : "__bp_255", + "owner" : "en", + "name" : "bp", + "access" : 0, + "parameters" : [ "arg0", "arg1", "arg2", "arg3" ], + "descriptor" : "(IIII)Z" + }, { + "method" : "__bv_256", + "owner" : "en", + "name" : "bv", + "access" : 0, + "parameters" : [ "arg0", "arg1", "arg2", "arg3", "arg4", "arg5" ], + "descriptor" : "(IIIIII)Z" + }, { + "method" : "__bg_257", + "owner" : "en", + "name" : "bg", + "access" : 0, + "parameters" : [ "arg0", "arg1", "arg2" ], + "descriptor" : "(III)Z" + } ], + "constructors" : [ { + "access" : 1, + "descriptor" : "(III[[[I)V" + } ] +}, { + "class" : "FaceNormal", + "name" : "eo", + "super" : "java.lang.Object", + "access" : 33, + "interfaces" : [ ], + "fields" : [ { + "field" : "__a", + "owner" : "eo", + "name" : "a", + "access" : 0, + "descriptor" : "I", + "decoder" : -1318747687 + }, { + "field" : "__g", + "owner" : "eo", + "name" : "g", + "access" : 0, + "descriptor" : "I", + "decoder" : -179165399 + }, { + "field" : "__s", + "owner" : "eo", + "name" : "s", + "access" : 0, + "descriptor" : "I", + "decoder" : -595977289 + } ], + "methods" : [ ], + "constructors" : [ { + "access" : 0, + "descriptor" : "()V" + } ] +}, { + "class" : "TextureLoader", + "name" : "ew", + "super" : "java.lang.Object", + "access" : 1537, + "interfaces" : [ ], + "fields" : [ ], + "methods" : [ { + "method" : "isLowDetail", + "owner" : "ew", + "name" : "f", + "access" : 1025, + "descriptor" : "(II)Z" + }, { + "method" : "load", + "owner" : "ew", + "name" : "g", + "access" : 1025, + "descriptor" : "(II)[I" + }, { + "method" : "__x_258", + "owner" : "ew", + "name" : "x", + "access" : 1025, + "parameters" : [ "arg0" ], + "descriptor" : "(II)I" + }, { + "method" : "__h_259", + "owner" : "ew", + "name" : "h", + "access" : 1025, + "parameters" : [ "arg0" ], + "descriptor" : "(IB)Z" + } ], + "constructors" : [ ] +}, { + "class" : "Occluder", + "name" : "es", + "super" : "java.lang.Object", + "access" : 49, + "interfaces" : [ ], + "fields" : [ { + "field" : "maxTileX", + "owner" : "es", + "name" : "s", + "access" : 0, + "descriptor" : "I", + "decoder" : -1180208517 + }, { + "field" : "maxTileY", + "owner" : "es", + "name" : "x", + "access" : 0, + "descriptor" : "I", + "decoder" : 1650018735 + }, { + "field" : "maxX", + "owner" : "es", + "name" : "p", + "access" : 0, + "descriptor" : "I", + "decoder" : -601042275 + }, { + "field" : "maxY", + "owner" : "es", + "name" : "n", + "access" : 0, + "descriptor" : "I", + "decoder" : 1124898469 + }, { + "field" : "maxZ", + "owner" : "es", + "name" : "q", + "access" : 0, + "descriptor" : "I", + "decoder" : -1617358619 + }, { + "field" : "minTileX", + "owner" : "es", + "name" : "a", + "access" : 0, + "descriptor" : "I", + "decoder" : 682831251 + }, { + "field" : "minTileY", + "owner" : "es", + "name" : "g", + "access" : 0, + "descriptor" : "I", + "decoder" : -41154101 + }, { + "field" : "minX", + "owner" : "es", + "name" : "f", + "access" : 0, + "descriptor" : "I", + "decoder" : 1001198727 + }, { + "field" : "minY", + "owner" : "es", + "name" : "b", + "access" : 0, + "descriptor" : "I", + "decoder" : 1963358269 + }, { + "field" : "minZ", + "owner" : "es", + "name" : "m", + "access" : 0, + "descriptor" : "I", + "decoder" : 1380168209 + }, { + "field" : "type", + "owner" : "es", + "name" : "h", + "access" : 0, + "descriptor" : "I", + "decoder" : -1650121601 + }, { + "field" : "__e", + "owner" : "es", + "name" : "e", + "access" : 0, + "descriptor" : "I", + "decoder" : 1101834461 + }, { + "field" : "__l", + "owner" : "es", + "name" : "l", + "access" : 0, + "descriptor" : "I", + "decoder" : 1999293033 + }, { + "field" : "__o", + "owner" : "es", + "name" : "o", + "access" : 0, + "descriptor" : "I", + "decoder" : -2044960001 + }, { + "field" : "__r", + "owner" : "es", + "name" : "r", + "access" : 0, + "descriptor" : "I", + "decoder" : 553866783 + }, { + "field" : "__t", + "owner" : "es", + "name" : "t", + "access" : 0, + "descriptor" : "I", + "decoder" : 1090105655 + }, { + "field" : "__u", + "owner" : "es", + "name" : "u", + "access" : 0, + "descriptor" : "I", + "decoder" : 1125333031 + }, { + "field" : "__y", + "owner" : "es", + "name" : "y", + "access" : 0, + "descriptor" : "I", + "decoder" : 1619481095 + } ], + "methods" : [ ], + "constructors" : [ { + "access" : 0, + "descriptor" : "()V" + } ] +}, { + "class" : "GameObject", + "name" : "er", + "super" : "java.lang.Object", + "access" : 49, + "interfaces" : [ ], + "fields" : [ { + "field" : "centerX", + "owner" : "er", + "name" : "g", + "access" : 0, + "descriptor" : "I", + "decoder" : 369246091 + }, { + "field" : "centerY", + "owner" : "er", + "name" : "x", + "access" : 0, + "descriptor" : "I", + "decoder" : -903852657 + }, { + "field" : "endX", + "owner" : "er", + "name" : "m", + "access" : 0, + "descriptor" : "I", + "decoder" : 84457517 + }, { + "field" : "endY", + "owner" : "er", + "name" : "b", + "access" : 0, + "descriptor" : "I", + "decoder" : 1327459531 + }, { + "field" : "entity", + "owner" : "er", + "name" : "h", + "access" : 1, + "descriptor" : "Lem;" + }, { + "field" : "flags", + "owner" : "er", + "name" : "t", + "access" : 0, + "descriptor" : "I", + "decoder" : 1401209023 + }, { + "field" : "height", + "owner" : "er", + "name" : "s", + "access" : 0, + "descriptor" : "I", + "decoder" : -1690232561 + }, { + "field" : "lastDrawn", + "owner" : "er", + "name" : "e", + "access" : 0, + "descriptor" : "I", + "decoder" : -972042923 + }, { + "field" : "orientation", + "owner" : "er", + "name" : "f", + "access" : 0, + "descriptor" : "I", + "decoder" : 647360359 + }, { + "field" : "plane", + "owner" : "er", + "name" : "a", + "access" : 0, + "descriptor" : "I", + "decoder" : 930687481 + }, { + "field" : "startX", + "owner" : "er", + "name" : "p", + "access" : 0, + "descriptor" : "I", + "decoder" : -798171635 + }, { + "field" : "startY", + "owner" : "er", + "name" : "q", + "access" : 0, + "descriptor" : "I", + "decoder" : 677592277 + }, { + "field" : "tag", + "owner" : "er", + "name" : "r", + "access" : 1, + "descriptor" : "J", + "decoder" : 4048635491163491633 + }, { + "field" : "__n", + "owner" : "er", + "name" : "n", + "access" : 0, + "descriptor" : "I", + "decoder" : -964826023 + } ], + "methods" : [ ], + "constructors" : [ { + "access" : 0, + "descriptor" : "()V" + } ] +}, { + "class" : "UrlRequester", + "name" : "ex", + "super" : "java.lang.Object", + "access" : 33, + "interfaces" : [ "java.lang.Runnable" ], + "fields" : [ { + "field" : "isClosed", + "owner" : "ex", + "name" : "s", + "access" : 64, + "descriptor" : "Z" + }, { + "field" : "requests", + "owner" : "ex", + "name" : "g", + "access" : 0, + "descriptor" : "Ljava/util/Queue;" + }, { + "field" : "thread", + "owner" : "ex", + "name" : "a", + "access" : 16, + "descriptor" : "Ljava/lang/Thread;" + } ], + "methods" : [ { + "method" : "close", + "owner" : "ex", + "name" : "s", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(B)V" + }, { + "method" : "request", + "owner" : "ex", + "name" : "a", + "access" : 1, + "parameters" : [ "url" ], + "descriptor" : "(Ljava/net/URL;I)Lez;" + }, { + "method" : "__run_260", + "owner" : "ex", + "name" : "run", + "access" : 1, + "parameters" : [ ], + "descriptor" : "()V" + } ], + "constructors" : [ { + "access" : 1, + "descriptor" : "()V" + } ] +}, { + "class" : "UserComparator4", + "name" : "ej", + "super" : "java.lang.Object", + "access" : 33, + "interfaces" : [ "java.util.Comparator" ], + "fields" : [ { + "field" : "__a", + "owner" : "ej", + "name" : "a", + "access" : 16, + "descriptor" : "Z" + } ], + "methods" : [ { + "method" : "__a_261", + "owner" : "ej", + "name" : "a", + "access" : 0, + "parameters" : [ "arg0", "arg1" ], + "descriptor" : "(Lkl;Lkl;I)I" + }, { + "method" : "__compare_262", + "owner" : "ej", + "name" : "compare", + "access" : 1, + "parameters" : [ "arg0", "arg1" ], + "descriptor" : "(Ljava/lang/Object;Ljava/lang/Object;)I" + }, { + "method" : "__equals_263", + "owner" : "ej", + "name" : "equals", + "access" : 1, + "parameters" : [ "arg0" ], + "descriptor" : "(Ljava/lang/Object;)Z" + } ], + "constructors" : [ { + "access" : 1, + "descriptor" : "(Z)V" + } ] +}, { + "class" : "UserComparator9", + "name" : "eg", + "super" : "kj", + "access" : 33, + "interfaces" : [ ], + "fields" : [ { + "field" : "__a", + "owner" : "eg", + "name" : "a", + "access" : 16, + "descriptor" : "Z" + } ], + "methods" : [ { + "method" : "__a_264", + "owner" : "eg", + "name" : "a", + "access" : 0, + "parameters" : [ "arg0", "arg1" ], + "descriptor" : "(Lkl;Lkl;I)I" + }, { + "method" : "__compare_265", + "owner" : "eg", + "name" : "compare", + "access" : 1, + "parameters" : [ "arg0", "arg1" ], + "descriptor" : "(Ljava/lang/Object;Ljava/lang/Object;)I" + } ], + "constructors" : [ { + "access" : 1, + "descriptor" : "(Z)V" + } ] +}, { + "class" : "UserComparator8", + "name" : "ea", + "super" : "kj", + "access" : 33, + "interfaces" : [ ], + "fields" : [ { + "field" : "__a", + "owner" : "ea", + "name" : "a", + "access" : 16, + "descriptor" : "Z" + } ], + "methods" : [ { + "method" : "__a_266", + "owner" : "ea", + "name" : "a", + "access" : 0, + "parameters" : [ "arg0", "arg1" ], + "descriptor" : "(Lkl;Lkl;I)I" + }, { + "method" : "__compare_267", + "owner" : "ea", + "name" : "compare", + "access" : 1, + "parameters" : [ "arg0", "arg1" ], + "descriptor" : "(Ljava/lang/Object;Ljava/lang/Object;)I" + } ], + "constructors" : [ { + "access" : 1, + "descriptor" : "(Z)V" + } ] +}, { + "class" : "UserComparator10", + "name" : "ed", + "super" : "kj", + "access" : 33, + "interfaces" : [ ], + "fields" : [ { + "field" : "__a", + "owner" : "ed", + "name" : "a", + "access" : 16, + "descriptor" : "Z" + } ], + "methods" : [ { + "method" : "__a_268", + "owner" : "ed", + "name" : "a", + "access" : 0, + "parameters" : [ "arg0", "arg1" ], + "descriptor" : "(Lkl;Lkl;I)I" + }, { + "method" : "__compare_269", + "owner" : "ed", + "name" : "compare", + "access" : 1, + "parameters" : [ "arg0", "arg1" ], + "descriptor" : "(Ljava/lang/Object;Ljava/lang/Object;)I" + } ], + "constructors" : [ { + "access" : 1, + "descriptor" : "(Z)V" + } ] +}, { + "class" : "UserComparator7", + "name" : "ey", + "super" : "kj", + "access" : 33, + "interfaces" : [ ], + "fields" : [ { + "field" : "__a", + "owner" : "ey", + "name" : "a", + "access" : 16, + "descriptor" : "Z" + } ], + "methods" : [ { + "method" : "__a_270", + "owner" : "ey", + "name" : "a", + "access" : 0, + "parameters" : [ "arg0", "arg1" ], + "descriptor" : "(Lkl;Lkl;I)I" + }, { + "method" : "__compare_271", + "owner" : "ey", + "name" : "compare", + "access" : 1, + "parameters" : [ "arg0", "arg1" ], + "descriptor" : "(Ljava/lang/Object;Ljava/lang/Object;)I" + } ], + "constructors" : [ { + "access" : 1, + "descriptor" : "(Z)V" + } ] +}, { + "class" : "UserComparator5", + "name" : "ee", + "super" : "kj", + "access" : 33, + "interfaces" : [ ], + "fields" : [ { + "field" : "__a", + "owner" : "ee", + "name" : "a", + "access" : 16, + "descriptor" : "Z" + } ], + "methods" : [ { + "method" : "__a_272", + "owner" : "ee", + "name" : "a", + "access" : 0, + "parameters" : [ "arg0", "arg1" ], + "descriptor" : "(Lkl;Lkl;S)I" + }, { + "method" : "__compare_273", + "owner" : "ee", + "name" : "compare", + "access" : 1, + "parameters" : [ "arg0", "arg1" ], + "descriptor" : "(Ljava/lang/Object;Ljava/lang/Object;)I" + } ], + "constructors" : [ { + "access" : 1, + "descriptor" : "(Z)V" + } ] +}, { + "class" : "UserComparator3", + "name" : "el", + "super" : "kj", + "access" : 33, + "interfaces" : [ ], + "fields" : [ { + "field" : "__a", + "owner" : "el", + "name" : "a", + "access" : 16, + "descriptor" : "Z" + } ], + "methods" : [ { + "method" : "__a_274", + "owner" : "el", + "name" : "a", + "access" : 0, + "parameters" : [ "arg0", "arg1" ], + "descriptor" : "(Lkl;Lkl;I)I" + }, { + "method" : "__compare_275", + "owner" : "el", + "name" : "compare", + "access" : 1, + "parameters" : [ "arg0", "arg1" ], + "descriptor" : "(Ljava/lang/Object;Ljava/lang/Object;)I" + } ], + "constructors" : [ { + "access" : 1, + "descriptor" : "(Z)V" + } ] +}, { + "class" : "UserComparator6", + "name" : "eu", + "super" : "kj", + "access" : 33, + "interfaces" : [ ], + "fields" : [ { + "field" : "__a", + "owner" : "eu", + "name" : "a", + "access" : 16, + "descriptor" : "Z" + } ], + "methods" : [ { + "method" : "__a_276", + "owner" : "eu", + "name" : "a", + "access" : 0, + "parameters" : [ "arg0", "arg1" ], + "descriptor" : "(Lkl;Lkl;I)I" + }, { + "method" : "__compare_277", + "owner" : "eu", + "name" : "compare", + "access" : 1, + "parameters" : [ "arg0", "arg1" ], + "descriptor" : "(Ljava/lang/Object;Ljava/lang/Object;)I" + } ], + "constructors" : [ { + "access" : 1, + "descriptor" : "(Z)V" + } ] +}, { + "class" : "MilliClock", + "name" : "fg", + "super" : "fl", + "access" : 33, + "interfaces" : [ ], + "fields" : [ { + "field" : "__f", + "owner" : "fg", + "name" : "f", + "access" : 0, + "descriptor" : "I", + "decoder" : 1998893585 + }, { + "field" : "__g", + "owner" : "fg", + "name" : "g", + "access" : 0, + "descriptor" : "I", + "decoder" : 453356517 + }, { + "field" : "__h", + "owner" : "fg", + "name" : "h", + "access" : 0, + "descriptor" : "I", + "decoder" : -1319788187 + }, { + "field" : "__s", + "owner" : "fg", + "name" : "s", + "access" : 0, + "descriptor" : "I", + "decoder" : -1712474251 + }, { + "field" : "__x", + "owner" : "fg", + "name" : "x", + "access" : 0, + "descriptor" : "J", + "decoder" : -5588373986659017165 + }, { + "field" : "__a", + "owner" : "fg", + "name" : "a", + "access" : 0, + "descriptor" : "[J" + } ], + "methods" : [ { + "method" : "mark", + "owner" : "fg", + "name" : "a", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(B)V" + }, { + "method" : "wait", + "owner" : "fg", + "name" : "s", + "access" : 1, + "parameters" : [ "cycleMs", "minSleepMs" ], + "descriptor" : "(III)I" + } ], + "constructors" : [ { + "access" : 1, + "descriptor" : "()V" + } ] +}, { + "class" : "BufferedSource", + "name" : "fj", + "super" : "java.lang.Object", + "access" : 33, + "interfaces" : [ "java.lang.Runnable" ], + "fields" : [ { + "field" : "buffer", + "owner" : "fj", + "name" : "x", + "access" : 0, + "descriptor" : "[B" + }, { + "field" : "capacity", + "owner" : "fj", + "name" : "g", + "access" : 0, + "descriptor" : "I", + "decoder" : 1017796057 + }, { + "field" : "exception", + "owner" : "fj", + "name" : "p", + "access" : 0, + "descriptor" : "Ljava/io/IOException;" + }, { + "field" : "inputStream", + "owner" : "fj", + "name" : "s", + "access" : 0, + "descriptor" : "Ljava/io/InputStream;" + }, { + "field" : "limit", + "owner" : "fj", + "name" : "f", + "access" : 0, + "descriptor" : "I", + "decoder" : 340283105 + }, { + "field" : "position", + "owner" : "fj", + "name" : "h", + "access" : 0, + "descriptor" : "I", + "decoder" : 1593898169 + }, { + "field" : "thread", + "owner" : "fj", + "name" : "a", + "access" : 0, + "descriptor" : "Ljava/lang/Thread;" + } ], + "methods" : [ { + "method" : "available", + "owner" : "fj", + "name" : "s", + "access" : 0, + "parameters" : [ ], + "descriptor" : "(B)I" + }, { + "method" : "close", + "owner" : "fj", + "name" : "h", + "access" : 0, + "parameters" : [ ], + "descriptor" : "(B)V" + }, { + "method" : "isAvailable", + "owner" : "fj", + "name" : "a", + "access" : 0, + "parameters" : [ "length" ], + "descriptor" : "(II)Z" + }, { + "method" : "read", + "owner" : "fj", + "name" : "x", + "access" : 0, + "parameters" : [ "dst", "dstIndex", "length" ], + "descriptor" : "([BIII)I" + }, { + "method" : "readUnsignedByte", + "owner" : "fj", + "name" : "g", + "access" : 0, + "parameters" : [ ], + "descriptor" : "(B)I" + }, { + "method" : "__run_278", + "owner" : "fj", + "name" : "run", + "access" : 1, + "parameters" : [ ], + "descriptor" : "()V" + } ], + "constructors" : [ { + "access" : 0, + "descriptor" : "(Ljava/io/InputStream;I)V" + } ] +}, { + "class" : "TaskHandler", + "name" : "fo", + "super" : "java.lang.Object", + "access" : 33, + "interfaces" : [ "java.lang.Runnable" ], + "fields" : [ { + "field" : "current", + "owner" : "fo", + "name" : "g", + "access" : 0, + "descriptor" : "Lfn;" + }, { + "field" : "isClosed", + "owner" : "fo", + "name" : "f", + "access" : 0, + "descriptor" : "Z" + }, { + "field" : "task0", + "owner" : "fo", + "name" : "x", + "access" : 0, + "descriptor" : "Lfn;" + }, { + "field" : "thread", + "owner" : "fo", + "name" : "h", + "access" : 0, + "descriptor" : "Ljava/lang/Thread;" + } ], + "methods" : [ { + "method" : "close", + "owner" : "fo", + "name" : "a", + "access" : 17, + "parameters" : [ ], + "descriptor" : "(I)V" + }, { + "method" : "newSocketTask", + "owner" : "fo", + "name" : "g", + "access" : 17, + "descriptor" : "(Ljava/lang/String;II)Lfn;" + }, { + "method" : "newTask", + "owner" : "fo", + "name" : "s", + "access" : 16, + "descriptor" : "(IIILjava/lang/Object;I)Lfn;" + }, { + "method" : "newThreadTask", + "owner" : "fo", + "name" : "x", + "access" : 17, + "descriptor" : "(Ljava/lang/Runnable;IS)Lfn;" + }, { + "method" : "__run_279", + "owner" : "fo", + "name" : "run", + "access" : 17, + "parameters" : [ ], + "descriptor" : "()V" + } ], + "constructors" : [ { + "access" : 1, + "descriptor" : "()V" + } ] +}, { + "class" : "BufferedNetSocket", + "name" : "fd", + "super" : "fq", + "access" : 33, + "interfaces" : [ ], + "fields" : [ { + "field" : "sink", + "owner" : "fd", + "name" : "g", + "access" : 0, + "descriptor" : "Lfx;" + }, { + "field" : "socket", + "owner" : "fd", + "name" : "a", + "access" : 0, + "descriptor" : "Ljava/net/Socket;" + }, { + "field" : "source", + "owner" : "fd", + "name" : "s", + "access" : 0, + "descriptor" : "Lfj;" + } ], + "methods" : [ { + "method" : "available", + "owner" : "fd", + "name" : "s", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(B)I" + }, { + "method" : "close", + "owner" : "fd", + "name" : "f", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(B)V" + }, { + "method" : "isAvailable", + "owner" : "fd", + "name" : "a", + "access" : 1, + "parameters" : [ "length" ], + "descriptor" : "(II)Z" + }, { + "method" : "read", + "owner" : "fd", + "name" : "x", + "access" : 1, + "parameters" : [ "dst", "dstIndex", "length" ], + "descriptor" : "([BIIB)I" + }, { + "method" : "readUnsignedByte", + "owner" : "fd", + "name" : "g", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(I)I" + }, { + "method" : "write", + "owner" : "fd", + "name" : "h", + "access" : 1, + "parameters" : [ "src", "srcIndex", "length" ], + "descriptor" : "([BIII)V" + }, { + "method" : "__finalize_280", + "owner" : "fd", + "name" : "finalize", + "access" : 4, + "parameters" : [ ], + "descriptor" : "()V" + } ], + "constructors" : [ { + "access" : 1, + "descriptor" : "(Ljava/net/Socket;II)V" + } ] +}, { + "class" : "NetSocket", + "name" : "fi", + "super" : "fq", + "access" : 49, + "interfaces" : [ "java.lang.Runnable" ], + "fields" : [ { + "field" : "array", + "owner" : "fi", + "name" : "p", + "access" : 0, + "descriptor" : "[B" + }, { + "field" : "exceptionWriting", + "owner" : "fi", + "name" : "b", + "access" : 0, + "descriptor" : "Z" + }, { + "field" : "inputStream", + "owner" : "fi", + "name" : "a", + "access" : 0, + "descriptor" : "Ljava/io/InputStream;" + }, { + "field" : "isClosed", + "owner" : "fi", + "name" : "x", + "access" : 0, + "descriptor" : "Z" + }, { + "field" : "outputStream", + "owner" : "fi", + "name" : "s", + "access" : 0, + "descriptor" : "Ljava/io/OutputStream;" + }, { + "field" : "socket", + "owner" : "fi", + "name" : "g", + "access" : 0, + "descriptor" : "Ljava/net/Socket;" + }, { + "field" : "task", + "owner" : "fi", + "name" : "f", + "access" : 0, + "descriptor" : "Lfn;" + }, { + "field" : "taskHandler", + "owner" : "fi", + "name" : "h", + "access" : 0, + "descriptor" : "Lfo;" + }, { + "field" : "__m", + "owner" : "fi", + "name" : "m", + "access" : 0, + "descriptor" : "I", + "decoder" : 1012555369 + }, { + "field" : "__q", + "owner" : "fi", + "name" : "q", + "access" : 0, + "descriptor" : "I", + "decoder" : -1735838885 + }, { + "field" : "__e", + "owner" : "fi", + "name" : "e", + "access" : 16, + "descriptor" : "I", + "decoder" : 530912779 + }, { + "field" : "__n", + "owner" : "fi", + "name" : "n", + "access" : 16, + "descriptor" : "I", + "decoder" : -487671753 + } ], + "methods" : [ { + "method" : "available", + "owner" : "fi", + "name" : "s", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(B)I" + }, { + "method" : "close", + "owner" : "fi", + "name" : "f", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(B)V" + }, { + "method" : "finalize", + "owner" : "fi", + "name" : "finalize", + "access" : 4, + "descriptor" : "()V" + }, { + "method" : "isAvailable", + "owner" : "fi", + "name" : "a", + "access" : 1, + "parameters" : [ "length" ], + "descriptor" : "(II)Z" + }, { + "method" : "read", + "owner" : "fi", + "name" : "x", + "access" : 1, + "parameters" : [ "dst", "dstIndex", "length" ], + "descriptor" : "([BIIB)I" + }, { + "method" : "readUnsignedByte", + "owner" : "fi", + "name" : "g", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(I)I" + }, { + "method" : "write", + "owner" : "fi", + "name" : "h", + "access" : 1, + "parameters" : [ "src", "srcIndex", "length" ], + "descriptor" : "([BIII)V" + }, { + "method" : "write0", + "owner" : "fi", + "name" : "k", + "access" : 0, + "parameters" : [ "src", "srcIndex", "length" ], + "descriptor" : "([BIII)V" + }, { + "method" : "__run_281", + "owner" : "fi", + "name" : "run", + "access" : 1, + "parameters" : [ ], + "descriptor" : "()V" + } ], + "constructors" : [ { + "access" : 1, + "descriptor" : "(Ljava/net/Socket;Lfo;I)V" + } ] +}, { + "class" : "BufferedSink", + "name" : "fx", + "super" : "java.lang.Object", + "access" : 33, + "interfaces" : [ "java.lang.Runnable" ], + "fields" : [ { + "field" : "buffer", + "owner" : "fx", + "name" : "x", + "access" : 0, + "descriptor" : "[B" + }, { + "field" : "capacity", + "owner" : "fx", + "name" : "g", + "access" : 0, + "descriptor" : "I", + "decoder" : 1074904079 + }, { + "field" : "exception", + "owner" : "fx", + "name" : "p", + "access" : 0, + "descriptor" : "Ljava/io/IOException;" + }, { + "field" : "isClosed0", + "owner" : "fx", + "name" : "m", + "access" : 0, + "descriptor" : "Z" + }, { + "field" : "limit", + "owner" : "fx", + "name" : "f", + "access" : 0, + "descriptor" : "I", + "decoder" : -946154325 + }, { + "field" : "outputStream", + "owner" : "fx", + "name" : "s", + "access" : 0, + "descriptor" : "Ljava/io/OutputStream;" + }, { + "field" : "position", + "owner" : "fx", + "name" : "h", + "access" : 0, + "descriptor" : "I", + "decoder" : -1978751501 + }, { + "field" : "thread", + "owner" : "fx", + "name" : "a", + "access" : 0, + "descriptor" : "Ljava/lang/Thread;" + } ], + "methods" : [ { + "method" : "close", + "owner" : "fx", + "name" : "g", + "access" : 0, + "parameters" : [ ], + "descriptor" : "(I)V" + }, { + "method" : "isClosed", + "owner" : "fx", + "name" : "a", + "access" : 0, + "parameters" : [ ], + "descriptor" : "(B)Z" + }, { + "method" : "write", + "owner" : "fx", + "name" : "s", + "access" : 0, + "parameters" : [ "src", "srcIndex", "length" ], + "descriptor" : "([BIIB)V" + }, { + "method" : "__run_282", + "owner" : "fx", + "name" : "run", + "access" : 1, + "parameters" : [ ], + "descriptor" : "()V" + } ], + "constructors" : [ { + "access" : 0, + "descriptor" : "(Ljava/io/OutputStream;I)V" + } ] +}, { + "class" : "CollisionMap", + "name" : "fk", + "super" : "java.lang.Object", + "access" : 33, + "interfaces" : [ ], + "fields" : [ { + "field" : "flags", + "owner" : "fk", + "name" : "au", + "access" : 1, + "descriptor" : "[[I" + }, { + "field" : "xInset", + "owner" : "fk", + "name" : "an", + "access" : 1, + "descriptor" : "I", + "decoder" : -1710257743 + }, { + "field" : "xSize", + "owner" : "fk", + "name" : "ae", + "access" : 0, + "descriptor" : "I", + "decoder" : 336385347 + }, { + "field" : "yInset", + "owner" : "fk", + "name" : "at", + "access" : 1, + "descriptor" : "I", + "decoder" : -882717619 + }, { + "field" : "ySize", + "owner" : "fk", + "name" : "av", + "access" : 0, + "descriptor" : "I", + "decoder" : -106970989 + } ], + "methods" : [ { + "method" : "clear", + "owner" : "fk", + "name" : "a", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(I)V" + }, { + "method" : "__s_283", + "owner" : "fk", + "name" : "s", + "access" : 1, + "parameters" : [ "arg0", "arg1", "arg2", "arg3", "arg4" ], + "descriptor" : "(IIIIZI)V" + }, { + "method" : "__g_284", + "owner" : "fk", + "name" : "g", + "access" : 1, + "parameters" : [ "arg0", "arg1", "arg2", "arg3", "arg4" ], + "descriptor" : "(IIIIZB)V" + }, { + "method" : "__x_285", + "owner" : "fk", + "name" : "x", + "access" : 1, + "parameters" : [ "arg0", "arg1" ], + "descriptor" : "(III)V" + }, { + "method" : "__h_286", + "owner" : "fk", + "name" : "h", + "access" : 1, + "parameters" : [ "arg0", "arg1" ], + "descriptor" : "(III)V" + }, { + "method" : "__f_287", + "owner" : "fk", + "name" : "f", + "access" : 0, + "parameters" : [ "arg0", "arg1", "arg2" ], + "descriptor" : "(IIII)V" + }, { + "method" : "__p_288", + "owner" : "fk", + "name" : "p", + "access" : 1, + "parameters" : [ "arg0", "arg1", "arg2", "arg3", "arg4" ], + "descriptor" : "(IIIIZI)V" + }, { + "method" : "__m_289", + "owner" : "fk", + "name" : "m", + "access" : 1, + "parameters" : [ "arg0", "arg1", "arg2", "arg3", "arg4", "arg5" ], + "descriptor" : "(IIIIIZB)V" + }, { + "method" : "__q_290", + "owner" : "fk", + "name" : "q", + "access" : 0, + "parameters" : [ "arg0", "arg1", "arg2" ], + "descriptor" : "(IIII)V" + }, { + "method" : "__b_291", + "owner" : "fk", + "name" : "b", + "access" : 1, + "parameters" : [ "arg0", "arg1" ], + "descriptor" : "(III)V" + } ], + "constructors" : [ { + "access" : 1, + "descriptor" : "(II)V" + } ] +}, { + "class" : "PacketBufferNode", + "name" : "fa", + "super" : "hy", + "access" : 33, + "interfaces" : [ ], + "fields" : [ { + "field" : "packetBuffer", + "owner" : "fa", + "name" : "g", + "access" : 1, + "descriptor" : "Lge;" + }, { + "field" : "__a", + "owner" : "fa", + "name" : "a", + "access" : 0, + "descriptor" : "Lfs;" + }, { + "field" : "__s", + "owner" : "fa", + "name" : "s", + "access" : 0, + "descriptor" : "I", + "decoder" : -631811573 + }, { + "field" : "__x", + "owner" : "fa", + "name" : "x", + "access" : 1, + "descriptor" : "I", + "decoder" : -962645799 + } ], + "methods" : [ { + "method" : "__x_292", + "owner" : "fa", + "name" : "x", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(B)V" + } ], + "constructors" : [ { + "access" : 0, + "descriptor" : "()V" + } ] +}, { + "class" : "Huffman", + "name" : "fy", + "super" : "java.lang.Object", + "access" : 33, + "interfaces" : [ ], + "fields" : [ { + "field" : "__s", + "owner" : "fy", + "name" : "s", + "access" : 0, + "descriptor" : "[B" + }, { + "field" : "__a", + "owner" : "fy", + "name" : "a", + "access" : 0, + "descriptor" : "[I" + }, { + "field" : "__g", + "owner" : "fy", + "name" : "g", + "access" : 0, + "descriptor" : "[I" + } ], + "methods" : [ { + "method" : "__a_293", + "owner" : "fy", + "name" : "a", + "access" : 1, + "parameters" : [ "arg0", "arg1", "arg2", "arg3", "arg4" ], + "descriptor" : "([BII[BII)I" + }, { + "method" : "__s_294", + "owner" : "fy", + "name" : "s", + "access" : 1, + "parameters" : [ "arg0", "arg1", "arg2", "arg3", "arg4" ], + "descriptor" : "([BI[BIIB)I" + } ], + "constructors" : [ { + "access" : 1, + "descriptor" : "([B)V" + } ] +}, { + "class" : "Bzip2State", + "name" : "gz", + "super" : "java.lang.Object", + "access" : 49, + "interfaces" : [ ], + "fields" : [ { + "field" : "__af", + "owner" : "gz", + "name" : "af", + "access" : 0, + "descriptor" : "[Z" + }, { + "field" : "__ag", + "owner" : "gz", + "name" : "ag", + "access" : 0, + "descriptor" : "[Z" + }, { + "field" : "__t", + "owner" : "gz", + "name" : "t", + "access" : 0, + "descriptor" : "B" + }, { + "field" : "__aa", + "owner" : "gz", + "name" : "aa", + "access" : 0, + "descriptor" : "[B" + }, { + "field" : "__ah", + "owner" : "gz", + "name" : "ah", + "access" : 0, + "descriptor" : "[B" + }, { + "field" : "__aw", + "owner" : "gz", + "name" : "aw", + "access" : 0, + "descriptor" : "[B" + }, { + "field" : "__ay", + "owner" : "gz", + "name" : "ay", + "access" : 0, + "descriptor" : "[B" + }, { + "field" : "__b", + "owner" : "gz", + "name" : "b", + "access" : 0, + "descriptor" : "[B" + }, { + "field" : "__p", + "owner" : "gz", + "name" : "p", + "access" : 0, + "descriptor" : "[B" + }, { + "field" : "__an", + "owner" : "gz", + "name" : "an", + "access" : 0, + "descriptor" : "[[B" + }, { + "field" : "__aj", + "owner" : "gz", + "name" : "aj", + "access" : 0, + "descriptor" : "I", + "decoder" : -1753825139 + }, { + "field" : "__d", + "owner" : "gz", + "name" : "d", + "access" : 0, + "descriptor" : "I", + "decoder" : -604946491 + }, { + "field" : "__e", + "owner" : "gz", + "name" : "e", + "access" : 0, + "descriptor" : "I", + "decoder" : 1905079051 + }, { + "field" : "__i", + "owner" : "gz", + "name" : "i", + "access" : 0, + "descriptor" : "I", + "decoder" : 403238131 + }, { + "field" : "__k", + "owner" : "gz", + "name" : "k", + "access" : 0, + "descriptor" : "I", + "decoder" : -922061599 + }, { + "field" : "__l", + "owner" : "gz", + "name" : "l", + "access" : 0, + "descriptor" : "I", + "decoder" : -247978423 + }, { + "field" : "__m", + "owner" : "gz", + "name" : "m", + "access" : 0, + "descriptor" : "I", + "decoder" : -84172855 + }, { + "field" : "__n", + "owner" : "gz", + "name" : "n", + "access" : 0, + "descriptor" : "I", + "decoder" : 495447083 + }, { + "field" : "__o", + "owner" : "gz", + "name" : "o", + "access" : 0, + "descriptor" : "I", + "decoder" : 646868241 + }, { + "field" : "__q", + "owner" : "gz", + "name" : "q", + "access" : 0, + "descriptor" : "I", + "decoder" : -1267061859 + }, { + "field" : "__r", + "owner" : "gz", + "name" : "r", + "access" : 0, + "descriptor" : "I", + "decoder" : 1220057931 + }, { + "field" : "__u", + "owner" : "gz", + "name" : "u", + "access" : 0, + "descriptor" : "I", + "decoder" : -738226065 + }, { + "field" : "__v", + "owner" : "gz", + "name" : "v", + "access" : 0, + "descriptor" : "I", + "decoder" : 1583714189 + }, { + "field" : "__y", + "owner" : "gz", + "name" : "y", + "access" : 0, + "descriptor" : "I" + }, { + "field" : "__z", + "owner" : "gz", + "name" : "z", + "access" : 0, + "descriptor" : "I", + "decoder" : -1095209005 + }, { + "field" : "__ab", + "owner" : "gz", + "name" : "ab", + "access" : 0, + "descriptor" : "[I" + }, { + "field" : "__au", + "owner" : "gz", + "name" : "au", + "access" : 0, + "descriptor" : "[I" + }, { + "field" : "__c", + "owner" : "gz", + "name" : "c", + "access" : 0, + "descriptor" : "[I" + }, { + "field" : "__w", + "owner" : "gz", + "name" : "w", + "access" : 0, + "descriptor" : "[I" + }, { + "field" : "__ae", + "owner" : "gz", + "name" : "ae", + "access" : 0, + "descriptor" : "[[I" + }, { + "field" : "__at", + "owner" : "gz", + "name" : "at", + "access" : 0, + "descriptor" : "[[I" + }, { + "field" : "__av", + "owner" : "gz", + "name" : "av", + "access" : 0, + "descriptor" : "[[I" + }, { + "field" : "__a", + "owner" : "gz", + "name" : "a", + "access" : 16, + "descriptor" : "I" + }, { + "field" : "__f", + "owner" : "gz", + "name" : "f", + "access" : 16, + "descriptor" : "I" + }, { + "field" : "__g", + "owner" : "gz", + "name" : "g", + "access" : 16, + "descriptor" : "I" + }, { + "field" : "__h", + "owner" : "gz", + "name" : "h", + "access" : 16, + "descriptor" : "I" + }, { + "field" : "__s", + "owner" : "gz", + "name" : "s", + "access" : 16, + "descriptor" : "I" + }, { + "field" : "__x", + "owner" : "gz", + "name" : "x", + "access" : 16, + "descriptor" : "I" + } ], + "methods" : [ ], + "constructors" : [ { + "access" : 0, + "descriptor" : "()V" + } ] +}, { + "class" : "Buffer", + "name" : "gx", + "super" : "hy", + "access" : 33, + "interfaces" : [ ], + "fields" : [ { + "field" : "array", + "owner" : "gx", + "name" : "a", + "access" : 1, + "descriptor" : "[B" + }, { + "field" : "index", + "owner" : "gx", + "name" : "s", + "access" : 1, + "descriptor" : "I", + "decoder" : -1555038209 + } ], + "methods" : [ { + "method" : "encryptRsa", + "owner" : "gx", + "name" : "bf", + "access" : 1, + "descriptor" : "(Ljava/math/BigInteger;Ljava/math/BigInteger;I)V" + }, { + "method" : "readBoolean", + "owner" : "gx", + "name" : "av", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(I)Z" + }, { + "method" : "readByte", + "owner" : "gx", + "name" : "ab", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(B)B" + }, { + "method" : "readInt", + "owner" : "gx", + "name" : "at", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(I)I" + }, { + "method" : "readLong", + "owner" : "gx", + "name" : "ae", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(B)J" + }, { + "method" : "readMedium", + "owner" : "gx", + "name" : "an", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(B)I" + }, { + "method" : "readStringCp1252NullCircumfixed", + "owner" : "gx", + "name" : "as", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(I)Ljava/lang/String;" + }, { + "method" : "readStringCp1252NullTerminated", + "owner" : "gx", + "name" : "aj", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(S)Ljava/lang/String;" + }, { + "method" : "readStringCp1252NullTerminatedOrNull", + "owner" : "gx", + "name" : "au", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(I)Ljava/lang/String;" + }, { + "method" : "readUnsignedByte", + "owner" : "gx", + "name" : "aa", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(I)I" + }, { + "method" : "readUnsignedByteNegate", + "owner" : "gx", + "name" : "bv", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(I)I" + }, { + "method" : "writeBoolean", + "owner" : "gx", + "name" : "b", + "access" : 1, + "parameters" : [ "value" ], + "descriptor" : "(ZI)V" + }, { + "method" : "writeByte", + "owner" : "gx", + "name" : "x", + "access" : 1, + "parameters" : [ "value" ], + "descriptor" : "(II)V" + }, { + "method" : "writeInt", + "owner" : "gx", + "name" : "p", + "access" : 1, + "parameters" : [ "value" ], + "descriptor" : "(IB)V" + }, { + "method" : "writeIntLE", + "owner" : "gx", + "name" : "bc", + "access" : 1, + "parameters" : [ "value" ], + "descriptor" : "(II)V" + }, { + "method" : "writeIntLE16", + "owner" : "gx", + "name" : "bx", + "access" : 1, + "parameters" : [ "value" ], + "descriptor" : "(II)V" + }, { + "method" : "writeIntME", + "owner" : "gx", + "name" : "bs", + "access" : 1, + "parameters" : [ "value" ], + "descriptor" : "(II)V" + }, { + "method" : "writeLong", + "owner" : "gx", + "name" : "q", + "access" : 1, + "parameters" : [ "n" ], + "descriptor" : "(J)V" + }, { + "method" : "writeLongMedium", + "owner" : "gx", + "name" : "m", + "access" : 1, + "parameters" : [ "n" ], + "descriptor" : "(J)V" + }, { + "method" : "writeMedium", + "owner" : "gx", + "name" : "f", + "access" : 1, + "parameters" : [ "value" ], + "descriptor" : "(II)V" + }, { + "method" : "writeShort", + "owner" : "gx", + "name" : "h", + "access" : 1, + "parameters" : [ "value" ], + "descriptor" : "(II)V" + }, { + "method" : "writeShortLE", + "owner" : "gx", + "name" : "bl", + "access" : 1, + "parameters" : [ "value" ], + "descriptor" : "(II)V" + }, { + "method" : "writeSmartByteShort", + "owner" : "gx", + "name" : "v", + "access" : 1, + "parameters" : [ "value" ], + "descriptor" : "(II)V" + }, { + "method" : "writeStringCp1252NullCircumfixed", + "owner" : "gx", + "name" : "t", + "access" : 1, + "parameters" : [ "string" ], + "descriptor" : "(Ljava/lang/String;I)V" + }, { + "method" : "writeStringCp1252NullTerminated", + "owner" : "gx", + "name" : "e", + "access" : 1, + "parameters" : [ "string" ], + "descriptor" : "(Ljava/lang/String;I)V" + }, { + "method" : "xteaDecrypt", + "owner" : "gx", + "name" : "am", + "access" : 1, + "parameters" : [ "xteaKey", "start", "end" ], + "descriptor" : "([IIIB)V" + }, { + "method" : "xteaDecryptAll", + "owner" : "gx", + "name" : "ap", + "access" : 1, + "parameters" : [ "xteaKey" ], + "descriptor" : "([II)V" + }, { + "method" : "xteaEncrypt", + "owner" : "gx", + "name" : "ak", + "access" : 1, + "parameters" : [ "xteaKey", "start", "end" ], + "descriptor" : "([IIII)V" + }, { + "method" : "xteaEncryptAll", + "owner" : "gx", + "name" : "ax", + "access" : 1, + "parameters" : [ "xteaKey" ], + "descriptor" : "([II)V" + }, { + "method" : "__g_295", + "owner" : "gx", + "name" : "g", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(I)V" + }, { + "method" : "__l_296", + "owner" : "gx", + "name" : "l", + "access" : 1, + "parameters" : [ "arg0" ], + "descriptor" : "(Ljava/lang/CharSequence;I)V" + }, { + "method" : "__o_297", + "owner" : "gx", + "name" : "o", + "access" : 1, + "parameters" : [ "arg0", "arg1", "arg2" ], + "descriptor" : "([BIII)V" + }, { + "method" : "__u_298", + "owner" : "gx", + "name" : "u", + "access" : 1, + "parameters" : [ "arg0" ], + "descriptor" : "(IB)V" + }, { + "method" : "__y_299", + "owner" : "gx", + "name" : "y", + "access" : 1, + "parameters" : [ "arg0" ], + "descriptor" : "(IB)V" + }, { + "method" : "__k_300", + "owner" : "gx", + "name" : "k", + "access" : 1, + "parameters" : [ "arg0" ], + "descriptor" : "(II)V" + }, { + "method" : "__c_301", + "owner" : "gx", + "name" : "c", + "access" : 1, + "parameters" : [ "arg0" ], + "descriptor" : "(II)V" + }, { + "method" : "__ah_302", + "owner" : "gx", + "name" : "ah", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(B)I" + }, { + "method" : "__aw_303", + "owner" : "gx", + "name" : "aw", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(I)I" + }, { + "method" : "__ar_304", + "owner" : "gx", + "name" : "ar", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(I)Ljava/lang/String;" + }, { + "method" : "__ai_305", + "owner" : "gx", + "name" : "ai", + "access" : 1, + "parameters" : [ "arg0", "arg1", "arg2" ], + "descriptor" : "([BIII)V" + }, { + "method" : "__aq_306", + "owner" : "gx", + "name" : "aq", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(I)I" + }, { + "method" : "__al_307", + "owner" : "gx", + "name" : "al", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(B)I" + }, { + "method" : "__az_308", + "owner" : "gx", + "name" : "az", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(I)I" + }, { + "method" : "__ac_309", + "owner" : "gx", + "name" : "ac", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(B)I" + }, { + "method" : "__ao_310", + "owner" : "gx", + "name" : "ao", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(I)I" + }, { + "method" : "__ad_311", + "owner" : "gx", + "name" : "ad", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(B)I" + }, { + "method" : "__bo_312", + "owner" : "gx", + "name" : "bo", + "access" : 1, + "parameters" : [ "arg0" ], + "descriptor" : "(II)I" + }, { + "method" : "__be_313", + "owner" : "gx", + "name" : "be", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(S)Z" + }, { + "method" : "__bd_314", + "owner" : "gx", + "name" : "bd", + "access" : 1, + "parameters" : [ "arg0" ], + "descriptor" : "(II)V" + }, { + "method" : "__bz_315", + "owner" : "gx", + "name" : "bz", + "access" : 1, + "parameters" : [ "arg0" ], + "descriptor" : "(II)V" + }, { + "method" : "__bi_316", + "owner" : "gx", + "name" : "bi", + "access" : 1, + "parameters" : [ "arg0" ], + "descriptor" : "(II)V" + }, { + "method" : "__bp_317", + "owner" : "gx", + "name" : "bp", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(I)I" + }, { + "method" : "__bg_318", + "owner" : "gx", + "name" : "bg", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(I)I" + }, { + "method" : "__bk_319", + "owner" : "gx", + "name" : "bk", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(B)B" + }, { + "method" : "__br_320", + "owner" : "gx", + "name" : "br", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(I)B" + }, { + "method" : "__bn_321", + "owner" : "gx", + "name" : "bn", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(I)B" + }, { + "method" : "__bb_322", + "owner" : "gx", + "name" : "bb", + "access" : 1, + "parameters" : [ "arg0" ], + "descriptor" : "(II)V" + }, { + "method" : "__bw_323", + "owner" : "gx", + "name" : "bw", + "access" : 1, + "parameters" : [ "arg0" ], + "descriptor" : "(II)V" + }, { + "method" : "__bh_324", + "owner" : "gx", + "name" : "bh", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(B)I" + }, { + "method" : "__bj_325", + "owner" : "gx", + "name" : "bj", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(I)I" + }, { + "method" : "__bq_326", + "owner" : "gx", + "name" : "bq", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(I)I" + }, { + "method" : "__by_327", + "owner" : "gx", + "name" : "by", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(I)I" + }, { + "method" : "__bu_328", + "owner" : "gx", + "name" : "bu", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(I)I" + }, { + "method" : "__bt_329", + "owner" : "gx", + "name" : "bt", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(I)I" + }, { + "method" : "__ba_330", + "owner" : "gx", + "name" : "ba", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(B)I" + }, { + "method" : "__bm_331", + "owner" : "gx", + "name" : "bm", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(I)I" + }, { + "method" : "__cm_332", + "owner" : "gx", + "name" : "cm", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(I)I" + }, { + "method" : "__ch_333", + "owner" : "gx", + "name" : "ch", + "access" : 1, + "parameters" : [ "arg0", "arg1", "arg2" ], + "descriptor" : "([BIII)V" + } ], + "constructors" : [ { + "access" : 1, + "descriptor" : "(I)V" + }, { + "access" : 1, + "descriptor" : "([B)V" + } ] +}, { + "class" : "PacketBuffer", + "name" : "ge", + "super" : "gx", + "access" : 49, + "interfaces" : [ ], + "fields" : [ { + "field" : "bitIndex", + "owner" : "ge", + "name" : "n", + "access" : 0, + "descriptor" : "I", + "decoder" : 730712021 + }, { + "field" : "isaacCipher0", + "owner" : "ge", + "name" : "q", + "access" : 0, + "descriptor" : "Lgb;" + } ], + "methods" : [ { + "method" : "bitsRemaining", + "owner" : "ge", + "name" : "je", + "access" : 1, + "parameters" : [ "index" ], + "descriptor" : "(II)I" + }, { + "method" : "exportIndex", + "owner" : "ge", + "name" : "jf", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(I)V" + }, { + "method" : "importIndex", + "owner" : "ge", + "name" : "jz", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(I)V" + }, { + "method" : "newIsaacCipher", + "owner" : "ge", + "name" : "jl", + "access" : 1, + "parameters" : [ "array" ], + "descriptor" : "([IB)V" + }, { + "method" : "readBits", + "owner" : "ge", + "name" : "jq", + "access" : 1, + "parameters" : [ "bits" ], + "descriptor" : "(II)I" + }, { + "method" : "readByteIsaac", + "owner" : "ge", + "name" : "jx", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(I)I" + }, { + "method" : "readSmartByteShortIsaac", + "owner" : "ge", + "name" : "jr", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(I)I" + }, { + "method" : "setIsaacCipher", + "owner" : "ge", + "name" : "jh", + "access" : 1, + "parameters" : [ "isaacCipher" ], + "descriptor" : "(Lgb;I)V" + }, { + "method" : "writeByteIsaac", + "owner" : "ge", + "name" : "jo", + "access" : 1, + "parameters" : [ "b" ], + "descriptor" : "(II)V" + }, { + "method" : "__jp_334", + "owner" : "ge", + "name" : "jp", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(I)Z" + }, { + "method" : "__jt_335", + "owner" : "ge", + "name" : "jt", + "access" : 1, + "parameters" : [ "arg0", "arg1", "arg2" ], + "descriptor" : "([BIII)V" + } ], + "constructors" : [ { + "access" : 1, + "descriptor" : "(I)V" + } ] +}, { + "class" : "IsaacCipher", + "name" : "gb", + "super" : "java.lang.Object", + "access" : 49, + "interfaces" : [ ], + "fields" : [ { + "field" : "__m", + "owner" : "gb", + "name" : "m", + "access" : 0, + "descriptor" : "I", + "decoder" : -1935004419 + }, { + "field" : "__p", + "owner" : "gb", + "name" : "p", + "access" : 0, + "descriptor" : "I", + "decoder" : 487301423 + }, { + "field" : "__q", + "owner" : "gb", + "name" : "q", + "access" : 0, + "descriptor" : "I", + "decoder" : 1926968705 + }, { + "field" : "__x", + "owner" : "gb", + "name" : "x", + "access" : 0, + "descriptor" : "I", + "decoder" : -816921805 + }, { + "field" : "__f", + "owner" : "gb", + "name" : "f", + "access" : 0, + "descriptor" : "[I" + }, { + "field" : "__h", + "owner" : "gb", + "name" : "h", + "access" : 0, + "descriptor" : "[I" + } ], + "methods" : [ { + "method" : "__a_336", + "owner" : "gb", + "name" : "a", + "access" : 16, + "parameters" : [ ], + "descriptor" : "(B)I" + }, { + "method" : "__s_337", + "owner" : "gb", + "name" : "s", + "access" : 16, + "parameters" : [ ], + "descriptor" : "(I)I" + }, { + "method" : "__g_338", + "owner" : "gb", + "name" : "g", + "access" : 16, + "parameters" : [ ], + "descriptor" : "(I)V" + }, { + "method" : "__x_339", + "owner" : "gb", + "name" : "x", + "access" : 16, + "parameters" : [ ], + "descriptor" : "(I)V" + } ], + "constructors" : [ { + "access" : 1, + "descriptor" : "([I)V" + } ] +}, { + "class" : "IterableNodeHashTable", + "name" : "gs", + "super" : "java.lang.Object", + "access" : 49, + "interfaces" : [ "java.lang.Iterable" ], + "fields" : [ { + "field" : "buckets", + "owner" : "gs", + "name" : "s", + "access" : 0, + "descriptor" : "[Lhy;" + }, { + "field" : "current", + "owner" : "gs", + "name" : "x", + "access" : 0, + "descriptor" : "Lhy;" + }, { + "field" : "currentGet", + "owner" : "gs", + "name" : "g", + "access" : 0, + "descriptor" : "Lhy;" + }, { + "field" : "index", + "owner" : "gs", + "name" : "h", + "access" : 0, + "descriptor" : "I" + }, { + "field" : "size", + "owner" : "gs", + "name" : "a", + "access" : 0, + "descriptor" : "I" + } ], + "methods" : [ { + "method" : "clear", + "owner" : "gs", + "name" : "g", + "access" : 1, + "parameters" : [ ], + "descriptor" : "()V" + }, { + "method" : "first", + "owner" : "gs", + "name" : "x", + "access" : 1, + "descriptor" : "()Lhy;" + }, { + "method" : "get", + "owner" : "gs", + "name" : "a", + "access" : 1, + "descriptor" : "(J)Lhy;" + }, { + "method" : "next", + "owner" : "gs", + "name" : "h", + "access" : 1, + "descriptor" : "()Lhy;" + }, { + "method" : "put", + "owner" : "gs", + "name" : "s", + "access" : 1, + "descriptor" : "(Lhy;J)V" + }, { + "method" : "__iterator_340", + "owner" : "gs", + "name" : "iterator", + "access" : 1, + "parameters" : [ ], + "descriptor" : "()Ljava/util/Iterator;" + } ], + "constructors" : [ { + "access" : 1, + "descriptor" : "(I)V" + } ] +}, { + "class" : "IterableNodeDequeDescendingIterator", + "name" : "gg", + "super" : "java.lang.Object", + "access" : 33, + "interfaces" : [ "java.util.Iterator" ], + "fields" : [ { + "field" : "deque", + "owner" : "gg", + "name" : "a", + "access" : 0, + "descriptor" : "Lhj;" + }, { + "field" : "__g", + "owner" : "gg", + "name" : "g", + "access" : 0, + "descriptor" : "Lhy;" + }, { + "field" : "__s", + "owner" : "gg", + "name" : "s", + "access" : 0, + "descriptor" : "Lhy;" + } ], + "methods" : [ { + "method" : "__next_341", + "owner" : "gg", + "name" : "next", + "access" : 1, + "parameters" : [ ], + "descriptor" : "()Ljava/lang/Object;" + }, { + "method" : "__hasNext_342", + "owner" : "gg", + "name" : "hasNext", + "access" : 1, + "parameters" : [ ], + "descriptor" : "()Z" + }, { + "method" : "__remove_343", + "owner" : "gg", + "name" : "remove", + "access" : 1, + "parameters" : [ ], + "descriptor" : "()V" + } ], + "constructors" : [ { + "access" : 0, + "descriptor" : "(Lhj;)V" + } ] +}, { + "class" : "EvictingDualNodeHashTable", + "name" : "gp", + "super" : "java.lang.Object", + "access" : 49, + "interfaces" : [ ], + "fields" : [ { + "field" : "capacity", + "owner" : "gp", + "name" : "s", + "access" : 0, + "descriptor" : "I" + }, { + "field" : "deque", + "owner" : "gp", + "name" : "h", + "access" : 0, + "descriptor" : "Lgd;" + }, { + "field" : "hashTable", + "owner" : "gp", + "name" : "x", + "access" : 0, + "descriptor" : "Lht;" + }, { + "field" : "remainingCapacity", + "owner" : "gp", + "name" : "g", + "access" : 0, + "descriptor" : "I" + }, { + "field" : "__a", + "owner" : "gp", + "name" : "a", + "access" : 0, + "descriptor" : "Lho;" + } ], + "methods" : [ { + "method" : "clear", + "owner" : "gp", + "name" : "x", + "access" : 1, + "parameters" : [ ], + "descriptor" : "()V" + }, { + "method" : "get", + "owner" : "gp", + "name" : "a", + "access" : 1, + "parameters" : [ "key" ], + "descriptor" : "(J)Lho;" + }, { + "method" : "put", + "owner" : "gp", + "name" : "g", + "access" : 1, + "parameters" : [ "value", "key" ], + "descriptor" : "(Lho;J)V" + }, { + "method" : "remove", + "owner" : "gp", + "name" : "s", + "access" : 1, + "parameters" : [ "key" ], + "descriptor" : "(J)V" + } ], + "constructors" : [ { + "access" : 1, + "descriptor" : "(I)V" + } ] +}, { + "class" : "IterableNodeDeque", + "name" : "hj", + "super" : "java.lang.Object", + "access" : 33, + "interfaces" : [ "java.lang.Iterable" ], + "fields" : [ { + "field" : "current", + "owner" : "hj", + "name" : "s", + "access" : 0, + "descriptor" : "Lhy;" + }, { + "field" : "sentinel", + "owner" : "hj", + "name" : "a", + "access" : 0, + "descriptor" : "Lhy;" + } ], + "methods" : [ { + "method" : "addFirst", + "owner" : "hj", + "name" : "s", + "access" : 1, + "parameters" : [ "node" ], + "descriptor" : "(Lhy;)V" + }, { + "method" : "addLast", + "owner" : "hj", + "name" : "g", + "access" : 1, + "parameters" : [ "node" ], + "descriptor" : "(Lhy;)V" + }, { + "method" : "clear", + "owner" : "hj", + "name" : "a", + "access" : 1, + "parameters" : [ ], + "descriptor" : "()V" + }, { + "method" : "isEmpty", + "owner" : "hj", + "name" : "m", + "access" : 1, + "descriptor" : "()Z" + }, { + "method" : "last", + "owner" : "hj", + "name" : "h", + "access" : 1, + "parameters" : [ ], + "descriptor" : "()Lhy;" + }, { + "method" : "previous", + "owner" : "hj", + "name" : "p", + "access" : 1, + "parameters" : [ ], + "descriptor" : "()Lhy;" + }, { + "method" : "previousOrLast", + "owner" : "hj", + "name" : "f", + "access" : 0, + "parameters" : [ "node" ], + "descriptor" : "(Lhy;)Lhy;" + }, { + "method" : "__iterator_344", + "owner" : "hj", + "name" : "iterator", + "access" : 1, + "parameters" : [ ], + "descriptor" : "()Ljava/util/Iterator;" + } ], + "constructors" : [ { + "access" : 1, + "descriptor" : "()V" + } ] +}, { + "class" : "LinkDeque", + "name" : "hp", + "super" : "java.lang.Object", + "access" : 33, + "interfaces" : [ ], + "fields" : [ { + "field" : "__a", + "owner" : "hp", + "name" : "a", + "access" : 0, + "descriptor" : "Lhh;" + }, { + "field" : "__s", + "owner" : "hp", + "name" : "s", + "access" : 0, + "descriptor" : "Lhh;" + } ], + "methods" : [ { + "method" : "__a_345", + "owner" : "hp", + "name" : "a", + "access" : 1, + "parameters" : [ "arg0" ], + "descriptor" : "(Lhh;)V" + }, { + "method" : "__s_346", + "owner" : "hp", + "name" : "s", + "access" : 1, + "parameters" : [ ], + "descriptor" : "()Lhh;" + }, { + "method" : "__g_347", + "owner" : "hp", + "name" : "g", + "access" : 1, + "parameters" : [ ], + "descriptor" : "()Lhh;" + } ], + "constructors" : [ { + "access" : 1, + "descriptor" : "()V" + } ] +}, { + "class" : "Link", + "name" : "hh", + "super" : "java.lang.Object", + "access" : 33, + "interfaces" : [ ], + "fields" : [ { + "field" : "__a", + "owner" : "hh", + "name" : "a", + "access" : 0, + "descriptor" : "Lhh;" + }, { + "field" : "__s", + "owner" : "hh", + "name" : "s", + "access" : 0, + "descriptor" : "Lhh;" + } ], + "methods" : [ { + "method" : "remove", + "owner" : "hh", + "name" : "a", + "access" : 1, + "descriptor" : "()V" + } ], + "constructors" : [ { + "access" : 4, + "descriptor" : "()V" + } ] +}, { + "class" : "IterableNodeHashTableIterator", + "name" : "hr", + "super" : "java.lang.Object", + "access" : 33, + "interfaces" : [ "java.util.Iterator" ], + "fields" : [ { + "field" : "hashTable", + "owner" : "hr", + "name" : "a", + "access" : 0, + "descriptor" : "Lgs;" + }, { + "field" : "__s", + "owner" : "hr", + "name" : "s", + "access" : 0, + "descriptor" : "Lhy;" + }, { + "field" : "__x", + "owner" : "hr", + "name" : "x", + "access" : 0, + "descriptor" : "Lhy;" + }, { + "field" : "__g", + "owner" : "hr", + "name" : "g", + "access" : 0, + "descriptor" : "I" + } ], + "methods" : [ { + "method" : "__h_348", + "owner" : "hr", + "name" : "h", + "access" : 0, + "parameters" : [ ], + "descriptor" : "()V" + }, { + "method" : "__next_349", + "owner" : "hr", + "name" : "next", + "access" : 1, + "parameters" : [ ], + "descriptor" : "()Ljava/lang/Object;" + }, { + "method" : "__hasNext_350", + "owner" : "hr", + "name" : "hasNext", + "access" : 1, + "parameters" : [ ], + "descriptor" : "()Z" + }, { + "method" : "__remove_351", + "owner" : "hr", + "name" : "remove", + "access" : 1, + "parameters" : [ ], + "descriptor" : "()V" + } ], + "constructors" : [ { + "access" : 0, + "descriptor" : "(Lgs;)V" + } ] +}, { + "class" : "IterableDualNodeQueueIterator", + "name" : "hm", + "super" : "java.lang.Object", + "access" : 33, + "interfaces" : [ "java.util.Iterator" ], + "fields" : [ { + "field" : "queue", + "owner" : "hm", + "name" : "a", + "access" : 0, + "descriptor" : "Lhw;" + }, { + "field" : "__g", + "owner" : "hm", + "name" : "g", + "access" : 0, + "descriptor" : "Lho;" + }, { + "field" : "__s", + "owner" : "hm", + "name" : "s", + "access" : 0, + "descriptor" : "Lho;" + } ], + "methods" : [ { + "method" : "__next_352", + "owner" : "hm", + "name" : "next", + "access" : 1, + "parameters" : [ ], + "descriptor" : "()Ljava/lang/Object;" + }, { + "method" : "__hasNext_353", + "owner" : "hm", + "name" : "hasNext", + "access" : 1, + "parameters" : [ ], + "descriptor" : "()Z" + }, { + "method" : "__remove_354", + "owner" : "hm", + "name" : "remove", + "access" : 1, + "parameters" : [ ], + "descriptor" : "()V" + } ], + "constructors" : [ { + "access" : 0, + "descriptor" : "(Lhw;)V" + } ] +}, { + "class" : "IterableDualNodeQueue", + "name" : "hw", + "super" : "java.lang.Object", + "access" : 33, + "interfaces" : [ "java.lang.Iterable" ], + "fields" : [ { + "field" : "head", + "owner" : "hw", + "name" : "s", + "access" : 0, + "descriptor" : "Lho;" + }, { + "field" : "sentinel", + "owner" : "hw", + "name" : "a", + "access" : 1, + "descriptor" : "Lho;" + } ], + "methods" : [ { + "method" : "add", + "owner" : "hw", + "name" : "s", + "access" : 1, + "descriptor" : "(Lho;)V" + }, { + "method" : "clear", + "owner" : "hw", + "name" : "a", + "access" : 1, + "parameters" : [ ], + "descriptor" : "()V" + }, { + "method" : "__g_355", + "owner" : "hw", + "name" : "g", + "access" : 0, + "parameters" : [ ], + "descriptor" : "()Lho;" + }, { + "method" : "__x_356", + "owner" : "hw", + "name" : "x", + "access" : 0, + "parameters" : [ ], + "descriptor" : "()Lho;" + }, { + "method" : "__h_357", + "owner" : "hw", + "name" : "h", + "access" : 0, + "parameters" : [ "arg0" ], + "descriptor" : "(Lho;)Lho;" + }, { + "method" : "__f_358", + "owner" : "hw", + "name" : "f", + "access" : 0, + "parameters" : [ ], + "descriptor" : "()Lho;" + }, { + "method" : "__iterator_359", + "owner" : "hw", + "name" : "iterator", + "access" : 1, + "parameters" : [ ], + "descriptor" : "()Ljava/util/Iterator;" + } ], + "constructors" : [ { + "access" : 1, + "descriptor" : "()V" + } ] +}, { + "class" : "MusicPatchNode2", + "name" : "hu", + "super" : "java.lang.Object", + "access" : 33, + "interfaces" : [ ], + "fields" : [ { + "field" : "__a", + "owner" : "hu", + "name" : "a", + "access" : 0, + "descriptor" : "[B" + }, { + "field" : "__s", + "owner" : "hu", + "name" : "s", + "access" : 0, + "descriptor" : "[B" + }, { + "field" : "__f", + "owner" : "hu", + "name" : "f", + "access" : 0, + "descriptor" : "I", + "decoder" : 187209611 + }, { + "field" : "__g", + "owner" : "hu", + "name" : "g", + "access" : 0, + "descriptor" : "I", + "decoder" : 235866155 + }, { + "field" : "__h", + "owner" : "hu", + "name" : "h", + "access" : 0, + "descriptor" : "I", + "decoder" : 1157549911 + }, { + "field" : "__m", + "owner" : "hu", + "name" : "m", + "access" : 0, + "descriptor" : "I", + "decoder" : -367260157 + }, { + "field" : "__p", + "owner" : "hu", + "name" : "p", + "access" : 0, + "descriptor" : "I", + "decoder" : -1019366085 + }, { + "field" : "__q", + "owner" : "hu", + "name" : "q", + "access" : 0, + "descriptor" : "I", + "decoder" : -2095726733 + }, { + "field" : "__x", + "owner" : "hu", + "name" : "x", + "access" : 0, + "descriptor" : "I", + "decoder" : 1113012701 + } ], + "methods" : [ ], + "constructors" : [ { + "access" : 0, + "descriptor" : "()V" + } ] +}, { + "class" : "MidiPcmStream", + "name" : "hn", + "super" : "do", + "access" : 33, + "interfaces" : [ ], + "fields" : [ { + "field" : "midiFile", + "owner" : "hn", + "name" : "af", + "access" : 0, + "descriptor" : "Lhf;" + }, { + "field" : "musicPatches", + "owner" : "hn", + "name" : "a", + "access" : 0, + "descriptor" : "Lht;" + }, { + "field" : "patchStream", + "owner" : "hn", + "name" : "an", + "access" : 0, + "descriptor" : "Lhb;" + }, { + "field" : "track", + "owner" : "hn", + "name" : "aa", + "access" : 0, + "descriptor" : "I", + "decoder" : 1647160153 + }, { + "field" : "trackLength", + "owner" : "hn", + "name" : "ab", + "access" : 0, + "descriptor" : "I", + "decoder" : -1676533057 + }, { + "field" : "__ay", + "owner" : "hn", + "name" : "ay", + "access" : 0, + "descriptor" : "Z" + }, { + "field" : "__ag", + "owner" : "hn", + "name" : "ag", + "access" : 0, + "descriptor" : "[[Lhl;" + }, { + "field" : "__z", + "owner" : "hn", + "name" : "z", + "access" : 0, + "descriptor" : "[[Lhl;" + }, { + "field" : "__g", + "owner" : "hn", + "name" : "g", + "access" : 0, + "descriptor" : "I", + "decoder" : -1205600737 + }, { + "field" : "__s", + "owner" : "hn", + "name" : "s", + "access" : 0, + "descriptor" : "I", + "decoder" : 1381649205 + }, { + "field" : "__b", + "owner" : "hn", + "name" : "b", + "access" : 0, + "descriptor" : "[I" + }, { + "field" : "__c", + "owner" : "hn", + "name" : "c", + "access" : 0, + "descriptor" : "[I" + }, { + "field" : "__d", + "owner" : "hn", + "name" : "d", + "access" : 0, + "descriptor" : "[I" + }, { + "field" : "__e", + "owner" : "hn", + "name" : "e", + "access" : 0, + "descriptor" : "[I" + }, { + "field" : "__f", + "owner" : "hn", + "name" : "f", + "access" : 0, + "descriptor" : "[I" + }, { + "field" : "__h", + "owner" : "hn", + "name" : "h", + "access" : 0, + "descriptor" : "[I" + }, { + "field" : "__i", + "owner" : "hn", + "name" : "i", + "access" : 0, + "descriptor" : "[I" + }, { + "field" : "__j", + "owner" : "hn", + "name" : "j", + "access" : 0, + "descriptor" : "[I" + }, { + "field" : "__m", + "owner" : "hn", + "name" : "m", + "access" : 0, + "descriptor" : "[I" + }, { + "field" : "__n", + "owner" : "hn", + "name" : "n", + "access" : 0, + "descriptor" : "[I" + }, { + "field" : "__p", + "owner" : "hn", + "name" : "p", + "access" : 0, + "descriptor" : "[I" + }, { + "field" : "__q", + "owner" : "hn", + "name" : "q", + "access" : 0, + "descriptor" : "[I" + }, { + "field" : "__v", + "owner" : "hn", + "name" : "v", + "access" : 0, + "descriptor" : "[I" + }, { + "field" : "__w", + "owner" : "hn", + "name" : "w", + "access" : 0, + "descriptor" : "[I" + }, { + "field" : "__x", + "owner" : "hn", + "name" : "x", + "access" : 0, + "descriptor" : "[I" + }, { + "field" : "__ah", + "owner" : "hn", + "name" : "ah", + "access" : 0, + "descriptor" : "J", + "decoder" : -4638524786880878329 + }, { + "field" : "__aw", + "owner" : "hn", + "name" : "aw", + "access" : 0, + "descriptor" : "J", + "decoder" : -8032164791710535309 + } ], + "methods" : [ { + "method" : "clear", + "owner" : "hn", + "name" : "e", + "access" : 33, + "parameters" : [ ], + "descriptor" : "(I)V" + }, { + "method" : "clearAll", + "owner" : "hn", + "name" : "x", + "access" : 33, + "parameters" : [ ], + "descriptor" : "(B)V" + }, { + "method" : "isReady", + "owner" : "hn", + "name" : "r", + "access" : 32, + "parameters" : [ ], + "descriptor" : "(I)Z" + }, { + "method" : "loadMusicTrack", + "owner" : "hn", + "name" : "g", + "access" : 33, + "parameters" : [ "musicTrack", "i", "s", "frequency" ], + "descriptor" : "(Lhx;Liz;Lds;II)Z" + }, { + "method" : "removeAll", + "owner" : "hn", + "name" : "h", + "access" : 32, + "parameters" : [ ], + "descriptor" : "(I)V" + }, { + "method" : "setMusicTrack", + "owner" : "hn", + "name" : "b", + "access" : 33, + "parameters" : [ "musicTrack", "b" ], + "descriptor" : "(Lhx;ZI)V" + }, { + "method" : "__a_360", + "owner" : "hn", + "name" : "a", + "access" : 33, + "parameters" : [ "arg0" ], + "descriptor" : "(IB)V" + }, { + "method" : "__s_361", + "owner" : "hn", + "name" : "s", + "access" : 0, + "parameters" : [ ], + "descriptor" : "(I)I" + }, { + "method" : "__t_362", + "owner" : "hn", + "name" : "t", + "access" : 33, + "parameters" : [ "arg0", "arg1" ], + "descriptor" : "(III)V" + }, { + "method" : "__l_363", + "owner" : "hn", + "name" : "l", + "access" : 0, + "parameters" : [ "arg0", "arg1" ], + "descriptor" : "(III)V" + }, { + "method" : "__o_364", + "owner" : "hn", + "name" : "o", + "access" : 0, + "parameters" : [ "arg0", "arg1" ], + "descriptor" : "(III)V" + }, { + "method" : "__u_365", + "owner" : "hn", + "name" : "u", + "access" : 0, + "parameters" : [ "arg0", "arg1", "arg2" ], + "descriptor" : "(IIII)V" + }, { + "method" : "__y_366", + "owner" : "hn", + "name" : "y", + "access" : 0, + "parameters" : [ "arg0", "arg1" ], + "descriptor" : "(Lhl;ZB)V" + }, { + "method" : "__k_367", + "owner" : "hn", + "name" : "k", + "access" : 0, + "parameters" : [ "arg0", "arg1", "arg2" ], + "descriptor" : "(IIIB)V" + }, { + "method" : "__v_368", + "owner" : "hn", + "name" : "v", + "access" : 0, + "parameters" : [ "arg0", "arg1", "arg2" ], + "descriptor" : "(IIII)V" + }, { + "method" : "__c_369", + "owner" : "hn", + "name" : "c", + "access" : 0, + "parameters" : [ "arg0", "arg1" ], + "descriptor" : "(IIB)V" + }, { + "method" : "__aa_370", + "owner" : "hn", + "name" : "aa", + "access" : 0, + "parameters" : [ "arg0", "arg1" ], + "descriptor" : "(III)V" + }, { + "method" : "__ab_371", + "owner" : "hn", + "name" : "ab", + "access" : 0, + "parameters" : [ "arg0" ], + "descriptor" : "(II)V" + }, { + "method" : "__ah_372", + "owner" : "hn", + "name" : "ah", + "access" : 0, + "parameters" : [ "arg0" ], + "descriptor" : "(II)V" + }, { + "method" : "__aw_373", + "owner" : "hn", + "name" : "aw", + "access" : 0, + "parameters" : [ "arg0" ], + "descriptor" : "(II)V" + }, { + "method" : "__an_374", + "owner" : "hn", + "name" : "an", + "access" : 0, + "parameters" : [ ], + "descriptor" : "(I)V" + }, { + "method" : "__at_375", + "owner" : "hn", + "name" : "at", + "access" : 0, + "parameters" : [ "arg0" ], + "descriptor" : "(IB)V" + }, { + "method" : "__al_376", + "owner" : "hn", + "name" : "al", + "access" : 0, + "parameters" : [ "arg0" ], + "descriptor" : "(II)V" + }, { + "method" : "__ao_377", + "owner" : "hn", + "name" : "ao", + "access" : 0, + "parameters" : [ "arg0" ], + "descriptor" : "(IS)V" + }, { + "method" : "__ad_378", + "owner" : "hn", + "name" : "ad", + "access" : 0, + "parameters" : [ "arg0", "arg1" ], + "descriptor" : "(III)V" + }, { + "method" : "__ax_379", + "owner" : "hn", + "name" : "ax", + "access" : 0, + "parameters" : [ "arg0" ], + "descriptor" : "(Lhl;I)I" + }, { + "method" : "__ak_380", + "owner" : "hn", + "name" : "ak", + "access" : 0, + "parameters" : [ "arg0" ], + "descriptor" : "(Lhl;I)I" + }, { + "method" : "__am_381", + "owner" : "hn", + "name" : "am", + "access" : 0, + "parameters" : [ "arg0" ], + "descriptor" : "(Lhl;I)I" + }, { + "method" : "__f_382", + "owner" : "hn", + "name" : "f", + "access" : 36, + "parameters" : [ ], + "descriptor" : "()Ldo;" + }, { + "method" : "__p_383", + "owner" : "hn", + "name" : "p", + "access" : 36, + "parameters" : [ ], + "descriptor" : "()Ldo;" + }, { + "method" : "__m_384", + "owner" : "hn", + "name" : "m", + "access" : 36, + "parameters" : [ ], + "descriptor" : "()I" + }, { + "method" : "__q_385", + "owner" : "hn", + "name" : "q", + "access" : 36, + "parameters" : [ "arg0", "arg1", "arg2" ], + "descriptor" : "([III)V" + }, { + "method" : "__n_386", + "owner" : "hn", + "name" : "n", + "access" : 36, + "parameters" : [ "arg0" ], + "descriptor" : "(I)V" + }, { + "method" : "__bf_387", + "owner" : "hn", + "name" : "bf", + "access" : 0, + "parameters" : [ ], + "descriptor" : "(B)V" + }, { + "method" : "__bo_388", + "owner" : "hn", + "name" : "bo", + "access" : 0, + "parameters" : [ "arg0" ], + "descriptor" : "(Lhl;I)Z" + }, { + "method" : "__be_389", + "owner" : "hn", + "name" : "be", + "access" : 0, + "parameters" : [ "arg0", "arg1", "arg2", "arg3" ], + "descriptor" : "(Lhl;[IIII)Z" + } ], + "constructors" : [ { + "access" : 1, + "descriptor" : "()V" + } ] +}, { + "class" : "MusicPatchNode", + "name" : "hl", + "super" : "hy", + "access" : 33, + "interfaces" : [ ], + "fields" : [ { + "field" : "patch", + "owner" : "hl", + "name" : "s", + "access" : 0, + "descriptor" : "Lhc;" + }, { + "field" : "rawSound", + "owner" : "hl", + "name" : "g", + "access" : 0, + "descriptor" : "Lce;" + }, { + "field" : "stream", + "owner" : "hl", + "name" : "k", + "access" : 0, + "descriptor" : "Ldt;" + }, { + "field" : "__x", + "owner" : "hl", + "name" : "x", + "access" : 0, + "descriptor" : "Lhu;" + }, { + "field" : "__a", + "owner" : "hl", + "name" : "a", + "access" : 0, + "descriptor" : "I", + "decoder" : -1522239135 + }, { + "field" : "__b", + "owner" : "hl", + "name" : "b", + "access" : 0, + "descriptor" : "I", + "decoder" : -214546419 + }, { + "field" : "__e", + "owner" : "hl", + "name" : "e", + "access" : 0, + "descriptor" : "I", + "decoder" : 995603801 + }, { + "field" : "__f", + "owner" : "hl", + "name" : "f", + "access" : 0, + "descriptor" : "I", + "decoder" : -229900307 + }, { + "field" : "__h", + "owner" : "hl", + "name" : "h", + "access" : 0, + "descriptor" : "I", + "decoder" : -1013212729 + }, { + "field" : "__l", + "owner" : "hl", + "name" : "l", + "access" : 0, + "descriptor" : "I", + "decoder" : -1858366799 + }, { + "field" : "__m", + "owner" : "hl", + "name" : "m", + "access" : 0, + "descriptor" : "I", + "decoder" : -906745587 + }, { + "field" : "__n", + "owner" : "hl", + "name" : "n", + "access" : 0, + "descriptor" : "I", + "decoder" : 2005278339 + }, { + "field" : "__o", + "owner" : "hl", + "name" : "o", + "access" : 0, + "descriptor" : "I", + "decoder" : -1803037001 + }, { + "field" : "__p", + "owner" : "hl", + "name" : "p", + "access" : 0, + "descriptor" : "I", + "decoder" : -2138249593 + }, { + "field" : "__q", + "owner" : "hl", + "name" : "q", + "access" : 0, + "descriptor" : "I", + "decoder" : -342704077 + }, { + "field" : "__r", + "owner" : "hl", + "name" : "r", + "access" : 0, + "descriptor" : "I", + "decoder" : 1838662135 + }, { + "field" : "__t", + "owner" : "hl", + "name" : "t", + "access" : 0, + "descriptor" : "I", + "decoder" : 847034569 + }, { + "field" : "__u", + "owner" : "hl", + "name" : "u", + "access" : 0, + "descriptor" : "I", + "decoder" : 613974745 + }, { + "field" : "__v", + "owner" : "hl", + "name" : "v", + "access" : 0, + "descriptor" : "I", + "decoder" : -1833312363 + }, { + "field" : "__w", + "owner" : "hl", + "name" : "w", + "access" : 0, + "descriptor" : "I", + "decoder" : -1597518325 + }, { + "field" : "__y", + "owner" : "hl", + "name" : "y", + "access" : 0, + "descriptor" : "I", + "decoder" : 1220200273 + } ], + "methods" : [ { + "method" : "__a_390", + "owner" : "hl", + "name" : "a", + "access" : 0, + "parameters" : [ ], + "descriptor" : "(I)V" + } ], + "constructors" : [ { + "access" : 0, + "descriptor" : "()V" + } ] +}, { + "class" : "MidiFileReader", + "name" : "hf", + "super" : "java.lang.Object", + "access" : 33, + "interfaces" : [ ], + "fields" : [ { + "field" : "buffer", + "owner" : "hf", + "name" : "a", + "access" : 0, + "descriptor" : "Lgx;" + }, { + "field" : "division", + "owner" : "hf", + "name" : "s", + "access" : 0, + "descriptor" : "I" + }, { + "field" : "trackLengths", + "owner" : "hf", + "name" : "h", + "access" : 0, + "descriptor" : "[I" + }, { + "field" : "trackPositions", + "owner" : "hf", + "name" : "x", + "access" : 0, + "descriptor" : "[I" + }, { + "field" : "trackStarts", + "owner" : "hf", + "name" : "g", + "access" : 0, + "descriptor" : "[I" + }, { + "field" : "__p", + "owner" : "hf", + "name" : "p", + "access" : 0, + "descriptor" : "I" + }, { + "field" : "__f", + "owner" : "hf", + "name" : "f", + "access" : 0, + "descriptor" : "[I" + }, { + "field" : "__q", + "owner" : "hf", + "name" : "q", + "access" : 0, + "descriptor" : "J" + } ], + "methods" : [ { + "method" : "clear", + "owner" : "hf", + "name" : "s", + "access" : 0, + "parameters" : [ ], + "descriptor" : "()V" + }, { + "method" : "getPrioritizedTrack", + "owner" : "hf", + "name" : "r", + "access" : 0, + "parameters" : [ ], + "descriptor" : "()I" + }, { + "method" : "gotoTrack", + "owner" : "hf", + "name" : "h", + "access" : 0, + "parameters" : [ "trackId" ], + "descriptor" : "(I)V" + }, { + "method" : "isDone", + "owner" : "hf", + "name" : "t", + "access" : 0, + "parameters" : [ ], + "descriptor" : "()Z" + }, { + "method" : "isReady", + "owner" : "hf", + "name" : "g", + "access" : 0, + "parameters" : [ ], + "descriptor" : "()Z" + }, { + "method" : "markTrackPosition", + "owner" : "hf", + "name" : "f", + "access" : 0, + "parameters" : [ "trackId" ], + "descriptor" : "(I)V" + }, { + "method" : "parse", + "owner" : "hf", + "name" : "a", + "access" : 0, + "parameters" : [ "midi" ], + "descriptor" : "([B)V" + }, { + "method" : "readMessage", + "owner" : "hf", + "name" : "q", + "access" : 0, + "parameters" : [ "trackId" ], + "descriptor" : "(I)I" + }, { + "method" : "readMessage0", + "owner" : "hf", + "name" : "b", + "access" : 0, + "parameters" : [ "trackId" ], + "descriptor" : "(I)I" + }, { + "method" : "readTrackLength", + "owner" : "hf", + "name" : "m", + "access" : 0, + "parameters" : [ "trackId" ], + "descriptor" : "(I)V" + }, { + "method" : "reset", + "owner" : "hf", + "name" : "l", + "access" : 0, + "descriptor" : "(J)V" + }, { + "method" : "setTrackDone", + "owner" : "hf", + "name" : "p", + "access" : 0, + "parameters" : [ ], + "descriptor" : "()V" + }, { + "method" : "trackCount", + "owner" : "hf", + "name" : "x", + "access" : 0, + "parameters" : [ ], + "descriptor" : "()I" + }, { + "method" : "__n_391", + "owner" : "hf", + "name" : "n", + "access" : 0, + "parameters" : [ "arg0", "arg1" ], + "descriptor" : "(II)I" + }, { + "method" : "__e_392", + "owner" : "hf", + "name" : "e", + "access" : 0, + "parameters" : [ "arg0" ], + "descriptor" : "(I)J" + } ], + "constructors" : [ { + "access" : 0, + "descriptor" : "()V" + }, { + "access" : 0, + "descriptor" : "([B)V" + } ] +}, { + "class" : "MusicPatch", + "name" : "hc", + "super" : "hy", + "access" : 33, + "interfaces" : [ ], + "fields" : [ { + "field" : "rawSounds", + "owner" : "hc", + "name" : "s", + "access" : 0, + "descriptor" : "[Lce;" + }, { + "field" : "__h", + "owner" : "hc", + "name" : "h", + "access" : 0, + "descriptor" : "[B" + }, { + "field" : "__p", + "owner" : "hc", + "name" : "p", + "access" : 0, + "descriptor" : "[B" + }, { + "field" : "__x", + "owner" : "hc", + "name" : "x", + "access" : 0, + "descriptor" : "[B" + }, { + "field" : "__f", + "owner" : "hc", + "name" : "f", + "access" : 0, + "descriptor" : "[Lhu;" + }, { + "field" : "__a", + "owner" : "hc", + "name" : "a", + "access" : 0, + "descriptor" : "I", + "decoder" : -1144080431 + }, { + "field" : "__m", + "owner" : "hc", + "name" : "m", + "access" : 0, + "descriptor" : "[I" + }, { + "field" : "__g", + "owner" : "hc", + "name" : "g", + "access" : 0, + "descriptor" : "[S" + } ], + "methods" : [ { + "method" : "clear", + "owner" : "hc", + "name" : "s", + "access" : 0, + "parameters" : [ ], + "descriptor" : "(I)V" + }, { + "method" : "__a_393", + "owner" : "hc", + "name" : "a", + "access" : 0, + "parameters" : [ "arg0", "arg1", "arg2" ], + "descriptor" : "(Lds;[B[IB)Z" + } ], + "constructors" : [ { + "access" : 0, + "descriptor" : "([B)V" + } ] +}, { + "class" : "MusicPatchPcmStream", + "name" : "hb", + "super" : "do", + "access" : 33, + "interfaces" : [ ], + "fields" : [ { + "field" : "mixer", + "owner" : "hb", + "name" : "g", + "access" : 0, + "descriptor" : "Lcn;" + }, { + "field" : "queue", + "owner" : "hb", + "name" : "s", + "access" : 0, + "descriptor" : "Lhv;" + }, { + "field" : "superStream", + "owner" : "hb", + "name" : "a", + "access" : 0, + "descriptor" : "Lhn;" + } ], + "methods" : [ { + "method" : "__f_394", + "owner" : "hb", + "name" : "f", + "access" : 4, + "parameters" : [ ], + "descriptor" : "()Ldo;" + }, { + "method" : "__p_395", + "owner" : "hb", + "name" : "p", + "access" : 4, + "parameters" : [ ], + "descriptor" : "()Ldo;" + }, { + "method" : "__m_396", + "owner" : "hb", + "name" : "m", + "access" : 4, + "parameters" : [ ], + "descriptor" : "()I" + }, { + "method" : "__q_397", + "owner" : "hb", + "name" : "q", + "access" : 4, + "parameters" : [ "arg0", "arg1", "arg2" ], + "descriptor" : "([III)V" + }, { + "method" : "__n_398", + "owner" : "hb", + "name" : "n", + "access" : 4, + "parameters" : [ "arg0" ], + "descriptor" : "(I)V" + }, { + "method" : "__a_399", + "owner" : "hb", + "name" : "a", + "access" : 0, + "parameters" : [ "arg0", "arg1", "arg2", "arg3", "arg4" ], + "descriptor" : "(Lhl;[IIIII)V" + }, { + "method" : "__s_400", + "owner" : "hb", + "name" : "s", + "access" : 0, + "parameters" : [ "arg0", "arg1" ], + "descriptor" : "(Lhl;II)V" + } ], + "constructors" : [ { + "access" : 0, + "descriptor" : "(Lhn;)V" + } ] +}, { + "class" : "MusicTrack", + "name" : "hx", + "super" : "hy", + "access" : 33, + "interfaces" : [ ], + "fields" : [ { + "field" : "midi", + "owner" : "hx", + "name" : "s", + "access" : 0, + "descriptor" : "[B" + }, { + "field" : "table", + "owner" : "hx", + "name" : "a", + "access" : 0, + "descriptor" : "Lht;" + } ], + "methods" : [ { + "method" : "clear", + "owner" : "hx", + "name" : "g", + "access" : 0, + "parameters" : [ ], + "descriptor" : "()V" + }, { + "method" : "__s_401", + "owner" : "hx", + "name" : "s", + "access" : 0, + "parameters" : [ ], + "descriptor" : "()V" + } ], + "constructors" : [ { + "access" : 0, + "descriptor" : "(Lgx;)V" + } ] +}, { + "class" : "TileLocation", + "name" : "if", + "super" : "java.lang.Object", + "access" : 33, + "interfaces" : [ ], + "fields" : [ { + "field" : "plane", + "owner" : "if", + "name" : "a", + "access" : 1, + "descriptor" : "I", + "decoder" : 272303259 + }, { + "field" : "x", + "owner" : "if", + "name" : "s", + "access" : 1, + "descriptor" : "I", + "decoder" : -574898193 + }, { + "field" : "y", + "owner" : "if", + "name" : "g", + "access" : 1, + "descriptor" : "I", + "decoder" : 460058505 + } ], + "methods" : [ { + "method" : "equals0", + "owner" : "if", + "name" : "s", + "access" : 0, + "parameters" : [ "other" ], + "descriptor" : "(Lif;I)Z" + }, { + "method" : "packed", + "owner" : "if", + "name" : "a", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(I)I" + }, { + "method" : "toString0", + "owner" : "if", + "name" : "g", + "access" : 0, + "parameters" : [ "separator" ], + "descriptor" : "(Ljava/lang/String;B)Ljava/lang/String;" + }, { + "method" : "__equals_402", + "owner" : "if", + "name" : "equals", + "access" : 1, + "parameters" : [ "arg0" ], + "descriptor" : "(Ljava/lang/Object;)Z" + }, { + "method" : "__hashCode_403", + "owner" : "if", + "name" : "hashCode", + "access" : 1, + "parameters" : [ ], + "descriptor" : "()I" + }, { + "method" : "__toString_404", + "owner" : "if", + "name" : "toString", + "access" : 1, + "parameters" : [ ], + "descriptor" : "()Ljava/lang/String;" + } ], + "constructors" : [ { + "access" : 1, + "descriptor" : "(III)V" + }, { + "access" : 1, + "descriptor" : "(Lif;)V" + }, { + "access" : 1, + "descriptor" : "(I)V" + } ] +}, { + "class" : "PlayerAppearance", + "name" : "il", + "super" : "java.lang.Object", + "access" : 33, + "interfaces" : [ ], + "fields" : [ { + "field" : "bodyColors", + "owner" : "il", + "name" : "s", + "access" : 0, + "descriptor" : "[I" + }, { + "field" : "equipment", + "owner" : "il", + "name" : "a", + "access" : 0, + "descriptor" : "[I" + }, { + "field" : "isFemale", + "owner" : "il", + "name" : "g", + "access" : 1, + "descriptor" : "Z" + }, { + "field" : "npcTransformId", + "owner" : "il", + "name" : "x", + "access" : 1, + "descriptor" : "I", + "decoder" : 1192982463 + }, { + "field" : "__f", + "owner" : "il", + "name" : "f", + "access" : 0, + "descriptor" : "J", + "decoder" : -5550629652888001711 + }, { + "field" : "__h", + "owner" : "il", + "name" : "h", + "access" : 0, + "descriptor" : "J", + "decoder" : -2050415532807345505 + } ], + "methods" : [ { + "method" : "getChatHeadId", + "owner" : "il", + "name" : "q", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(I)I" + }, { + "method" : "getModel", + "owner" : "il", + "name" : "p", + "access" : 1, + "descriptor" : "(Lju;ILju;IB)Ldv;" + }, { + "method" : "getModelData", + "owner" : "il", + "name" : "m", + "access" : 0, + "parameters" : [ ], + "descriptor" : "(I)Ldk;" + }, { + "method" : "__a_405", + "owner" : "il", + "name" : "a", + "access" : 1, + "parameters" : [ "arg0", "arg1", "arg2", "arg3" ], + "descriptor" : "([I[IZII)V" + }, { + "method" : "__s_406", + "owner" : "il", + "name" : "s", + "access" : 1, + "parameters" : [ "arg0", "arg1" ], + "descriptor" : "(IZI)V" + }, { + "method" : "__g_407", + "owner" : "il", + "name" : "g", + "access" : 1, + "parameters" : [ "arg0", "arg1" ], + "descriptor" : "(IZI)V" + }, { + "method" : "__x_408", + "owner" : "il", + "name" : "x", + "access" : 1, + "parameters" : [ "arg0" ], + "descriptor" : "(ZI)V" + }, { + "method" : "__h_409", + "owner" : "il", + "name" : "h", + "access" : 1, + "parameters" : [ "arg0" ], + "descriptor" : "(Lgx;B)V" + }, { + "method" : "__f_410", + "owner" : "il", + "name" : "f", + "access" : 0, + "parameters" : [ ], + "descriptor" : "(I)V" + } ], + "constructors" : [ { + "access" : 1, + "descriptor" : "()V" + } ] +}, { + "class" : "Widget", + "name" : "ia", + "super" : "hy", + "access" : 33, + "interfaces" : [ ], + "fields" : [ { + "field" : "actions", + "owner" : "ia", + "name" : "dz", + "access" : 1, + "descriptor" : "[Ljava/lang/String;" + }, { + "field" : "buttonText", + "owner" : "ia", + "name" : "ed", + "access" : 1, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "buttonType", + "owner" : "ia", + "name" : "d", + "access" : 1, + "descriptor" : "I", + "decoder" : -986355207 + }, { + "field" : "childIndex", + "owner" : "ia", + "name" : "k", + "access" : 1, + "descriptor" : "I", + "decoder" : 519422761 + }, { + "field" : "children", + "owner" : "ia", + "name" : "ec", + "access" : 1, + "descriptor" : "[Lia;" + }, { + "field" : "clickMask", + "owner" : "ia", + "name" : "cf", + "access" : 1, + "descriptor" : "I", + "decoder" : -184106217 + }, { + "field" : "color", + "owner" : "ia", + "name" : "aq", + "access" : 1, + "descriptor" : "I", + "decoder" : -1339085337 + }, { + "field" : "color2", + "owner" : "ia", + "name" : "al", + "access" : 1, + "descriptor" : "I", + "decoder" : -1470098041 + }, { + "field" : "contentType", + "owner" : "ia", + "name" : "w", + "access" : 1, + "descriptor" : "I", + "decoder" : -1559194133 + }, { + "field" : "cs1ComparisonValues", + "owner" : "ia", + "name" : "ej", + "access" : 1, + "descriptor" : "[I" + }, { + "field" : "cs1Comparisons", + "owner" : "ia", + "name" : "ez", + "access" : 1, + "descriptor" : "[I" + }, { + "field" : "cs1Instructions", + "owner" : "ia", + "name" : "ex", + "access" : 1, + "descriptor" : "[[I" + }, { + "field" : "cycle", + "owner" : "ia", + "name" : "fm", + "access" : 1, + "descriptor" : "I", + "decoder" : 413573757 + }, { + "field" : "dataText", + "owner" : "ia", + "name" : "cl", + "access" : 1, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "dragThreshold", + "owner" : "ia", + "name" : "dl", + "access" : 1, + "descriptor" : "I", + "decoder" : 861361223 + }, { + "field" : "dragZoneSize", + "owner" : "ia", + "name" : "dg", + "access" : 1, + "descriptor" : "I", + "decoder" : -808787693 + }, { + "field" : "fill", + "owner" : "ia", + "name" : "ao", + "access" : 1, + "descriptor" : "Z" + }, { + "field" : "fontId", + "owner" : "ia", + "name" : "bm", + "access" : 1, + "descriptor" : "I", + "decoder" : -705998701 + }, { + "field" : "hasListener", + "owner" : "ia", + "name" : "dt", + "access" : 1, + "descriptor" : "Z" + }, { + "field" : "height", + "owner" : "ia", + "name" : "an", + "access" : 1, + "descriptor" : "I", + "decoder" : -1657907411 + }, { + "field" : "heightAlignment", + "owner" : "ia", + "name" : "z", + "access" : 1, + "descriptor" : "I", + "decoder" : 1817591765 + }, { + "field" : "id", + "owner" : "ia", + "name" : "y", + "access" : 1, + "descriptor" : "I", + "decoder" : 521895283 + }, { + "field" : "invTransmitTriggers", + "owner" : "ia", + "name" : "dv", + "access" : 1, + "descriptor" : "[I" + }, { + "field" : "inventorySprites", + "owner" : "ia", + "name" : "cd", + "access" : 1, + "descriptor" : "[I" + }, { + "field" : "inventoryXOffsets", + "owner" : "ia", + "name" : "cb", + "access" : 1, + "descriptor" : "[I" + }, { + "field" : "inventoryYOffsets", + "owner" : "ia", + "name" : "cp", + "access" : 1, + "descriptor" : "[I" + }, { + "field" : "isHidden", + "owner" : "ia", + "name" : "au", + "access" : 1, + "descriptor" : "Z" + }, { + "field" : "isIf3", + "owner" : "ia", + "name" : "u", + "access" : 1, + "descriptor" : "Z" + }, { + "field" : "isScrollBar", + "owner" : "ia", + "name" : "dq", + "access" : 1, + "descriptor" : "Z" + }, { + "field" : "itemActions", + "owner" : "ia", + "name" : "cq", + "access" : 1, + "descriptor" : "[Ljava/lang/String;" + }, { + "field" : "itemId", + "owner" : "ia", + "name" : "el", + "access" : 1, + "descriptor" : "I", + "decoder" : 517430305 + }, { + "field" : "itemIds", + "owner" : "ia", + "name" : "ey", + "access" : 1, + "descriptor" : "[I" + }, { + "field" : "itemQuantities", + "owner" : "ia", + "name" : "ee", + "access" : 1, + "descriptor" : "[I" + }, { + "field" : "itemQuantity", + "owner" : "ia", + "name" : "eq", + "access" : 1, + "descriptor" : "I", + "decoder" : 384592949 + }, { + "field" : "lineWid", + "owner" : "ia", + "name" : "ak", + "access" : 1, + "descriptor" : "I", + "decoder" : -211922531 + }, { + "field" : "modelAngleX", + "owner" : "ia", + "name" : "bj", + "access" : 1, + "descriptor" : "I", + "decoder" : -1384877877 + }, { + "field" : "modelAngleY", + "owner" : "ia", + "name" : "bq", + "access" : 1, + "descriptor" : "I", + "decoder" : 2013691035 + }, { + "field" : "modelAngleZ", + "owner" : "ia", + "name" : "by", + "access" : 1, + "descriptor" : "I", + "decoder" : 141904677 + }, { + "field" : "modelFrame", + "owner" : "ia", + "name" : "eu", + "access" : 1, + "descriptor" : "I", + "decoder" : 1113155467 + }, { + "field" : "modelFrameCycle", + "owner" : "ia", + "name" : "eh", + "access" : 1, + "descriptor" : "I", + "decoder" : 367712227 + }, { + "field" : "modelId", + "owner" : "ia", + "name" : "bk", + "access" : 1, + "descriptor" : "I", + "decoder" : -286899879 + }, { + "field" : "modelId2", + "owner" : "ia", + "name" : "bn", + "access" : 0, + "descriptor" : "I", + "decoder" : -1240377769 + }, { + "field" : "modelOffsetX", + "owner" : "ia", + "name" : "bw", + "access" : 1, + "descriptor" : "I", + "decoder" : 1264010429 + }, { + "field" : "modelOffsetY", + "owner" : "ia", + "name" : "bh", + "access" : 1, + "descriptor" : "I", + "decoder" : 1955454009 + }, { + "field" : "modelOrthog", + "owner" : "ia", + "name" : "bs", + "access" : 1, + "descriptor" : "Z" + }, { + "field" : "modelType", + "owner" : "ia", + "name" : "bg", + "access" : 1, + "descriptor" : "I", + "decoder" : 1805175817 + }, { + "field" : "modelType2", + "owner" : "ia", + "name" : "br", + "access" : 0, + "descriptor" : "I", + "decoder" : 648741915 + }, { + "field" : "modelZoom", + "owner" : "ia", + "name" : "bu", + "access" : 1, + "descriptor" : "I", + "decoder" : -1903872069 + }, { + "field" : "mouseOverColor", + "owner" : "ia", + "name" : "az", + "access" : 1, + "descriptor" : "I", + "decoder" : 2049378189 + }, { + "field" : "mouseOverColor2", + "owner" : "ia", + "name" : "ac", + "access" : 1, + "descriptor" : "I", + "decoder" : -1321898327 + }, { + "field" : "mouseOverRedirect", + "owner" : "ia", + "name" : "eg", + "access" : 1, + "descriptor" : "I", + "decoder" : -924150949 + }, { + "field" : "noClickThrough", + "owner" : "ia", + "name" : "fq", + "access" : 1, + "descriptor" : "Z" + }, { + "field" : "onClick", + "owner" : "ia", + "name" : "do", + "access" : 1, + "descriptor" : "[Ljava/lang/Object;" + }, { + "field" : "onClickRepeat", + "owner" : "ia", + "name" : "dd", + "access" : 1, + "descriptor" : "[Ljava/lang/Object;" + }, { + "field" : "onDrag", + "owner" : "ia", + "name" : "dy", + "access" : 1, + "descriptor" : "[Ljava/lang/Object;" + }, { + "field" : "onDragComplete", + "owner" : "ia", + "name" : "dk", + "access" : 1, + "descriptor" : "[Ljava/lang/Object;" + }, { + "field" : "onHold", + "owner" : "ia", + "name" : "dj", + "access" : 1, + "descriptor" : "[Ljava/lang/Object;" + }, { + "field" : "onInvTransmit", + "owner" : "ia", + "name" : "de", + "access" : 1, + "descriptor" : "[Ljava/lang/Object;" + }, { + "field" : "onLoad", + "owner" : "ia", + "name" : "dr", + "access" : 1, + "descriptor" : "[Ljava/lang/Object;" + }, { + "field" : "onMouseLeave", + "owner" : "ia", + "name" : "du", + "access" : 1, + "descriptor" : "[Ljava/lang/Object;" + }, { + "field" : "onMouseOver", + "owner" : "ia", + "name" : "dx", + "access" : 1, + "descriptor" : "[Ljava/lang/Object;" + }, { + "field" : "onMouseRepeat", + "owner" : "ia", + "name" : "da", + "access" : 1, + "descriptor" : "[Ljava/lang/Object;" + }, { + "field" : "onOp", + "owner" : "ia", + "name" : "eb", + "access" : 1, + "descriptor" : "[Ljava/lang/Object;" + }, { + "field" : "onRelease", + "owner" : "ia", + "name" : "dc", + "access" : 1, + "descriptor" : "[Ljava/lang/Object;" + }, { + "field" : "onScroll", + "owner" : "ia", + "name" : "ev", + "access" : 1, + "descriptor" : "[Ljava/lang/Object;" + }, { + "field" : "onStatTransmit", + "owner" : "ia", + "name" : "di", + "access" : 1, + "descriptor" : "[Ljava/lang/Object;" + }, { + "field" : "onTargetEnter", + "owner" : "ia", + "name" : "dh", + "access" : 1, + "descriptor" : "[Ljava/lang/Object;" + }, { + "field" : "onTargetLeave", + "owner" : "ia", + "name" : "dw", + "access" : 1, + "descriptor" : "[Ljava/lang/Object;" + }, { + "field" : "onTimer", + "owner" : "ia", + "name" : "df", + "access" : 1, + "descriptor" : "[Ljava/lang/Object;" + }, { + "field" : "onVarTransmit", + "owner" : "ia", + "name" : "db", + "access" : 1, + "descriptor" : "[Ljava/lang/Object;" + }, { + "field" : "outline", + "owner" : "ia", + "name" : "bz", + "access" : 1, + "descriptor" : "I", + "decoder" : 583207351 + }, { + "field" : "paddingX", + "owner" : "ia", + "name" : "cc", + "access" : 1, + "descriptor" : "I", + "decoder" : -1147674915 + }, { + "field" : "paddingY", + "owner" : "ia", + "name" : "ct", + "access" : 1, + "descriptor" : "I", + "decoder" : 1183417793 + }, { + "field" : "parent", + "owner" : "ia", + "name" : "ds", + "access" : 1, + "descriptor" : "Lia;" + }, { + "field" : "parentId", + "owner" : "ia", + "name" : "av", + "access" : 1, + "descriptor" : "I", + "decoder" : -282758011 + }, { + "field" : "rawHeight", + "owner" : "ia", + "name" : "aa", + "access" : 1, + "descriptor" : "I", + "decoder" : -1348302953 + }, { + "field" : "rawWidth", + "owner" : "ia", + "name" : "ay", + "access" : 1, + "descriptor" : "I", + "decoder" : -751500435 + }, { + "field" : "rawX", + "owner" : "ia", + "name" : "ag", + "access" : 1, + "descriptor" : "I", + "decoder" : -46278607 + }, { + "field" : "rawY", + "owner" : "ia", + "name" : "af", + "access" : 1, + "descriptor" : "I", + "decoder" : -1313502419 + }, { + "field" : "rectangleMode", + "owner" : "ia", + "name" : "ad", + "access" : 1, + "descriptor" : "Llp;" + }, { + "field" : "rootIndex", + "owner" : "ia", + "name" : "fo", + "access" : 1, + "descriptor" : "I", + "decoder" : 1945546151 + }, { + "field" : "scrollHeight", + "owner" : "ia", + "name" : "ai", + "access" : 1, + "descriptor" : "I", + "decoder" : 1584805923 + }, { + "field" : "scrollWidth", + "owner" : "ia", + "name" : "ar", + "access" : 1, + "descriptor" : "I", + "decoder" : -2136776307 + }, { + "field" : "scrollX", + "owner" : "ia", + "name" : "aj", + "access" : 1, + "descriptor" : "I", + "decoder" : 1841640021 + }, { + "field" : "scrollY", + "owner" : "ia", + "name" : "as", + "access" : 1, + "descriptor" : "I", + "decoder" : 1345120769 + }, { + "field" : "sequenceId", + "owner" : "ia", + "name" : "bl", + "access" : 1, + "descriptor" : "I", + "decoder" : 1459062589 + }, { + "field" : "sequenceId2", + "owner" : "ia", + "name" : "bb", + "access" : 1, + "descriptor" : "I", + "decoder" : -1049312937 + }, { + "field" : "spellActionName", + "owner" : "ia", + "name" : "dn", + "access" : 1, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "spellName", + "owner" : "ia", + "name" : "ea", + "access" : 1, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "spriteAngle", + "owner" : "ia", + "name" : "be", + "access" : 1, + "descriptor" : "I", + "decoder" : 1728858633 + }, { + "field" : "spriteFlipH", + "owner" : "ia", + "name" : "bp", + "access" : 1, + "descriptor" : "Z" + }, { + "field" : "spriteFlipV", + "owner" : "ia", + "name" : "bv", + "access" : 1, + "descriptor" : "Z" + }, { + "field" : "spriteId", + "owner" : "ia", + "name" : "bo", + "access" : 1, + "descriptor" : "I", + "decoder" : -159703791 + }, { + "field" : "spriteId2", + "owner" : "ia", + "name" : "bf", + "access" : 1, + "descriptor" : "I", + "decoder" : -803778329 + }, { + "field" : "spriteShadow", + "owner" : "ia", + "name" : "bi", + "access" : 1, + "descriptor" : "I", + "decoder" : -1826249299 + }, { + "field" : "spriteTiling", + "owner" : "ia", + "name" : "bd", + "access" : 1, + "descriptor" : "Z" + }, { + "field" : "statTransmitTriggers", + "owner" : "ia", + "name" : "dp", + "access" : 1, + "descriptor" : "[I" + }, { + "field" : "text", + "owner" : "ia", + "name" : "cm", + "access" : 1, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "text2", + "owner" : "ia", + "name" : "ch", + "access" : 1, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "textLineHeight", + "owner" : "ia", + "name" : "cg", + "access" : 1, + "descriptor" : "I", + "decoder" : -783980927 + }, { + "field" : "textShadowed", + "owner" : "ia", + "name" : "cx", + "access" : 1, + "descriptor" : "Z" + }, { + "field" : "textXAlignment", + "owner" : "ia", + "name" : "ca", + "access" : 1, + "descriptor" : "I", + "decoder" : -1454280795 + }, { + "field" : "textYAlignment", + "owner" : "ia", + "name" : "cy", + "access" : 1, + "descriptor" : "I", + "decoder" : -160947907 + }, { + "field" : "transparency", + "owner" : "ia", + "name" : "ax", + "access" : 1, + "descriptor" : "I", + "decoder" : 1943802113 + }, { + "field" : "type", + "owner" : "ia", + "name" : "v", + "access" : 1, + "descriptor" : "I", + "decoder" : 2135617197 + }, { + "field" : "varTransmitTriggers", + "owner" : "ia", + "name" : "dm", + "access" : 1, + "descriptor" : "[I" + }, { + "field" : "width", + "owner" : "ia", + "name" : "aw", + "access" : 1, + "descriptor" : "I", + "decoder" : -670001097 + }, { + "field" : "widthAlignment", + "owner" : "ia", + "name" : "j", + "access" : 1, + "descriptor" : "I", + "decoder" : 1413953597 + }, { + "field" : "x", + "owner" : "ia", + "name" : "ab", + "access" : 1, + "descriptor" : "I", + "decoder" : -1653418885 + }, { + "field" : "xAlignment", + "owner" : "ia", + "name" : "i", + "access" : 1, + "descriptor" : "I", + "decoder" : -1119875119 + }, { + "field" : "y", + "owner" : "ia", + "name" : "ah", + "access" : 1, + "descriptor" : "I", + "decoder" : -659621809 + }, { + "field" : "yAlignment", + "owner" : "ia", + "name" : "c", + "access" : 1, + "descriptor" : "I", + "decoder" : 79006091 + }, { + "field" : "__am", + "owner" : "ia", + "name" : "am", + "access" : 1, + "descriptor" : "Z" + }, { + "field" : "__bx", + "owner" : "ia", + "name" : "bx", + "access" : 1, + "descriptor" : "Z" + }, { + "field" : "__cs", + "owner" : "ia", + "name" : "cs", + "access" : 1, + "descriptor" : "Z" + }, { + "field" : "__et", + "owner" : "ia", + "name" : "et", + "access" : 1, + "descriptor" : "Z" + }, { + "field" : "__fd", + "owner" : "ia", + "name" : "fd", + "access" : 1, + "descriptor" : "Z" + }, { + "field" : "__fp", + "owner" : "ia", + "name" : "fp", + "access" : 1, + "descriptor" : "Z" + }, { + "field" : "__fz", + "owner" : "ia", + "name" : "fz", + "access" : 1, + "descriptor" : "Z" + }, { + "field" : "__cn", + "owner" : "ia", + "name" : "cn", + "access" : 1, + "descriptor" : "[[B" + }, { + "field" : "__cw", + "owner" : "ia", + "name" : "cw", + "access" : 1, + "descriptor" : "[[B" + }, { + "field" : "__ae", + "owner" : "ia", + "name" : "ae", + "access" : 1, + "descriptor" : "I", + "decoder" : -1603514911 + }, { + "field" : "__ap", + "owner" : "ia", + "name" : "ap", + "access" : 1, + "descriptor" : "I", + "decoder" : -1329302643 + }, { + "field" : "__at", + "owner" : "ia", + "name" : "at", + "access" : 1, + "descriptor" : "I", + "decoder" : 324112871 + }, { + "field" : "__ba", + "owner" : "ia", + "name" : "ba", + "access" : 1, + "descriptor" : "I", + "decoder" : -768418655 + }, { + "field" : "__bc", + "owner" : "ia", + "name" : "bc", + "access" : 1, + "descriptor" : "I", + "decoder" : 303174329 + }, { + "field" : "__bt", + "owner" : "ia", + "name" : "bt", + "access" : 1, + "descriptor" : "I", + "decoder" : -82311635 + }, { + "field" : "__fe", + "owner" : "ia", + "name" : "fe", + "access" : 1, + "descriptor" : "I", + "decoder" : -244573369 + }, { + "field" : "__fg", + "owner" : "ia", + "name" : "fg", + "access" : 1, + "descriptor" : "I", + "decoder" : 1772559523 + }, { + "field" : "__fj", + "owner" : "ia", + "name" : "fj", + "access" : 1, + "descriptor" : "I", + "decoder" : -1835158917 + }, { + "field" : "__fn", + "owner" : "ia", + "name" : "fn", + "access" : 1, + "descriptor" : "I", + "decoder" : -1728331147 + }, { + "field" : "__cu", + "owner" : "ia", + "name" : "cu", + "access" : 1, + "descriptor" : "[I" + }, { + "field" : "__cv", + "owner" : "ia", + "name" : "cv", + "access" : 1, + "descriptor" : "[I" + }, { + "field" : "__ff", + "owner" : "ia", + "name" : "ff", + "access" : 1, + "descriptor" : "[I" + }, { + "field" : "__ef", + "owner" : "ia", + "name" : "ef", + "access" : 1, + "descriptor" : "[Ljava/lang/Object;" + }, { + "field" : "__ei", + "owner" : "ia", + "name" : "ei", + "access" : 1, + "descriptor" : "[Ljava/lang/Object;" + }, { + "field" : "__ek", + "owner" : "ia", + "name" : "ek", + "access" : 1, + "descriptor" : "[Ljava/lang/Object;" + }, { + "field" : "__em", + "owner" : "ia", + "name" : "em", + "access" : 1, + "descriptor" : "[Ljava/lang/Object;" + }, { + "field" : "__en", + "owner" : "ia", + "name" : "en", + "access" : 1, + "descriptor" : "[Ljava/lang/Object;" + }, { + "field" : "__eo", + "owner" : "ia", + "name" : "eo", + "access" : 1, + "descriptor" : "[Ljava/lang/Object;" + }, { + "field" : "__ep", + "owner" : "ia", + "name" : "ep", + "access" : 1, + "descriptor" : "[Ljava/lang/Object;" + }, { + "field" : "__er", + "owner" : "ia", + "name" : "er", + "access" : 1, + "descriptor" : "[Ljava/lang/Object;" + }, { + "field" : "__es", + "owner" : "ia", + "name" : "es", + "access" : 1, + "descriptor" : "[Ljava/lang/Object;" + }, { + "field" : "__ew", + "owner" : "ia", + "name" : "ew", + "access" : 1, + "descriptor" : "[Ljava/lang/Object;" + } ], + "methods" : [ { + "method" : "decode", + "owner" : "ia", + "name" : "f", + "access" : 0, + "parameters" : [ "buffer" ], + "descriptor" : "(Lgx;B)V" + }, { + "method" : "decodeLegacy", + "owner" : "ia", + "name" : "h", + "access" : 0, + "parameters" : [ "buffer" ], + "descriptor" : "(Lgx;I)V" + }, { + "method" : "getFont", + "owner" : "ia", + "name" : "n", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(I)Lkt;" + }, { + "method" : "getInventorySprite", + "owner" : "ia", + "name" : "e", + "access" : 1, + "descriptor" : "(IB)Lld;" + }, { + "method" : "getModel", + "owner" : "ia", + "name" : "r", + "access" : 1, + "parameters" : [ "sequence", "frame", "b", "appearance" ], + "descriptor" : "(Lju;IZLil;B)Ldv;" + }, { + "method" : "getSprite", + "owner" : "ia", + "name" : "b", + "access" : 1, + "parameters" : [ "b" ], + "descriptor" : "(ZB)Lld;" + }, { + "method" : "getSpriteMask", + "owner" : "ia", + "name" : "t", + "access" : 1, + "parameters" : [ "b" ], + "descriptor" : "(ZI)Lhk;" + }, { + "method" : "readListener", + "owner" : "ia", + "name" : "p", + "access" : 0, + "parameters" : [ "buffer" ], + "descriptor" : "(Lgx;I)[Ljava/lang/Object;" + }, { + "method" : "readListenerTriggers", + "owner" : "ia", + "name" : "m", + "access" : 0, + "parameters" : [ "buffer" ], + "descriptor" : "(Lgx;B)[I" + }, { + "method" : "setAction", + "owner" : "ia", + "name" : "o", + "access" : 1, + "parameters" : [ "index", "s" ], + "descriptor" : "(ILjava/lang/String;I)V" + }, { + "method" : "swapItems", + "owner" : "ia", + "name" : "q", + "access" : 1, + "parameters" : [ "indexA", "indexB" ], + "descriptor" : "(III)V" + } ], + "constructors" : [ { + "access" : 1, + "descriptor" : "()V" + } ] +}, { + "class" : "PlayerType", + "name" : "is", + "super" : "java.lang.Object", + "access" : 33, + "interfaces" : [ "gr" ], + "fields" : [ { + "field" : "id", + "owner" : "is", + "name" : "p", + "access" : 16, + "descriptor" : "I", + "decoder" : 1798871115 + }, { + "field" : "isPrivileged", + "owner" : "is", + "name" : "q", + "access" : 17, + "descriptor" : "Z" + }, { + "field" : "isUser", + "owner" : "is", + "name" : "b", + "access" : 17, + "descriptor" : "Z" + }, { + "field" : "modIcon", + "owner" : "is", + "name" : "m", + "access" : 17, + "descriptor" : "I", + "decoder" : 1132360445 + } ], + "methods" : [ { + "method" : "__x_411", + "owner" : "is", + "name" : "x", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(I)I" + } ], + "constructors" : [ { + "access" : 0, + "descriptor" : "(IIZZZ)V" + } ] +}, { + "class" : "AbstractIndexCache", + "name" : "iz", + "super" : "java.lang.Object", + "access" : 1057, + "interfaces" : [ ], + "fields" : [ { + "field" : "archiveCount", + "owner" : "iz", + "name" : "s", + "access" : 0, + "descriptor" : "I", + "decoder" : 109040445 + }, { + "field" : "archiveCrcs", + "owner" : "iz", + "name" : "f", + "access" : 0, + "descriptor" : "[I" + }, { + "field" : "archiveIds", + "owner" : "iz", + "name" : "g", + "access" : 0, + "descriptor" : "[I" + }, { + "field" : "archiveNameHashTable", + "owner" : "iz", + "name" : "h", + "access" : 0, + "descriptor" : "Lgt;" + }, { + "field" : "archiveNameHashes", + "owner" : "iz", + "name" : "x", + "access" : 0, + "descriptor" : "[I" + }, { + "field" : "archiveVersions", + "owner" : "iz", + "name" : "p", + "access" : 0, + "descriptor" : "[I" + }, { + "field" : "archives", + "owner" : "iz", + "name" : "e", + "access" : 0, + "descriptor" : "[Ljava/lang/Object;" + }, { + "field" : "hash", + "owner" : "iz", + "name" : "l", + "access" : 1, + "descriptor" : "I", + "decoder" : -2112807423 + }, { + "field" : "recordCounts", + "owner" : "iz", + "name" : "m", + "access" : 0, + "descriptor" : "[I" + }, { + "field" : "recordIds", + "owner" : "iz", + "name" : "q", + "access" : 0, + "descriptor" : "[[I" + }, { + "field" : "recordNameHashTables", + "owner" : "iz", + "name" : "n", + "access" : 0, + "descriptor" : "[Lgt;" + }, { + "field" : "recordNameHashes", + "owner" : "iz", + "name" : "b", + "access" : 0, + "descriptor" : "[[I" + }, { + "field" : "records", + "owner" : "iz", + "name" : "r", + "access" : 0, + "descriptor" : "[[Ljava/lang/Object;" + }, { + "field" : "releaseArchives", + "owner" : "iz", + "name" : "o", + "access" : 0, + "descriptor" : "Z" + }, { + "field" : "shallowRecords", + "owner" : "iz", + "name" : "u", + "access" : 0, + "descriptor" : "Z" + } ], + "methods" : [ { + "method" : "archiveLoadPercent", + "owner" : "iz", + "name" : "q", + "access" : 0, + "descriptor" : "(II)I" + }, { + "method" : "archiveLoadPercentByName", + "owner" : "iz", + "name" : "ae", + "access" : 1, + "parameters" : [ "archiveName" ], + "descriptor" : "(Ljava/lang/String;B)I" + }, { + "method" : "buildRecords", + "owner" : "iz", + "name" : "v", + "access" : 0, + "parameters" : [ "archive", "xteaKey" ], + "descriptor" : "(I[II)Z" + }, { + "method" : "getArchiveId", + "owner" : "iz", + "name" : "c", + "access" : 1, + "parameters" : [ "archiveName" ], + "descriptor" : "(Ljava/lang/String;I)I" + }, { + "method" : "getRecord", + "owner" : "iz", + "name" : "n", + "access" : 1, + "parameters" : [ "archive", "record" ], + "descriptor" : "(III)[B" + }, { + "method" : "getRecordFlat", + "owner" : "iz", + "name" : "e", + "access" : 1, + "parameters" : [ "archiveOrRecord" ], + "descriptor" : "(II)[B" + }, { + "method" : "getRecordId", + "owner" : "iz", + "name" : "aa", + "access" : 1, + "parameters" : [ "archiveId", "recordName" ], + "descriptor" : "(ILjava/lang/String;I)I" + }, { + "method" : "loadArchive", + "owner" : "iz", + "name" : "r", + "access" : 0, + "descriptor" : "(IB)V" + }, { + "method" : "setIndexReference", + "owner" : "iz", + "name" : "a", + "access" : 0, + "descriptor" : "([BB)V" + }, { + "method" : "takeRecord", + "owner" : "iz", + "name" : "g", + "access" : 1, + "parameters" : [ "archive", "record" ], + "descriptor" : "(III)[B" + }, { + "method" : "takeRecordByNames", + "owner" : "iz", + "name" : "ah", + "access" : 1, + "parameters" : [ "archiveName", "recordName" ], + "descriptor" : "(Ljava/lang/String;Ljava/lang/String;I)[B" + }, { + "method" : "takeRecordEncrypted", + "owner" : "iz", + "name" : "x", + "access" : 1, + "parameters" : [ "archive", "record", "xteaKey" ], + "descriptor" : "(II[II)[B" + }, { + "method" : "takeRecordFlat", + "owner" : "iz", + "name" : "b", + "access" : 1, + "parameters" : [ "archiveOrRecord" ], + "descriptor" : "(II)[B" + }, { + "method" : "tryLoadArchive", + "owner" : "iz", + "name" : "p", + "access" : 1, + "parameters" : [ "archive" ], + "descriptor" : "(II)Z" + }, { + "method" : "tryLoadArchiveByName", + "owner" : "iz", + "name" : "an", + "access" : 1, + "parameters" : [ "archiveName" ], + "descriptor" : "(Ljava/lang/String;B)Z" + }, { + "method" : "tryLoadRecord", + "owner" : "iz", + "name" : "h", + "access" : 1, + "parameters" : [ "archive", "record" ], + "descriptor" : "(IIB)Z" + }, { + "method" : "tryLoadRecordByNames", + "owner" : "iz", + "name" : "aw", + "access" : 1, + "parameters" : [ "archiveName", "recordName" ], + "descriptor" : "(Ljava/lang/String;Ljava/lang/String;I)Z" + }, { + "method" : "__s_412", + "owner" : "iz", + "name" : "s", + "access" : 0, + "parameters" : [ "arg0" ], + "descriptor" : "(II)V" + }, { + "method" : "__f_413", + "owner" : "iz", + "name" : "f", + "access" : 1, + "parameters" : [ "arg0" ], + "descriptor" : "(II)Z" + }, { + "method" : "__m_414", + "owner" : "iz", + "name" : "m", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(I)Z" + }, { + "method" : "__t_415", + "owner" : "iz", + "name" : "t", + "access" : 1, + "parameters" : [ "arg0" ], + "descriptor" : "(II)[I" + }, { + "method" : "__l_416", + "owner" : "iz", + "name" : "l", + "access" : 1, + "parameters" : [ "arg0" ], + "descriptor" : "(II)I" + }, { + "method" : "__o_417", + "owner" : "iz", + "name" : "o", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(I)I" + }, { + "method" : "__u_418", + "owner" : "iz", + "name" : "u", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(I)V" + }, { + "method" : "__y_419", + "owner" : "iz", + "name" : "y", + "access" : 1, + "parameters" : [ "arg0" ], + "descriptor" : "(IB)V" + }, { + "method" : "__k_420", + "owner" : "iz", + "name" : "k", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(I)V" + }, { + "method" : "__ab_421", + "owner" : "iz", + "name" : "ab", + "access" : 1, + "parameters" : [ "arg0", "arg1" ], + "descriptor" : "(Ljava/lang/String;Ljava/lang/String;I)Z" + }, { + "method" : "__at_422", + "owner" : "iz", + "name" : "at", + "access" : 1, + "parameters" : [ "arg0" ], + "descriptor" : "(Ljava/lang/String;I)V" + } ], + "constructors" : [ { + "access" : 0, + "descriptor" : "(ZZ)V" + } ] +}, { + "class" : "IndexStoreActionHandler", + "name" : "id", + "super" : "java.lang.Object", + "access" : 33, + "interfaces" : [ "java.lang.Runnable" ], + "fields" : [ ], + "methods" : [ { + "method" : "__run_423", + "owner" : "id", + "name" : "run", + "access" : 1, + "parameters" : [ ], + "descriptor" : "()V" + } ], + "constructors" : [ { + "access" : 0, + "descriptor" : "()V" + } ] +}, { + "class" : "IndexCache", + "name" : "in", + "super" : "iz", + "access" : 33, + "interfaces" : [ ], + "fields" : [ { + "field" : "index", + "owner" : "in", + "name" : "j", + "access" : 0, + "descriptor" : "I", + "decoder" : 797557679 + }, { + "field" : "indexReferenceCrc", + "owner" : "in", + "name" : "aa", + "access" : 0, + "descriptor" : "I", + "decoder" : -1050514093 + }, { + "field" : "indexReferenceVersion", + "owner" : "in", + "name" : "ab", + "access" : 0, + "descriptor" : "I", + "decoder" : 1797201163 + }, { + "field" : "indexStore", + "owner" : "in", + "name" : "i", + "access" : 0, + "descriptor" : "Lfb;" + }, { + "field" : "referenceStore", + "owner" : "in", + "name" : "c", + "access" : 0, + "descriptor" : "Lfb;" + }, { + "field" : "validArchives", + "owner" : "in", + "name" : "af", + "access" : 64, + "descriptor" : "[Z" + }, { + "field" : "__ag", + "owner" : "in", + "name" : "ag", + "access" : 0, + "descriptor" : "Z" + }, { + "field" : "__ah", + "owner" : "in", + "name" : "ah", + "access" : 0, + "descriptor" : "I", + "decoder" : -202943581 + }, { + "field" : "__z", + "owner" : "in", + "name" : "z", + "access" : 64, + "descriptor" : "Z" + } ], + "methods" : [ { + "method" : "archiveLoadPercent", + "owner" : "in", + "name" : "q", + "access" : 0, + "descriptor" : "(II)I" + }, { + "method" : "load", + "owner" : "in", + "name" : "dg", + "access" : 0, + "descriptor" : "(Lfb;I[BZB)V" + }, { + "method" : "loadAllLocal", + "owner" : "in", + "name" : "dl", + "access" : 0, + "parameters" : [ ], + "descriptor" : "(B)V" + }, { + "method" : "loadArchive", + "owner" : "in", + "name" : "r", + "access" : 0, + "descriptor" : "(IB)V" + }, { + "method" : "loadIndexReference", + "owner" : "in", + "name" : "dz", + "access" : 1, + "descriptor" : "(III)V" + }, { + "method" : "loadPercent", + "owner" : "in", + "name" : "dt", + "access" : 1, + "descriptor" : "(I)I" + }, { + "method" : "write", + "owner" : "in", + "name" : "ds", + "access" : 1, + "descriptor" : "(I[BZZI)V" + }, { + "method" : "__cz_424", + "owner" : "in", + "name" : "cz", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(I)Z" + }, { + "method" : "__cl_425", + "owner" : "in", + "name" : "cl", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(I)I" + }, { + "method" : "__s_426", + "owner" : "in", + "name" : "s", + "access" : 0, + "parameters" : [ "arg0" ], + "descriptor" : "(II)V" + }, { + "method" : "__dq_427", + "owner" : "in", + "name" : "dq", + "access" : 1, + "parameters" : [ "arg0" ], + "descriptor" : "(II)Z" + }, { + "method" : "__dn_428", + "owner" : "in", + "name" : "dn", + "access" : 1, + "parameters" : [ "arg0" ], + "descriptor" : "(II)Z" + } ], + "constructors" : [ { + "access" : 1, + "descriptor" : "(Lfb;Lfb;IZZZ)V" + } ] +}, { + "class" : "WorldMapElement", + "name" : "jd", + "super" : "ho", + "access" : 33, + "interfaces" : [ ], + "fields" : [ { + "field" : "category", + "owner" : "jd", + "name" : "i", + "access" : 1, + "descriptor" : "I", + "decoder" : -837808071 + }, { + "field" : "sprite1", + "owner" : "jd", + "name" : "f", + "access" : 1, + "descriptor" : "I", + "decoder" : 829605459 + }, { + "field" : "sprite2", + "owner" : "jd", + "name" : "p", + "access" : 0, + "descriptor" : "I", + "decoder" : 516650577 + }, { + "field" : "string1", + "owner" : "jd", + "name" : "r", + "access" : 1, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "strings", + "owner" : "jd", + "name" : "e", + "access" : 1, + "descriptor" : "[Ljava/lang/String;" + }, { + "field" : "textSize", + "owner" : "jd", + "name" : "b", + "access" : 1, + "descriptor" : "I", + "decoder" : -1928126979 + }, { + "field" : "__w", + "owner" : "jd", + "name" : "w", + "access" : 0, + "descriptor" : "[B" + }, { + "field" : "__l", + "owner" : "jd", + "name" : "l", + "access" : 0, + "descriptor" : "I", + "decoder" : -1866925643 + }, { + "field" : "__o", + "owner" : "jd", + "name" : "o", + "access" : 0, + "descriptor" : "I", + "decoder" : -1929248031 + }, { + "field" : "__u", + "owner" : "jd", + "name" : "u", + "access" : 0, + "descriptor" : "I", + "decoder" : 149117509 + }, { + "field" : "__y", + "owner" : "jd", + "name" : "y", + "access" : 0, + "descriptor" : "I", + "decoder" : -1665691375 + }, { + "field" : "__d", + "owner" : "jd", + "name" : "d", + "access" : 0, + "descriptor" : "[I" + }, { + "field" : "__t", + "owner" : "jd", + "name" : "t", + "access" : 0, + "descriptor" : "[I" + }, { + "field" : "__q", + "owner" : "jd", + "name" : "q", + "access" : 1, + "descriptor" : "I", + "decoder" : -1752028429 + }, { + "field" : "__m", + "owner" : "jd", + "name" : "m", + "access" : 1, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__h", + "owner" : "jd", + "name" : "h", + "access" : 17, + "descriptor" : "I", + "decoder" : -1736910617 + } ], + "methods" : [ { + "method" : "getSprite", + "owner" : "jd", + "name" : "f", + "access" : 1, + "parameters" : [ "b" ], + "descriptor" : "(ZI)Lld;" + }, { + "method" : "getSprite0", + "owner" : "jd", + "name" : "p", + "access" : 0, + "parameters" : [ "id" ], + "descriptor" : "(II)Lld;" + }, { + "method" : "read", + "owner" : "jd", + "name" : "g", + "access" : 0, + "parameters" : [ "buffer" ], + "descriptor" : "(Lgx;I)V" + }, { + "method" : "readNext", + "owner" : "jd", + "name" : "x", + "access" : 0, + "parameters" : [ "buffer", "opcode" ], + "descriptor" : "(Lgx;II)V" + }, { + "method" : "__h_429", + "owner" : "jd", + "name" : "h", + "access" : 0, + "parameters" : [ ], + "descriptor" : "(I)V" + }, { + "method" : "__m_430", + "owner" : "jd", + "name" : "m", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(I)I" + } ], + "constructors" : [ { + "access" : 0, + "descriptor" : "(I)V" + } ] +}, { + "class" : "VarcInt", + "name" : "jl", + "super" : "ho", + "access" : 33, + "interfaces" : [ ], + "fields" : [ { + "field" : "persist", + "owner" : "jl", + "name" : "g", + "access" : 1, + "descriptor" : "Z" + } ], + "methods" : [ { + "method" : "__a_431", + "owner" : "jl", + "name" : "a", + "access" : 1, + "parameters" : [ "arg0" ], + "descriptor" : "(Lgx;B)V" + }, { + "method" : "__s_432", + "owner" : "jl", + "name" : "s", + "access" : 0, + "parameters" : [ "arg0", "arg1" ], + "descriptor" : "(Lgx;II)V" + } ], + "constructors" : [ { + "access" : 1, + "descriptor" : "()V" + } ] +}, { + "class" : "SpotAnimationDefinition", + "name" : "jh", + "super" : "ho", + "access" : 33, + "interfaces" : [ ], + "fields" : [ { + "field" : "archive", + "owner" : "jh", + "name" : "f", + "access" : 0, + "descriptor" : "I", + "decoder" : 19920877 + }, { + "field" : "heightScale", + "owner" : "jh", + "name" : "r", + "access" : 0, + "descriptor" : "I", + "decoder" : 188811895 + }, { + "field" : "id", + "owner" : "jh", + "name" : "h", + "access" : 0, + "descriptor" : "I", + "decoder" : 63283905 + }, { + "field" : "orientation", + "owner" : "jh", + "name" : "t", + "access" : 0, + "descriptor" : "I", + "decoder" : 1674463065 + }, { + "field" : "recolorFrom", + "owner" : "jh", + "name" : "m", + "access" : 0, + "descriptor" : "[S" + }, { + "field" : "recolorTo", + "owner" : "jh", + "name" : "q", + "access" : 0, + "descriptor" : "[S" + }, { + "field" : "retextureFrom", + "owner" : "jh", + "name" : "b", + "access" : 0, + "descriptor" : "[S" + }, { + "field" : "retextureTo", + "owner" : "jh", + "name" : "n", + "access" : 0, + "descriptor" : "[S" + }, { + "field" : "sequence", + "owner" : "jh", + "name" : "p", + "access" : 1, + "descriptor" : "I", + "decoder" : 2704803 + }, { + "field" : "widthScale", + "owner" : "jh", + "name" : "e", + "access" : 0, + "descriptor" : "I", + "decoder" : 1468698369 + }, { + "field" : "__l", + "owner" : "jh", + "name" : "l", + "access" : 0, + "descriptor" : "I", + "decoder" : 577867669 + }, { + "field" : "__o", + "owner" : "jh", + "name" : "o", + "access" : 0, + "descriptor" : "I", + "decoder" : 1177990595 + } ], + "methods" : [ { + "method" : "getModel", + "owner" : "jh", + "name" : "h", + "access" : 17, + "descriptor" : "(IB)Ldv;" + }, { + "method" : "read", + "owner" : "jh", + "name" : "g", + "access" : 0, + "parameters" : [ "buffer" ], + "descriptor" : "(Lgx;I)V" + }, { + "method" : "readNext", + "owner" : "jh", + "name" : "x", + "access" : 0, + "parameters" : [ "buffer", "n" ], + "descriptor" : "(Lgx;II)V" + } ], + "constructors" : [ { + "access" : 0, + "descriptor" : "()V" + } ] +}, { + "class" : "KitDefinition", + "name" : "jx", + "super" : "ho", + "access" : 33, + "interfaces" : [ ], + "fields" : [ { + "field" : "archives", + "owner" : "jx", + "name" : "n", + "access" : 0, + "descriptor" : "[I" + }, { + "field" : "recolorFrom", + "owner" : "jx", + "name" : "p", + "access" : 0, + "descriptor" : "[S" + }, { + "field" : "recolorTo", + "owner" : "jx", + "name" : "m", + "access" : 0, + "descriptor" : "[S" + }, { + "field" : "retextureFrom", + "owner" : "jx", + "name" : "q", + "access" : 0, + "descriptor" : "[S" + }, { + "field" : "retextureTo", + "owner" : "jx", + "name" : "b", + "access" : 0, + "descriptor" : "[S" + }, { + "field" : "__f", + "owner" : "jx", + "name" : "f", + "access" : 0, + "descriptor" : "[I" + }, { + "field" : "__e", + "owner" : "jx", + "name" : "e", + "access" : 1, + "descriptor" : "Z" + }, { + "field" : "__h", + "owner" : "jx", + "name" : "h", + "access" : 1, + "descriptor" : "I", + "decoder" : 415172277 + } ], + "methods" : [ { + "method" : "read", + "owner" : "jx", + "name" : "g", + "access" : 0, + "descriptor" : "(Lgx;B)V" + }, { + "method" : "readNext", + "owner" : "jx", + "name" : "x", + "access" : 0, + "descriptor" : "(Lgx;IB)V" + }, { + "method" : "__h_433", + "owner" : "jx", + "name" : "h", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(I)Z" + }, { + "method" : "__f_434", + "owner" : "jx", + "name" : "f", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(B)Ldk;" + }, { + "method" : "__p_435", + "owner" : "jx", + "name" : "p", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(I)Z" + }, { + "method" : "__m_436", + "owner" : "jx", + "name" : "m", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(I)Ldk;" + } ], + "constructors" : [ { + "access" : 0, + "descriptor" : "()V" + } ] +}, { + "class" : "HealthBarDefinition", + "name" : "jp", + "super" : "ho", + "access" : 33, + "interfaces" : [ ], + "fields" : [ { + "field" : "int1", + "owner" : "jp", + "name" : "m", + "access" : 1, + "descriptor" : "I", + "decoder" : -128708993 + }, { + "field" : "int2", + "owner" : "jp", + "name" : "q", + "access" : 1, + "descriptor" : "I", + "decoder" : 84424049 + }, { + "field" : "int3", + "owner" : "jp", + "name" : "b", + "access" : 1, + "descriptor" : "I", + "decoder" : 1298817893 + }, { + "field" : "int4", + "owner" : "jp", + "name" : "n", + "access" : 1, + "descriptor" : "I", + "decoder" : -121711597 + }, { + "field" : "int5", + "owner" : "jp", + "name" : "e", + "access" : 1, + "descriptor" : "I", + "decoder" : 372450145 + }, { + "field" : "spriteId1", + "owner" : "jp", + "name" : "r", + "access" : 0, + "descriptor" : "I", + "decoder" : -1679460201 + }, { + "field" : "spriteId2", + "owner" : "jp", + "name" : "t", + "access" : 0, + "descriptor" : "I", + "decoder" : -1333320733 + }, { + "field" : "width", + "owner" : "jp", + "name" : "l", + "access" : 1, + "descriptor" : "I", + "decoder" : -837920445 + }, { + "field" : "widthPadding", + "owner" : "jp", + "name" : "o", + "access" : 1, + "descriptor" : "I", + "decoder" : 1473541421 + }, { + "field" : "__h", + "owner" : "jp", + "name" : "h", + "access" : 1, + "descriptor" : "I", + "decoder" : -597048601 + } ], + "methods" : [ { + "method" : "getSprite1", + "owner" : "jp", + "name" : "x", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(B)Lld;" + }, { + "method" : "getSprite2", + "owner" : "jp", + "name" : "h", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(I)Lld;" + }, { + "method" : "read", + "owner" : "jp", + "name" : "s", + "access" : 1, + "descriptor" : "(Lgx;B)V" + }, { + "method" : "readNext", + "owner" : "jp", + "name" : "g", + "access" : 0, + "descriptor" : "(Lgx;II)V" + } ], + "constructors" : [ { + "access" : 1, + "descriptor" : "()V" + } ] +}, { + "class" : "HitSplatDefinition", + "name" : "je", + "super" : "ho", + "access" : 33, + "interfaces" : [ ], + "fields" : [ { + "field" : "fontId", + "owner" : "je", + "name" : "e", + "access" : 0, + "descriptor" : "I", + "decoder" : 2140896517 + }, { + "field" : "transformVarbit", + "owner" : "je", + "name" : "z", + "access" : 0, + "descriptor" : "I", + "decoder" : -1219180571 + }, { + "field" : "transformVarp", + "owner" : "je", + "name" : "ag", + "access" : 0, + "descriptor" : "I", + "decoder" : 324000633 + }, { + "field" : "transforms", + "owner" : "je", + "name" : "j", + "access" : 1, + "descriptor" : "[I" + }, { + "field" : "__l", + "owner" : "je", + "name" : "l", + "access" : 0, + "descriptor" : "I", + "decoder" : -1098348433 + }, { + "field" : "__o", + "owner" : "je", + "name" : "o", + "access" : 0, + "descriptor" : "I", + "decoder" : -352581087 + }, { + "field" : "__u", + "owner" : "je", + "name" : "u", + "access" : 0, + "descriptor" : "I", + "decoder" : 631099461 + }, { + "field" : "__y", + "owner" : "je", + "name" : "y", + "access" : 0, + "descriptor" : "I", + "decoder" : 1180576785 + }, { + "field" : "__w", + "owner" : "je", + "name" : "w", + "access" : 0, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__c", + "owner" : "je", + "name" : "c", + "access" : 1, + "descriptor" : "I", + "decoder" : 121552627 + }, { + "field" : "__d", + "owner" : "je", + "name" : "d", + "access" : 1, + "descriptor" : "I", + "decoder" : 235856813 + }, { + "field" : "__i", + "owner" : "je", + "name" : "i", + "access" : 1, + "descriptor" : "I", + "decoder" : 363980907 + }, { + "field" : "__k", + "owner" : "je", + "name" : "k", + "access" : 1, + "descriptor" : "I", + "decoder" : 1459415255 + }, { + "field" : "__r", + "owner" : "je", + "name" : "r", + "access" : 1, + "descriptor" : "I", + "decoder" : 1782291691 + }, { + "field" : "__t", + "owner" : "je", + "name" : "t", + "access" : 1, + "descriptor" : "I", + "decoder" : 1999103551 + }, { + "field" : "__v", + "owner" : "je", + "name" : "v", + "access" : 1, + "descriptor" : "I", + "decoder" : 1472476449 + } ], + "methods" : [ { + "method" : "getFont", + "owner" : "je", + "name" : "b", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(I)Lkt;" + }, { + "method" : "getString", + "owner" : "je", + "name" : "h", + "access" : 1, + "parameters" : [ "n" ], + "descriptor" : "(IB)Ljava/lang/String;" + }, { + "method" : "read", + "owner" : "je", + "name" : "s", + "access" : 0, + "descriptor" : "(Lgx;B)V" + }, { + "method" : "readNext", + "owner" : "je", + "name" : "g", + "access" : 0, + "descriptor" : "(Lgx;IB)V" + }, { + "method" : "transform", + "owner" : "je", + "name" : "x", + "access" : 17, + "parameters" : [ ], + "descriptor" : "(I)Lje;" + }, { + "method" : "__f_437", + "owner" : "je", + "name" : "f", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(B)Lld;" + }, { + "method" : "__p_438", + "owner" : "je", + "name" : "p", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(I)Lld;" + }, { + "method" : "__m_439", + "owner" : "je", + "name" : "m", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(I)Lld;" + }, { + "method" : "__q_440", + "owner" : "je", + "name" : "q", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(I)Lld;" + } ], + "constructors" : [ { + "access" : 0, + "descriptor" : "()V" + } ] +}, { + "class" : "ObjectDefinition", + "name" : "jy", + "super" : "ho", + "access" : 33, + "interfaces" : [ ], + "fields" : [ { + "field" : "actions", + "owner" : "jy", + "name" : "ay", + "access" : 1, + "descriptor" : "[Ljava/lang/String;" + }, { + "field" : "ambient", + "owner" : "jy", + "name" : "ag", + "access" : 0, + "descriptor" : "I", + "decoder" : 1132504335 + }, { + "field" : "ambientSoundId", + "owner" : "jy", + "name" : "ac", + "access" : 1, + "descriptor" : "I", + "decoder" : -1427402837 + }, { + "field" : "animationId", + "owner" : "jy", + "name" : "j", + "access" : 1, + "descriptor" : "I", + "decoder" : -586981985 + }, { + "field" : "boolean1", + "owner" : "jy", + "name" : "v", + "access" : 1, + "descriptor" : "Z" + }, { + "field" : "boolean2", + "owner" : "jy", + "name" : "as", + "access" : 1, + "descriptor" : "Z" + }, { + "field" : "clipType", + "owner" : "jy", + "name" : "w", + "access" : 0, + "descriptor" : "I", + "decoder" : 1193889627 + }, { + "field" : "clipped", + "owner" : "jy", + "name" : "aw", + "access" : 1, + "descriptor" : "Z" + }, { + "field" : "contrast", + "owner" : "jy", + "name" : "af", + "access" : 0, + "descriptor" : "I", + "decoder" : 1124676007 + }, { + "field" : "id", + "owner" : "jy", + "name" : "q", + "access" : 1, + "descriptor" : "I", + "decoder" : 662598067 + }, { + "field" : "int1", + "owner" : "jy", + "name" : "d", + "access" : 1, + "descriptor" : "I", + "decoder" : -1887157717 + }, { + "field" : "int2", + "owner" : "jy", + "name" : "z", + "access" : 1, + "descriptor" : "I", + "decoder" : -1292740305 + }, { + "field" : "int3", + "owner" : "jy", + "name" : "ai", + "access" : 1, + "descriptor" : "I", + "decoder" : -1647074679 + }, { + "field" : "int4", + "owner" : "jy", + "name" : "ao", + "access" : 1, + "descriptor" : "I", + "decoder" : 1902178129 + }, { + "field" : "int5", + "owner" : "jy", + "name" : "ad", + "access" : 1, + "descriptor" : "I", + "decoder" : 2143235159 + }, { + "field" : "int6", + "owner" : "jy", + "name" : "ax", + "access" : 1, + "descriptor" : "I", + "decoder" : -1314911205 + }, { + "field" : "interactType", + "owner" : "jy", + "name" : "k", + "access" : 1, + "descriptor" : "I", + "decoder" : -2128219559 + }, { + "field" : "isRotated", + "owner" : "jy", + "name" : "ah", + "access" : 0, + "descriptor" : "Z" + }, { + "field" : "isSolid", + "owner" : "jy", + "name" : "ar", + "access" : 0, + "descriptor" : "Z" + }, { + "field" : "mapIconId", + "owner" : "jy", + "name" : "aa", + "access" : 1, + "descriptor" : "I", + "decoder" : -654726969 + }, { + "field" : "mapSceneId", + "owner" : "jy", + "name" : "ab", + "access" : 1, + "descriptor" : "I", + "decoder" : -274624611 + }, { + "field" : "modelClipped", + "owner" : "jy", + "name" : "c", + "access" : 1, + "descriptor" : "Z" + }, { + "field" : "modelHeight", + "owner" : "jy", + "name" : "at", + "access" : 0, + "descriptor" : "I", + "decoder" : -1944211407 + }, { + "field" : "modelSizeX", + "owner" : "jy", + "name" : "an", + "access" : 0, + "descriptor" : "I", + "decoder" : 955355193 + }, { + "field" : "modelSizeY", + "owner" : "jy", + "name" : "ae", + "access" : 0, + "descriptor" : "I", + "decoder" : 1771229497 + }, { + "field" : "name", + "owner" : "jy", + "name" : "e", + "access" : 1, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "nonFlatShading", + "owner" : "jy", + "name" : "i", + "access" : 0, + "descriptor" : "Z" + }, { + "field" : "offsetHeight", + "owner" : "jy", + "name" : "au", + "access" : 0, + "descriptor" : "I", + "decoder" : -1709182887 + }, { + "field" : "offsetX", + "owner" : "jy", + "name" : "av", + "access" : 0, + "descriptor" : "I", + "decoder" : -1101816219 + }, { + "field" : "offsetY", + "owner" : "jy", + "name" : "aj", + "access" : 0, + "descriptor" : "I", + "decoder" : 1449724417 + }, { + "field" : "params", + "owner" : "jy", + "name" : "ak", + "access" : 0, + "descriptor" : "Lgs;" + }, { + "field" : "recolorFrom", + "owner" : "jy", + "name" : "r", + "access" : 0, + "descriptor" : "[S" + }, { + "field" : "recolorTo", + "owner" : "jy", + "name" : "t", + "access" : 0, + "descriptor" : "[S" + }, { + "field" : "retextureFrom", + "owner" : "jy", + "name" : "l", + "access" : 0, + "descriptor" : "[S" + }, { + "field" : "retextureTo", + "owner" : "jy", + "name" : "o", + "access" : 0, + "descriptor" : "[S" + }, { + "field" : "sizeX", + "owner" : "jy", + "name" : "u", + "access" : 1, + "descriptor" : "I", + "decoder" : -1053188599 + }, { + "field" : "sizeY", + "owner" : "jy", + "name" : "y", + "access" : 1, + "descriptor" : "I", + "decoder" : -923948831 + }, { + "field" : "transformConfigId", + "owner" : "jy", + "name" : "az", + "access" : 0, + "descriptor" : "I", + "decoder" : -580402229 + }, { + "field" : "transformVarbit", + "owner" : "jy", + "name" : "al", + "access" : 0, + "descriptor" : "I", + "decoder" : -1798582853 + }, { + "field" : "transforms", + "owner" : "jy", + "name" : "aq", + "access" : 1, + "descriptor" : "[I" + }, { + "field" : "__b", + "owner" : "jy", + "name" : "b", + "access" : 0, + "descriptor" : "[I" + }, { + "field" : "__n", + "owner" : "jy", + "name" : "n", + "access" : 0, + "descriptor" : "[I" + }, { + "field" : "__ap", + "owner" : "jy", + "name" : "ap", + "access" : 1, + "descriptor" : "[I" + } ], + "methods" : [ { + "method" : "getIntParam", + "owner" : "jy", + "name" : "r", + "access" : 1, + "descriptor" : "(IIB)I" + }, { + "method" : "getModel", + "owner" : "jy", + "name" : "q", + "access" : 17, + "descriptor" : "(II[[IIIIB)Ldv;" + }, { + "method" : "getModelData", + "owner" : "jy", + "name" : "n", + "access" : 16, + "parameters" : [ "n", "m" ], + "descriptor" : "(III)Ldk;" + }, { + "method" : "getModelDynamic", + "owner" : "jy", + "name" : "b", + "access" : 17, + "descriptor" : "(II[[IIIILju;II)Ldv;" + }, { + "method" : "getStringParam", + "owner" : "jy", + "name" : "t", + "access" : 1, + "descriptor" : "(ILjava/lang/String;I)Ljava/lang/String;" + }, { + "method" : "init", + "owner" : "jy", + "name" : "g", + "access" : 0, + "parameters" : [ ], + "descriptor" : "(S)V" + }, { + "method" : "read", + "owner" : "jy", + "name" : "x", + "access" : 0, + "descriptor" : "(Lgx;I)V" + }, { + "method" : "readNext", + "owner" : "jy", + "name" : "h", + "access" : 0, + "descriptor" : "(Lgx;II)V" + }, { + "method" : "transform", + "owner" : "jy", + "name" : "e", + "access" : 17, + "parameters" : [ ], + "descriptor" : "(I)Ljy;" + }, { + "method" : "__f_441", + "owner" : "jy", + "name" : "f", + "access" : 17, + "parameters" : [ "arg0" ], + "descriptor" : "(II)Z" + }, { + "method" : "__p_442", + "owner" : "jy", + "name" : "p", + "access" : 17, + "parameters" : [ ], + "descriptor" : "(B)Z" + }, { + "method" : "__m_443", + "owner" : "jy", + "name" : "m", + "access" : 17, + "parameters" : [ "arg0", "arg1", "arg2", "arg3", "arg4", "arg5" ], + "descriptor" : "(II[[IIIII)Lem;" + }, { + "method" : "__l_444", + "owner" : "jy", + "name" : "l", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(I)Z" + } ], + "constructors" : [ { + "access" : 0, + "descriptor" : "()V" + } ] +}, { + "class" : "ItemDefinition", + "name" : "jc", + "super" : "ho", + "access" : 33, + "interfaces" : [ ], + "fields" : [ { + "field" : "ambient", + "owner" : "jc", + "name" : "bf", + "access" : 1, + "descriptor" : "I", + "decoder" : 1783276773 + }, { + "field" : "contrast", + "owner" : "jc", + "name" : "bo", + "access" : 1, + "descriptor" : "I", + "decoder" : -1538235913 + }, { + "field" : "femaleHeadModel", + "owner" : "jc", + "name" : "al", + "access" : 0, + "descriptor" : "I", + "decoder" : 1946712565 + }, { + "field" : "femaleHeadModel2", + "owner" : "jc", + "name" : "az", + "access" : 0, + "descriptor" : "I", + "decoder" : 81686335 + }, { + "field" : "femaleModel", + "owner" : "jc", + "name" : "av", + "access" : 0, + "descriptor" : "I", + "decoder" : -796459901 + }, { + "field" : "femaleModel1", + "owner" : "jc", + "name" : "au", + "access" : 0, + "descriptor" : "I", + "decoder" : -515749673 + }, { + "field" : "femaleModel2", + "owner" : "jc", + "name" : "ar", + "access" : 0, + "descriptor" : "I", + "decoder" : 953273737 + }, { + "field" : "femaleOffset", + "owner" : "jc", + "name" : "aj", + "access" : 0, + "descriptor" : "I", + "decoder" : -410003891 + }, { + "field" : "groundActions", + "owner" : "jc", + "name" : "aa", + "access" : 1, + "descriptor" : "[Ljava/lang/String;" + }, { + "field" : "id", + "owner" : "jc", + "name" : "t", + "access" : 1, + "descriptor" : "I", + "decoder" : 1567373911 + }, { + "field" : "int1", + "owner" : "jc", + "name" : "be", + "access" : 1, + "descriptor" : "I", + "decoder" : -1461842305 + }, { + "field" : "inventoryActions", + "owner" : "jc", + "name" : "ab", + "access" : 1, + "descriptor" : "[Ljava/lang/String;" + }, { + "field" : "isMembersOnly", + "owner" : "jc", + "name" : "ay", + "access" : 1, + "descriptor" : "Z" + }, { + "field" : "isStackable", + "owner" : "jc", + "name" : "ag", + "access" : 1, + "descriptor" : "I", + "decoder" : 1014870201 + }, { + "field" : "isTradable", + "owner" : "jc", + "name" : "bz", + "access" : 1, + "descriptor" : "Z" + }, { + "field" : "maleHeadModel", + "owner" : "jc", + "name" : "ai", + "access" : 0, + "descriptor" : "I", + "decoder" : 1147738563 + }, { + "field" : "maleHeadModel2", + "owner" : "jc", + "name" : "aq", + "access" : 0, + "descriptor" : "I", + "decoder" : -77129911 + }, { + "field" : "maleModel", + "owner" : "jc", + "name" : "an", + "access" : 0, + "descriptor" : "I", + "decoder" : 738599493 + }, { + "field" : "maleModel1", + "owner" : "jc", + "name" : "at", + "access" : 0, + "descriptor" : "I", + "decoder" : -1393904297 + }, { + "field" : "maleModel2", + "owner" : "jc", + "name" : "as", + "access" : 0, + "descriptor" : "I", + "decoder" : -581420823 + }, { + "field" : "maleOffset", + "owner" : "jc", + "name" : "ae", + "access" : 0, + "descriptor" : "I", + "decoder" : -522053309 + }, { + "field" : "name", + "owner" : "jc", + "name" : "o", + "access" : 1, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "note", + "owner" : "jc", + "name" : "ad", + "access" : 1, + "descriptor" : "I", + "decoder" : -1652485973 + }, { + "field" : "noteTemplate", + "owner" : "jc", + "name" : "ax", + "access" : 1, + "descriptor" : "I", + "decoder" : 944846259 + }, { + "field" : "notedId", + "owner" : "jc", + "name" : "bp", + "access" : 0, + "descriptor" : "I", + "decoder" : -742207739 + }, { + "field" : "offsetX2d", + "owner" : "jc", + "name" : "j", + "access" : 1, + "descriptor" : "I", + "decoder" : -1408460323 + }, { + "field" : "offsetY2d", + "owner" : "jc", + "name" : "z", + "access" : 1, + "descriptor" : "I", + "decoder" : -45453355 + }, { + "field" : "params", + "owner" : "jc", + "name" : "bd", + "access" : 0, + "descriptor" : "Lgs;" + }, { + "field" : "placeholder", + "owner" : "jc", + "name" : "bv", + "access" : 1, + "descriptor" : "I", + "decoder" : 1676762263 + }, { + "field" : "placeholderTemplate", + "owner" : "jc", + "name" : "bg", + "access" : 1, + "descriptor" : "I", + "decoder" : -691708769 + }, { + "field" : "price", + "owner" : "jc", + "name" : "af", + "access" : 1, + "descriptor" : "I", + "decoder" : -240283457 + }, { + "field" : "recolorFrom", + "owner" : "jc", + "name" : "u", + "access" : 0, + "descriptor" : "[S" + }, { + "field" : "recolorTo", + "owner" : "jc", + "name" : "y", + "access" : 0, + "descriptor" : "[S" + }, { + "field" : "resizeX", + "owner" : "jc", + "name" : "ap", + "access" : 0, + "descriptor" : "I", + "decoder" : -1594097723 + }, { + "field" : "resizeY", + "owner" : "jc", + "name" : "ak", + "access" : 0, + "descriptor" : "I", + "decoder" : -636666147 + }, { + "field" : "resizeZ", + "owner" : "jc", + "name" : "am", + "access" : 0, + "descriptor" : "I", + "decoder" : -496370405 + }, { + "field" : "retextureFrom", + "owner" : "jc", + "name" : "k", + "access" : 0, + "descriptor" : "[S" + }, { + "field" : "retextureTo", + "owner" : "jc", + "name" : "v", + "access" : 0, + "descriptor" : "[S" + }, { + "field" : "shiftClickIndex0", + "owner" : "jc", + "name" : "aw", + "access" : 0, + "descriptor" : "I", + "decoder" : -1728655245 + }, { + "field" : "unnotedId", + "owner" : "jc", + "name" : "bi", + "access" : 0, + "descriptor" : "I", + "decoder" : 2058235193 + }, { + "field" : "xan2d", + "owner" : "jc", + "name" : "w", + "access" : 1, + "descriptor" : "I", + "decoder" : 1464734291 + }, { + "field" : "yan2d", + "owner" : "jc", + "name" : "i", + "access" : 1, + "descriptor" : "I", + "decoder" : -61123767 + }, { + "field" : "zan2d", + "owner" : "jc", + "name" : "c", + "access" : 1, + "descriptor" : "I", + "decoder" : 41322359 + }, { + "field" : "zoom2d", + "owner" : "jc", + "name" : "d", + "access" : 1, + "descriptor" : "I", + "decoder" : 1339319927 + }, { + "field" : "__l", + "owner" : "jc", + "name" : "l", + "access" : 0, + "descriptor" : "I", + "decoder" : -1420925049 + }, { + "field" : "__ac", + "owner" : "jc", + "name" : "ac", + "access" : 0, + "descriptor" : "[I" + }, { + "field" : "__ao", + "owner" : "jc", + "name" : "ao", + "access" : 0, + "descriptor" : "[I" + } ], + "methods" : [ { + "method" : "getIntParam", + "owner" : "jc", + "name" : "o", + "access" : 1, + "descriptor" : "(IIS)I" + }, { + "method" : "getModel", + "owner" : "jc", + "name" : "q", + "access" : 17, + "parameters" : [ "quantity" ], + "descriptor" : "(IB)Ldv;" + }, { + "method" : "getShiftClickIndex", + "owner" : "jc", + "name" : "y", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(I)I" + }, { + "method" : "getStringParam", + "owner" : "jc", + "name" : "u", + "access" : 1, + "descriptor" : "(ILjava/lang/String;I)Ljava/lang/String;" + }, { + "method" : "read", + "owner" : "jc", + "name" : "g", + "access" : 0, + "descriptor" : "(Lgx;I)V" + }, { + "method" : "readNext", + "owner" : "jc", + "name" : "x", + "access" : 0, + "descriptor" : "(Lgx;IB)V" + }, { + "method" : "__s_445", + "owner" : "jc", + "name" : "s", + "access" : 0, + "parameters" : [ ], + "descriptor" : "(B)V" + }, { + "method" : "__h_446", + "owner" : "jc", + "name" : "h", + "access" : 0, + "parameters" : [ "arg0", "arg1" ], + "descriptor" : "(Ljc;Ljc;I)V" + }, { + "method" : "__f_447", + "owner" : "jc", + "name" : "f", + "access" : 0, + "parameters" : [ "arg0", "arg1" ], + "descriptor" : "(Ljc;Ljc;I)V" + }, { + "method" : "__p_448", + "owner" : "jc", + "name" : "p", + "access" : 0, + "parameters" : [ "arg0", "arg1" ], + "descriptor" : "(Ljc;Ljc;I)V" + }, { + "method" : "__m_449", + "owner" : "jc", + "name" : "m", + "access" : 17, + "parameters" : [ "arg0" ], + "descriptor" : "(II)Ldk;" + }, { + "method" : "__b_450", + "owner" : "jc", + "name" : "b", + "access" : 1, + "parameters" : [ "arg0" ], + "descriptor" : "(II)Ljc;" + }, { + "method" : "__e_451", + "owner" : "jc", + "name" : "e", + "access" : 17, + "parameters" : [ "arg0" ], + "descriptor" : "(ZI)Z" + }, { + "method" : "__r_452", + "owner" : "jc", + "name" : "r", + "access" : 17, + "parameters" : [ "arg0" ], + "descriptor" : "(ZB)Ldk;" + }, { + "method" : "__t_453", + "owner" : "jc", + "name" : "t", + "access" : 17, + "parameters" : [ "arg0" ], + "descriptor" : "(ZI)Z" + }, { + "method" : "__l_454", + "owner" : "jc", + "name" : "l", + "access" : 17, + "parameters" : [ "arg0" ], + "descriptor" : "(ZI)Ldk;" + } ], + "constructors" : [ { + "access" : 0, + "descriptor" : "()V" + } ] +}, { + "class" : "NpcDefinition", + "name" : "jg", + "super" : "ho", + "access" : 33, + "interfaces" : [ ], + "fields" : [ { + "field" : "actions", + "owner" : "jg", + "name" : "d", + "access" : 1, + "descriptor" : "[Ljava/lang/String;" + }, { + "field" : "archives", + "owner" : "jg", + "name" : "m", + "access" : 0, + "descriptor" : "[I" + }, { + "field" : "combatLevel", + "owner" : "jg", + "name" : "i", + "access" : 1, + "descriptor" : "I", + "decoder" : -928938457 + }, { + "field" : "drawMapDot", + "owner" : "jg", + "name" : "w", + "access" : 1, + "descriptor" : "Z" + }, { + "field" : "headIconPrayer", + "owner" : "jg", + "name" : "aa", + "access" : 1, + "descriptor" : "I", + "decoder" : 1175281667 + }, { + "field" : "heightScale", + "owner" : "jg", + "name" : "j", + "access" : 0, + "descriptor" : "I", + "decoder" : 144967701 + }, { + "field" : "id", + "owner" : "jg", + "name" : "h", + "access" : 1, + "descriptor" : "I", + "decoder" : 784635241 + }, { + "field" : "idleSequence", + "owner" : "jg", + "name" : "b", + "access" : 1, + "descriptor" : "I", + "decoder" : 68844873 + }, { + "field" : "isFollower", + "owner" : "jg", + "name" : "ae", + "access" : 1, + "descriptor" : "Z" + }, { + "field" : "isInteractable", + "owner" : "jg", + "name" : "an", + "access" : 1, + "descriptor" : "Z" + }, { + "field" : "name", + "owner" : "jg", + "name" : "f", + "access" : 1, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "params", + "owner" : "jg", + "name" : "av", + "access" : 0, + "descriptor" : "Lgs;" + }, { + "field" : "recolorFrom", + "owner" : "jg", + "name" : "u", + "access" : 0, + "descriptor" : "[S" + }, { + "field" : "recolorTo", + "owner" : "jg", + "name" : "y", + "access" : 0, + "descriptor" : "[S" + }, { + "field" : "retextureFrom", + "owner" : "jg", + "name" : "k", + "access" : 0, + "descriptor" : "[S" + }, { + "field" : "retextureTo", + "owner" : "jg", + "name" : "v", + "access" : 0, + "descriptor" : "[S" + }, { + "field" : "size", + "owner" : "jg", + "name" : "p", + "access" : 1, + "descriptor" : "I", + "decoder" : 1437029871 + }, { + "field" : "transformVarbit", + "owner" : "jg", + "name" : "ah", + "access" : 0, + "descriptor" : "I", + "decoder" : 1925581753 + }, { + "field" : "transformVarp", + "owner" : "jg", + "name" : "aw", + "access" : 0, + "descriptor" : "I", + "decoder" : -979430983 + }, { + "field" : "transforms", + "owner" : "jg", + "name" : "ab", + "access" : 1, + "descriptor" : "[I" + }, { + "field" : "turnLeftSequence", + "owner" : "jg", + "name" : "n", + "access" : 1, + "descriptor" : "I", + "decoder" : -2137059879 + }, { + "field" : "turnRightSequence", + "owner" : "jg", + "name" : "e", + "access" : 1, + "descriptor" : "I", + "decoder" : -1105957431 + }, { + "field" : "walkSequence", + "owner" : "jg", + "name" : "r", + "access" : 1, + "descriptor" : "I", + "decoder" : -1010554497 + }, { + "field" : "walkTurnLeftSequence", + "owner" : "jg", + "name" : "l", + "access" : 1, + "descriptor" : "I", + "decoder" : 114314099 + }, { + "field" : "walkTurnRightSequence", + "owner" : "jg", + "name" : "o", + "access" : 1, + "descriptor" : "I", + "decoder" : 2054418871 + }, { + "field" : "walkTurnSequence", + "owner" : "jg", + "name" : "t", + "access" : 1, + "descriptor" : "I", + "decoder" : -785244257 + }, { + "field" : "widthScale", + "owner" : "jg", + "name" : "c", + "access" : 0, + "descriptor" : "I", + "decoder" : 1094226911 + }, { + "field" : "__af", + "owner" : "jg", + "name" : "af", + "access" : 0, + "descriptor" : "I", + "decoder" : -1045379965 + }, { + "field" : "__ag", + "owner" : "jg", + "name" : "ag", + "access" : 0, + "descriptor" : "I", + "decoder" : -1978492343 + }, { + "field" : "__q", + "owner" : "jg", + "name" : "q", + "access" : 0, + "descriptor" : "[I" + }, { + "field" : "__at", + "owner" : "jg", + "name" : "at", + "access" : 1, + "descriptor" : "Z" + }, { + "field" : "__z", + "owner" : "jg", + "name" : "z", + "access" : 1, + "descriptor" : "Z" + }, { + "field" : "__ay", + "owner" : "jg", + "name" : "ay", + "access" : 1, + "descriptor" : "I", + "decoder" : 1244245247 + } ], + "methods" : [ { + "method" : "getIntParam", + "owner" : "jg", + "name" : "b", + "access" : 1, + "descriptor" : "(III)I" + }, { + "method" : "getModel", + "owner" : "jg", + "name" : "f", + "access" : 17, + "parameters" : [ "s1", "n1", "s2", "n2" ], + "descriptor" : "(Lju;ILju;II)Ldv;" + }, { + "method" : "getModelData", + "owner" : "jg", + "name" : "p", + "access" : 17, + "parameters" : [ ], + "descriptor" : "(I)Ldk;" + }, { + "method" : "getStringParam", + "owner" : "jg", + "name" : "n", + "access" : 1, + "descriptor" : "(ILjava/lang/String;I)Ljava/lang/String;" + }, { + "method" : "init", + "owner" : "jg", + "name" : "g", + "access" : 0, + "parameters" : [ ], + "descriptor" : "(I)V" + }, { + "method" : "read", + "owner" : "jg", + "name" : "x", + "access" : 0, + "descriptor" : "(Lgx;B)V" + }, { + "method" : "readNext", + "owner" : "jg", + "name" : "h", + "access" : 0, + "descriptor" : "(Lgx;IB)V" + }, { + "method" : "transform", + "owner" : "jg", + "name" : "m", + "access" : 17, + "parameters" : [ ], + "descriptor" : "(B)Ljg;" + }, { + "method" : "__q_455", + "owner" : "jg", + "name" : "q", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(B)Z" + } ], + "constructors" : [ { + "access" : 0, + "descriptor" : "()V" + } ] +}, { + "class" : "OverlayDefinition", + "name" : "jw", + "super" : "ho", + "access" : 33, + "interfaces" : [ ], + "fields" : [ { + "field" : "hue", + "owner" : "jw", + "name" : "p", + "access" : 1, + "descriptor" : "I", + "decoder" : -1316198325 + }, { + "field" : "hue2", + "owner" : "jw", + "name" : "b", + "access" : 1, + "descriptor" : "I", + "decoder" : -1810245119 + }, { + "field" : "lightness", + "owner" : "jw", + "name" : "q", + "access" : 1, + "descriptor" : "I", + "decoder" : -1220142471 + }, { + "field" : "lightness2", + "owner" : "jw", + "name" : "e", + "access" : 1, + "descriptor" : "I", + "decoder" : 1479659459 + }, { + "field" : "rgb", + "owner" : "jw", + "name" : "g", + "access" : 1, + "descriptor" : "I", + "decoder" : -1099346071 + }, { + "field" : "rgb2", + "owner" : "jw", + "name" : "f", + "access" : 1, + "descriptor" : "I", + "decoder" : -1567994693 + }, { + "field" : "saturation", + "owner" : "jw", + "name" : "m", + "access" : 1, + "descriptor" : "I", + "decoder" : 1997769193 + }, { + "field" : "saturation2", + "owner" : "jw", + "name" : "n", + "access" : 1, + "descriptor" : "I", + "decoder" : -1663697453 + }, { + "field" : "texture", + "owner" : "jw", + "name" : "x", + "access" : 1, + "descriptor" : "I", + "decoder" : 215202175 + }, { + "field" : "__h", + "owner" : "jw", + "name" : "h", + "access" : 1, + "descriptor" : "Z" + } ], + "methods" : [ { + "method" : "init", + "owner" : "jw", + "name" : "s", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(I)V" + }, { + "method" : "read", + "owner" : "jw", + "name" : "g", + "access" : 1, + "descriptor" : "(Lgx;II)V" + }, { + "method" : "readNext", + "owner" : "jw", + "name" : "x", + "access" : 0, + "descriptor" : "(Lgx;III)V" + }, { + "method" : "setHsl", + "owner" : "jw", + "name" : "h", + "access" : 0, + "parameters" : [ "rgb" ], + "descriptor" : "(II)V" + } ], + "constructors" : [ { + "access" : 1, + "descriptor" : "()V" + } ] +}, { + "class" : "SequenceDefinition", + "name" : "ju", + "super" : "ho", + "access" : 33, + "interfaces" : [ ], + "fields" : [ { + "field" : "frameCount", + "owner" : "ju", + "name" : "b", + "access" : 1, + "descriptor" : "I", + "decoder" : -671500069 + }, { + "field" : "frameIds", + "owner" : "ju", + "name" : "f", + "access" : 1, + "descriptor" : "[I" + }, { + "field" : "frameIds2", + "owner" : "ju", + "name" : "p", + "access" : 0, + "descriptor" : "[I" + }, { + "field" : "frameLengths", + "owner" : "ju", + "name" : "m", + "access" : 1, + "descriptor" : "[I" + }, { + "field" : "shield", + "owner" : "ju", + "name" : "t", + "access" : 1, + "descriptor" : "I", + "decoder" : 1499671381 + }, { + "field" : "weapon", + "owner" : "ju", + "name" : "l", + "access" : 1, + "descriptor" : "I", + "decoder" : -1031284921 + }, { + "field" : "__n", + "owner" : "ju", + "name" : "n", + "access" : 0, + "descriptor" : "[I" + }, { + "field" : "__e", + "owner" : "ju", + "name" : "e", + "access" : 1, + "descriptor" : "Z" + }, { + "field" : "__k", + "owner" : "ju", + "name" : "k", + "access" : 1, + "descriptor" : "I", + "decoder" : -649153047 + }, { + "field" : "__o", + "owner" : "ju", + "name" : "o", + "access" : 1, + "descriptor" : "I", + "decoder" : 506000659 + }, { + "field" : "__r", + "owner" : "ju", + "name" : "r", + "access" : 1, + "descriptor" : "I", + "decoder" : 865867889 + }, { + "field" : "__u", + "owner" : "ju", + "name" : "u", + "access" : 1, + "descriptor" : "I", + "decoder" : 1825570597 + }, { + "field" : "__y", + "owner" : "ju", + "name" : "y", + "access" : 1, + "descriptor" : "I", + "decoder" : 855576215 + }, { + "field" : "__q", + "owner" : "ju", + "name" : "q", + "access" : 1, + "descriptor" : "[I" + } ], + "methods" : [ { + "method" : "animateObject", + "owner" : "ju", + "name" : "f", + "access" : 0, + "parameters" : [ "model", "frame", "orientation" ], + "descriptor" : "(Ldv;III)Ldv;" + }, { + "method" : "animateSequence", + "owner" : "ju", + "name" : "h", + "access" : 1, + "parameters" : [ "model", "frame" ], + "descriptor" : "(Ldv;II)Ldv;" + }, { + "method" : "animateSequence2", + "owner" : "ju", + "name" : "m", + "access" : 1, + "parameters" : [ "model", "frame", "sequence", "sequenceFrame" ], + "descriptor" : "(Ldv;ILju;II)Ldv;" + }, { + "method" : "animateSpotAnimation", + "owner" : "ju", + "name" : "p", + "access" : 0, + "parameters" : [ "model", "frame" ], + "descriptor" : "(Ldv;II)Ldv;" + }, { + "method" : "animateWidget", + "owner" : "ju", + "name" : "q", + "access" : 1, + "parameters" : [ "model", "frame" ], + "descriptor" : "(Ldv;II)Ldv;" + }, { + "method" : "init", + "owner" : "ju", + "name" : "x", + "access" : 0, + "parameters" : [ ], + "descriptor" : "(B)V" + }, { + "method" : "read", + "owner" : "ju", + "name" : "s", + "access" : 0, + "descriptor" : "(Lgx;I)V" + }, { + "method" : "readNext", + "owner" : "ju", + "name" : "g", + "access" : 0, + "descriptor" : "(Lgx;II)V" + } ], + "constructors" : [ { + "access" : 0, + "descriptor" : "()V" + } ] +}, { + "class" : "Timer", + "name" : "ka", + "super" : "java.lang.Object", + "access" : 33, + "interfaces" : [ ], + "fields" : [ { + "field" : "__b", + "owner" : "ka", + "name" : "b", + "access" : 0, + "descriptor" : "I", + "decoder" : -718217661 + }, { + "field" : "__m", + "owner" : "ka", + "name" : "m", + "access" : 0, + "descriptor" : "I", + "decoder" : -838843165 + }, { + "field" : "__p", + "owner" : "ka", + "name" : "p", + "access" : 0, + "descriptor" : "I", + "decoder" : 1210592943 + }, { + "field" : "__q", + "owner" : "ka", + "name" : "q", + "access" : 0, + "descriptor" : "I", + "decoder" : 1278380113 + }, { + "field" : "__a", + "owner" : "ka", + "name" : "a", + "access" : 0, + "descriptor" : "J", + "decoder" : 331649546976032179 + }, { + "field" : "__f", + "owner" : "ka", + "name" : "f", + "access" : 0, + "descriptor" : "J", + "decoder" : -6758735277535701557 + }, { + "field" : "__h", + "owner" : "ka", + "name" : "h", + "access" : 0, + "descriptor" : "J", + "decoder" : 8613492977957081835 + }, { + "field" : "__s", + "owner" : "ka", + "name" : "s", + "access" : 0, + "descriptor" : "J", + "decoder" : -45624293603189385 + }, { + "field" : "__x", + "owner" : "ka", + "name" : "x", + "access" : 0, + "descriptor" : "J", + "decoder" : 1385251725868335585 + }, { + "field" : "__g", + "owner" : "ka", + "name" : "g", + "access" : 1, + "descriptor" : "Z" + } ], + "methods" : [ { + "method" : "write", + "owner" : "ka", + "name" : "p", + "access" : 1, + "parameters" : [ "buffer" ], + "descriptor" : "(Lgx;I)V" + }, { + "method" : "__a_456", + "owner" : "ka", + "name" : "a", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(I)V" + }, { + "method" : "__s_457", + "owner" : "ka", + "name" : "s", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(I)V" + }, { + "method" : "__g_458", + "owner" : "ka", + "name" : "g", + "access" : 1, + "parameters" : [ "arg0" ], + "descriptor" : "(IB)V" + }, { + "method" : "__x_459", + "owner" : "ka", + "name" : "x", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(I)V" + }, { + "method" : "__h_460", + "owner" : "ka", + "name" : "h", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(I)V" + }, { + "method" : "__f_461", + "owner" : "ka", + "name" : "f", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(B)V" + } ], + "constructors" : [ { + "access" : 1, + "descriptor" : "()V" + } ] +}, { + "class" : "User", + "name" : "kn", + "super" : "java.lang.Object", + "access" : 33, + "interfaces" : [ "java.lang.Comparable" ], + "fields" : [ { + "field" : "previousUsername", + "owner" : "kn", + "name" : "x", + "access" : 0, + "descriptor" : "Lkx;" + }, { + "field" : "username0", + "owner" : "kn", + "name" : "g", + "access" : 0, + "descriptor" : "Lkx;" + } ], + "methods" : [ { + "method" : "compareTo0", + "owner" : "kn", + "name" : "au", + "access" : 1, + "parameters" : [ "other" ], + "descriptor" : "(Lkn;I)I" + }, { + "method" : "name", + "owner" : "kn", + "name" : "at", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(I)Ljava/lang/String;" + }, { + "method" : "previousName", + "owner" : "kn", + "name" : "ae", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(I)Ljava/lang/String;" + }, { + "method" : "set", + "owner" : "kn", + "name" : "av", + "access" : 0, + "parameters" : [ "username", "previousUsername" ], + "descriptor" : "(Lkx;Lkx;I)V" + }, { + "method" : "username", + "owner" : "kn", + "name" : "an", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(I)Lkx;" + }, { + "method" : "__compareTo_462", + "owner" : "kn", + "name" : "compareTo", + "access" : 1, + "parameters" : [ "arg0" ], + "descriptor" : "(Ljava/lang/Object;)I" + } ], + "constructors" : [ { + "access" : 0, + "descriptor" : "()V" + } ] +}, { + "class" : "AbstractUserComparator", + "name" : "kj", + "super" : "java.lang.Object", + "access" : 1057, + "interfaces" : [ "java.util.Comparator" ], + "fields" : [ { + "field" : "__s", + "owner" : "kj", + "name" : "s", + "access" : 0, + "descriptor" : "Ljava/util/Comparator;" + } ], + "methods" : [ { + "method" : "__m_463", + "owner" : "kj", + "name" : "m", + "access" : 16, + "parameters" : [ "arg0" ], + "descriptor" : "(Ljava/util/Comparator;I)V" + }, { + "method" : "__q_464", + "owner" : "kj", + "name" : "q", + "access" : 20, + "parameters" : [ "arg0", "arg1" ], + "descriptor" : "(Lkn;Lkn;B)I" + }, { + "method" : "__equals_465", + "owner" : "kj", + "name" : "equals", + "access" : 1, + "parameters" : [ "arg0" ], + "descriptor" : "(Ljava/lang/Object;)Z" + } ], + "constructors" : [ { + "access" : 4, + "descriptor" : "()V" + } ] +}, { + "class" : "Ignored", + "name" : "kq", + "super" : "kn", + "access" : 33, + "interfaces" : [ ], + "fields" : [ { + "field" : "id", + "owner" : "kq", + "name" : "a", + "access" : 0, + "descriptor" : "I", + "decoder" : 964897101 + } ], + "methods" : [ { + "method" : "compareTo00", + "owner" : "kq", + "name" : "a", + "access" : 0, + "parameters" : [ "other" ], + "descriptor" : "(Lkq;B)I" + }, { + "method" : "__au_466", + "owner" : "kq", + "name" : "au", + "access" : 1, + "parameters" : [ "arg0" ], + "descriptor" : "(Lkn;I)I" + }, { + "method" : "__compareTo_467", + "owner" : "kq", + "name" : "compareTo", + "access" : 1, + "parameters" : [ "arg0" ], + "descriptor" : "(Ljava/lang/Object;)I" + } ], + "constructors" : [ { + "access" : 0, + "descriptor" : "()V" + } ] +}, { + "class" : "FriendsList", + "name" : "kr", + "super" : "kd", + "access" : 33, + "interfaces" : [ ], + "fields" : [ { + "field" : "friendLoginUpdates", + "owner" : "kr", + "name" : "n", + "access" : 1, + "descriptor" : "Lhp;" + }, { + "field" : "loginType", + "owner" : "kr", + "name" : "g", + "access" : 16, + "descriptor" : "Lll;" + }, { + "field" : "__b", + "owner" : "kr", + "name" : "b", + "access" : 0, + "descriptor" : "I", + "decoder" : -672753831 + } ], + "methods" : [ { + "method" : "newInstance", + "owner" : "kr", + "name" : "a", + "access" : 0, + "descriptor" : "(I)Lkn;" + }, { + "method" : "newTypedArray", + "owner" : "kr", + "name" : "s", + "access" : 0, + "descriptor" : "(IB)[Lkn;" + }, { + "method" : "read", + "owner" : "kr", + "name" : "n", + "access" : 1, + "parameters" : [ "buffer", "n" ], + "descriptor" : "(Lgx;IB)V" + }, { + "method" : "__g_468", + "owner" : "kr", + "name" : "g", + "access" : 1, + "parameters" : [ "arg0", "arg1" ], + "descriptor" : "(Lkx;ZB)Z" + } ], + "constructors" : [ { + "access" : 1, + "descriptor" : "(Lll;)V" + } ] +}, { + "class" : "Username", + "name" : "kx", + "super" : "java.lang.Object", + "access" : 33, + "interfaces" : [ "java.lang.Comparable" ], + "fields" : [ { + "field" : "cleanName", + "owner" : "kx", + "name" : "s", + "access" : 0, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "name0", + "owner" : "kx", + "name" : "a", + "access" : 0, + "descriptor" : "Ljava/lang/String;" + } ], + "methods" : [ { + "method" : "compareTo0", + "owner" : "kx", + "name" : "g", + "access" : 1, + "parameters" : [ "other" ], + "descriptor" : "(Lkx;I)I" + }, { + "method" : "hasCleanName", + "owner" : "kx", + "name" : "s", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(I)Z" + }, { + "method" : "name", + "owner" : "kx", + "name" : "a", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(B)Ljava/lang/String;" + }, { + "method" : "__equals_469", + "owner" : "kx", + "name" : "equals", + "access" : 1, + "parameters" : [ "arg0" ], + "descriptor" : "(Ljava/lang/Object;)Z" + }, { + "method" : "__hashCode_470", + "owner" : "kx", + "name" : "hashCode", + "access" : 1, + "parameters" : [ ], + "descriptor" : "()I" + }, { + "method" : "__toString_471", + "owner" : "kx", + "name" : "toString", + "access" : 1, + "parameters" : [ ], + "descriptor" : "()Ljava/lang/String;" + }, { + "method" : "__compareTo_472", + "owner" : "kx", + "name" : "compareTo", + "access" : 1, + "parameters" : [ "arg0" ], + "descriptor" : "(Ljava/lang/Object;)I" + } ], + "constructors" : [ { + "access" : 1, + "descriptor" : "(Ljava/lang/String;Lll;)V" + } ] +}, { + "class" : "Friend", + "name" : "ks", + "super" : "kl", + "access" : 33, + "interfaces" : [ ], + "fields" : [ { + "field" : "__a", + "owner" : "ks", + "name" : "a", + "access" : 0, + "descriptor" : "Z" + }, { + "field" : "__s", + "owner" : "ks", + "name" : "s", + "access" : 0, + "descriptor" : "Z" + } ], + "methods" : [ { + "method" : "compareTo00", + "owner" : "ks", + "name" : "a", + "access" : 0, + "parameters" : [ "other" ], + "descriptor" : "(Lks;B)I" + }, { + "method" : "__au_473", + "owner" : "ks", + "name" : "au", + "access" : 1, + "parameters" : [ "arg0" ], + "descriptor" : "(Lkn;I)I" + }, { + "method" : "__compareTo_474", + "owner" : "ks", + "name" : "compareTo", + "access" : 1, + "parameters" : [ "arg0" ], + "descriptor" : "(Ljava/lang/Object;)I" + } ], + "constructors" : [ { + "access" : 0, + "descriptor" : "()V" + } ] +}, { + "class" : "ClanChat", + "name" : "ky", + "super" : "kd", + "access" : 33, + "interfaces" : [ ], + "fields" : [ { + "field" : "localUser", + "owner" : "ky", + "name" : "g", + "access" : 16, + "descriptor" : "Lko;" + }, { + "field" : "loginType", + "owner" : "ky", + "name" : "s", + "access" : 16, + "descriptor" : "Lll;" + }, { + "field" : "name", + "owner" : "ky", + "name" : "b", + "access" : 1, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "owner", + "owner" : "ky", + "name" : "n", + "access" : 1, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "rank", + "owner" : "ky", + "name" : "r", + "access" : 1, + "descriptor" : "I", + "decoder" : 90485331 + }, { + "field" : "__t", + "owner" : "ky", + "name" : "t", + "access" : 0, + "descriptor" : "I", + "decoder" : -1331778397 + }, { + "field" : "__e", + "owner" : "ky", + "name" : "e", + "access" : 1, + "descriptor" : "B" + } ], + "methods" : [ { + "method" : "clearFriends", + "owner" : "ky", + "name" : "cn", + "access" : 17, + "parameters" : [ ], + "descriptor" : "(I)V" + }, { + "method" : "clearIgnoreds", + "owner" : "ky", + "name" : "cw", + "access" : 17, + "parameters" : [ ], + "descriptor" : "(I)V" + }, { + "method" : "newInstance", + "owner" : "ky", + "name" : "a", + "access" : 0, + "descriptor" : "(I)Lkn;" + }, { + "method" : "newTypedArray", + "owner" : "ky", + "name" : "s", + "access" : 0, + "descriptor" : "(IB)[Lkn;" + }, { + "method" : "readUpdate", + "owner" : "ky", + "name" : "cr", + "access" : 17, + "parameters" : [ "buffer" ], + "descriptor" : "(Lgx;I)V" + }, { + "method" : "__g_475", + "owner" : "ky", + "name" : "g", + "access" : 16, + "parameters" : [ "arg0" ], + "descriptor" : "(Ljava/lang/String;B)V" + }, { + "method" : "__n_476", + "owner" : "ky", + "name" : "n", + "access" : 16, + "parameters" : [ "arg0" ], + "descriptor" : "(Ljava/lang/String;I)V" + }, { + "method" : "__ck_477", + "owner" : "ky", + "name" : "ck", + "access" : 17, + "parameters" : [ "arg0" ], + "descriptor" : "(Lgx;B)V" + }, { + "method" : "__cv_478", + "owner" : "ky", + "name" : "cv", + "access" : 16, + "parameters" : [ "arg0" ], + "descriptor" : "(Lkm;I)V" + } ], + "constructors" : [ { + "access" : 1, + "descriptor" : "(Lll;Lko;)V" + } ] +}, { + "class" : "FontName", + "name" : "kw", + "super" : "java.lang.Object", + "access" : 33, + "interfaces" : [ ], + "fields" : [ { + "field" : "__p", + "owner" : "kw", + "name" : "p", + "access" : 0, + "descriptor" : "Ljava/lang/String;" + } ], + "methods" : [ ], + "constructors" : [ { + "access" : 0, + "descriptor" : "(Ljava/lang/String;)V" + } ] +}, { + "class" : "Fonts", + "name" : "ke", + "super" : "java.lang.Object", + "access" : 33, + "interfaces" : [ ], + "fields" : [ { + "field" : "map", + "owner" : "ke", + "name" : "g", + "access" : 0, + "descriptor" : "Ljava/util/HashMap;" + }, { + "field" : "__a", + "owner" : "ke", + "name" : "a", + "access" : 0, + "descriptor" : "Liz;" + }, { + "field" : "__s", + "owner" : "ke", + "name" : "s", + "access" : 0, + "descriptor" : "Liz;" + } ], + "methods" : [ { + "method" : "createMap", + "owner" : "ke", + "name" : "a", + "access" : 1, + "descriptor" : "([Lkw;I)Ljava/util/HashMap;" + } ], + "constructors" : [ { + "access" : 1, + "descriptor" : "(Liz;Liz;)V" + } ] +}, { + "class" : "SpriteIds", + "name" : "lf", + "super" : "java.lang.Object", + "access" : 33, + "interfaces" : [ ], + "fields" : [ { + "field" : "crosses", + "owner" : "lf", + "name" : "m", + "access" : 1, + "descriptor" : "I", + "decoder" : -1669700025 + }, { + "field" : "headIconsHint", + "owner" : "lf", + "name" : "f", + "access" : 1, + "descriptor" : "I", + "decoder" : -1684366731 + }, { + "field" : "headIconsPk", + "owner" : "lf", + "name" : "x", + "access" : 1, + "descriptor" : "I", + "decoder" : -2019109473 + }, { + "field" : "headIconsPrayer", + "owner" : "lf", + "name" : "h", + "access" : 1, + "descriptor" : "I", + "decoder" : 494661443 + }, { + "field" : "mapDots", + "owner" : "lf", + "name" : "q", + "access" : 1, + "descriptor" : "I", + "decoder" : 822521699 + }, { + "field" : "mapMarkers", + "owner" : "lf", + "name" : "p", + "access" : 1, + "descriptor" : "I", + "decoder" : 853063867 + }, { + "field" : "mapScenes", + "owner" : "lf", + "name" : "g", + "access" : 1, + "descriptor" : "I", + "decoder" : -2017959977 + }, { + "field" : "modIcons", + "owner" : "lf", + "name" : "n", + "access" : 1, + "descriptor" : "I", + "decoder" : -1831295821 + }, { + "field" : "scrollBars", + "owner" : "lf", + "name" : "b", + "access" : 1, + "descriptor" : "I", + "decoder" : -1843108053 + }, { + "field" : "__a", + "owner" : "lf", + "name" : "a", + "access" : 1, + "descriptor" : "I", + "decoder" : 540491633 + }, { + "field" : "__s", + "owner" : "lf", + "name" : "s", + "access" : 1, + "descriptor" : "I", + "decoder" : -2080478391 + } ], + "methods" : [ { + "method" : "read", + "owner" : "lf", + "name" : "a", + "access" : 1, + "parameters" : [ "index" ], + "descriptor" : "(Liz;I)V" + } ], + "constructors" : [ { + "access" : 1, + "descriptor" : "()V" + } ] +}, { + "class" : "UserComparator1", + "name" : "lk", + "super" : "java.lang.Object", + "access" : 33, + "interfaces" : [ "java.util.Comparator" ], + "fields" : [ { + "field" : "__a", + "owner" : "lk", + "name" : "a", + "access" : 16, + "descriptor" : "Z" + } ], + "methods" : [ { + "method" : "__a_479", + "owner" : "lk", + "name" : "a", + "access" : 0, + "parameters" : [ "arg0", "arg1" ], + "descriptor" : "(Lkn;Lkn;B)I" + }, { + "method" : "__compare_480", + "owner" : "lk", + "name" : "compare", + "access" : 1, + "parameters" : [ "arg0", "arg1" ], + "descriptor" : "(Ljava/lang/Object;Ljava/lang/Object;)I" + }, { + "method" : "__equals_481", + "owner" : "lk", + "name" : "equals", + "access" : 1, + "parameters" : [ "arg0" ], + "descriptor" : "(Ljava/lang/Object;)Z" + } ], + "constructors" : [ { + "access" : 1, + "descriptor" : "(Z)V" + } ] +}, { + "class" : "UserComparator2", + "name" : "lg", + "super" : "java.lang.Object", + "access" : 33, + "interfaces" : [ "java.util.Comparator" ], + "fields" : [ { + "field" : "__a", + "owner" : "lg", + "name" : "a", + "access" : 16, + "descriptor" : "Z" + } ], + "methods" : [ { + "method" : "__a_482", + "owner" : "lg", + "name" : "a", + "access" : 0, + "parameters" : [ "arg0", "arg1" ], + "descriptor" : "(Lkn;Lkn;B)I" + }, { + "method" : "__compare_483", + "owner" : "lg", + "name" : "compare", + "access" : 1, + "parameters" : [ "arg0", "arg1" ], + "descriptor" : "(Ljava/lang/Object;Ljava/lang/Object;)I" + }, { + "method" : "__equals_484", + "owner" : "lg", + "name" : "equals", + "access" : 1, + "parameters" : [ "arg0" ], + "descriptor" : "(Ljava/lang/Object;)Z" + } ], + "constructors" : [ { + "access" : 1, + "descriptor" : "(Z)V" + } ] +}, { + "class" : "Bounds", + "name" : "lh", + "super" : "java.lang.Object", + "access" : 33, + "interfaces" : [ ], + "fields" : [ { + "field" : "__a", + "owner" : "lh", + "name" : "a", + "access" : 1, + "descriptor" : "I", + "decoder" : 1276157069 + }, { + "field" : "__g", + "owner" : "lh", + "name" : "g", + "access" : 1, + "descriptor" : "I", + "decoder" : 845191259 + }, { + "field" : "__s", + "owner" : "lh", + "name" : "s", + "access" : 1, + "descriptor" : "I", + "decoder" : 1562129035 + }, { + "field" : "__x", + "owner" : "lh", + "name" : "x", + "access" : 1, + "descriptor" : "I", + "decoder" : -1694776703 + } ], + "methods" : [ { + "method" : "__a_485", + "owner" : "lh", + "name" : "a", + "access" : 1, + "parameters" : [ "arg0", "arg1" ], + "descriptor" : "(III)V" + }, { + "method" : "__s_486", + "owner" : "lh", + "name" : "s", + "access" : 1, + "parameters" : [ "arg0", "arg1" ], + "descriptor" : "(IIB)V" + }, { + "method" : "__toString_487", + "owner" : "lh", + "name" : "toString", + "access" : 1, + "parameters" : [ ], + "descriptor" : "()Ljava/lang/String;" + }, { + "method" : "__g_488", + "owner" : "lh", + "name" : "g", + "access" : 1, + "parameters" : [ "arg0", "arg1" ], + "descriptor" : "(Llh;Llh;I)V" + }, { + "method" : "__x_489", + "owner" : "lh", + "name" : "x", + "access" : 0, + "parameters" : [ "arg0", "arg1" ], + "descriptor" : "(Llh;Llh;I)V" + }, { + "method" : "__h_490", + "owner" : "lh", + "name" : "h", + "access" : 0, + "parameters" : [ "arg0", "arg1" ], + "descriptor" : "(Llh;Llh;I)V" + }, { + "method" : "__f_491", + "owner" : "lh", + "name" : "f", + "access" : 0, + "parameters" : [ ], + "descriptor" : "(B)I" + }, { + "method" : "__p_492", + "owner" : "lh", + "name" : "p", + "access" : 0, + "parameters" : [ ], + "descriptor" : "(I)I" + } ], + "constructors" : [ { + "access" : 1, + "descriptor" : "(II)V" + }, { + "access" : 1, + "descriptor" : "(IIII)V" + } ] +}, { + "class" : "RectangleMode", + "name" : "lp", + "super" : "java.lang.Object", + "access" : 33, + "interfaces" : [ "gr" ], + "fields" : [ { + "field" : "id", + "owner" : "lp", + "name" : "x", + "access" : 17, + "descriptor" : "I", + "decoder" : 606563051 + }, { + "field" : "id2", + "owner" : "lp", + "name" : "h", + "access" : 16, + "descriptor" : "I", + "decoder" : -960272879 + } ], + "methods" : [ { + "method" : "__x_493", + "owner" : "lp", + "name" : "x", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(I)I" + } ], + "constructors" : [ { + "access" : 0, + "descriptor" : "(II)V" + } ] +}, { + "class" : "IndexedSprite", + "name" : "lv", + "super" : "lb", + "access" : 49, + "interfaces" : [ ], + "fields" : [ { + "field" : "height", + "owner" : "lv", + "name" : "m", + "access" : 1, + "descriptor" : "I" + }, { + "field" : "palette", + "owner" : "lv", + "name" : "s", + "access" : 1, + "descriptor" : "[I" + }, { + "field" : "pixels", + "owner" : "lv", + "name" : "a", + "access" : 1, + "descriptor" : "[B" + }, { + "field" : "subHeight", + "owner" : "lv", + "name" : "x", + "access" : 1, + "descriptor" : "I" + }, { + "field" : "subWidth", + "owner" : "lv", + "name" : "g", + "access" : 1, + "descriptor" : "I" + }, { + "field" : "width", + "owner" : "lv", + "name" : "p", + "access" : 1, + "descriptor" : "I" + }, { + "field" : "xOffset", + "owner" : "lv", + "name" : "h", + "access" : 1, + "descriptor" : "I" + }, { + "field" : "yOffset", + "owner" : "lv", + "name" : "f", + "access" : 1, + "descriptor" : "I" + } ], + "methods" : [ { + "method" : "normalize", + "owner" : "lv", + "name" : "a", + "access" : 1, + "parameters" : [ ], + "descriptor" : "()V" + }, { + "method" : "shiftColors", + "owner" : "lv", + "name" : "s", + "access" : 1, + "parameters" : [ "r", "g", "b" ], + "descriptor" : "(III)V" + }, { + "method" : "__g_494", + "owner" : "lv", + "name" : "g", + "access" : 1, + "parameters" : [ "arg0", "arg1" ], + "descriptor" : "(II)V" + }, { + "method" : "__h_495", + "owner" : "lv", + "name" : "h", + "access" : 1, + "parameters" : [ "arg0", "arg1", "arg2", "arg3" ], + "descriptor" : "(IIII)V" + } ], + "constructors" : [ { + "access" : 1, + "descriptor" : "()V" + } ] +}, { + "class" : "Sprite", + "name" : "ld", + "super" : "lb", + "access" : 49, + "interfaces" : [ ], + "fields" : [ { + "field" : "height", + "owner" : "ld", + "name" : "p", + "access" : 1, + "descriptor" : "I" + }, { + "field" : "pixels", + "owner" : "ld", + "name" : "a", + "access" : 1, + "descriptor" : "[I" + }, { + "field" : "subHeight", + "owner" : "ld", + "name" : "g", + "access" : 1, + "descriptor" : "I" + }, { + "field" : "subWidth", + "owner" : "ld", + "name" : "s", + "access" : 1, + "descriptor" : "I" + }, { + "field" : "width", + "owner" : "ld", + "name" : "f", + "access" : 1, + "descriptor" : "I" + }, { + "field" : "xOffset", + "owner" : "ld", + "name" : "h", + "access" : 0, + "descriptor" : "I" + }, { + "field" : "yOffset", + "owner" : "ld", + "name" : "x", + "access" : 1, + "descriptor" : "I" + } ], + "methods" : [ { + "method" : "copy", + "owner" : "ld", + "name" : "a", + "access" : 1, + "parameters" : [ ], + "descriptor" : "()Lld;" + }, { + "method" : "copyNormalized", + "owner" : "ld", + "name" : "s", + "access" : 1, + "parameters" : [ ], + "descriptor" : "()Lld;" + }, { + "method" : "normalize", + "owner" : "ld", + "name" : "x", + "access" : 1, + "parameters" : [ ], + "descriptor" : "()V" + }, { + "method" : "__g_496", + "owner" : "ld", + "name" : "g", + "access" : 1, + "parameters" : [ ], + "descriptor" : "()V" + }, { + "method" : "__h_497", + "owner" : "ld", + "name" : "h", + "access" : 1, + "parameters" : [ "arg0" ], + "descriptor" : "(I)V" + }, { + "method" : "__f_498", + "owner" : "ld", + "name" : "f", + "access" : 1, + "parameters" : [ ], + "descriptor" : "()V" + }, { + "method" : "__p_499", + "owner" : "ld", + "name" : "p", + "access" : 1, + "parameters" : [ ], + "descriptor" : "()V" + }, { + "method" : "__m_500", + "owner" : "ld", + "name" : "m", + "access" : 1, + "parameters" : [ "arg0" ], + "descriptor" : "(I)V" + }, { + "method" : "__q_501", + "owner" : "ld", + "name" : "q", + "access" : 1, + "parameters" : [ "arg0" ], + "descriptor" : "(I)V" + }, { + "method" : "__b_502", + "owner" : "ld", + "name" : "b", + "access" : 1, + "parameters" : [ "arg0", "arg1" ], + "descriptor" : "(II)V" + }, { + "method" : "__e_503", + "owner" : "ld", + "name" : "e", + "access" : 1, + "parameters" : [ "arg0", "arg1" ], + "descriptor" : "(II)V" + }, { + "method" : "__t_504", + "owner" : "ld", + "name" : "t", + "access" : 1, + "parameters" : [ "arg0", "arg1", "arg2", "arg3" ], + "descriptor" : "(IIII)V" + }, { + "method" : "__o_505", + "owner" : "ld", + "name" : "o", + "access" : 1, + "parameters" : [ "arg0", "arg1", "arg2", "arg3" ], + "descriptor" : "(IIII)V" + }, { + "method" : "__y_506", + "owner" : "ld", + "name" : "y", + "access" : 1, + "parameters" : [ "arg0", "arg1", "arg2" ], + "descriptor" : "(III)V" + }, { + "method" : "__v_507", + "owner" : "ld", + "name" : "v", + "access" : 1, + "parameters" : [ "arg0", "arg1", "arg2", "arg3", "arg4" ], + "descriptor" : "(IIIII)V" + }, { + "method" : "__aa_508", + "owner" : "ld", + "name" : "aa", + "access" : 1, + "parameters" : [ "arg0", "arg1", "arg2" ], + "descriptor" : "(III)V" + }, { + "method" : "__aw_509", + "owner" : "ld", + "name" : "aw", + "access" : 1, + "parameters" : [ "arg0", "arg1", "arg2", "arg3", "arg4" ], + "descriptor" : "(IIIII)V" + }, { + "method" : "__ae_510", + "owner" : "ld", + "name" : "ae", + "access" : 1, + "parameters" : [ "arg0", "arg1", "arg2", "arg3", "arg4", "arg5", "arg6", "arg7" ], + "descriptor" : "(IIIIII[I[I)V" + }, { + "method" : "__av_511", + "owner" : "ld", + "name" : "av", + "access" : 1, + "parameters" : [ "arg0", "arg1", "arg2", "arg3", "arg4", "arg5", "arg6", "arg7", "arg8", "arg9" ], + "descriptor" : "(IIIIIIII[I[I)V" + }, { + "method" : "__au_512", + "owner" : "ld", + "name" : "au", + "access" : 1, + "parameters" : [ "arg0", "arg1", "arg2", "arg3", "arg4", "arg5", "arg6", "arg7" ], + "descriptor" : "(IIIIIIDI)V" + }, { + "method" : "__aj_513", + "owner" : "ld", + "name" : "aj", + "access" : 1, + "parameters" : [ "arg0", "arg1", "arg2", "arg3" ], + "descriptor" : "(IIII)V" + }, { + "method" : "__as_514", + "owner" : "ld", + "name" : "as", + "access" : 0, + "parameters" : [ "arg0", "arg1", "arg2", "arg3", "arg4", "arg5" ], + "descriptor" : "(IIIIII)V" + }, { + "method" : "__ar_515", + "owner" : "ld", + "name" : "ar", + "access" : 1, + "parameters" : [ "arg0", "arg1", "arg2", "arg3" ], + "descriptor" : "(IIII)V" + } ], + "constructors" : [ { + "access" : 0, + "descriptor" : "()V" + }, { + "access" : 1, + "descriptor" : "(II)V" + }, { + "access" : 1, + "descriptor" : "([III)V" + } ] +}, { + "class" : "PlatformInfo", + "name" : "li", + "super" : "hy", + "access" : 33, + "interfaces" : [ ], + "fields" : [ { + "field" : "__an", + "owner" : "li", + "name" : "an", + "access" : 0, + "descriptor" : "Z" + }, { + "field" : "__as", + "owner" : "li", + "name" : "as", + "access" : 0, + "descriptor" : "Z" + }, { + "field" : "__ae", + "owner" : "li", + "name" : "ae", + "access" : 0, + "descriptor" : "I", + "decoder" : -246402761 + }, { + "field" : "__ai", + "owner" : "li", + "name" : "ai", + "access" : 0, + "descriptor" : "I", + "decoder" : 1094623715 + }, { + "field" : "__aj", + "owner" : "li", + "name" : "aj", + "access" : 0, + "descriptor" : "I", + "decoder" : -1371798001 + }, { + "field" : "__ak", + "owner" : "li", + "name" : "ak", + "access" : 0, + "descriptor" : "I", + "decoder" : 1178383851 + }, { + "field" : "__al", + "owner" : "li", + "name" : "al", + "access" : 0, + "descriptor" : "I", + "decoder" : -1737806495 + }, { + "field" : "__am", + "owner" : "li", + "name" : "am", + "access" : 0, + "descriptor" : "I", + "decoder" : 87564309 + }, { + "field" : "__ap", + "owner" : "li", + "name" : "ap", + "access" : 0, + "descriptor" : "I", + "decoder" : -1815618991 + }, { + "field" : "__ar", + "owner" : "li", + "name" : "ar", + "access" : 0, + "descriptor" : "I", + "decoder" : -526326567 + }, { + "field" : "__at", + "owner" : "li", + "name" : "at", + "access" : 0, + "descriptor" : "I", + "decoder" : -2022011321 + }, { + "field" : "__au", + "owner" : "li", + "name" : "au", + "access" : 0, + "descriptor" : "I", + "decoder" : -773146569 + }, { + "field" : "__av", + "owner" : "li", + "name" : "av", + "access" : 0, + "descriptor" : "I", + "decoder" : -1133324349 + }, { + "field" : "__aw", + "owner" : "li", + "name" : "aw", + "access" : 0, + "descriptor" : "I", + "decoder" : -954353821 + }, { + "field" : "__az", + "owner" : "li", + "name" : "az", + "access" : 0, + "descriptor" : "I", + "decoder" : -1598160397 + }, { + "field" : "__bf", + "owner" : "li", + "name" : "bf", + "access" : 0, + "descriptor" : "I", + "decoder" : 193012179 + }, { + "field" : "__bz", + "owner" : "li", + "name" : "bz", + "access" : 0, + "descriptor" : "I", + "decoder" : -672502519 + }, { + "field" : "__bd", + "owner" : "li", + "name" : "bd", + "access" : 0, + "descriptor" : "[I" + }, { + "field" : "__ac", + "owner" : "li", + "name" : "ac", + "access" : 0, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__ad", + "owner" : "li", + "name" : "ad", + "access" : 0, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__ao", + "owner" : "li", + "name" : "ao", + "access" : 0, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__ax", + "owner" : "li", + "name" : "ax", + "access" : 0, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__be", + "owner" : "li", + "name" : "be", + "access" : 0, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__bi", + "owner" : "li", + "name" : "bi", + "access" : 0, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__bo", + "owner" : "li", + "name" : "bo", + "access" : 0, + "descriptor" : "Ljava/lang/String;" + } ], + "methods" : [ { + "method" : "size", + "owner" : "li", + "name" : "s", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(B)I" + }, { + "method" : "write", + "owner" : "li", + "name" : "a", + "access" : 1, + "parameters" : [ "buffer" ], + "descriptor" : "(Lgx;I)V" + } ], + "constructors" : [ { + "access" : 0, + "descriptor" : "(IZIIIIIZIIIILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;IIIILjava/lang/String;Ljava/lang/String;[IILjava/lang/String;)V" + } ] +}, { + "class" : "WorldMap", + "name" : "lq", + "super" : "java.lang.Object", + "access" : 33, + "interfaces" : [ ], + "fields" : [ { + "field" : "cacheLoader", + "owner" : "lq", + "name" : "d", + "access" : 0, + "descriptor" : "Llw;" + }, { + "field" : "currentMapArea0", + "owner" : "lq", + "name" : "y", + "access" : 0, + "descriptor" : "Lag;" + }, { + "field" : "elementsDisabled", + "owner" : "lq", + "name" : "am", + "access" : 0, + "descriptor" : "Z" + }, { + "field" : "enabledCategories", + "owner" : "lq", + "name" : "ax", + "access" : 0, + "descriptor" : "Ljava/util/HashSet;" + }, { + "field" : "enabledElements", + "owner" : "lq", + "name" : "ad", + "access" : 0, + "descriptor" : "Ljava/util/HashSet;" + }, { + "field" : "flashingElements", + "owner" : "lq", + "name" : "at", + "access" : 0, + "descriptor" : "Ljava/util/HashSet;" + }, { + "field" : "font", + "owner" : "lq", + "name" : "r", + "access" : 0, + "descriptor" : "Lkt;" + }, { + "field" : "fonts", + "owner" : "lq", + "name" : "t", + "access" : 0, + "descriptor" : "Ljava/util/HashMap;" + }, { + "field" : "iconIterator", + "owner" : "lq", + "name" : "bz", + "access" : 0, + "descriptor" : "Ljava/util/Iterator;" + }, { + "field" : "mainMapArea", + "owner" : "lq", + "name" : "u", + "access" : 0, + "descriptor" : "Lag;" + }, { + "field" : "mapAreas", + "owner" : "lq", + "name" : "o", + "access" : 0, + "descriptor" : "Ljava/util/HashMap;" + }, { + "field" : "mapSceneSprites", + "owner" : "lq", + "name" : "l", + "access" : 0, + "descriptor" : "[Llv;" + }, { + "field" : "mouseCoord", + "owner" : "lq", + "name" : "bp", + "access" : 0, + "descriptor" : "Lif;" + }, { + "field" : "perpetualFlash0", + "owner" : "lq", + "name" : "an", + "access" : 0, + "descriptor" : "Z" + }, { + "field" : "sprite", + "owner" : "lq", + "name" : "bg", + "access" : 0, + "descriptor" : "Lld;" + }, { + "field" : "worldMapManager", + "owner" : "lq", + "name" : "v", + "access" : 0, + "descriptor" : "Lav;" + }, { + "field" : "zoom", + "owner" : "lq", + "name" : "z", + "access" : 0, + "descriptor" : "F" + }, { + "field" : "zoomTarget", + "owner" : "lq", + "name" : "ag", + "access" : 0, + "descriptor" : "F" + }, { + "field" : "__k", + "owner" : "lq", + "name" : "k", + "access" : 0, + "descriptor" : "Lag;" + }, { + "field" : "__az", + "owner" : "lq", + "name" : "az", + "access" : 0, + "descriptor" : "Z" + }, { + "field" : "__aa", + "owner" : "lq", + "name" : "aa", + "access" : 0, + "descriptor" : "I", + "decoder" : 2122982383 + }, { + "field" : "__ab", + "owner" : "lq", + "name" : "ab", + "access" : 0, + "descriptor" : "I", + "decoder" : -1551657967 + }, { + "field" : "__ae", + "owner" : "lq", + "name" : "ae", + "access" : 0, + "descriptor" : "I", + "decoder" : -929811291 + }, { + "field" : "__af", + "owner" : "lq", + "name" : "af", + "access" : 0, + "descriptor" : "I", + "decoder" : 1734018001 + }, { + "field" : "__ah", + "owner" : "lq", + "name" : "ah", + "access" : 0, + "descriptor" : "I", + "decoder" : 1451062415 + }, { + "field" : "__aj", + "owner" : "lq", + "name" : "aj", + "access" : 0, + "descriptor" : "I", + "decoder" : 341855601 + }, { + "field" : "__al", + "owner" : "lq", + "name" : "al", + "access" : 0, + "descriptor" : "I", + "decoder" : -1830588467 + }, { + "field" : "__aq", + "owner" : "lq", + "name" : "aq", + "access" : 0, + "descriptor" : "I", + "decoder" : 276263011 + }, { + "field" : "__ar", + "owner" : "lq", + "name" : "ar", + "access" : 0, + "descriptor" : "I", + "decoder" : -669721695 + }, { + "field" : "__as", + "owner" : "lq", + "name" : "as", + "access" : 0, + "descriptor" : "I", + "decoder" : 2007235211 + }, { + "field" : "__au", + "owner" : "lq", + "name" : "au", + "access" : 0, + "descriptor" : "I", + "decoder" : 137845797 + }, { + "field" : "__av", + "owner" : "lq", + "name" : "av", + "access" : 0, + "descriptor" : "I", + "decoder" : 265619751 + }, { + "field" : "__aw", + "owner" : "lq", + "name" : "aw", + "access" : 0, + "descriptor" : "I", + "decoder" : -1451304293 + }, { + "field" : "__ay", + "owner" : "lq", + "name" : "ay", + "access" : 0, + "descriptor" : "I", + "decoder" : -337859149 + }, { + "field" : "__bf", + "owner" : "lq", + "name" : "bf", + "access" : 0, + "descriptor" : "I", + "decoder" : -513481129 + }, { + "field" : "__bk", + "owner" : "lq", + "name" : "bk", + "access" : 0, + "descriptor" : "I", + "decoder" : 1467869341 + }, { + "field" : "__bl", + "owner" : "lq", + "name" : "bl", + "access" : 0, + "descriptor" : "I", + "decoder" : -440766419 + }, { + "field" : "__bn", + "owner" : "lq", + "name" : "bn", + "access" : 0, + "descriptor" : "I", + "decoder" : 292217987 + }, { + "field" : "__br", + "owner" : "lq", + "name" : "br", + "access" : 0, + "descriptor" : "I", + "decoder" : -1862450189 + }, { + "field" : "__c", + "owner" : "lq", + "name" : "c", + "access" : 0, + "descriptor" : "I", + "decoder" : -1010057293 + }, { + "field" : "__i", + "owner" : "lq", + "name" : "i", + "access" : 0, + "descriptor" : "I", + "decoder" : -430412355 + }, { + "field" : "__j", + "owner" : "lq", + "name" : "j", + "access" : 0, + "descriptor" : "I", + "decoder" : 1554339443 + }, { + "field" : "__w", + "owner" : "lq", + "name" : "w", + "access" : 0, + "descriptor" : "I", + "decoder" : -1162073603 + }, { + "field" : "__m", + "owner" : "lq", + "name" : "m", + "access" : 0, + "descriptor" : "Liz;" + }, { + "field" : "__p", + "owner" : "lq", + "name" : "p", + "access" : 0, + "descriptor" : "Liz;" + }, { + "field" : "__q", + "owner" : "lq", + "name" : "q", + "access" : 0, + "descriptor" : "Liz;" + }, { + "field" : "__ak", + "owner" : "lq", + "name" : "ak", + "access" : 0, + "descriptor" : "Ljava/util/HashSet;" + }, { + "field" : "__ap", + "owner" : "lq", + "name" : "ap", + "access" : 0, + "descriptor" : "Ljava/util/HashSet;" + }, { + "field" : "__bi", + "owner" : "lq", + "name" : "bi", + "access" : 0, + "descriptor" : "Ljava/util/HashSet;" + }, { + "field" : "__bd", + "owner" : "lq", + "name" : "bd", + "access" : 0, + "descriptor" : "Ljava/util/List;" + }, { + "field" : "__ai", + "owner" : "lq", + "name" : "ai", + "access" : 0, + "descriptor" : "J", + "decoder" : -3815897326315943185 + }, { + "field" : "__be", + "owner" : "lq", + "name" : "be", + "access" : 16, + "descriptor" : "[I" + }, { + "field" : "__bv", + "owner" : "lq", + "name" : "bv", + "access" : 1, + "descriptor" : "Z" + } ], + "methods" : [ { + "method" : "currentMapAreaId", + "owner" : "lq", + "name" : "t", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(I)I" + }, { + "method" : "disableCategory", + "owner" : "lq", + "name" : "bi", + "access" : 1, + "descriptor" : "(IZI)V" + }, { + "method" : "disableElement", + "owner" : "lq", + "name" : "bz", + "access" : 1, + "descriptor" : "(IZI)V" + }, { + "method" : "draw", + "owner" : "lq", + "name" : "v", + "access" : 1, + "parameters" : [ "x", "y", "width", "height", "cycle" ], + "descriptor" : "(IIIIII)V" + }, { + "method" : "drawLoading", + "owner" : "lq", + "name" : "aw", + "access" : 0, + "descriptor" : "(IIIIII)V" + }, { + "method" : "drawOverview", + "owner" : "lq", + "name" : "ab", + "access" : 1, + "parameters" : [ "x", "y", "width", "height" ], + "descriptor" : "(IIIIB)V" + }, { + "method" : "flashCategory", + "owner" : "lq", + "name" : "bo", + "access" : 1, + "descriptor" : "(II)V" + }, { + "method" : "flashElement", + "owner" : "lq", + "name" : "bf", + "access" : 1, + "descriptor" : "(II)V" + }, { + "method" : "getCurrentMapArea", + "owner" : "lq", + "name" : "l", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(I)Lag;" + }, { + "method" : "getElementsEnabled", + "owner" : "lq", + "name" : "bp", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(I)Z" + }, { + "method" : "getMapArea", + "owner" : "lq", + "name" : "au", + "access" : 1, + "parameters" : [ "id" ], + "descriptor" : "(II)Lag;" + }, { + "method" : "getZoomLevel", + "owner" : "lq", + "name" : "at", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(I)I" + }, { + "method" : "iconNext", + "owner" : "lq", + "name" : "bw", + "access" : 1, + "descriptor" : "(B)Lat;" + }, { + "method" : "iconStart", + "owner" : "lq", + "name" : "bb", + "access" : 1, + "descriptor" : "(S)Lat;" + }, { + "method" : "init", + "owner" : "lq", + "name" : "a", + "access" : 1, + "descriptor" : "(Liz;Liz;Liz;Lkt;Ljava/util/HashMap;[Llv;B)V" + }, { + "method" : "initializeWorldMapManager", + "owner" : "lq", + "name" : "u", + "access" : 0, + "parameters" : [ "mapArea" ], + "descriptor" : "(Lag;I)V" + }, { + "method" : "isCacheLoaded", + "owner" : "lq", + "name" : "av", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(I)Z" + }, { + "method" : "isCategoryDisabled", + "owner" : "lq", + "name" : "bg", + "access" : 1, + "descriptor" : "(II)Z" + }, { + "method" : "isElementDisabled", + "owner" : "lq", + "name" : "bv", + "access" : 1, + "descriptor" : "(II)Z" + }, { + "method" : "jump", + "owner" : "lq", + "name" : "k", + "access" : 0, + "parameters" : [ "plane", "x", "y" ], + "descriptor" : "(IIIB)V" + }, { + "method" : "loadCache", + "owner" : "lq", + "name" : "ae", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(I)V" + }, { + "method" : "mapAreaAtCoord", + "owner" : "lq", + "name" : "n", + "access" : 1, + "parameters" : [ "plane", "x", "y" ], + "descriptor" : "(IIIB)Lag;" + }, { + "method" : "menuAction", + "owner" : "lq", + "name" : "bl", + "access" : 1, + "parameters" : [ "a", "b", "c", "d" ], + "descriptor" : "(IILif;Lif;I)V" + }, { + "method" : "onCycle", + "owner" : "lq", + "name" : "g", + "access" : 1, + "parameters" : [ "a", "b", "c", "d", "e", "f", "g" ], + "descriptor" : "(IIZIIIII)V" + }, { + "method" : "perpetualFlash", + "owner" : "lq", + "name" : "am", + "access" : 1, + "descriptor" : "(ZI)V" + }, { + "method" : "setCurrentMapArea", + "owner" : "lq", + "name" : "o", + "access" : 0, + "parameters" : [ "mapArea" ], + "descriptor" : "(Lag;B)V" + }, { + "method" : "setCurrentMapAreaId", + "owner" : "lq", + "name" : "r", + "access" : 1, + "parameters" : [ "id" ], + "descriptor" : "(II)V" + }, { + "method" : "setElementsEnabled", + "owner" : "lq", + "name" : "bd", + "access" : 1, + "descriptor" : "(ZI)V" + }, { + "method" : "setZoomLevel", + "owner" : "lq", + "name" : "ah", + "access" : 1, + "parameters" : [ "zoom" ], + "descriptor" : "(IB)V" + }, { + "method" : "smoothZoom", + "owner" : "lq", + "name" : "f", + "access" : 0, + "parameters" : [ ], + "descriptor" : "(I)V" + }, { + "method" : "stopCurrentFlashes", + "owner" : "lq", + "name" : "be", + "access" : 1, + "descriptor" : "(B)V" + }, { + "method" : "__s_516", + "owner" : "lq", + "name" : "s", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(I)V" + }, { + "method" : "__x_517", + "owner" : "lq", + "name" : "x", + "access" : 1, + "parameters" : [ "arg0", "arg1", "arg2", "arg3" ], + "descriptor" : "(IIZZI)V" + }, { + "method" : "__h_518", + "owner" : "lq", + "name" : "h", + "access" : 0, + "parameters" : [ "arg0", "arg1", "arg2", "arg3" ], + "descriptor" : "(IIZJ)V" + }, { + "method" : "__p_519", + "owner" : "lq", + "name" : "p", + "access" : 0, + "parameters" : [ ], + "descriptor" : "(I)V" + }, { + "method" : "__m_520", + "owner" : "lq", + "name" : "m", + "access" : 16, + "parameters" : [ "arg0", "arg1", "arg2" ], + "descriptor" : "(IIZI)V" + }, { + "method" : "__q_521", + "owner" : "lq", + "name" : "q", + "access" : 16, + "parameters" : [ ], + "descriptor" : "(I)V" + }, { + "method" : "__b_522", + "owner" : "lq", + "name" : "b", + "access" : 0, + "parameters" : [ ], + "descriptor" : "(I)Z" + }, { + "method" : "__e_523", + "owner" : "lq", + "name" : "e", + "access" : 1, + "parameters" : [ "arg0", "arg1", "arg2", "arg3" ], + "descriptor" : "(IIIZB)V" + }, { + "method" : "__y_524", + "owner" : "lq", + "name" : "y", + "access" : 1, + "parameters" : [ "arg0", "arg1", "arg2", "arg3" ], + "descriptor" : "(Lag;Lif;Lif;ZI)V" + }, { + "method" : "__c_525", + "owner" : "lq", + "name" : "c", + "access" : 0, + "parameters" : [ "arg0", "arg1", "arg2", "arg3", "arg4", "arg5" ], + "descriptor" : "(IIIIIII)Z" + }, { + "method" : "__aa_526", + "owner" : "lq", + "name" : "aa", + "access" : 0, + "parameters" : [ "arg0", "arg1", "arg2", "arg3", "arg4", "arg5" ], + "descriptor" : "(IIIIIII)V" + }, { + "method" : "__an_527", + "owner" : "lq", + "name" : "an", + "access" : 0, + "parameters" : [ "arg0" ], + "descriptor" : "(IB)F" + }, { + "method" : "__aj_528", + "owner" : "lq", + "name" : "aj", + "access" : 1, + "parameters" : [ "arg0", "arg1" ], + "descriptor" : "(III)V" + }, { + "method" : "__as_529", + "owner" : "lq", + "name" : "as", + "access" : 1, + "parameters" : [ "arg0", "arg1" ], + "descriptor" : "(III)V" + }, { + "method" : "__ar_530", + "owner" : "lq", + "name" : "ar", + "access" : 1, + "parameters" : [ "arg0", "arg1", "arg2" ], + "descriptor" : "(IIII)V" + }, { + "method" : "__ai_531", + "owner" : "lq", + "name" : "ai", + "access" : 1, + "parameters" : [ "arg0", "arg1", "arg2" ], + "descriptor" : "(IIIB)V" + }, { + "method" : "__aq_532", + "owner" : "lq", + "name" : "aq", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(I)I" + }, { + "method" : "__al_533", + "owner" : "lq", + "name" : "al", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(I)I" + }, { + "method" : "__az_534", + "owner" : "lq", + "name" : "az", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(B)Lif;" + }, { + "method" : "__ac_535", + "owner" : "lq", + "name" : "ac", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(I)I" + }, { + "method" : "__ao_536", + "owner" : "lq", + "name" : "ao", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(I)I" + }, { + "method" : "__ad_537", + "owner" : "lq", + "name" : "ad", + "access" : 1, + "parameters" : [ "arg0" ], + "descriptor" : "(IB)V" + }, { + "method" : "__ax_538", + "owner" : "lq", + "name" : "ax", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(I)V" + }, { + "method" : "__ap_539", + "owner" : "lq", + "name" : "ap", + "access" : 1, + "parameters" : [ "arg0" ], + "descriptor" : "(II)V" + }, { + "method" : "__ak_540", + "owner" : "lq", + "name" : "ak", + "access" : 1, + "parameters" : [ ], + "descriptor" : "(B)V" + }, { + "method" : "__bk_541", + "owner" : "lq", + "name" : "bk", + "access" : 0, + "parameters" : [ ], + "descriptor" : "(B)V" + }, { + "method" : "__br_542", + "owner" : "lq", + "name" : "br", + "access" : 1, + "parameters" : [ "arg0", "arg1", "arg2", "arg3", "arg4", "arg5" ], + "descriptor" : "(IIIIIII)V" + }, { + "method" : "__bn_543", + "owner" : "lq", + "name" : "bn", + "access" : 1, + "parameters" : [ "arg0", "arg1" ], + "descriptor" : "(ILif;S)Lif;" + } ], + "constructors" : [ { + "access" : 1, + "descriptor" : "()V" + } ] +}, { + "class" : "LoginType", + "name" : "ll", + "super" : "java.lang.Object", + "access" : 33, + "interfaces" : [ ], + "fields" : [ { + "field" : "__n", + "owner" : "ll", + "name" : "n", + "access" : 16, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__b", + "owner" : "ll", + "name" : "b", + "access" : 17, + "descriptor" : "I", + "decoder" : -1974663209 + } ], + "methods" : [ { + "method" : "__toString_544", + "owner" : "ll", + "name" : "toString", + "access" : 1, + "parameters" : [ ], + "descriptor" : "()Ljava/lang/String;" + } ], + "constructors" : [ { + "access" : 0, + "descriptor" : "(IILjava/lang/String;Ljava/lang/String;)V" + }, { + "access" : 0, + "descriptor" : "(IILjava/lang/String;Ljava/lang/String;Z[Lll;)V" + } ] +}, { + "class" : "Client", + "name" : "client", + "super" : "bf", + "access" : 49, + "interfaces" : [ "ko" ], + "fields" : [ { + "field" : "AbstractFont_alpha", + "owner" : "kf", + "name" : "y", + "access" : 8, + "descriptor" : "I" + }, { + "field" : "AbstractFont_color", + "owner" : "kf", + "name" : "u", + "access" : 8, + "descriptor" : "I" + }, { + "field" : "AbstractFont_justificationCurrent", + "owner" : "kf", + "name" : "v", + "access" : 8, + "descriptor" : "I" + }, { + "field" : "AbstractFont_justificationTotal", + "owner" : "kf", + "name" : "k", + "access" : 8, + "descriptor" : "I" + }, { + "field" : "AbstractFont_lines", + "owner" : "kf", + "name" : "w", + "access" : 8, + "descriptor" : "[Ljava/lang/String;" + }, { + "field" : "AbstractFont_modIconSprites", + "owner" : "kf", + "name" : "b", + "access" : 9, + "descriptor" : "[Llv;" + }, { + "field" : "AbstractFont_previousColor", + "owner" : "kf", + "name" : "o", + "access" : 8, + "descriptor" : "I" + }, { + "field" : "AbstractFont_previousShadow", + "owner" : "kf", + "name" : "t", + "access" : 8, + "descriptor" : "I" + }, { + "field" : "AbstractFont_random", + "owner" : "kf", + "name" : "d", + "access" : 8, + "descriptor" : "Ljava/util/Random;" + }, { + "field" : "AbstractFont_shadow", + "owner" : "kf", + "name" : "l", + "access" : 8, + "descriptor" : "I" + }, { + "field" : "AbstractFont_strike", + "owner" : "kf", + "name" : "e", + "access" : 8, + "descriptor" : "I" + }, { + "field" : "AbstractFont_underline", + "owner" : "kf", + "name" : "r", + "access" : 8, + "descriptor" : "I" + }, { + "field" : "AttackOption_alwaysRightClick", + "owner" : "cx", + "name" : "s", + "access" : 24, + "descriptor" : "Lcx;" + }, { + "field" : "AttackOption_dependsOnCombatLevels", + "owner" : "cx", + "name" : "a", + "access" : 24, + "descriptor" : "Lcx;" + }, { + "field" : "AttackOption_hidden", + "owner" : "cx", + "name" : "x", + "access" : 24, + "descriptor" : "Lcx;" + }, { + "field" : "AttackOption_leftClickWhereAvailable", + "owner" : "cx", + "name" : "g", + "access" : 24, + "descriptor" : "Lcx;" + }, { + "field" : "ByteArrayPool_large", + "owner" : "go", + "name" : "f", + "access" : 8, + "descriptor" : "[[B" + }, { + "field" : "ByteArrayPool_largeCount", + "owner" : "go", + "name" : "g", + "access" : 8, + "descriptor" : "I", + "decoder" : -1721552049 + }, { + "field" : "ByteArrayPool_medium", + "owner" : "go", + "name" : "h", + "access" : 8, + "descriptor" : "[[B" + }, { + "field" : "ByteArrayPool_mediumCount", + "owner" : "go", + "name" : "s", + "access" : 8, + "descriptor" : "I", + "decoder" : 1124255007 + }, { + "field" : "ByteArrayPool_small", + "owner" : "go", + "name" : "x", + "access" : 8, + "descriptor" : "[[B" + }, { + "field" : "ByteArrayPool_smallCount", + "owner" : "go", + "name" : "a", + "access" : 8, + "descriptor" : "I", + "decoder" : -37333117 + }, { + "field" : "Bzip2Decompressor_state", + "owner" : "ga", + "name" : "q", + "access" : 8, + "descriptor" : "Lgz;" + }, { + "field" : "EnumDefinition_cached", + "owner" : "jf", + "name" : "s", + "access" : 8, + "descriptor" : "Lgp;" + }, { + "field" : "EnumDefinition_indexCache", + "owner" : "jf", + "name" : "a", + "access" : 9, + "descriptor" : "Liz;" + }, { + "field" : "FontName_bold12", + "owner" : "kw", + "name" : "g", + "access" : 25, + "descriptor" : "Lkw;" + }, { + "field" : "FontName_plain11", + "owner" : "kw", + "name" : "a", + "access" : 25, + "descriptor" : "Lkw;" + }, { + "field" : "FontName_plain12", + "owner" : "kw", + "name" : "s", + "access" : 25, + "descriptor" : "Lkw;" + }, { + "field" : "FontName_verdana11", + "owner" : "kw", + "name" : "x", + "access" : 25, + "descriptor" : "Lkw;" + }, { + "field" : "FontName_verdana13", + "owner" : "kw", + "name" : "h", + "access" : 25, + "descriptor" : "Lkw;" + }, { + "field" : "FontName_verdana15", + "owner" : "kw", + "name" : "f", + "access" : 25, + "descriptor" : "Lkw;" + }, { + "field" : "Formatting_colorEndTag", + "owner" : "cg", + "name" : "m", + "access" : 8, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "Formatting_comma", + "owner" : "cg", + "name" : "s", + "access" : 8, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "Formatting_lineBreakTag", + "owner" : "cg", + "name" : "p", + "access" : 8, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "Formatting_pipe", + "owner" : "cg", + "name" : "g", + "access" : 8, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "Formatting_rightArrow", + "owner" : "cg", + "name" : "f", + "access" : 8, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "Formatting_rightParenthesis", + "owner" : "cg", + "name" : "h", + "access" : 8, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "Formatting_spaceLeftParenthesis", + "owner" : "cg", + "name" : "x", + "access" : 8, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "Formatting_true", + "owner" : "cg", + "name" : "a", + "access" : 8, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "HealthBarDefinition_cached", + "owner" : "jp", + "name" : "g", + "access" : 9, + "descriptor" : "Lgp;" + }, { + "field" : "HealthBarDefinition_cachedSprites", + "owner" : "jp", + "name" : "x", + "access" : 8, + "descriptor" : "Lgp;" + }, { + "field" : "HitSplatDefinition_cached", + "owner" : "je", + "name" : "x", + "access" : 9, + "descriptor" : "Lgp;" + }, { + "field" : "HitSplatDefinition_cachedFonts", + "owner" : "je", + "name" : "f", + "access" : 9, + "descriptor" : "Lgp;" + }, { + "field" : "IndexCache_crc", + "owner" : "in", + "name" : "ay", + "access" : 8, + "descriptor" : "Ljava/util/zip/CRC32;" + }, { + "field" : "IndexStoreActionHandler_lock", + "owner" : "id", + "name" : "x", + "access" : 8, + "descriptor" : "Ljava/lang/Object;" + }, { + "field" : "IndexStoreActionHandler_requestQueue", + "owner" : "id", + "name" : "a", + "access" : 8, + "descriptor" : "Lhv;" + }, { + "field" : "IndexStoreActionHandler_responseQueue", + "owner" : "id", + "name" : "s", + "access" : 8, + "descriptor" : "Lhv;" + }, { + "field" : "IndexStoreActionHandler_thread", + "owner" : "id", + "name" : "h", + "access" : 8, + "descriptor" : "Ljava/lang/Thread;" + }, { + "field" : "IndexStore_buffer", + "owner" : "fb", + "name" : "a", + "access" : 8, + "descriptor" : "[B" + }, { + "field" : "Instrument_delays", + "owner" : "dc", + "name" : "i", + "access" : 8, + "descriptor" : "[I" + }, { + "field" : "Instrument_noise", + "owner" : "dc", + "name" : "k", + "access" : 8, + "descriptor" : "[I" + }, { + "field" : "Instrument_phases", + "owner" : "dc", + "name" : "w", + "access" : 8, + "descriptor" : "[I" + }, { + "field" : "Instrument_pitchBaseSteps", + "owner" : "dc", + "name" : "z", + "access" : 8, + "descriptor" : "[I" + }, { + "field" : "Instrument_pitchSteps", + "owner" : "dc", + "name" : "j", + "access" : 8, + "descriptor" : "[I" + }, { + "field" : "Instrument_samples", + "owner" : "dc", + "name" : "y", + "access" : 8, + "descriptor" : "[I" + }, { + "field" : "Instrument_sine", + "owner" : "dc", + "name" : "v", + "access" : 8, + "descriptor" : "[I" + }, { + "field" : "Instrument_volumeSteps", + "owner" : "dc", + "name" : "c", + "access" : 8, + "descriptor" : "[I" + }, { + "field" : "Interpreter_arrayLengths", + "owner" : "bx", + "name" : "h", + "access" : 8, + "descriptor" : "[I" + }, { + "field" : "Interpreter_arrays", + "owner" : "bx", + "name" : "f", + "access" : 8, + "descriptor" : "[[I" + }, { + "field" : "Interpreter_calendar", + "owner" : "bx", + "name" : "l", + "access" : 8, + "descriptor" : "Ljava/util/Calendar;" + }, { + "field" : "Interpreter_frameDepth", + "owner" : "bx", + "name" : "n", + "access" : 8, + "descriptor" : "I", + "decoder" : 637491727 + }, { + "field" : "Interpreter_frames", + "owner" : "bx", + "name" : "e", + "access" : 8, + "descriptor" : "[Lbz;" + }, { + "field" : "Interpreter_intLocals", + "owner" : "bx", + "name" : "g", + "access" : 8, + "descriptor" : "[I" + }, { + "field" : "Interpreter_intStack", + "owner" : "bx", + "name" : "p", + "access" : 8, + "descriptor" : "[I" + }, { + "field" : "Interpreter_intStackSize", + "owner" : "bx", + "name" : "m", + "access" : 8, + "descriptor" : "I", + "decoder" : -2131355083 + }, { + "field" : "Interpreter_stringLocals", + "owner" : "l", + "name" : "x", + "access" : 8, + "descriptor" : "[Ljava/lang/String;" + }, { + "field" : "Interpreter_stringStack", + "owner" : "bx", + "name" : "q", + "access" : 8, + "descriptor" : "[Ljava/lang/String;" + }, { + "field" : "Interpreter_stringStackSize", + "owner" : "gj", + "name" : "b", + "access" : 8, + "descriptor" : "I", + "decoder" : 96183287 + }, { + "field" : "ItemDefinition_cached", + "owner" : "jc", + "name" : "b", + "access" : 8, + "descriptor" : "Lgp;" + }, { + "field" : "ItemDefinition_cachedModels", + "owner" : "jc", + "name" : "n", + "access" : 8, + "descriptor" : "Lgp;" + }, { + "field" : "ItemDefinition_indexCache", + "owner" : "fz", + "name" : "f", + "access" : 9, + "descriptor" : "Liz;" + }, { + "field" : "ItemDefinition_modelIndexCache", + "owner" : "js", + "name" : "p", + "access" : 9, + "descriptor" : "Liz;" + }, { + "field" : "KeyHandler_idleCycles", + "owner" : "az", + "name" : "ci", + "access" : 73, + "descriptor" : "I", + "decoder" : 1818076513 + }, { + "field" : "KeyHandler_instance", + "owner" : "az", + "name" : "a", + "access" : 9, + "descriptor" : "Laz;" + }, { + "field" : "KeyHandler_keyCodes", + "owner" : "az", + "name" : "ce", + "access" : 8, + "descriptor" : "[I" + }, { + "field" : "KeyHandler_pressedKeys", + "owner" : "az", + "name" : "cb", + "access" : 9, + "descriptor" : "[Z" + }, { + "field" : "KitDefinition_cached", + "owner" : "jx", + "name" : "x", + "access" : 9, + "descriptor" : "Lgp;" + }, { + "field" : "KitDefinition_indexCache", + "owner" : "jx", + "name" : "a", + "access" : 8, + "descriptor" : "Liz;" + }, { + "field" : "Login_isUsernameRemembered", + "owner" : "client", + "name" : "ea", + "access" : 8, + "descriptor" : "Z" + }, { + "field" : "Login_loadingPercent", + "owner" : "cc", + "name" : "ae", + "access" : 8, + "descriptor" : "I", + "decoder" : -1199372921 + }, { + "field" : "Login_loadingText", + "owner" : "cc", + "name" : "av", + "access" : 8, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "Login_password", + "owner" : "cc", + "name" : "be", + "access" : 8, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "Login_response0", + "owner" : "cc", + "name" : "ap", + "access" : 8, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "Login_response1", + "owner" : "cc", + "name" : "ak", + "access" : 8, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "Login_response2", + "owner" : "cc", + "name" : "am", + "access" : 8, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "Login_response3", + "owner" : "cc", + "name" : "bf", + "access" : 8, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "Login_username", + "owner" : "cc", + "name" : "bo", + "access" : 8, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "Messages_channels", + "owner" : "cf", + "name" : "a", + "access" : 24, + "descriptor" : "Ljava/util/Map;" + }, { + "field" : "Messages_count", + "owner" : "cf", + "name" : "x", + "access" : 8, + "descriptor" : "I", + "decoder" : 729779417 + }, { + "field" : "Messages_hashTable", + "owner" : "cf", + "name" : "s", + "access" : 24, + "descriptor" : "Lgs;" + }, { + "field" : "Messages_queue", + "owner" : "cf", + "name" : "g", + "access" : 24, + "descriptor" : "Lhw;" + }, { + "field" : "ModelData_cosine", + "owner" : "dk", + "name" : "as", + "access" : 8, + "descriptor" : "[I" + }, { + "field" : "ModelData_sine", + "owner" : "dk", + "name" : "aj", + "access" : 8, + "descriptor" : "[I" + }, { + "field" : "Model_cosine", + "owner" : "dv", + "name" : "bb", + "access" : 8, + "descriptor" : "[I" + }, { + "field" : "Model_sharedSequenceModel", + "owner" : "dv", + "name" : "a", + "access" : 8, + "descriptor" : "Ldv;" + }, { + "field" : "Model_sharedSequenceModelFaceAlphas", + "owner" : "dv", + "name" : "s", + "access" : 8, + "descriptor" : "[B" + }, { + "field" : "Model_sharedSpotAnimationModel", + "owner" : "dv", + "name" : "g", + "access" : 8, + "descriptor" : "Ldv;" + }, { + "field" : "Model_sharedSpotAnimationModelFaceAlphas", + "owner" : "dv", + "name" : "x", + "access" : 8, + "descriptor" : "[B" + }, { + "field" : "Model_sine", + "owner" : "dv", + "name" : "bl", + "access" : 8, + "descriptor" : "[I" + }, { + "field" : "Model_transformTempX", + "owner" : "dv", + "name" : "bp", + "access" : 8, + "descriptor" : "I" + }, { + "field" : "Model_transformTempY", + "owner" : "dv", + "name" : "bv", + "access" : 8, + "descriptor" : "I" + }, { + "field" : "Model_transformTempZ", + "owner" : "dv", + "name" : "bg", + "access" : 8, + "descriptor" : "I" + }, { + "field" : "MouseHandler_currentButton", + "owner" : "bo", + "name" : "n", + "access" : 9, + "descriptor" : "I", + "decoder" : -315641075 + }, { + "field" : "MouseHandler_currentButton0", + "owner" : "bo", + "name" : "p", + "access" : 72, + "descriptor" : "I", + "decoder" : 2102267483 + }, { + "field" : "MouseHandler_idleCycles", + "owner" : "bo", + "name" : "f", + "access" : 73, + "descriptor" : "I", + "decoder" : -645379741 + }, { + "field" : "MouseHandler_instance", + "owner" : "bo", + "name" : "h", + "access" : 8, + "descriptor" : "Lbo;" + }, { + "field" : "MouseHandler_lastButton", + "owner" : "bo", + "name" : "y", + "access" : 9, + "descriptor" : "I", + "decoder" : -1875822011 + }, { + "field" : "MouseHandler_lastButton0", + "owner" : "bo", + "name" : "t", + "access" : 72, + "descriptor" : "I", + "decoder" : -1600629007 + }, { + "field" : "MouseHandler_lastPressedTimeMillis", + "owner" : "bo", + "name" : "d", + "access" : 9, + "descriptor" : "J", + "decoder" : -9001158457678328183 + }, { + "field" : "MouseHandler_lastPressedTimeMillis0", + "owner" : "bo", + "name" : "u", + "access" : 72, + "descriptor" : "J", + "decoder" : -5319770607590789123 + }, { + "field" : "MouseHandler_lastPressedX", + "owner" : "bo", + "name" : "k", + "access" : 9, + "descriptor" : "I", + "decoder" : 630458785 + }, { + "field" : "MouseHandler_lastPressedX0", + "owner" : "bo", + "name" : "l", + "access" : 72, + "descriptor" : "I", + "decoder" : -1553476921 + }, { + "field" : "MouseHandler_lastPressedY", + "owner" : "bo", + "name" : "v", + "access" : 9, + "descriptor" : "I", + "decoder" : 1293941901 + }, { + "field" : "MouseHandler_lastPressedY0", + "owner" : "bo", + "name" : "o", + "access" : 72, + "descriptor" : "I", + "decoder" : -227692653 + }, { + "field" : "MouseHandler_millis", + "owner" : "bo", + "name" : "r", + "access" : 9, + "descriptor" : "J", + "decoder" : 3959986213311566259 + }, { + "field" : "MouseHandler_millis0", + "owner" : "bo", + "name" : "b", + "access" : 72, + "descriptor" : "J", + "decoder" : -5676223914397701093 + }, { + "field" : "MouseHandler_x", + "owner" : "bo", + "name" : "e", + "access" : 9, + "descriptor" : "I", + "decoder" : -212410231 + }, { + "field" : "MouseHandler_x0", + "owner" : "bo", + "name" : "m", + "access" : 72, + "descriptor" : "I", + "decoder" : 528107 + }, { + "field" : "MouseHandler_y", + "owner" : "bo", + "name" : "x", + "access" : 9, + "descriptor" : "I", + "decoder" : 99718613 + }, { + "field" : "MouseHandler_y0", + "owner" : "bo", + "name" : "q", + "access" : 72, + "descriptor" : "I", + "decoder" : -1970742959 + }, { + "field" : "NetCache_crc", + "owner" : "io", + "name" : "k", + "access" : 9, + "descriptor" : "Ljava/util/zip/CRC32;" + }, { + "field" : "NetCache_crcMismatches", + "owner" : "io", + "name" : "i", + "access" : 9, + "descriptor" : "I", + "decoder" : -151895777 + }, { + "field" : "NetCache_currentResponse", + "owner" : "q", + "name" : "t", + "access" : 9, + "descriptor" : "Lig;" + }, { + "field" : "NetCache_indexCaches", + "owner" : "io", + "name" : "d", + "access" : 9, + "descriptor" : "[Lin;" + }, { + "field" : "NetCache_ioExceptions", + "owner" : "io", + "name" : "c", + "access" : 9, + "descriptor" : "I", + "decoder" : -690937663 + }, { + "field" : "NetCache_pendingPriorityResponses", + "owner" : "io", + "name" : "f", + "access" : 9, + "descriptor" : "Lht;" + }, { + "field" : "NetCache_pendingPriorityResponsesCount", + "owner" : "io", + "name" : "p", + "access" : 9, + "descriptor" : "I", + "decoder" : 266907923 + }, { + "field" : "NetCache_pendingPriorityWrites", + "owner" : "io", + "name" : "x", + "access" : 9, + "descriptor" : "Lht;" + }, { + "field" : "NetCache_pendingPriorityWritesCount", + "owner" : "io", + "name" : "h", + "access" : 9, + "descriptor" : "I", + "decoder" : -1220574129 + }, { + "field" : "NetCache_pendingResponses", + "owner" : "io", + "name" : "n", + "access" : 9, + "descriptor" : "Lht;" + }, { + "field" : "NetCache_pendingResponsesCount", + "owner" : "io", + "name" : "e", + "access" : 9, + "descriptor" : "I", + "decoder" : 1052911217 + }, { + "field" : "NetCache_pendingWrites", + "owner" : "io", + "name" : "q", + "access" : 9, + "descriptor" : "Lht;" + }, { + "field" : "NetCache_pendingWritesCount", + "owner" : "io", + "name" : "b", + "access" : 9, + "descriptor" : "I", + "decoder" : 1939285225 + }, { + "field" : "NetCache_pendingWritesQueue", + "owner" : "io", + "name" : "m", + "access" : 9, + "descriptor" : "Lgd;" + }, { + "field" : "NetCache_reference", + "owner" : "q", + "name" : "v", + "access" : 9, + "descriptor" : "Lgx;" + }, { + "field" : "NetCache_responseArchiveBuffer", + "owner" : "ex", + "name" : "o", + "access" : 9, + "descriptor" : "Lgx;" + }, { + "field" : "NetCache_responseHeaderBuffer", + "owner" : "io", + "name" : "l", + "access" : 9, + "descriptor" : "Lgx;" + }, { + "field" : "NetCache_socket", + "owner" : "io", + "name" : "a", + "access" : 9, + "descriptor" : "Lfq;" + }, { + "field" : "NpcDefinition_cached", + "owner" : "jg", + "name" : "g", + "access" : 8, + "descriptor" : "Lgp;" + }, { + "field" : "NpcDefinition_cachedModels", + "owner" : "jg", + "name" : "x", + "access" : 8, + "descriptor" : "Lgp;" + }, { + "field" : "NpcDefinition_indexCache", + "owner" : "gw", + "name" : "a", + "access" : 8, + "descriptor" : "Liz;" + }, { + "field" : "NpcDefinition_modelIndexCache", + "owner" : "jg", + "name" : "s", + "access" : 8, + "descriptor" : "Liz;" + }, { + "field" : "ObjectDefinition_cached", + "owner" : "jy", + "name" : "x", + "access" : 9, + "descriptor" : "Lgp;" + }, { + "field" : "ObjectDefinition_cachedModels", + "owner" : "jy", + "name" : "p", + "access" : 9, + "descriptor" : "Lgp;" + }, { + "field" : "ObjectDefinition_indexCache", + "owner" : "jy", + "name" : "s", + "access" : 8, + "descriptor" : "Liz;" + }, { + "field" : "ObjectDefinition_isLowDetail", + "owner" : "jy", + "name" : "a", + "access" : 8, + "descriptor" : "Z" + }, { + "field" : "OverlayDefinition_cached", + "owner" : "jw", + "name" : "s", + "access" : 9, + "descriptor" : "Lgp;" + }, { + "field" : "PacketBuffer_masks", + "owner" : "ge", + "name" : "b", + "access" : 24, + "descriptor" : "[I" + }, { + "field" : "ParamKeyDefinition_cached", + "owner" : "jz", + "name" : "s", + "access" : 8, + "descriptor" : "Lgp;" + }, { + "field" : "PcmPlayer_sampleRate", + "owner" : "ai", + "name" : "h", + "access" : 9, + "descriptor" : "I", + "decoder" : 1061963149 + }, { + "field" : "PlayerAppearance_cachedModels", + "owner" : "il", + "name" : "e", + "access" : 9, + "descriptor" : "Lgp;" + }, { + "field" : "PlayerType_hardcoreIronman", + "owner" : "is", + "name" : "f", + "access" : 24, + "descriptor" : "Lis;" + }, { + "field" : "PlayerType_ironman", + "owner" : "is", + "name" : "x", + "access" : 24, + "descriptor" : "Lis;" + }, { + "field" : "PlayerType_jagexModerator", + "owner" : "is", + "name" : "g", + "access" : 24, + "descriptor" : "Lis;" + }, { + "field" : "PlayerType_normal", + "owner" : "is", + "name" : "a", + "access" : 24, + "descriptor" : "Lis;" + }, { + "field" : "PlayerType_playerModerator", + "owner" : "is", + "name" : "s", + "access" : 24, + "descriptor" : "Lis;" + }, { + "field" : "PlayerType_ultimateIronman", + "owner" : "is", + "name" : "h", + "access" : 24, + "descriptor" : "Lis;" + }, { + "field" : "Players_count", + "owner" : "cd", + "name" : "f", + "access" : 8, + "descriptor" : "I", + "decoder" : 966947845 + }, { + "field" : "Players_indices", + "owner" : "cd", + "name" : "p", + "access" : 8, + "descriptor" : "[I" + }, { + "field" : "Players_orientations", + "owner" : "cd", + "name" : "n", + "access" : 8, + "descriptor" : "[I" + }, { + "field" : "Players_regions", + "owner" : "cd", + "name" : "b", + "access" : 8, + "descriptor" : "[I" + }, { + "field" : "Players_targetIndices", + "owner" : "cd", + "name" : "e", + "access" : 8, + "descriptor" : "[I" + }, { + "field" : "Rasterizer2D_height", + "owner" : "lb", + "name" : "aa", + "access" : 9, + "descriptor" : "I" + }, { + "field" : "Rasterizer2D_pixels", + "owner" : "lb", + "name" : "af", + "access" : 9, + "descriptor" : "[I" + }, { + "field" : "Rasterizer2D_width", + "owner" : "lb", + "name" : "ay", + "access" : 9, + "descriptor" : "I" + }, { + "field" : "Rasterizer2D_xClipEnd", + "owner" : "lb", + "name" : "an", + "access" : 12, + "descriptor" : "I" + }, { + "field" : "Rasterizer2D_xClipStart", + "owner" : "lb", + "name" : "aw", + "access" : 9, + "descriptor" : "I" + }, { + "field" : "Rasterizer2D_yClipEnd", + "owner" : "lb", + "name" : "ah", + "access" : 9, + "descriptor" : "I" + }, { + "field" : "Rasterizer2D_yClipStart", + "owner" : "lb", + "name" : "ab", + "access" : 9, + "descriptor" : "I" + }, { + "field" : "Rasterizer3D_alpha", + "owner" : "df", + "name" : "h", + "access" : 8, + "descriptor" : "I" + }, { + "field" : "Rasterizer3D_clipHeight", + "owner" : "df", + "name" : "o", + "access" : 8, + "descriptor" : "I" + }, { + "field" : "Rasterizer3D_clipMidX", + "owner" : "df", + "name" : "r", + "access" : 8, + "descriptor" : "I" + }, { + "field" : "Rasterizer3D_clipMidX2", + "owner" : "df", + "name" : "y", + "access" : 8, + "descriptor" : "I" + }, { + "field" : "Rasterizer3D_clipMidY", + "owner" : "df", + "name" : "t", + "access" : 8, + "descriptor" : "I" + }, { + "field" : "Rasterizer3D_clipMidY2", + "owner" : "df", + "name" : "v", + "access" : 8, + "descriptor" : "I" + }, { + "field" : "Rasterizer3D_clipNegativeMidX", + "owner" : "df", + "name" : "u", + "access" : 8, + "descriptor" : "I" + }, { + "field" : "Rasterizer3D_clipNegativeMidY", + "owner" : "df", + "name" : "k", + "access" : 8, + "descriptor" : "I" + }, { + "field" : "Rasterizer3D_clipWidth", + "owner" : "df", + "name" : "l", + "access" : 8, + "descriptor" : "I" + }, { + "field" : "Rasterizer3D_colorPalette", + "owner" : "df", + "name" : "w", + "access" : 9, + "descriptor" : "[I" + }, { + "field" : "Rasterizer3D_cosine", + "owner" : "df", + "name" : "ag", + "access" : 9, + "descriptor" : "[I" + }, { + "field" : "Rasterizer3D_isLowDetailTexture", + "owner" : "df", + "name" : "g", + "access" : 8, + "descriptor" : "Z" + }, { + "field" : "Rasterizer3D_rowOffsets", + "owner" : "df", + "name" : "d", + "access" : 8, + "descriptor" : "[I" + }, { + "field" : "Rasterizer3D_sine", + "owner" : "df", + "name" : "z", + "access" : 9, + "descriptor" : "[I" + }, { + "field" : "Rasterizer3D_textureLoader", + "owner" : "df", + "name" : "i", + "access" : 9, + "descriptor" : "Lew;" + }, { + "field" : "Rasterizer3D_zoom", + "owner" : "df", + "name" : "e", + "access" : 9, + "descriptor" : "I" + }, { + "field" : "Scene_cameraPitchCosine", + "owner" : "en", + "name" : "af", + "access" : 8, + "descriptor" : "I" + }, { + "field" : "Scene_cameraPitchSine", + "owner" : "en", + "name" : "ag", + "access" : 8, + "descriptor" : "I" + }, { + "field" : "Scene_cameraX", + "owner" : "en", + "name" : "c", + "access" : 8, + "descriptor" : "I" + }, { + "field" : "Scene_cameraXTile", + "owner" : "en", + "name" : "w", + "access" : 8, + "descriptor" : "I" + }, { + "field" : "Scene_cameraXTileMax", + "owner" : "en", + "name" : "k", + "access" : 8, + "descriptor" : "I" + }, { + "field" : "Scene_cameraXTileMin", + "owner" : "en", + "name" : "y", + "access" : 8, + "descriptor" : "I" + }, { + "field" : "Scene_cameraY", + "owner" : "en", + "name" : "j", + "access" : 8, + "descriptor" : "I" + }, { + "field" : "Scene_cameraYTile", + "owner" : "en", + "name" : "i", + "access" : 8, + "descriptor" : "I" + }, { + "field" : "Scene_cameraYTileMax", + "owner" : "en", + "name" : "d", + "access" : 8, + "descriptor" : "I" + }, { + "field" : "Scene_cameraYTileMin", + "owner" : "en", + "name" : "v", + "access" : 8, + "descriptor" : "I" + }, { + "field" : "Scene_cameraYawCosine", + "owner" : "en", + "name" : "aa", + "access" : 8, + "descriptor" : "I" + }, { + "field" : "Scene_cameraYawSine", + "owner" : "en", + "name" : "ay", + "access" : 8, + "descriptor" : "I" + }, { + "field" : "Scene_cameraZ", + "owner" : "en", + "name" : "z", + "access" : 8, + "descriptor" : "I" + }, { + "field" : "Scene_currentOccluders", + "owner" : "en", + "name" : "az", + "access" : 8, + "descriptor" : "[Les;" + }, { + "field" : "Scene_currentOccludersCount", + "owner" : "en", + "name" : "al", + "access" : 8, + "descriptor" : "I" + }, { + "field" : "Scene_drawnCount", + "owner" : "en", + "name" : "u", + "access" : 8, + "descriptor" : "I" + }, { + "field" : "Scene_isLowDetail", + "owner" : "en", + "name" : "a", + "access" : 9, + "descriptor" : "Z" + }, { + "field" : "Scene_plane", + "owner" : "en", + "name" : "o", + "access" : 8, + "descriptor" : "I" + }, { + "field" : "Scene_planeOccluderCounts", + "owner" : "en", + "name" : "ai", + "access" : 8, + "descriptor" : "[I" + }, { + "field" : "Scene_planeOccluders", + "owner" : "en", + "name" : "aq", + "access" : 8, + "descriptor" : "[[Les;" + }, { + "field" : "Scene_selectedPlane", + "owner" : "en", + "name" : "aw", + "access" : 8, + "descriptor" : "I" + }, { + "field" : "Scene_selectedScreenX", + "owner" : "en", + "name" : "an", + "access" : 8, + "descriptor" : "I" + }, { + "field" : "Scene_selectedScreenY", + "owner" : "en", + "name" : "at", + "access" : 8, + "descriptor" : "I" + }, { + "field" : "Scene_selectedX", + "owner" : "en", + "name" : "ae", + "access" : 9, + "descriptor" : "I" + }, { + "field" : "Scene_selectedY", + "owner" : "en", + "name" : "av", + "access" : 9, + "descriptor" : "I" + }, { + "field" : "Scene_tilesDeque", + "owner" : "en", + "name" : "ac", + "access" : 8, + "descriptor" : "Lhv;" + }, { + "field" : "Scene_viewportXCenter", + "owner" : "en", + "name" : "bk", + "access" : 8, + "descriptor" : "I" + }, { + "field" : "Scene_viewportXMax", + "owner" : "en", + "name" : "bb", + "access" : 8, + "descriptor" : "I" + }, { + "field" : "Scene_viewportXMin", + "owner" : "en", + "name" : "bn", + "access" : 8, + "descriptor" : "I" + }, { + "field" : "Scene_viewportYCenter", + "owner" : "en", + "name" : "br", + "access" : 8, + "descriptor" : "I" + }, { + "field" : "Scene_viewportYMax", + "owner" : "en", + "name" : "bw", + "access" : 8, + "descriptor" : "I" + }, { + "field" : "Scene_viewportYMin", + "owner" : "en", + "name" : "bl", + "access" : 8, + "descriptor" : "I" + }, { + "field" : "Script_cached", + "owner" : "cs", + "name" : "a", + "access" : 8, + "descriptor" : "Lgp;" + }, { + "field" : "SequenceDefinition_cached", + "owner" : "ju", + "name" : "x", + "access" : 9, + "descriptor" : "Lgp;" + }, { + "field" : "SequenceDefinition_indexCache", + "owner" : "ju", + "name" : "a", + "access" : 9, + "descriptor" : "Liz;" + }, { + "field" : "Skills_enabled", + "owner" : "iu", + "name" : "s", + "access" : 25, + "descriptor" : "[Z" + }, { + "field" : "Skills_experienceTable", + "owner" : "iu", + "name" : "g", + "access" : 9, + "descriptor" : "[I" + }, { + "field" : "SpotAnimationDefinition_cached", + "owner" : "jh", + "name" : "g", + "access" : 8, + "descriptor" : "Lgp;" + }, { + "field" : "SpotAnimationDefinition_cachedModels", + "owner" : "jh", + "name" : "x", + "access" : 8, + "descriptor" : "Lgp;" + }, { + "field" : "SpotAnimationDefinition_indexCache", + "owner" : "jh", + "name" : "a", + "access" : 8, + "descriptor" : "Liz;" + }, { + "field" : "SpotAnimationDefinition_modelIndexCache", + "owner" : "jh", + "name" : "s", + "access" : 8, + "descriptor" : "Liz;" + }, { + "field" : "Sprite_cached", + "owner" : "jc", + "name" : "e", + "access" : 9, + "descriptor" : "Lgp;" + }, { + "field" : "Strings_almostEverywhere", + "owner" : "it", + "name" : "hm", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "Strings_andTheProtectItemPrayerWontWork", + "owner" : "it", + "name" : "hf", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "Strings_attack", + "owner" : "it", + "name" : "fp", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "Strings_cancel", + "owner" : "it", + "name" : "ii", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "Strings_checkingForUpdates", + "owner" : "it", + "name" : "y", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "Strings_chooseOption", + "owner" : "it", + "name" : "fg", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "Strings_close", + "owner" : "it", + "name" : "ff", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "Strings_connectingToServer", + "owner" : "it", + "name" : "if", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "Strings_connectingToUpdateServer", + "owner" : "it", + "name" : "u", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "Strings_connectionLost", + "owner" : "it", + "name" : "r", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "Strings_continue", + "owner" : "it", + "name" : "p", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "Strings_drop", + "owner" : "it", + "name" : "g", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "Strings_examine", + "owner" : "it", + "name" : "et", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "Strings_existingUser", + "owner" : "it", + "name" : "ie", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "Strings_fromYourFriendListFirst", + "owner" : "it", + "name" : "fa", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "Strings_fromYourIgnoreListFirst", + "owner" : "it", + "name" : "fv", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "Strings_hasLoggedIn", + "owner" : "it", + "name" : "eq", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "Strings_hasLoggedOut", + "owner" : "it", + "name" : "eu", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "Strings_hidden", + "owner" : "it", + "name" : "x", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "Strings_isAlreadyOnYourFriendList", + "owner" : "it", + "name" : "fk", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "Strings_level", + "owner" : "it", + "name" : "fn", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "Strings_loadedConfig", + "owner" : "it", + "name" : "z", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "Strings_loadedFonts", + "owner" : "it", + "name" : "w", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "Strings_loadedInputHandler", + "owner" : "it", + "name" : "ab", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "Strings_loadedInterfaces", + "owner" : "it", + "name" : "at", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "Strings_loadedSprites", + "owner" : "it", + "name" : "af", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "Strings_loadedTextures", + "owner" : "it", + "name" : "aa", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "Strings_loadedTitleScreen", + "owner" : "it", + "name" : "c", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "Strings_loadedUpdateList", + "owner" : "it", + "name" : "k", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "Strings_loadedWordpack", + "owner" : "it", + "name" : "aw", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "Strings_loadedWorldMap", + "owner" : "it", + "name" : "av", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "Strings_loading", + "owner" : "it", + "name" : "ko", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "Strings_loadingConfig", + "owner" : "it", + "name" : "j", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "Strings_loadingFonts", + "owner" : "it", + "name" : "d", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "Strings_loadingInterfaces", + "owner" : "it", + "name" : "an", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "Strings_loadingPleaseWait", + "owner" : "it", + "name" : "e", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "Strings_loadingSprites", + "owner" : "it", + "name" : "ag", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "Strings_loadingTextures", + "owner" : "it", + "name" : "ay", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "Strings_loadingTitleScreen", + "owner" : "it", + "name" : "i", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "Strings_loadingWordpack", + "owner" : "it", + "name" : "ah", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "Strings_loadingWorldMap", + "owner" : "it", + "name" : "ae", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "Strings_login", + "owner" : "it", + "name" : "iy", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "Strings_membersObject", + "owner" : "it", + "name" : "a", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "Strings_moreOptions", + "owner" : "it", + "name" : "fj", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "Strings_newUser", + "owner" : "it", + "name" : "ik", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "Strings_notWorkOnThisWorld", + "owner" : "it", + "name" : "hd", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "Strings_null", + "owner" : "it", + "name" : "q", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "Strings_ok", + "owner" : "it", + "name" : "h", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "Strings_password", + "owner" : "it", + "name" : "ic", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "Strings_pin", + "owner" : "it", + "name" : "ia", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "Strings_playersCanAttackEachOther", + "owner" : "it", + "name" : "hq", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "Strings_playersCanAttackEachOtherAlmostEverywhere", + "owner" : "it", + "name" : "hl", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "Strings_pleaseEnterYourPassword", + "owner" : "it", + "name" : "dm", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "Strings_pleaseEnterYourUsername", + "owner" : "it", + "name" : "dh", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "Strings_pleaseRemoveFriend", + "owner" : "it", + "name" : "fh", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "Strings_pleaseRemoveIgnore", + "owner" : "it", + "name" : "fs", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "Strings_pleaseWait", + "owner" : "it", + "name" : "fm", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "Strings_pleaseWaitAttemptingToReestablish", + "owner" : "it", + "name" : "t", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "Strings_preparedSoundEngine", + "owner" : "it", + "name" : "v", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "Strings_preparedVisibilityMap", + "owner" : "it", + "name" : "o", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "Strings_select", + "owner" : "it", + "name" : "f", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "Strings_skill", + "owner" : "it", + "name" : "fo", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "Strings_space", + "owner" : "it", + "name" : "fq", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "Strings_startingGameEngine", + "owner" : "it", + "name" : "l", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "Strings_take", + "owner" : "it", + "name" : "s", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "Strings_theProtectItemPrayerWill", + "owner" : "it", + "name" : "hu", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "Strings_thisIsABetaWorld", + "owner" : "it", + "name" : "hc", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "Strings_thisIsAHighRiskPvpWorld", + "owner" : "it", + "name" : "hn", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "Strings_thisIsAHighRiskWorld", + "owner" : "it", + "name" : "hw", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "Strings_thisIsAPvpWorld", + "owner" : "it", + "name" : "hg", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "Strings_unableToFind", + "owner" : "it", + "name" : "eh", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "Strings_use", + "owner" : "it", + "name" : "ec", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "Strings_walkHere", + "owner" : "it", + "name" : "fe", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "Strings_warning", + "owner" : "it", + "name" : "he", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "Strings_welcomeToRuneScape", + "owner" : "it", + "name" : "im", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "Strings_yourFriendListIsFull", + "owner" : "it", + "name" : "fx", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "Strings_yourIgnoreListIsFull", + "owner" : "it", + "name" : "ft", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "Strings_yourNormalAccountWillNotBeAffected", + "owner" : "it", + "name" : "hb", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "Texture_animatedPixels", + "owner" : "db", + "name" : "l", + "access" : 8, + "descriptor" : "[I" + }, { + "field" : "Tiles_heights", + "owner" : "bd", + "name" : "a", + "access" : 8, + "descriptor" : "[[[I" + }, { + "field" : "Tiles_minPlane", + "owner" : "bd", + "name" : "g", + "access" : 8, + "descriptor" : "I", + "decoder" : -1882260411 + }, { + "field" : "Tiles_renderFlags", + "owner" : "bd", + "name" : "s", + "access" : 8, + "descriptor" : "[[[B" + }, { + "field" : "TriBool_false", + "owner" : "kz", + "name" : "g", + "access" : 25, + "descriptor" : "Lkz;" + }, { + "field" : "TriBool_true", + "owner" : "kz", + "name" : "s", + "access" : 25, + "descriptor" : "Lkz;" + }, { + "field" : "TriBool_unknown", + "owner" : "kz", + "name" : "a", + "access" : 25, + "descriptor" : "Lkz;" + }, { + "field" : "UnderlayDefinition_cached", + "owner" : "jo", + "name" : "s", + "access" : 9, + "descriptor" : "Lgp;" + }, { + "field" : "UnderlayDefinition_indexCache", + "owner" : "jo", + "name" : "a", + "access" : 9, + "descriptor" : "Liz;" + }, { + "field" : "VarbitDefinition_cached", + "owner" : "jt", + "name" : "s", + "access" : 9, + "descriptor" : "Lgp;" + }, { + "field" : "VarbitDefinition_indexCache", + "owner" : "jt", + "name" : "a", + "access" : 8, + "descriptor" : "Liz;" + }, { + "field" : "VarpDefinition_cached", + "owner" : "jn", + "name" : "g", + "access" : 8, + "descriptor" : "Lgp;" + }, { + "field" : "Varps_main", + "owner" : "hs", + "name" : "g", + "access" : 9, + "descriptor" : "[I" + }, { + "field" : "Varps_masks", + "owner" : "hs", + "name" : "a", + "access" : 8, + "descriptor" : "[I" + }, { + "field" : "Varps_temp", + "owner" : "hs", + "name" : "s", + "access" : 9, + "descriptor" : "[I" + }, { + "field" : "ViewportMouse_entityCount", + "owner" : "di", + "name" : "t", + "access" : 9, + "descriptor" : "I", + "decoder" : 2116439793 + }, { + "field" : "ViewportMouse_entityTags", + "owner" : "di", + "name" : "l", + "access" : 9, + "descriptor" : "[J" + }, { + "field" : "ViewportMouse_false0", + "owner" : "di", + "name" : "x", + "access" : 9, + "descriptor" : "Z" + }, { + "field" : "ViewportMouse_isInViewport", + "owner" : "di", + "name" : "a", + "access" : 9, + "descriptor" : "Z" + }, { + "field" : "ViewportMouse_x", + "owner" : "di", + "name" : "s", + "access" : 9, + "descriptor" : "I", + "decoder" : -1036087683 + }, { + "field" : "ViewportMouse_y", + "owner" : "di", + "name" : "g", + "access" : 9, + "descriptor" : "I", + "decoder" : -577143005 + }, { + "field" : "Widget_cachedFonts", + "owner" : "ia", + "name" : "t", + "access" : 8, + "descriptor" : "Lgp;" + }, { + "field" : "Widget_cachedModels", + "owner" : "ia", + "name" : "r", + "access" : 8, + "descriptor" : "Lgp;" + }, { + "field" : "Widget_indexCache", + "owner" : "ax", + "name" : "m", + "access" : 9, + "descriptor" : "Liz;" + }, { + "field" : "WorldMapCacheName_area", + "owner" : "ae", + "name" : "x", + "access" : 24, + "descriptor" : "Lae;" + }, { + "field" : "WorldMapCacheName_compositeMap", + "owner" : "ae", + "name" : "s", + "access" : 25, + "descriptor" : "Lae;" + }, { + "field" : "WorldMapCacheName_compositeTexture", + "owner" : "ae", + "name" : "g", + "access" : 25, + "descriptor" : "Lae;" + }, { + "field" : "WorldMapCacheName_details", + "owner" : "ae", + "name" : "a", + "access" : 25, + "descriptor" : "Lae;" + }, { + "field" : "WorldMapCacheName_labels", + "owner" : "ae", + "name" : "h", + "access" : 25, + "descriptor" : "Lae;" + }, { + "field" : "WorldMapElement_cached", + "owner" : "jd", + "name" : "s", + "access" : 8, + "descriptor" : "[Ljd;" + }, { + "field" : "WorldMapElement_cachedSprites", + "owner" : "jd", + "name" : "x", + "access" : 9, + "descriptor" : "Lgp;" + }, { + "field" : "WorldMapElement_count", + "owner" : "jd", + "name" : "g", + "access" : 9, + "descriptor" : "I", + "decoder" : -1629647817 + }, { + "field" : "WorldMapLabelSize_large", + "owner" : "y", + "name" : "g", + "access" : 25, + "descriptor" : "Ly;" + }, { + "field" : "WorldMapLabelSize_medium", + "owner" : "y", + "name" : "s", + "access" : 25, + "descriptor" : "Ly;" + }, { + "field" : "WorldMapLabelSize_small", + "owner" : "y", + "name" : "a", + "access" : 25, + "descriptor" : "Ly;" + }, { + "field" : "applet", + "owner" : "fe", + "name" : "a", + "access" : 9, + "descriptor" : "Ljava/applet/Applet;" + }, { + "field" : "base37Table", + "owner" : "kb", + "name" : "a", + "access" : 24, + "descriptor" : "[C" + }, { + "field" : "baseX", + "owner" : "e", + "name" : "fc", + "access" : 8, + "descriptor" : "I", + "decoder" : 115658669 + }, { + "field" : "baseY", + "owner" : "h", + "name" : "fs", + "access" : 8, + "descriptor" : "I", + "decoder" : 10887811 + }, { + "field" : "cacheDirectoryLocations", + "owner" : "kj", + "name" : "u", + "access" : 9, + "descriptor" : "[Ljava/lang/String;" + }, { + "field" : "cameraPitch", + "owner" : "gn", + "name" : "hg", + "access" : 8, + "descriptor" : "I", + "decoder" : -355288643 + }, { + "field" : "cameraX", + "owner" : "ar", + "name" : "hh", + "access" : 8, + "descriptor" : "I", + "decoder" : 1471454883 + }, { + "field" : "cameraY", + "owner" : "ak", + "name" : "hr", + "access" : 8, + "descriptor" : "I", + "decoder" : 1843719487 + }, { + "field" : "cameraYaw", + "owner" : "bp", + "name" : "hq", + "access" : 8, + "descriptor" : "I", + "decoder" : 806214979 + }, { + "field" : "cameraZ", + "owner" : "kw", + "name" : "he", + "access" : 8, + "descriptor" : "I", + "decoder" : 1857263827 + }, { + "field" : "canvasHeight", + "owner" : "ar", + "name" : "j", + "access" : 9, + "descriptor" : "I", + "decoder" : -1092194399 + }, { + "field" : "canvasWidth", + "owner" : "b", + "name" : "c", + "access" : 9, + "descriptor" : "I", + "decoder" : -115235313 + }, { + "field" : "chatEffects", + "owner" : "client", + "name" : "mc", + "access" : 8, + "descriptor" : "I", + "decoder" : -185716563 + }, { + "field" : "clDat", + "owner" : "fm", + "name" : "x", + "access" : 9, + "descriptor" : "Ljava/io/File;" + }, { + "field" : "clanChat", + "owner" : "ai", + "name" : "pt", + "access" : 8, + "descriptor" : "Lky;" + }, { + "field" : "clickedWidget", + "owner" : "client", + "name" : "mk", + "access" : 8, + "descriptor" : "Lia;" + }, { + "field" : "clickedWidgetParent", + "owner" : "client", + "name" : "ms", + "access" : 8, + "descriptor" : "Lia;" + }, { + "field" : "client", + "owner" : "bv", + "name" : "ak", + "access" : 8, + "descriptor" : "Lclient;" + }, { + "field" : "clientPreferences", + "owner" : "h", + "name" : "sq", + "access" : 8, + "descriptor" : "Lbt;" + }, { + "field" : "clientType", + "owner" : "client", + "name" : "bl", + "access" : 8, + "descriptor" : "I", + "decoder" : -941989807 + }, { + "field" : "clock", + "owner" : "iy", + "name" : "e", + "access" : 8, + "descriptor" : "Lfl;" + }, { + "field" : "collisionMaps", + "owner" : "client", + "name" : "w", + "access" : 8, + "descriptor" : "[Lfk;" + }, { + "field" : "combatTargetPlayerIndex", + "owner" : "client", + "name" : "ks", + "access" : 8, + "descriptor" : "I", + "decoder" : -1633189555 + }, { + "field" : "cp1252AsciiExtension", + "owner" : "kk", + "name" : "a", + "access" : 25, + "descriptor" : "[C" + }, { + "field" : "crossSprites", + "owner" : "b", + "name" : "gs", + "access" : 8, + "descriptor" : "[Lld;" + }, { + "field" : "currentLevels", + "owner" : "client", + "name" : "ki", + "access" : 8, + "descriptor" : "[I" + }, { + "field" : "currentTimeMsLast", + "owner" : "gj", + "name" : "a", + "access" : 8, + "descriptor" : "J", + "decoder" : 1670260844569960435 + }, { + "field" : "currentTimeMsOffset", + "owner" : "gj", + "name" : "s", + "access" : 8, + "descriptor" : "J", + "decoder" : -9006316027097542279 + }, { + "field" : "cycle", + "owner" : "client", + "name" : "ct", + "access" : 8, + "descriptor" : "I", + "decoder" : -523356653 + }, { + "field" : "dat2File", + "owner" : "fm", + "name" : "r", + "access" : 9, + "descriptor" : "Ldx;" + }, { + "field" : "decimator", + "owner" : "f", + "name" : "qe", + "access" : 8, + "descriptor" : "Ldn;" + }, { + "field" : "destinationX", + "owner" : "client", + "name" : "pb", + "access" : 8, + "descriptor" : "I", + "decoder" : 457912863 + }, { + "field" : "destinationY", + "owner" : "client", + "name" : "pv", + "access" : 8, + "descriptor" : "I", + "decoder" : -215982147 + }, { + "field" : "directBufferUnavailable", + "owner" : "gl", + "name" : "s", + "access" : 8, + "descriptor" : "Z" + }, { + "field" : "displayFps", + "owner" : "client", + "name" : "co", + "access" : 8, + "descriptor" : "Z" + }, { + "field" : "dragInventoryWidget", + "owner" : "ad", + "name" : "jr", + "access" : 8, + "descriptor" : "Lia;" + }, { + "field" : "dragItemSlotDestination", + "owner" : "client", + "name" : "je", + "access" : 8, + "descriptor" : "I", + "decoder" : -1167903951 + }, { + "field" : "dragItemSlotSource", + "owner" : "client", + "name" : "jz", + "access" : 8, + "descriptor" : "I", + "decoder" : 1927638763 + }, { + "field" : "experience", + "owner" : "client", + "name" : "kf", + "access" : 8, + "descriptor" : "[I" + }, { + "field" : "followerIndex", + "owner" : "client", + "name" : "mv", + "access" : 8, + "descriptor" : "I", + "decoder" : -1901682117 + }, { + "field" : "followerOpsLowPriority", + "owner" : "client", + "name" : "ly", + "access" : 8, + "descriptor" : "Z" + }, { + "field" : "fontBold12", + "owner" : "be", + "name" : "fk", + "access" : 8, + "descriptor" : "Lkt;" + }, { + "field" : "fontNameVerdana11", + "owner" : "lq", + "name" : "b", + "access" : 24, + "descriptor" : "Lkw;" + }, { + "field" : "fontNameVerdana13", + "owner" : "lq", + "name" : "n", + "access" : 24, + "descriptor" : "Lkw;" + }, { + "field" : "fontNameVerdana15", + "owner" : "lq", + "name" : "e", + "access" : 24, + "descriptor" : "Lkw;" + }, { + "field" : "fontPlain11", + "owner" : "client", + "name" : "fb", + "access" : 8, + "descriptor" : "Lkt;" + }, { + "field" : "fontPlain12", + "owner" : "es", + "name" : "fx", + "access" : 8, + "descriptor" : "Lkt;" + }, { + "field" : "fonts", + "owner" : "bm", + "name" : "fi", + "access" : 8, + "descriptor" : "Lke;" + }, { + "field" : "fontsMap", + "owner" : "client", + "name" : "ft", + "access" : 8, + "descriptor" : "Ljava/util/HashMap;" + }, { + "field" : "fps", + "owner" : "bf", + "name" : "n", + "access" : 12, + "descriptor" : "I", + "decoder" : -689075277 + }, { + "field" : "friendSystem", + "owner" : "ar", + "name" : "rt", + "access" : 9, + "descriptor" : "Lbc;" + }, { + "field" : "gameBuild", + "owner" : "client", + "name" : "bd", + "access" : 8, + "descriptor" : "I", + "decoder" : 1197033905 + }, { + "field" : "gameDrawingMode", + "owner" : "client", + "name" : "oq", + "access" : 8, + "descriptor" : "I", + "decoder" : -400556095 + }, { + "field" : "gameObjects", + "owner" : "en", + "name" : "ab", + "access" : 8, + "descriptor" : "[Ler;" + }, { + "field" : "gameShell", + "owner" : "bf", + "name" : "s", + "access" : 8, + "descriptor" : "Lbf;" + }, { + "field" : "gameState", + "owner" : "client", + "name" : "bw", + "access" : 8, + "descriptor" : "I", + "decoder" : -239871291 + }, { + "field" : "garbageCollector", + "owner" : "go", + "name" : "ao", + "access" : 8, + "descriptor" : "Ljava/lang/management/GarbageCollectorMXBean;" + }, { + "field" : "garbageCollectorLastCheckTimeMs", + "owner" : "bf", + "name" : "ax", + "access" : 8, + "descriptor" : "J", + "decoder" : -5124857986524201693 + }, { + "field" : "garbageCollectorLastCollectionTime", + "owner" : "bf", + "name" : "ad", + "access" : 8, + "descriptor" : "J", + "decoder" : 4493268428812309865 + }, { + "field" : "grandExchangeEvents", + "owner" : "ad", + "name" : "sz", + "access" : 8, + "descriptor" : "Lp;" + }, { + "field" : "grandExchangeOffers", + "owner" : "client", + "name" : "sj", + "access" : 8, + "descriptor" : "[Lb;" + }, { + "field" : "graphicsObjects", + "owner" : "client", + "name" : "ke", + "access" : 8, + "descriptor" : "Lhv;" + }, { + "field" : "groundItems", + "owner" : "client", + "name" : "ky", + "access" : 8, + "descriptor" : "[[[Lhv;" + }, { + "field" : "gzipDecompressor", + "owner" : "iz", + "name" : "t", + "access" : 8, + "descriptor" : "Lgn;" + }, { + "field" : "hasFocus", + "owner" : "bf", + "name" : "az", + "access" : 72, + "descriptor" : "Z" + }, { + "field" : "headIconHintSprites", + "owner" : "z", + "name" : "gv", + "access" : 8, + "descriptor" : "[Lld;" + }, { + "field" : "headIconPkSprites", + "owner" : "id", + "name" : "gk", + "access" : 8, + "descriptor" : "[Lld;" + }, { + "field" : "headIconPrayerSprites", + "owner" : "bv", + "name" : "gd", + "access" : 8, + "descriptor" : "[Lld;" + }, { + "field" : "hintArrowHeight", + "owner" : "client", + "name" : "ci", + "access" : 8, + "descriptor" : "I", + "decoder" : -136465419 + }, { + "field" : "hintArrowNpcIndex", + "owner" : "client", + "name" : "cn", + "access" : 8, + "descriptor" : "I", + "decoder" : -546759927 + }, { + "field" : "hintArrowPlayerIndex", + "owner" : "client", + "name" : "cw", + "access" : 8, + "descriptor" : "I", + "decoder" : 545121427 + }, { + "field" : "hintArrowSubX", + "owner" : "client", + "name" : "ce", + "access" : 8, + "descriptor" : "I", + "decoder" : -860300909 + }, { + "field" : "hintArrowSubY", + "owner" : "client", + "name" : "cj", + "access" : 8, + "descriptor" : "I", + "decoder" : 324021795 + }, { + "field" : "hintArrowType", + "owner" : "client", + "name" : "ck", + "access" : 8, + "descriptor" : "I", + "decoder" : 181127397 + }, { + "field" : "hintArrowX", + "owner" : "client", + "name" : "cv", + "access" : 8, + "descriptor" : "I", + "decoder" : -37907065 + }, { + "field" : "hintArrowY", + "owner" : "client", + "name" : "cu", + "access" : 8, + "descriptor" : "I", + "decoder" : -76133787 + }, { + "field" : "huffman", + "owner" : "kc", + "name" : "a", + "access" : 8, + "descriptor" : "Lfy;" + }, { + "field" : "idx255File", + "owner" : "fm", + "name" : "t", + "access" : 9, + "descriptor" : "Ldx;" + }, { + "field" : "idxCount", + "owner" : "bh", + "name" : "f", + "access" : 9, + "descriptor" : "I", + "decoder" : -1727430177 + }, { + "field" : "idxFiles", + "owner" : "bn", + "name" : "l", + "access" : 9, + "descriptor" : "[Ldx;" + }, { + "field" : "indexCache0", + "owner" : "ah", + "name" : "do", + "access" : 8, + "descriptor" : "Lin;" + }, { + "field" : "indexCache1", + "owner" : "ed", + "name" : "dd", + "access" : 8, + "descriptor" : "Lin;" + }, { + "field" : "indexCache10", + "owner" : "hb", + "name" : "dw", + "access" : 8, + "descriptor" : "Lin;" + }, { + "field" : "indexCache11", + "owner" : "j", + "name" : "db", + "access" : 8, + "descriptor" : "Lin;" + }, { + "field" : "indexCache12", + "owner" : "eq", + "name" : "dm", + "access" : 8, + "descriptor" : "Lin;" + }, { + "field" : "indexCache13", + "owner" : "az", + "name" : "de", + "access" : 8, + "descriptor" : "Lin;" + }, { + "field" : "indexCache14", + "owner" : "et", + "name" : "dv", + "access" : 8, + "descriptor" : "Lin;" + }, { + "field" : "indexCache15", + "owner" : "g", + "name" : "di", + "access" : 8, + "descriptor" : "Lin;" + }, { + "field" : "indexCache16", + "owner" : "fv", + "name" : "ev", + "access" : 8, + "descriptor" : "Lin;" + }, { + "field" : "indexCache2", + "owner" : "t", + "name" : "dc", + "access" : 8, + "descriptor" : "Lin;" + }, { + "field" : "indexCache3", + "owner" : "aw", + "name" : "dj", + "access" : 8, + "descriptor" : "Lin;" + }, { + "field" : "indexCache4", + "owner" : "bp", + "name" : "dx", + "access" : 8, + "descriptor" : "Lin;" + }, { + "field" : "indexCache5", + "owner" : "bp", + "name" : "da", + "access" : 8, + "descriptor" : "Lin;" + }, { + "field" : "indexCache6", + "owner" : "fm", + "name" : "du", + "access" : 8, + "descriptor" : "Lin;" + }, { + "field" : "indexCache7", + "owner" : "ag", + "name" : "dy", + "access" : 8, + "descriptor" : "Lin;" + }, { + "field" : "indexCache8", + "owner" : "ib", + "name" : "dk", + "access" : 8, + "descriptor" : "Lin;" + }, { + "field" : "indexCache9", + "owner" : "fu", + "name" : "dh", + "access" : 8, + "descriptor" : "Lin;" + }, { + "field" : "indexCacheLoaderIndex", + "owner" : "client", + "name" : "ss", + "access" : 8, + "descriptor" : "I", + "decoder" : 1507808255 + }, { + "field" : "indexCacheLoaders", + "owner" : "client", + "name" : "so", + "access" : 8, + "descriptor" : "Ljava/util/ArrayList;" + }, { + "field" : "indexStore255", + "owner" : "v", + "name" : "sh", + "access" : 8, + "descriptor" : "Lfb;" + }, { + "field" : "instanceChunkTemplates", + "owner" : "client", + "name" : "gm", + "access" : 8, + "descriptor" : "[[[I" + }, { + "field" : "isCameraLocked", + "owner" : "client", + "name" : "qt", + "access" : 8, + "descriptor" : "Z" + }, { + "field" : "isDraggingWidget", + "owner" : "client", + "name" : "nc", + "access" : 8, + "descriptor" : "Z" + }, { + "field" : "isInInstance", + "owner" : "client", + "name" : "gj", + "access" : 8, + "descriptor" : "Z" + }, { + "field" : "isItemSelected", + "owner" : "client", + "name" : "lq", + "access" : 8, + "descriptor" : "I", + "decoder" : 217766879 + }, { + "field" : "isKilled", + "owner" : "bf", + "name" : "f", + "access" : 8, + "descriptor" : "Z" + }, { + "field" : "isLoading", + "owner" : "client", + "name" : "cc", + "access" : 8, + "descriptor" : "Z" + }, { + "field" : "isLowDetail", + "owner" : "client", + "name" : "bv", + "access" : 8, + "descriptor" : "Z" + }, { + "field" : "isMembersWorld", + "owner" : "client", + "name" : "bp", + "access" : 9, + "descriptor" : "Z" + }, { + "field" : "isMenuOpen", + "owner" : "client", + "name" : "kk", + "access" : 8, + "descriptor" : "Z" + }, { + "field" : "isResizable", + "owner" : "client", + "name" : "om", + "access" : 8, + "descriptor" : "Z" + }, { + "field" : "isSpellSelected", + "owner" : "client", + "name" : "lc", + "access" : 8, + "descriptor" : "Z" + }, { + "field" : "isStereo", + "owner" : "ca", + "name" : "f", + "access" : 12, + "descriptor" : "Z" + }, { + "field" : "itemContainers", + "owner" : "bv", + "name" : "a", + "access" : 8, + "descriptor" : "Lht;" + }, { + "field" : "itemDragDuration", + "owner" : "client", + "name" : "jc", + "access" : 8, + "descriptor" : "I", + "decoder" : 776935403 + }, { + "field" : "javaVendor", + "owner" : "fo", + "name" : "a", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "javaVersion", + "owner" : "fo", + "name" : "s", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "js5ConnectState", + "owner" : "client", + "name" : "dn", + "access" : 8, + "descriptor" : "I", + "decoder" : -360399881 + }, { + "field" : "js5Errors", + "owner" : "client", + "name" : "en", + "access" : 8, + "descriptor" : "I", + "decoder" : 306506173 + }, { + "field" : "js5Socket", + "owner" : "ar", + "name" : "dq", + "access" : 8, + "descriptor" : "Lfq;" + }, { + "field" : "js5SocketTask", + "owner" : "ad", + "name" : "dl", + "access" : 8, + "descriptor" : "Lfn;" + }, { + "field" : "js5StartTimeMs", + "owner" : "jo", + "name" : "dr", + "access" : 8, + "descriptor" : "J", + "decoder" : -5832929330207401863 + }, { + "field" : "language", + "owner" : "client", + "name" : "bg", + "access" : 8, + "descriptor" : "I", + "decoder" : -1336712397 + }, { + "field" : "levels", + "owner" : "client", + "name" : "kt", + "access" : 8, + "descriptor" : "[I" + }, { + "field" : "loadedWidgetGroups", + "owner" : "ia", + "name" : "p", + "access" : 9, + "descriptor" : "[Z" + }, { + "field" : "localPlayer", + "owner" : "w", + "name" : "jk", + "access" : 8, + "descriptor" : "Lbw;" + }, { + "field" : "localPlayerIndex", + "owner" : "client", + "name" : "jj", + "access" : 8, + "descriptor" : "I", + "decoder" : -1798081145 + }, { + "field" : "localPlayerName", + "owner" : "fe", + "name" : "s", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "loginState", + "owner" : "client", + "name" : "em", + "access" : 8, + "descriptor" : "I", + "decoder" : -895242893 + }, { + "field" : "loginType", + "owner" : "az", + "name" : "bi", + "access" : 8, + "descriptor" : "Lll;" + }, { + "field" : "mapDotSprites", + "owner" : "s", + "name" : "gt", + "access" : 8, + "descriptor" : "[Lld;" + }, { + "field" : "mapIconCount", + "owner" : "client", + "name" : "pu", + "access" : 8, + "descriptor" : "I", + "decoder" : -1927960511 + }, { + "field" : "mapIconXs", + "owner" : "client", + "name" : "px", + "access" : 8, + "descriptor" : "[I" + }, { + "field" : "mapIconYs", + "owner" : "client", + "name" : "pr", + "access" : 8, + "descriptor" : "[I" + }, { + "field" : "mapIcons", + "owner" : "client", + "name" : "pn", + "access" : 8, + "descriptor" : "[Lld;" + }, { + "field" : "mapMarkerSprites", + "owner" : "es", + "name" : "gf", + "access" : 8, + "descriptor" : "[Lld;" + }, { + "field" : "mapSceneSprites", + "owner" : "bk", + "name" : "gc", + "access" : 8, + "descriptor" : "[Llv;" + }, { + "field" : "menuActions", + "owner" : "client", + "name" : "lg", + "access" : 8, + "descriptor" : "[Ljava/lang/String;" + }, { + "field" : "menuArguments0", + "owner" : "client", + "name" : "lk", + "access" : 8, + "descriptor" : "[I" + }, { + "field" : "menuArguments1", + "owner" : "client", + "name" : "lt", + "access" : 8, + "descriptor" : "[I" + }, { + "field" : "menuArguments2", + "owner" : "client", + "name" : "lf", + "access" : 8, + "descriptor" : "[I" + }, { + "field" : "menuHeight", + "owner" : "eg", + "name" : "kh", + "access" : 8, + "descriptor" : "I", + "decoder" : 1803129185 + }, { + "field" : "menuOpcodes", + "owner" : "client", + "name" : "lo", + "access" : 8, + "descriptor" : "[I" + }, { + "field" : "menuOptionsCount", + "owner" : "client", + "name" : "ln", + "access" : 8, + "descriptor" : "I", + "decoder" : 1576326627 + }, { + "field" : "menuShiftClick", + "owner" : "client", + "name" : "la", + "access" : 8, + "descriptor" : "[Z" + }, { + "field" : "menuTargetNames", + "owner" : "client", + "name" : "lh", + "access" : 8, + "descriptor" : "[Ljava/lang/String;" + }, { + "field" : "menuWidth", + "owner" : "ip", + "name" : "kv", + "access" : 8, + "descriptor" : "I", + "decoder" : -1212826191 + }, { + "field" : "menuX", + "owner" : "ah", + "name" : "kp", + "access" : 8, + "descriptor" : "I", + "decoder" : 685372481 + }, { + "field" : "menuY", + "owner" : "q", + "name" : "kb", + "access" : 8, + "descriptor" : "I", + "decoder" : 1598381831 + }, { + "field" : "midiPcmStream", + "owner" : "ek", + "name" : "x", + "access" : 9, + "descriptor" : "Lhn;" + }, { + "field" : "minimapOrientation", + "owner" : "client", + "name" : "hw", + "access" : 8, + "descriptor" : "I", + "decoder" : -1843309621 + }, { + "field" : "minimapState", + "owner" : "client", + "name" : "qo", + "access" : 8, + "descriptor" : "I", + "decoder" : 780008963 + }, { + "field" : "modIconSprites", + "owner" : "fa", + "name" : "gp", + "access" : 8, + "descriptor" : "[Llv;" + }, { + "field" : "modelViewportXs", + "owner" : "dv", + "name" : "ai", + "access" : 8, + "descriptor" : "[I" + }, { + "field" : "modelViewportYs", + "owner" : "dv", + "name" : "aq", + "access" : 8, + "descriptor" : "[I" + }, { + "field" : "mouseCrossColor", + "owner" : "client", + "name" : "jl", + "access" : 8, + "descriptor" : "I", + "decoder" : -578763473 + }, { + "field" : "mouseCrossState", + "owner" : "client", + "name" : "jd", + "access" : 8, + "descriptor" : "I", + "decoder" : 2039304517 + }, { + "field" : "mouseCrossX", + "owner" : "client", + "name" : "ja", + "access" : 8, + "descriptor" : "I", + "decoder" : 1345185859 + }, { + "field" : "mouseCrossY", + "owner" : "client", + "name" : "jn", + "access" : 8, + "descriptor" : "I", + "decoder" : 779145051 + }, { + "field" : "mouseLastLastPressedTimeMillis", + "owner" : "client", + "name" : "cb", + "access" : 8, + "descriptor" : "J", + "decoder" : 2910245912741037697 + }, { + "field" : "mouseRecorder", + "owner" : "el", + "name" : "cp", + "access" : 8, + "descriptor" : "Lbn;" + }, { + "field" : "mouseWheel", + "owner" : "co", + "name" : "od", + "access" : 8, + "descriptor" : "Lff;" + }, { + "field" : "mouseWheelRotation", + "owner" : "client", + "name" : "oy", + "access" : 8, + "descriptor" : "I", + "decoder" : 1124377519 + }, { + "field" : "mousedOverWidgetIf1", + "owner" : "jg", + "name" : "lm", + "access" : 8, + "descriptor" : "Lia;" + }, { + "field" : "musicTrack", + "owner" : "ae", + "name" : "e", + "access" : 9, + "descriptor" : "Lhx;" + }, { + "field" : "musicTrackArchiveId", + "owner" : "hd", + "name" : "p", + "access" : 9, + "descriptor" : "I", + "decoder" : 1582336385 + }, { + "field" : "musicTrackBoolean", + "owner" : "hd", + "name" : "n", + "access" : 9, + "descriptor" : "Z" + }, { + "field" : "musicTrackFileId", + "owner" : "hd", + "name" : "m", + "access" : 9, + "descriptor" : "I", + "decoder" : -1729655047 + }, { + "field" : "npcAttackOption", + "owner" : "client", + "name" : "dz", + "access" : 8, + "descriptor" : "Lcx;" + }, { + "field" : "npcCount", + "owner" : "client", + "name" : "et", + "access" : 8, + "descriptor" : "I", + "decoder" : 860111793 + }, { + "field" : "npcIndices", + "owner" : "client", + "name" : "fp", + "access" : 8, + "descriptor" : "[I" + }, { + "field" : "npcs", + "owner" : "client", + "name" : "ec", + "access" : 8, + "descriptor" : "[Lcm;" + }, { + "field" : "objectSounds", + "owner" : "bs", + "name" : "a", + "access" : 8, + "descriptor" : "Lhv;" + }, { + "field" : "osName", + "owner" : "cr", + "name" : "w", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "osNameLowerCase", + "owner" : "z", + "name" : "d", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "overheadText", + "owner" : "client", + "name" : "id", + "access" : 8, + "descriptor" : "[Ljava/lang/String;" + }, { + "field" : "overheadTextAscents", + "owner" : "client", + "name" : "ij", + "access" : 8, + "descriptor" : "[I" + }, { + "field" : "overheadTextColors", + "owner" : "client", + "name" : "ib", + "access" : 8, + "descriptor" : "[I" + }, { + "field" : "overheadTextCount", + "owner" : "client", + "name" : "ii", + "access" : 8, + "descriptor" : "I", + "decoder" : 1219875627 + }, { + "field" : "overheadTextCyclesRemaining", + "owner" : "client", + "name" : "ig", + "access" : 8, + "descriptor" : "[I" + }, { + "field" : "overheadTextEffects", + "owner" : "client", + "name" : "iw", + "access" : 8, + "descriptor" : "[I" + }, { + "field" : "overheadTextLimit", + "owner" : "client", + "name" : "iv", + "access" : 8, + "descriptor" : "I", + "decoder" : -186345625 + }, { + "field" : "overheadTextXOffsets", + "owner" : "client", + "name" : "is", + "access" : 8, + "descriptor" : "[I" + }, { + "field" : "overheadTextXs", + "owner" : "client", + "name" : "ir", + "access" : 8, + "descriptor" : "[I" + }, { + "field" : "overheadTextYs", + "owner" : "client", + "name" : "ih", + "access" : 8, + "descriptor" : "[I" + }, { + "field" : "packetBufferNodes", + "owner" : "fa", + "name" : "h", + "access" : 8, + "descriptor" : "[Lfa;" + }, { + "field" : "packetWriter", + "owner" : "client", + "name" : "fo", + "access" : 25, + "descriptor" : "Lck;" + }, { + "field" : "pcmPlayer0", + "owner" : "be", + "name" : "qf", + "access" : 8, + "descriptor" : "Lcz;" + }, { + "field" : "pcmPlayer1", + "owner" : "by", + "name" : "qk", + "access" : 8, + "descriptor" : "Lcz;" + }, { + "field" : "pcmPlayerCount", + "owner" : "cz", + "name" : "q", + "access" : 8, + "descriptor" : "I", + "decoder" : 1314449701 + }, { + "field" : "pcmPlayerProvider", + "owner" : "ba", + "name" : "r", + "access" : 8, + "descriptor" : "Lcw;" + }, { + "field" : "pcmStreamMixer", + "owner" : "q", + "name" : "qv", + "access" : 8, + "descriptor" : "Lcn;" + }, { + "field" : "plane", + "owner" : "fc", + "name" : "js", + "access" : 8, + "descriptor" : "I", + "decoder" : -1552569051 + }, { + "field" : "platformInfo", + "owner" : "an", + "name" : "sd", + "access" : 8, + "descriptor" : "Lli;" + }, { + "field" : "platformInfoProvider", + "owner" : "client", + "name" : "sw", + "access" : 8, + "descriptor" : "Llx;" + }, { + "field" : "playerAttackOption", + "owner" : "client", + "name" : "cl", + "access" : 8, + "descriptor" : "Lcx;" + }, { + "field" : "playerMenuActions", + "owner" : "client", + "name" : "kz", + "access" : 8, + "descriptor" : "[Ljava/lang/String;" + }, { + "field" : "playerMenuOpcodes", + "owner" : "client", + "name" : "ko", + "access" : 24, + "descriptor" : "[I" + }, { + "field" : "players", + "owner" : "client", + "name" : "jm", + "access" : 8, + "descriptor" : "[Lbw;" + }, { + "field" : "port1", + "owner" : "fq", + "name" : "ef", + "access" : 8, + "descriptor" : "I", + "decoder" : -280256619 + }, { + "field" : "port2", + "owner" : "r", + "name" : "er", + "access" : 8, + "descriptor" : "I", + "decoder" : -1082272795 + }, { + "field" : "port3", + "owner" : "fx", + "name" : "ex", + "access" : 8, + "descriptor" : "I", + "decoder" : -1114384081 + }, { + "field" : "projectiles", + "owner" : "client", + "name" : "kw", + "access" : 8, + "descriptor" : "Lhv;" + }, { + "field" : "publicChatMode", + "owner" : "client", + "name" : "py", + "access" : 8, + "descriptor" : "I", + "decoder" : -470404991 + }, { + "field" : "randomDat", + "owner" : "fm", + "name" : "e", + "access" : 9, + "descriptor" : "Ldx;" + }, { + "field" : "rasterProvider", + "owner" : "co", + "name" : "ar", + "access" : 9, + "descriptor" : "Llr;" + }, { + "field" : "rebootTimer", + "owner" : "client", + "name" : "cr", + "access" : 8, + "descriptor" : "I", + "decoder" : 814843975 + }, { + "field" : "reflectionChecks", + "owner" : "lj", + "name" : "a", + "access" : 9, + "descriptor" : "Lhj;" + }, { + "field" : "regionLandArchiveIds", + "owner" : "f", + "name" : "gq", + "access" : 8, + "descriptor" : "[I" + }, { + "field" : "regionLandArchives", + "owner" : "jj", + "name" : "gz", + "access" : 8, + "descriptor" : "[[B" + }, { + "field" : "regionMapArchiveIds", + "owner" : "aw", + "name" : "gy", + "access" : 8, + "descriptor" : "[I" + }, { + "field" : "regionMapArchives", + "owner" : "er", + "name" : "gx", + "access" : 8, + "descriptor" : "[[B" + }, { + "field" : "regions", + "owner" : "ft", + "name" : "gi", + "access" : 8, + "descriptor" : "[I" + }, { + "field" : "renderSelf", + "owner" : "client", + "name" : "jb", + "access" : 8, + "descriptor" : "Z" + }, { + "field" : "revision", + "owner" : "fe", + "name" : "g", + "access" : 9, + "descriptor" : "I", + "decoder" : 1878282847 + }, { + "field" : "rights", + "owner" : "client", + "name" : "mm", + "access" : 8, + "descriptor" : "I", + "decoder" : 1911137227 + }, { + "field" : "rootWidgetCount", + "owner" : "client", + "name" : "ow", + "access" : 8, + "descriptor" : "I", + "decoder" : 299565847 + }, { + "field" : "rootWidgetGroup", + "owner" : "client", + "name" : "my", + "access" : 8, + "descriptor" : "I", + "decoder" : -598595791 + }, { + "field" : "rootWidgetHeights", + "owner" : "client", + "name" : "oa", + "access" : 8, + "descriptor" : "[I" + }, { + "field" : "rootWidgetWidths", + "owner" : "client", + "name" : "or", + "access" : 8, + "descriptor" : "[I" + }, { + "field" : "rootWidgetXs", + "owner" : "client", + "name" : "oh", + "access" : 8, + "descriptor" : "[I" + }, { + "field" : "rootWidgetYs", + "owner" : "client", + "name" : "ot", + "access" : 8, + "descriptor" : "[I" + }, { + "field" : "runEnergy", + "owner" : "client", + "name" : "mu", + "access" : 8, + "descriptor" : "I", + "decoder" : -1318049485 + }, { + "field" : "scene", + "owner" : "h", + "name" : "go", + "access" : 8, + "descriptor" : "Len;" + }, { + "field" : "sceneMinimapSprite", + "owner" : "bx", + "name" : "po", + "access" : 8, + "descriptor" : "Lld;" + }, { + "field" : "scriptEvents", + "owner" : "client", + "name" : "oc", + "access" : 8, + "descriptor" : "Lhv;" + }, { + "field" : "scrollBarSprites", + "owner" : "cd", + "name" : "gg", + "access" : 8, + "descriptor" : "[Llv;" + }, { + "field" : "secureRandom", + "owner" : "jy", + "name" : "ey", + "access" : 8, + "descriptor" : "Ljava/security/SecureRandom;" + }, { + "field" : "secureRandomFuture", + "owner" : "client", + "name" : "ed", + "access" : 8, + "descriptor" : "Lcp;" + }, { + "field" : "selectedItemId", + "owner" : "dn", + "name" : "iz", + "access" : 8, + "descriptor" : "I", + "decoder" : 412126871 + }, { + "field" : "selectedItemName", + "owner" : "client", + "name" : "it", + "access" : 8, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "selectedItemSlot", + "owner" : "bb", + "name" : "ll", + "access" : 8, + "descriptor" : "I", + "decoder" : 1274406465 + }, { + "field" : "selectedItemWidget", + "owner" : "ij", + "name" : "ix", + "access" : 8, + "descriptor" : "I", + "decoder" : 597349947 + }, { + "field" : "selectedSpellActionName", + "owner" : "client", + "name" : "mo", + "access" : 8, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "selectedSpellFlags", + "owner" : "ch", + "name" : "mn", + "access" : 8, + "descriptor" : "I", + "decoder" : -1292469279 + }, { + "field" : "selectedSpellName", + "owner" : "client", + "name" : "md", + "access" : 8, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "serverBuild", + "owner" : "f", + "name" : "be", + "access" : 8, + "descriptor" : "Lix;" + }, { + "field" : "shiftClickDrop", + "owner" : "client", + "name" : "lb", + "access" : 8, + "descriptor" : "Z" + }, { + "field" : "showLoadingMessages", + "owner" : "client", + "name" : "jw", + "access" : 8, + "descriptor" : "Z" + }, { + "field" : "showMouseCross", + "owner" : "client", + "name" : "jh", + "access" : 8, + "descriptor" : "Z" + }, { + "field" : "showMouseOverText", + "owner" : "client", + "name" : "lp", + "access" : 8, + "descriptor" : "Z" + }, { + "field" : "socketTask", + "owner" : "bg", + "name" : "fn", + "access" : 8, + "descriptor" : "Lfn;" + }, { + "field" : "soundCache", + "owner" : "hd", + "name" : "r", + "access" : 9, + "descriptor" : "Lds;" + }, { + "field" : "soundEffectCount", + "owner" : "client", + "name" : "qs", + "access" : 8, + "descriptor" : "I", + "decoder" : -2059524069 + }, { + "field" : "soundEffectIds", + "owner" : "client", + "name" : "qi", + "access" : 8, + "descriptor" : "[I" + }, { + "field" : "soundEffects", + "owner" : "client", + "name" : "qh", + "access" : 8, + "descriptor" : "[Lcu;" + }, { + "field" : "soundSystem", + "owner" : "cy", + "name" : "b", + "access" : 8, + "descriptor" : "Ldz;" + }, { + "field" : "soundSystemExecutor", + "owner" : "cz", + "name" : "m", + "access" : 8, + "descriptor" : "Ljava/util/concurrent/ScheduledExecutorService;" + }, { + "field" : "spriteIds", + "owner" : "ib", + "name" : "ek", + "access" : 8, + "descriptor" : "Llf;" + }, { + "field" : "studioGame", + "owner" : "p", + "name" : "bz", + "access" : 8, + "descriptor" : "Lib;" + }, { + "field" : "tapToDrop", + "owner" : "client", + "name" : "lr", + "access" : 8, + "descriptor" : "Z" + }, { + "field" : "taskHandler", + "owner" : "la", + "name" : "a", + "access" : 12, + "descriptor" : "Lfo;" + }, { + "field" : "tempMenuAction", + "owner" : "h", + "name" : "lu", + "access" : 8, + "descriptor" : "Lca;" + }, { + "field" : "textureProvider", + "owner" : "bb", + "name" : "jg", + "access" : 8, + "descriptor" : "Ldu;" + }, { + "field" : "tileLastDrawnActor", + "owner" : "client", + "name" : "in", + "access" : 8, + "descriptor" : "[[I" + }, { + "field" : "timer", + "owner" : "client", + "name" : "fd", + "access" : 8, + "descriptor" : "Lka;" + }, { + "field" : "titleLoadingStage", + "owner" : "client", + "name" : "dg", + "access" : 8, + "descriptor" : "I", + "decoder" : -1625536117 + }, { + "field" : "urlRequester", + "owner" : "gw", + "name" : "fl", + "access" : 8, + "descriptor" : "Lex;" + }, { + "field" : "useBufferedSocket", + "owner" : "client", + "name" : "fz", + "access" : 8, + "descriptor" : "Z" + }, { + "field" : "userHomeDirectory", + "owner" : "k", + "name" : "i", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "varcs", + "owner" : "v", + "name" : "ox", + "access" : 8, + "descriptor" : "Lcq;" + }, { + "field" : "viewportDrawCount", + "owner" : "client", + "name" : "io", + "access" : 8, + "descriptor" : "I", + "decoder" : 1950554197 + }, { + "field" : "viewportHeight", + "owner" : "client", + "name" : "ri", + "access" : 8, + "descriptor" : "I", + "decoder" : 1091657233 + }, { + "field" : "viewportOffsetX", + "owner" : "client", + "name" : "re", + "access" : 8, + "descriptor" : "I", + "decoder" : 2112570043 + }, { + "field" : "viewportOffsetY", + "owner" : "client", + "name" : "ry", + "access" : 8, + "descriptor" : "I", + "decoder" : -1373665093 + }, { + "field" : "viewportTempX", + "owner" : "client", + "name" : "iq", + "access" : 8, + "descriptor" : "I", + "decoder" : -58041941 + }, { + "field" : "viewportTempY", + "owner" : "client", + "name" : "ip", + "access" : 8, + "descriptor" : "I", + "decoder" : -930877511 + }, { + "field" : "viewportWidget", + "owner" : "client", + "name" : "mb", + "access" : 8, + "descriptor" : "Lia;" + }, { + "field" : "viewportWidth", + "owner" : "client", + "name" : "ru", + "access" : 8, + "descriptor" : "I", + "decoder" : 1854847667 + }, { + "field" : "viewportZoom", + "owner" : "client", + "name" : "rn", + "access" : 8, + "descriptor" : "I", + "decoder" : -1083000669 + }, { + "field" : "visibilityMap", + "owner" : "en", + "name" : "bv", + "access" : 8, + "descriptor" : "[[[[Z" + }, { + "field" : "visibleTiles", + "owner" : "en", + "name" : "bg", + "access" : 8, + "descriptor" : "[[Z" + }, { + "field" : "weight", + "owner" : "client", + "name" : "ml", + "access" : 8, + "descriptor" : "I", + "decoder" : 394154065 + }, { + "field" : "widgetClickMasks", + "owner" : "client", + "name" : "oi", + "access" : 8, + "descriptor" : "Lht;" + }, { + "field" : "widgetClickX", + "owner" : "client", + "name" : "mj", + "access" : 8, + "descriptor" : "I", + "decoder" : 119991981 + }, { + "field" : "widgetClickY", + "owner" : "client", + "name" : "mx", + "access" : 8, + "descriptor" : "I", + "decoder" : 2068877137 + }, { + "field" : "widgetDragDuration", + "owner" : "aa", + "name" : "nz", + "access" : 8, + "descriptor" : "I", + "decoder" : 1603304763 + }, { + "field" : "widgetGroupParents", + "owner" : "client", + "name" : "mh", + "access" : 8, + "descriptor" : "Lht;" + }, { + "field" : "widgets", + "owner" : "ia", + "name" : "f", + "access" : 9, + "descriptor" : "[[Lia;" + }, { + "field" : "worldHost", + "owner" : "o", + "name" : "es", + "access" : 8, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "worldId", + "owner" : "client", + "name" : "bf", + "access" : 9, + "descriptor" : "I", + "decoder" : -1631337851 + }, { + "field" : "worldMap0", + "owner" : "k", + "name" : "sa", + "access" : 8, + "descriptor" : "Llq;" + }, { + "field" : "worldMapEvent", + "owner" : "aq", + "name" : "u", + "access" : 8, + "descriptor" : "Lai;" + }, { + "field" : "worldProperties", + "owner" : "client", + "name" : "bo", + "access" : 8, + "descriptor" : "I", + "decoder" : -2035474007 + }, { + "field" : "worlds", + "owner" : "lj", + "name" : "h", + "access" : 8, + "descriptor" : "[Lbu;" + }, { + "field" : "worldsCount", + "owner" : "bu", + "name" : "f", + "access" : 8, + "descriptor" : "I", + "decoder" : 779901565 + }, { + "field" : "worldsUrl", + "owner" : "h", + "name" : "bk", + "access" : 8, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "xteaKeys", + "owner" : "cq", + "name" : "gu", + "access" : 8, + "descriptor" : "[[I" + }, { + "field" : "__s_jo", + "owner" : "s", + "name" : "jo", + "access" : 8, + "descriptor" : "Lia;" + }, { + "field" : "__x_b", + "owner" : "x", + "name" : "b", + "access" : 9, + "descriptor" : "[[S" + }, { + "field" : "__h_qu", + "owner" : "h", + "name" : "qu", + "access" : 8, + "descriptor" : "I", + "decoder" : 1933594241 + }, { + "field" : "__f_l", + "owner" : "f", + "name" : "l", + "access" : 8, + "descriptor" : "I", + "decoder" : -1139846795 + }, { + "field" : "__f_a", + "owner" : "f", + "name" : "a", + "access" : 8, + "descriptor" : "Liz;" + }, { + "field" : "__p_g", + "owner" : "p", + "name" : "g", + "access" : 9, + "descriptor" : "Ljava/util/Comparator;" + }, { + "field" : "__p_h", + "owner" : "p", + "name" : "h", + "access" : 9, + "descriptor" : "Ljava/util/Comparator;" + }, { + "field" : "__p_s", + "owner" : "p", + "name" : "s", + "access" : 9, + "descriptor" : "Ljava/util/Comparator;" + }, { + "field" : "__p_x", + "owner" : "p", + "name" : "x", + "access" : 9, + "descriptor" : "Ljava/util/Comparator;" + }, { + "field" : "__q_ez", + "owner" : "q", + "name" : "ez", + "access" : 8, + "descriptor" : "I", + "decoder" : 332825983 + }, { + "field" : "__q_n", + "owner" : "q", + "name" : "n", + "access" : 8, + "descriptor" : "Llv;" + }, { + "field" : "__b_ns", + "owner" : "b", + "name" : "ns", + "access" : 8, + "descriptor" : "[Lia;" + }, { + "field" : "__n_r", + "owner" : "n", + "name" : "r", + "access" : 8, + "descriptor" : "Llv;" + }, { + "field" : "__r_aa", + "owner" : "r", + "name" : "aa", + "access" : 8, + "descriptor" : "Ljava/awt/Font;" + }, { + "field" : "__t_n", + "owner" : "t", + "name" : "n", + "access" : 8, + "descriptor" : "I", + "decoder" : -536580295 + }, { + "field" : "__t_b", + "owner" : "t", + "name" : "b", + "access" : 8, + "descriptor" : "[I" + }, { + "field" : "__u_gr", + "owner" : "u", + "name" : "gr", + "access" : 8, + "descriptor" : "I", + "decoder" : 1173873021 + }, { + "field" : "__u_sv", + "owner" : "u", + "name" : "sv", + "access" : 8, + "descriptor" : "I", + "decoder" : 760845619 + }, { + "field" : "__y_r", + "owner" : "y", + "name" : "r", + "access" : 9, + "descriptor" : "Lkt;" + }, { + "field" : "__y_eb", + "owner" : "y", + "name" : "eb", + "access" : 8, + "descriptor" : "Lin;" + }, { + "field" : "__y_rz", + "owner" : "y", + "name" : "rz", + "access" : 8, + "descriptor" : "I", + "decoder" : 1813401529 + }, { + "field" : "__y_w", + "owner" : "y", + "name" : "w", + "access" : 8, + "descriptor" : "[I" + }, { + "field" : "__k_hz", + "owner" : "k", + "name" : "hz", + "access" : 8, + "descriptor" : "I", + "decoder" : -47086145 + }, { + "field" : "__v_ab", + "owner" : "v", + "name" : "ab", + "access" : 8, + "descriptor" : "[I" + }, { + "field" : "__v_fe", + "owner" : "v", + "name" : "fe", + "access" : 8, + "descriptor" : "J", + "decoder" : -5715982567008898473 + }, { + "field" : "__d_rp", + "owner" : "d", + "name" : "rp", + "access" : 8, + "descriptor" : "I", + "decoder" : 662123079 + }, { + "field" : "__d_ee", + "owner" : "d", + "name" : "ee", + "access" : 8, + "descriptor" : "[I" + }, { + "field" : "__d_a", + "owner" : "d", + "name" : "a", + "access" : 24, + "descriptor" : "Ld;" + }, { + "field" : "__d_g", + "owner" : "d", + "name" : "g", + "access" : 24, + "descriptor" : "Ld;" + }, { + "field" : "__d_s", + "owner" : "d", + "name" : "s", + "access" : 24, + "descriptor" : "Ld;" + }, { + "field" : "__d_x", + "owner" : "d", + "name" : "x", + "access" : 24, + "descriptor" : "Ld;" + }, { + "field" : "__w_bg", + "owner" : "w", + "name" : "bg", + "access" : 8, + "descriptor" : "I", + "decoder" : -107724485 + }, { + "field" : "__w_gw", + "owner" : "w", + "name" : "gw", + "access" : 8, + "descriptor" : "Lld;" + }, { + "field" : "__c_ej", + "owner" : "c", + "name" : "ej", + "access" : 8, + "descriptor" : "I", + "decoder" : 452175157 + }, { + "field" : "__z_pm", + "owner" : "z", + "name" : "pm", + "access" : 8, + "descriptor" : "Z" + }, { + "field" : "__z_qy", + "owner" : "z", + "name" : "qy", + "access" : 8, + "descriptor" : "I", + "decoder" : -310179935 + }, { + "field" : "__af_ac", + "owner" : "af", + "name" : "ac", + "access" : 12, + "descriptor" : "Z" + }, { + "field" : "__ay_j", + "owner" : "ay", + "name" : "j", + "access" : 8, + "descriptor" : "[I" + }, { + "field" : "__aa_h", + "owner" : "aa", + "name" : "h", + "access" : 8, + "descriptor" : "Lha;" + }, { + "field" : "__aa_c", + "owner" : "aa", + "name" : "c", + "access" : 8, + "descriptor" : "[I" + }, { + "field" : "__aw_cp", + "owner" : "aw", + "name" : "cp", + "access" : 9, + "descriptor" : "C" + }, { + "field" : "__aw_f", + "owner" : "aw", + "name" : "f", + "access" : 9, + "descriptor" : "Liz;" + }, { + "field" : "__aw_at", + "owner" : "aw", + "name" : "at", + "access" : 8, + "descriptor" : "Ljava/awt/Image;" + }, { + "field" : "__an_nr", + "owner" : "an", + "name" : "nr", + "access" : 8, + "descriptor" : "I", + "decoder" : -2006679537 + }, { + "field" : "__ae_bx", + "owner" : "ae", + "name" : "bx", + "access" : 8, + "descriptor" : "Llv;" + }, { + "field" : "__aj_eg", + "owner" : "aj", + "name" : "eg", + "access" : 8, + "descriptor" : "I", + "decoder" : 1007381451 + }, { + "field" : "__as_rk", + "owner" : "as", + "name" : "rk", + "access" : 8, + "descriptor" : "I", + "decoder" : -686303295 + }, { + "field" : "__as_gb", + "owner" : "as", + "name" : "gb", + "access" : 8, + "descriptor" : "Lld;" + }, { + "field" : "__ar_bu", + "owner" : "ar", + "name" : "bu", + "access" : 8, + "descriptor" : "[Lld;" + }, { + "field" : "__ai_as", + "owner" : "ai", + "name" : "as", + "access" : 12, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__az_cf", + "owner" : "az", + "name" : "cf", + "access" : 9, + "descriptor" : "I", + "decoder" : -1396922597 + }, { + "field" : "__az_cn", + "owner" : "az", + "name" : "cn", + "access" : 9, + "descriptor" : "I", + "decoder" : -692028311 + }, { + "field" : "__az_cs", + "owner" : "az", + "name" : "cs", + "access" : 9, + "descriptor" : "I", + "decoder" : 2047808079 + }, { + "field" : "__az_cu", + "owner" : "az", + "name" : "cu", + "access" : 9, + "descriptor" : "I", + "decoder" : 595955195 + }, { + "field" : "__az_cv", + "owner" : "az", + "name" : "cv", + "access" : 9, + "descriptor" : "I", + "decoder" : -731079815 + }, { + "field" : "__az_cw", + "owner" : "az", + "name" : "cw", + "access" : 9, + "descriptor" : "I", + "decoder" : 1159843057 + }, { + "field" : "__az_ck", + "owner" : "az", + "name" : "ck", + "access" : 9, + "descriptor" : "[I" + }, { + "field" : "__az_cq", + "owner" : "az", + "name" : "cq", + "access" : 9, + "descriptor" : "[I" + }, { + "field" : "__az_co", + "owner" : "az", + "name" : "co", + "access" : 8, + "descriptor" : "[C" + }, { + "field" : "__az_fv", + "owner" : "az", + "name" : "fv", + "access" : 8, + "descriptor" : "I", + "decoder" : 2023993573 + }, { + "field" : "__az_cr", + "owner" : "az", + "name" : "cr", + "access" : 8, + "descriptor" : "[I" + }, { + "field" : "__ac_bn", + "owner" : "ac", + "name" : "bn", + "access" : 8, + "descriptor" : "I", + "decoder" : 1427147269 + }, { + "field" : "__ac_i", + "owner" : "ac", + "name" : "i", + "access" : 8, + "descriptor" : "[I" + }, { + "field" : "__ad_h", + "owner" : "ad", + "name" : "h", + "access" : 9, + "descriptor" : "[I" + }, { + "field" : "__ax_r", + "owner" : "ax", + "name" : "r", + "access" : 8, + "descriptor" : "I", + "decoder" : -1520073519 + }, { + "field" : "__ak_a", + "owner" : "ak", + "name" : "a", + "access" : 9, + "descriptor" : "Ljava/applet/Applet;" + }, { + "field" : "__ak_s", + "owner" : "ak", + "name" : "s", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__bf_ae", + "owner" : "bf", + "name" : "ae", + "access" : 8, + "descriptor" : "I", + "decoder" : -851112671 + }, { + "field" : "__bf_b", + "owner" : "bf", + "name" : "b", + "access" : 8, + "descriptor" : "I", + "decoder" : -1405095629 + }, { + "field" : "__bf_g", + "owner" : "bf", + "name" : "g", + "access" : 8, + "descriptor" : "I", + "decoder" : -724394045 + }, { + "field" : "__bf_m", + "owner" : "bf", + "name" : "m", + "access" : 8, + "descriptor" : "I", + "decoder" : 1693242635 + }, { + "field" : "__bf_q", + "owner" : "bf", + "name" : "q", + "access" : 8, + "descriptor" : "I", + "decoder" : 2064969169 + }, { + "field" : "__bf_ab", + "owner" : "bf", + "name" : "ab", + "access" : 8, + "descriptor" : "Ljava/awt/FontMetrics;" + }, { + "field" : "__bf_o", + "owner" : "bf", + "name" : "o", + "access" : 8, + "descriptor" : "[J" + }, { + "field" : "__bf_t", + "owner" : "bf", + "name" : "t", + "access" : 8, + "descriptor" : "[J" + }, { + "field" : "__bo_nv", + "owner" : "bo", + "name" : "nv", + "access" : 8, + "descriptor" : "I", + "decoder" : 429076041 + }, { + "field" : "__bo_af", + "owner" : "bo", + "name" : "af", + "access" : 8, + "descriptor" : "[I" + }, { + "field" : "__bd_f", + "owner" : "bd", + "name" : "f", + "access" : 8, + "descriptor" : "[[[B" + }, { + "field" : "__bd_h", + "owner" : "bd", + "name" : "h", + "access" : 8, + "descriptor" : "[[[B" + }, { + "field" : "__bd_m", + "owner" : "bd", + "name" : "m", + "access" : 8, + "descriptor" : "[[[B" + }, { + "field" : "__bd_p", + "owner" : "bd", + "name" : "p", + "access" : 8, + "descriptor" : "[[[B" + }, { + "field" : "__bd_x", + "owner" : "bd", + "name" : "x", + "access" : 8, + "descriptor" : "[[[B" + }, { + "field" : "__bd_j", + "owner" : "bd", + "name" : "j", + "access" : 8, + "descriptor" : "I", + "decoder" : -548424781 + }, { + "field" : "__bd_z", + "owner" : "bd", + "name" : "z", + "access" : 8, + "descriptor" : "I", + "decoder" : -790124765 + }, { + "field" : "__bd_n", + "owner" : "bd", + "name" : "n", + "access" : 8, + "descriptor" : "[I" + }, { + "field" : "__bd_t", + "owner" : "bd", + "name" : "t", + "access" : 8, + "descriptor" : "[I" + }, { + "field" : "__bd_c", + "owner" : "bd", + "name" : "c", + "access" : 24, + "descriptor" : "[I" + }, { + "field" : "__bd_d", + "owner" : "bd", + "name" : "d", + "access" : 24, + "descriptor" : "[I" + }, { + "field" : "__bd_i", + "owner" : "bd", + "name" : "i", + "access" : 24, + "descriptor" : "[I" + }, { + "field" : "__bd_k", + "owner" : "bd", + "name" : "k", + "access" : 24, + "descriptor" : "[I" + }, { + "field" : "__bd_v", + "owner" : "bd", + "name" : "v", + "access" : 24, + "descriptor" : "[I" + }, { + "field" : "__bd_w", + "owner" : "bd", + "name" : "w", + "access" : 24, + "descriptor" : "[I" + }, { + "field" : "__bi_q", + "owner" : "bi", + "name" : "q", + "access" : 9, + "descriptor" : "I", + "decoder" : 1399707023 + }, { + "field" : "__bi_fh", + "owner" : "bi", + "name" : "fh", + "access" : 8, + "descriptor" : "I", + "decoder" : 2108672263 + }, { + "field" : "__bv_ao", + "owner" : "bv", + "name" : "ao", + "access" : 8, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__bv_ad", + "owner" : "bv", + "name" : "ad", + "access" : 8, + "descriptor" : "Llh;" + }, { + "field" : "__bw_df", + "owner" : "bw", + "name" : "df", + "access" : 8, + "descriptor" : "Lin;" + }, { + "field" : "__bh_sr", + "owner" : "bh", + "name" : "sr", + "access" : 8, + "descriptor" : "[S" + }, { + "field" : "__client_ia", + "owner" : "client", + "name" : "ia", + "access" : 9, + "descriptor" : "I", + "decoder" : -1741192279 + }, { + "field" : "__client_sb", + "owner" : "client", + "name" : "sb", + "access" : 9, + "descriptor" : "I", + "decoder" : -459653449 + }, { + "field" : "__client_sp", + "owner" : "client", + "name" : "sp", + "access" : 8, + "descriptor" : "Lbh;" + }, { + "field" : "__client_am", + "owner" : "client", + "name" : "am", + "access" : 8, + "descriptor" : "Z" + }, { + "field" : "__client_bb", + "owner" : "client", + "name" : "bb", + "access" : 8, + "descriptor" : "Z" + }, { + "field" : "__client_cs", + "owner" : "client", + "name" : "cs", + "access" : 8, + "descriptor" : "Z" + }, { + "field" : "__client_fq", + "owner" : "client", + "name" : "fq", + "access" : 8, + "descriptor" : "Z" + }, { + "field" : "__client_hv", + "owner" : "client", + "name" : "hv", + "access" : 8, + "descriptor" : "Z" + }, { + "field" : "__client_ie", + "owner" : "client", + "name" : "ie", + "access" : 8, + "descriptor" : "Z" + }, { + "field" : "__client_im", + "owner" : "client", + "name" : "im", + "access" : 8, + "descriptor" : "Z" + }, { + "field" : "__client_jy", + "owner" : "client", + "name" : "jy", + "access" : 8, + "descriptor" : "Z" + }, { + "field" : "__client_mp", + "owner" : "client", + "name" : "mp", + "access" : 8, + "descriptor" : "Z" + }, { + "field" : "__client_nd", + "owner" : "client", + "name" : "nd", + "access" : 8, + "descriptor" : "Z" + }, { + "field" : "__client_nh", + "owner" : "client", + "name" : "nh", + "access" : 8, + "descriptor" : "Z" + }, { + "field" : "__client_qw", + "owner" : "client", + "name" : "qw", + "access" : 8, + "descriptor" : "Z" + }, { + "field" : "__client_kr", + "owner" : "client", + "name" : "kr", + "access" : 8, + "descriptor" : "[Z" + }, { + "field" : "__client_of", + "owner" : "client", + "name" : "of", + "access" : 8, + "descriptor" : "[Z" + }, { + "field" : "__client_op", + "owner" : "client", + "name" : "op", + "access" : 8, + "descriptor" : "[Z" + }, { + "field" : "__client_os", + "owner" : "client", + "name" : "os", + "access" : 8, + "descriptor" : "[Z" + }, { + "field" : "__client_rl", + "owner" : "client", + "name" : "rl", + "access" : 8, + "descriptor" : "[Z" + }, { + "field" : "__client_el", + "owner" : "client", + "name" : "el", + "access" : 8, + "descriptor" : "[B" + }, { + "field" : "__client_kg", + "owner" : "client", + "name" : "kg", + "access" : 8, + "descriptor" : "Lhv;" + }, { + "field" : "__client_oj", + "owner" : "client", + "name" : "oj", + "access" : 8, + "descriptor" : "Lhv;" + }, { + "field" : "__client_ov", + "owner" : "client", + "name" : "ov", + "access" : 8, + "descriptor" : "Lhv;" + }, { + "field" : "__client_mt", + "owner" : "client", + "name" : "mt", + "access" : 8, + "descriptor" : "Lia;" + }, { + "field" : "__client_mw", + "owner" : "client", + "name" : "mw", + "access" : 8, + "descriptor" : "Lia;" + }, { + "field" : "__client_rq", + "owner" : "client", + "name" : "rq", + "access" : 8, + "descriptor" : "Lil;" + }, { + "field" : "__client_cd", + "owner" : "client", + "name" : "cd", + "access" : 8, + "descriptor" : "I", + "decoder" : -1460205461 + }, { + "field" : "__client_cq", + "owner" : "client", + "name" : "cq", + "access" : 8, + "descriptor" : "I", + "decoder" : -279240331 + }, { + "field" : "__client_dt", + "owner" : "client", + "name" : "dt", + "access" : 8, + "descriptor" : "I", + "decoder" : 1304561175 + }, { + "field" : "__client_ei", + "owner" : "client", + "name" : "ei", + "access" : 8, + "descriptor" : "I", + "decoder" : 1183622671 + }, { + "field" : "__client_eo", + "owner" : "client", + "name" : "eo", + "access" : 8, + "descriptor" : "I", + "decoder" : -1577974335 + }, { + "field" : "__client_ep", + "owner" : "client", + "name" : "ep", + "access" : 8, + "descriptor" : "I", + "decoder" : 724149945 + }, { + "field" : "__client_fa", + "owner" : "client", + "name" : "fa", + "access" : 8, + "descriptor" : "I", + "decoder" : -537283973 + }, { + "field" : "__client_ff", + "owner" : "client", + "name" : "ff", + "access" : 8, + "descriptor" : "I", + "decoder" : -1944564321 + }, { + "field" : "__client_fg", + "owner" : "client", + "name" : "fg", + "access" : 8, + "descriptor" : "I", + "decoder" : 2080423453 + }, { + "field" : "__client_fw", + "owner" : "client", + "name" : "fw", + "access" : 8, + "descriptor" : "I", + "decoder" : -1173287257 + }, { + "field" : "__client_fy", + "owner" : "client", + "name" : "fy", + "access" : 8, + "descriptor" : "I", + "decoder" : -37037319 + }, { + "field" : "__client_ga", + "owner" : "client", + "name" : "ga", + "access" : 8, + "descriptor" : "I", + "decoder" : -1487439669 + }, { + "field" : "__client_ge", + "owner" : "client", + "name" : "ge", + "access" : 8, + "descriptor" : "I", + "decoder" : -1327048493 + }, { + "field" : "__client_gn", + "owner" : "client", + "name" : "gn", + "access" : 8, + "descriptor" : "I", + "decoder" : -692625755 + }, { + "field" : "__client_ha", + "owner" : "client", + "name" : "ha", + "access" : 8, + "descriptor" : "I", + "decoder" : 1653090657 + }, { + "field" : "__client_hb", + "owner" : "client", + "name" : "hb", + "access" : 8, + "descriptor" : "I", + "decoder" : 827173265 + }, { + "field" : "__client_hc", + "owner" : "client", + "name" : "hc", + "access" : 8, + "descriptor" : "I", + "decoder" : -2038841951 + }, { + "field" : "__client_hd", + "owner" : "client", + "name" : "hd", + "access" : 8, + "descriptor" : "I", + "decoder" : 167955243 + }, { + "field" : "__client_hf", + "owner" : "client", + "name" : "hf", + "access" : 8, + "descriptor" : "I", + "decoder" : -334967155 + }, { + "field" : "__client_hj", + "owner" : "client", + "name" : "hj", + "access" : 8, + "descriptor" : "I", + "decoder" : 194381521 + }, { + "field" : "__client_hk", + "owner" : "client", + "name" : "hk", + "access" : 8, + "descriptor" : "I", + "decoder" : 744529599 + }, { + "field" : "__client_hl", + "owner" : "client", + "name" : "hl", + "access" : 8, + "descriptor" : "I", + "decoder" : 1692348195 + }, { + "field" : "__client_hm", + "owner" : "client", + "name" : "hm", + "access" : 8, + "descriptor" : "I", + "decoder" : -1187655507 + }, { + "field" : "__client_hn", + "owner" : "client", + "name" : "hn", + "access" : 8, + "descriptor" : "I", + "decoder" : 1076515377 + }, { + "field" : "__client_ho", + "owner" : "client", + "name" : "ho", + "access" : 8, + "descriptor" : "I", + "decoder" : -1284039775 + }, { + "field" : "__client_hs", + "owner" : "client", + "name" : "hs", + "access" : 8, + "descriptor" : "I", + "decoder" : 319925981 + }, { + "field" : "__client_ht", + "owner" : "client", + "name" : "ht", + "access" : 8, + "descriptor" : "I", + "decoder" : 935994939 + }, { + "field" : "__client_hu", + "owner" : "client", + "name" : "hu", + "access" : 8, + "descriptor" : "I", + "decoder" : 1457284743 + }, { + "field" : "__client_hy", + "owner" : "client", + "name" : "hy", + "access" : 8, + "descriptor" : "I", + "decoder" : -963711241 + }, { + "field" : "__client_ic", + "owner" : "client", + "name" : "ic", + "access" : 8, + "descriptor" : "I", + "decoder" : 2082081373 + }, { + "field" : "__client_if", + "owner" : "client", + "name" : "if", + "access" : 8, + "descriptor" : "I", + "decoder" : 1264010803 + }, { + "field" : "__client_ik", + "owner" : "client", + "name" : "ik", + "access" : 8, + "descriptor" : "I", + "decoder" : -1396376281 + }, { + "field" : "__client_iu", + "owner" : "client", + "name" : "iu", + "access" : 8, + "descriptor" : "I", + "decoder" : 1539043517 + }, { + "field" : "__client_iy", + "owner" : "client", + "name" : "iy", + "access" : 8, + "descriptor" : "I", + "decoder" : -1054464475 + }, { + "field" : "__client_jf", + "owner" : "client", + "name" : "jf", + "access" : 8, + "descriptor" : "I", + "decoder" : 498090213 + }, { + "field" : "__client_ji", + "owner" : "client", + "name" : "ji", + "access" : 8, + "descriptor" : "I", + "decoder" : 1185353675 + }, { + "field" : "__client_jp", + "owner" : "client", + "name" : "jp", + "access" : 8, + "descriptor" : "I", + "decoder" : -194480927 + }, { + "field" : "__client_jq", + "owner" : "client", + "name" : "jq", + "access" : 8, + "descriptor" : "I", + "decoder" : -1989185387 + }, { + "field" : "__client_jv", + "owner" : "client", + "name" : "jv", + "access" : 8, + "descriptor" : "I", + "decoder" : -306357203 + }, { + "field" : "__client_jx", + "owner" : "client", + "name" : "jx", + "access" : 8, + "descriptor" : "I", + "decoder" : -1381016877 + }, { + "field" : "__client_kc", + "owner" : "client", + "name" : "kc", + "access" : 8, + "descriptor" : "I", + "decoder" : -881947409 + }, { + "field" : "__client_kd", + "owner" : "client", + "name" : "kd", + "access" : 8, + "descriptor" : "I", + "decoder" : 1743205443 + }, { + "field" : "__client_ku", + "owner" : "client", + "name" : "ku", + "access" : 8, + "descriptor" : "I", + "decoder" : 918080955 + }, { + "field" : "__client_ld", + "owner" : "client", + "name" : "ld", + "access" : 8, + "descriptor" : "I", + "decoder" : -1156607981 + }, { + "field" : "__client_li", + "owner" : "client", + "name" : "li", + "access" : 8, + "descriptor" : "I", + "decoder" : 1804873401 + }, { + "field" : "__client_lv", + "owner" : "client", + "name" : "lv", + "access" : 8, + "descriptor" : "I", + "decoder" : 115558105 + }, { + "field" : "__client_lw", + "owner" : "client", + "name" : "lw", + "access" : 8, + "descriptor" : "I", + "decoder" : -1745321725 + }, { + "field" : "__client_lz", + "owner" : "client", + "name" : "lz", + "access" : 8, + "descriptor" : "I", + "decoder" : -364435911 + }, { + "field" : "__client_me", + "owner" : "client", + "name" : "me", + "access" : 8, + "descriptor" : "I", + "decoder" : 345992687 + }, { + "field" : "__client_mg", + "owner" : "client", + "name" : "mg", + "access" : 8, + "descriptor" : "I", + "decoder" : -216864955 + }, { + "field" : "__client_mi", + "owner" : "client", + "name" : "mi", + "access" : 8, + "descriptor" : "I", + "decoder" : 1356307623 + }, { + "field" : "__client_mr", + "owner" : "client", + "name" : "mr", + "access" : 8, + "descriptor" : "I", + "decoder" : -503828377 + }, { + "field" : "__client_na", + "owner" : "client", + "name" : "na", + "access" : 8, + "descriptor" : "I", + "decoder" : 980809521 + }, { + "field" : "__client_nb", + "owner" : "client", + "name" : "nb", + "access" : 8, + "descriptor" : "I", + "decoder" : 64506027 + }, { + "field" : "__client_ne", + "owner" : "client", + "name" : "ne", + "access" : 8, + "descriptor" : "I", + "decoder" : -214502211 + }, { + "field" : "__client_nf", + "owner" : "client", + "name" : "nf", + "access" : 8, + "descriptor" : "I", + "decoder" : -1260723993 + }, { + "field" : "__client_ng", + "owner" : "client", + "name" : "ng", + "access" : 8, + "descriptor" : "I", + "decoder" : 2105836291 + }, { + "field" : "__client_ni", + "owner" : "client", + "name" : "ni", + "access" : 8, + "descriptor" : "I", + "decoder" : -720054477 + }, { + "field" : "__client_nl", + "owner" : "client", + "name" : "nl", + "access" : 8, + "descriptor" : "I", + "decoder" : 1045471387 + }, { + "field" : "__client_nm", + "owner" : "client", + "name" : "nm", + "access" : 8, + "descriptor" : "I", + "decoder" : 900688697 + }, { + "field" : "__client_nn", + "owner" : "client", + "name" : "nn", + "access" : 8, + "descriptor" : "I", + "decoder" : -1140202281 + }, { + "field" : "__client_no", + "owner" : "client", + "name" : "no", + "access" : 8, + "descriptor" : "I", + "decoder" : -1164018799 + }, { + "field" : "__client_np", + "owner" : "client", + "name" : "np", + "access" : 8, + "descriptor" : "I", + "decoder" : 927108697 + }, { + "field" : "__client_nq", + "owner" : "client", + "name" : "nq", + "access" : 8, + "descriptor" : "I", + "decoder" : 1203340891 + }, { + "field" : "__client_nw", + "owner" : "client", + "name" : "nw", + "access" : 8, + "descriptor" : "I", + "decoder" : 321367859 + }, { + "field" : "__client_ny", + "owner" : "client", + "name" : "ny", + "access" : 8, + "descriptor" : "I", + "decoder" : 1835148581 + }, { + "field" : "__client_ok", + "owner" : "client", + "name" : "ok", + "access" : 8, + "descriptor" : "I", + "decoder" : -258941087 + }, { + "field" : "__client_pc", + "owner" : "client", + "name" : "pc", + "access" : 8, + "descriptor" : "I", + "decoder" : -204665459 + }, { + "field" : "__client_pi", + "owner" : "client", + "name" : "pi", + "access" : 8, + "descriptor" : "I", + "decoder" : -1451950867 + }, { + "field" : "__client_pl", + "owner" : "client", + "name" : "pl", + "access" : 8, + "descriptor" : "I", + "decoder" : 1578223623 + }, { + "field" : "__client_pw", + "owner" : "client", + "name" : "pw", + "access" : 8, + "descriptor" : "I", + "decoder" : -402226337 + }, { + "field" : "__client_qa", + "owner" : "client", + "name" : "qa", + "access" : 8, + "descriptor" : "I", + "decoder" : -1044874545 + }, { + "field" : "__client_qj", + "owner" : "client", + "name" : "qj", + "access" : 8, + "descriptor" : "I", + "decoder" : -1794188809 + }, { + "field" : "__client_qn", + "owner" : "client", + "name" : "qn", + "access" : 8, + "descriptor" : "I", + "decoder" : 1016945401 + }, { + "field" : "__client_qz", + "owner" : "client", + "name" : "qz", + "access" : 8, + "descriptor" : "I", + "decoder" : -1070677413 + }, { + "field" : "__client_sl", + "owner" : "client", + "name" : "sl", + "access" : 8, + "descriptor" : "I", + "decoder" : -532610197 + }, { + "field" : "__client_sm", + "owner" : "client", + "name" : "sm", + "access" : 8, + "descriptor" : "I", + "decoder" : 1789447311 + }, { + "field" : "__client_fj", + "owner" : "client", + "name" : "fj", + "access" : 8, + "descriptor" : "[I" + }, { + "field" : "__client_kq", + "owner" : "client", + "name" : "kq", + "access" : 8, + "descriptor" : "[I" + }, { + "field" : "__client_kx", + "owner" : "client", + "name" : "kx", + "access" : 8, + "descriptor" : "[I" + }, { + "field" : "__client_nj", + "owner" : "client", + "name" : "nj", + "access" : 8, + "descriptor" : "[I" + }, { + "field" : "__client_nu", + "owner" : "client", + "name" : "nu", + "access" : 8, + "descriptor" : "[I" + }, { + "field" : "__client_nx", + "owner" : "client", + "name" : "nx", + "access" : 8, + "descriptor" : "[I" + }, { + "field" : "__client_pe", + "owner" : "client", + "name" : "pe", + "access" : 8, + "descriptor" : "[I" + }, { + "field" : "__client_pk", + "owner" : "client", + "name" : "pk", + "access" : 8, + "descriptor" : "[I" + }, { + "field" : "__client_pz", + "owner" : "client", + "name" : "pz", + "access" : 8, + "descriptor" : "[I" + }, { + "field" : "__client_ql", + "owner" : "client", + "name" : "ql", + "access" : 8, + "descriptor" : "[I" + }, { + "field" : "__client_qq", + "owner" : "client", + "name" : "qq", + "access" : 8, + "descriptor" : "[I" + }, { + "field" : "__client_qx", + "owner" : "client", + "name" : "qx", + "access" : 8, + "descriptor" : "[I" + }, { + "field" : "__client_ra", + "owner" : "client", + "name" : "ra", + "access" : 8, + "descriptor" : "[I" + }, { + "field" : "__client_ro", + "owner" : "client", + "name" : "ro", + "access" : 8, + "descriptor" : "[I" + }, { + "field" : "__client_rv", + "owner" : "client", + "name" : "rv", + "access" : 8, + "descriptor" : "[I" + }, { + "field" : "__client_rx", + "owner" : "client", + "name" : "rx", + "access" : 8, + "descriptor" : "[I" + }, { + "field" : "__client_tc", + "owner" : "client", + "name" : "tc", + "access" : 8, + "descriptor" : "[I" + }, { + "field" : "__client_tl", + "owner" : "client", + "name" : "tl", + "access" : 8, + "descriptor" : "[I" + }, { + "field" : "__client_ph", + "owner" : "client", + "name" : "ph", + "access" : 8, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__client_cf", + "owner" : "client", + "name" : "cf", + "access" : 8, + "descriptor" : "J", + "decoder" : 2384354849923795831 + }, { + "field" : "__client_ob", + "owner" : "client", + "name" : "ob", + "access" : 8, + "descriptor" : "J", + "decoder" : -7434693864354422283 + }, { + "field" : "__client_ps", + "owner" : "client", + "name" : "ps", + "access" : 8, + "descriptor" : "J", + "decoder" : -5334363600316309153 + }, { + "field" : "__client_pf", + "owner" : "client", + "name" : "pf", + "access" : 8, + "descriptor" : "[J" + }, { + "field" : "__client_bm", + "owner" : "client", + "name" : "bm", + "access" : 8, + "descriptor" : "Llv;" + }, { + "field" : "__client_rc", + "owner" : "client", + "name" : "rc", + "access" : 8, + "descriptor" : "S" + }, { + "field" : "__client_rd", + "owner" : "client", + "name" : "rd", + "access" : 8, + "descriptor" : "S" + }, { + "field" : "__client_rf", + "owner" : "client", + "name" : "rf", + "access" : 8, + "descriptor" : "S" + }, { + "field" : "__client_rj", + "owner" : "client", + "name" : "rj", + "access" : 8, + "descriptor" : "S" + }, { + "field" : "__client_rm", + "owner" : "client", + "name" : "rm", + "access" : 8, + "descriptor" : "S" + }, { + "field" : "__client_rr", + "owner" : "client", + "name" : "rr", + "access" : 8, + "descriptor" : "S" + }, { + "field" : "__client_rs", + "owner" : "client", + "name" : "rs", + "access" : 8, + "descriptor" : "S" + }, { + "field" : "__client_rw", + "owner" : "client", + "name" : "rw", + "access" : 8, + "descriptor" : "S" + }, { + "field" : "__client_gl", + "owner" : "client", + "name" : "gl", + "access" : 24, + "descriptor" : "[I" + }, { + "field" : "__bq_h", + "owner" : "bq", + "name" : "h", + "access" : 8, + "descriptor" : "[Llv;" + }, { + "field" : "__by_h", + "owner" : "by", + "name" : "h", + "access" : 8, + "descriptor" : "I", + "decoder" : 357083675 + }, { + "field" : "__by_m", + "owner" : "by", + "name" : "m", + "access" : 8, + "descriptor" : "I", + "decoder" : -917563253 + }, { + "field" : "__bu_b", + "owner" : "bu", + "name" : "b", + "access" : 8, + "descriptor" : "Lez;" + }, { + "field" : "__bu_p", + "owner" : "bu", + "name" : "p", + "access" : 8, + "descriptor" : "I", + "decoder" : -997808101 + }, { + "field" : "__bu_m", + "owner" : "bu", + "name" : "m", + "access" : 8, + "descriptor" : "[I" + }, { + "field" : "__bu_q", + "owner" : "bu", + "name" : "q", + "access" : 8, + "descriptor" : "[I" + }, { + "field" : "__bt_t", + "owner" : "bt", + "name" : "t", + "access" : 8, + "descriptor" : "Lia;" + }, { + "field" : "__bt_a", + "owner" : "bt", + "name" : "a", + "access" : 8, + "descriptor" : "I", + "decoder" : 2096624113 + }, { + "field" : "__bt_bn", + "owner" : "bt", + "name" : "bn", + "access" : 8, + "descriptor" : "I", + "decoder" : -1549777479 + }, { + "field" : "__bt_bl", + "owner" : "bt", + "name" : "bl", + "access" : 8, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__bt_bs", + "owner" : "bt", + "name" : "bs", + "access" : 8, + "descriptor" : "[Llv;" + }, { + "field" : "__bc_bc", + "owner" : "bc", + "name" : "bc", + "access" : 8, + "descriptor" : "[Llv;" + }, { + "field" : "__bx_k", + "owner" : "bx", + "name" : "k", + "access" : 8, + "descriptor" : "Z" + }, { + "field" : "__bx_y", + "owner" : "bx", + "name" : "y", + "access" : 8, + "descriptor" : "Z" + }, { + "field" : "__bx_v", + "owner" : "bx", + "name" : "v", + "access" : 8, + "descriptor" : "I", + "decoder" : 1950724761 + }, { + "field" : "__bx_c", + "owner" : "bx", + "name" : "c", + "access" : 24, + "descriptor" : "D" + }, { + "field" : "__bx_o", + "owner" : "bx", + "name" : "o", + "access" : 24, + "descriptor" : "[Ljava/lang/String;" + }, { + "field" : "__cm_f", + "owner" : "cm", + "name" : "f", + "access" : 8, + "descriptor" : "I", + "decoder" : 449731073 + }, { + "field" : "__ch_f", + "owner" : "ch", + "name" : "f", + "access" : 24, + "descriptor" : "Ljava/math/BigInteger;" + }, { + "field" : "__ch_h", + "owner" : "ch", + "name" : "h", + "access" : 24, + "descriptor" : "Ljava/math/BigInteger;" + }, { + "field" : "__cg_r", + "owner" : "cg", + "name" : "r", + "access" : 8, + "descriptor" : "Lia;" + }, { + "field" : "__ca_u", + "owner" : "ca", + "name" : "u", + "access" : 8, + "descriptor" : "I", + "decoder" : -49614977 + }, { + "field" : "__cy_a", + "owner" : "cy", + "name" : "a", + "access" : 24, + "descriptor" : "Ljava/math/BigInteger;" + }, { + "field" : "__cy_s", + "owner" : "cy", + "name" : "s", + "access" : 24, + "descriptor" : "Ljava/math/BigInteger;" + }, { + "field" : "__cc_a", + "owner" : "cc", + "name" : "a", + "access" : 8, + "descriptor" : "Z" + }, { + "field" : "__cc_bb", + "owner" : "cc", + "name" : "bb", + "access" : 8, + "descriptor" : "Z" + }, { + "field" : "__cc_bk", + "owner" : "cc", + "name" : "bk", + "access" : 8, + "descriptor" : "Z" + }, { + "field" : "__cc_br", + "owner" : "cc", + "name" : "br", + "access" : 8, + "descriptor" : "Z" + }, { + "field" : "__cc_by", + "owner" : "cc", + "name" : "by", + "access" : 8, + "descriptor" : "Z" + }, { + "field" : "__cc_ac", + "owner" : "cc", + "name" : "ac", + "access" : 8, + "descriptor" : "I", + "decoder" : -590991603 + }, { + "field" : "__cc_ag", + "owner" : "cc", + "name" : "ag", + "access" : 8, + "descriptor" : "I", + "decoder" : 444700065 + }, { + "field" : "__cc_ah", + "owner" : "cc", + "name" : "ah", + "access" : 8, + "descriptor" : "I", + "decoder" : -2070211379 + }, { + "field" : "__cc_an", + "owner" : "cc", + "name" : "an", + "access" : 8, + "descriptor" : "I", + "decoder" : -368728983 + }, { + "field" : "__cc_aq", + "owner" : "cc", + "name" : "aq", + "access" : 8, + "descriptor" : "I", + "decoder" : -1014786149 + }, { + "field" : "__cc_at", + "owner" : "cc", + "name" : "at", + "access" : 8, + "descriptor" : "I", + "decoder" : -312281389 + }, { + "field" : "__cc_aw", + "owner" : "cc", + "name" : "aw", + "access" : 8, + "descriptor" : "I" + }, { + "field" : "__cc_ax", + "owner" : "cc", + "name" : "ax", + "access" : 8, + "descriptor" : "I", + "decoder" : 78635069 + }, { + "field" : "__cc_bw", + "owner" : "cc", + "name" : "bw", + "access" : 8, + "descriptor" : "I", + "decoder" : -1693261231 + }, { + "field" : "__cc_cg", + "owner" : "cc", + "name" : "cg", + "access" : 8, + "descriptor" : "I", + "decoder" : 1445383135 + }, { + "field" : "__cc_ch", + "owner" : "cc", + "name" : "ch", + "access" : 8, + "descriptor" : "I", + "decoder" : -967946489 + }, { + "field" : "__cc_cm", + "owner" : "cc", + "name" : "cm", + "access" : 8, + "descriptor" : "I", + "decoder" : 1502022767 + }, { + "field" : "__cc_k", + "owner" : "cc", + "name" : "k", + "access" : 8, + "descriptor" : "I", + "decoder" : -1693868597 + }, { + "field" : "__cc_s", + "owner" : "cc", + "name" : "s", + "access" : 8, + "descriptor" : "I", + "decoder" : 192153295 + }, { + "field" : "__cc_y", + "owner" : "cc", + "name" : "y", + "access" : 8, + "descriptor" : "I", + "decoder" : -24166413 + }, { + "field" : "__cc_z", + "owner" : "cc", + "name" : "z", + "access" : 8, + "descriptor" : "I", + "decoder" : 1088124961 + }, { + "field" : "__cc_aa", + "owner" : "cc", + "name" : "aa", + "access" : 8, + "descriptor" : "[I" + }, { + "field" : "__cc_d", + "owner" : "cc", + "name" : "d", + "access" : 8, + "descriptor" : "[I" + }, { + "field" : "__cc_bh", + "owner" : "cc", + "name" : "bh", + "access" : 8, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__cc_bj", + "owner" : "cc", + "name" : "bj", + "access" : 8, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__cc_p", + "owner" : "cc", + "name" : "p", + "access" : 8, + "descriptor" : "Lld;" + }, { + "field" : "__cc_ca", + "owner" : "cc", + "name" : "ca", + "access" : 8, + "descriptor" : "J", + "decoder" : 2741211572456463589 + }, { + "field" : "__cc_cy", + "owner" : "cc", + "name" : "cy", + "access" : 8, + "descriptor" : "J", + "decoder" : 902822279460057009 + }, { + "field" : "__cc_b", + "owner" : "cc", + "name" : "b", + "access" : 8, + "descriptor" : "Llv;" + }, { + "field" : "__cc_m", + "owner" : "cc", + "name" : "m", + "access" : 8, + "descriptor" : "Llv;" + }, { + "field" : "__cc_x", + "owner" : "cc", + "name" : "x", + "access" : 8, + "descriptor" : "Llv;" + }, { + "field" : "__cc_q", + "owner" : "cc", + "name" : "q", + "access" : 8, + "descriptor" : "[Llv;" + }, { + "field" : "__cb_f", + "owner" : "cb", + "name" : "f", + "access" : 9, + "descriptor" : "I", + "decoder" : -148901199 + }, { + "field" : "__cp_g", + "owner" : "cp", + "name" : "g", + "access" : 9, + "descriptor" : "I", + "decoder" : 1747641705 + }, { + "field" : "__cd_g", + "owner" : "cd", + "name" : "g", + "access" : 8, + "descriptor" : "[B" + }, { + "field" : "__cd_x", + "owner" : "cd", + "name" : "x", + "access" : 8, + "descriptor" : "[B" + }, { + "field" : "__cd_l", + "owner" : "cd", + "name" : "l", + "access" : 8, + "descriptor" : "Lgx;" + }, { + "field" : "__cd_h", + "owner" : "cd", + "name" : "h", + "access" : 8, + "descriptor" : "[Lgx;" + }, { + "field" : "__cd_m", + "owner" : "cd", + "name" : "m", + "access" : 8, + "descriptor" : "I", + "decoder" : -974264609 + }, { + "field" : "__cd_r", + "owner" : "cd", + "name" : "r", + "access" : 8, + "descriptor" : "I", + "decoder" : 1502976845 + }, { + "field" : "__cd_q", + "owner" : "cd", + "name" : "q", + "access" : 8, + "descriptor" : "[I" + }, { + "field" : "__cd_t", + "owner" : "cd", + "name" : "t", + "access" : 8, + "descriptor" : "[I" + }, { + "field" : "__cq_rg", + "owner" : "cq", + "name" : "rg", + "access" : 8, + "descriptor" : "I", + "decoder" : 123379899 + }, { + "field" : "__cr_r", + "owner" : "cr", + "name" : "r", + "access" : 8, + "descriptor" : "[I" + }, { + "field" : "__ci_y", + "owner" : "ci", + "name" : "y", + "access" : 8, + "descriptor" : "Z" + }, { + "field" : "__ci_o", + "owner" : "ci", + "name" : "o", + "access" : 8, + "descriptor" : "[Z" + }, { + "field" : "__ci_p", + "owner" : "ci", + "name" : "p", + "access" : 8, + "descriptor" : "[B" + }, { + "field" : "__ci_af", + "owner" : "ci", + "name" : "af", + "access" : 8, + "descriptor" : "[F" + }, { + "field" : "__ci_ag", + "owner" : "ci", + "name" : "ag", + "access" : 8, + "descriptor" : "[F" + }, { + "field" : "__ci_ay", + "owner" : "ci", + "name" : "ay", + "access" : 8, + "descriptor" : "[F" + }, { + "field" : "__ci_c", + "owner" : "ci", + "name" : "c", + "access" : 8, + "descriptor" : "[F" + }, { + "field" : "__ci_i", + "owner" : "ci", + "name" : "i", + "access" : 8, + "descriptor" : "[F" + }, { + "field" : "__ci_j", + "owner" : "ci", + "name" : "j", + "access" : 8, + "descriptor" : "[F" + }, { + "field" : "__ci_z", + "owner" : "ci", + "name" : "z", + "access" : 8, + "descriptor" : "[F" + }, { + "field" : "__ci_b", + "owner" : "ci", + "name" : "b", + "access" : 8, + "descriptor" : "I" + }, { + "field" : "__ci_m", + "owner" : "ci", + "name" : "m", + "access" : 8, + "descriptor" : "I" + }, { + "field" : "__ci_n", + "owner" : "ci", + "name" : "n", + "access" : 8, + "descriptor" : "I" + }, { + "field" : "__ci_q", + "owner" : "ci", + "name" : "q", + "access" : 8, + "descriptor" : "I" + }, { + "field" : "__ci_aa", + "owner" : "ci", + "name" : "aa", + "access" : 8, + "descriptor" : "[I" + }, { + "field" : "__ci_ab", + "owner" : "ci", + "name" : "ab", + "access" : 8, + "descriptor" : "[I" + }, { + "field" : "__ci_u", + "owner" : "ci", + "name" : "u", + "access" : 8, + "descriptor" : "[I" + }, { + "field" : "__cj_e", + "owner" : "cj", + "name" : "e", + "access" : 8, + "descriptor" : "[Z" + }, { + "field" : "__cj_b", + "owner" : "cj", + "name" : "b", + "access" : 8, + "descriptor" : "[I" + }, { + "field" : "__cj_n", + "owner" : "cj", + "name" : "n", + "access" : 8, + "descriptor" : "[I" + }, { + "field" : "__cj_s", + "owner" : "cj", + "name" : "s", + "access" : 24, + "descriptor" : "[F" + }, { + "field" : "__cj_a", + "owner" : "cj", + "name" : "a", + "access" : 24, + "descriptor" : "[I" + }, { + "field" : "__dz_s", + "owner" : "dz", + "name" : "s", + "access" : 9, + "descriptor" : "I", + "decoder" : -183199 + }, { + "field" : "__dz_jt", + "owner" : "dz", + "name" : "jt", + "access" : 8, + "descriptor" : "Lia;" + }, { + "field" : "__dr_m", + "owner" : "dr", + "name" : "m", + "access" : 8, + "descriptor" : "F" + }, { + "field" : "__dr_f", + "owner" : "dr", + "name" : "f", + "access" : 8, + "descriptor" : "[[F" + }, { + "field" : "__dr_q", + "owner" : "dr", + "name" : "q", + "access" : 8, + "descriptor" : "I" + }, { + "field" : "__dr_p", + "owner" : "dr", + "name" : "p", + "access" : 8, + "descriptor" : "[[I" + }, { + "field" : "__du_cz", + "owner" : "du", + "name" : "cz", + "access" : 8, + "descriptor" : "Z" + }, { + "field" : "__du_b", + "owner" : "du", + "name" : "b", + "access" : 8, + "descriptor" : "I", + "decoder" : -827781513 + }, { + "field" : "__dk_au", + "owner" : "dk", + "name" : "au", + "access" : 8, + "descriptor" : "I" + }, { + "field" : "__dk_ae", + "owner" : "dk", + "name" : "ae", + "access" : 8, + "descriptor" : "[I" + }, { + "field" : "__dk_av", + "owner" : "dk", + "name" : "av", + "access" : 8, + "descriptor" : "[I" + }, { + "field" : "__dh_k", + "owner" : "dh", + "name" : "k", + "access" : 8, + "descriptor" : "[I" + }, { + "field" : "__dh_o", + "owner" : "dh", + "name" : "o", + "access" : 8, + "descriptor" : "[I" + }, { + "field" : "__dh_u", + "owner" : "dh", + "name" : "u", + "access" : 8, + "descriptor" : "[I" + }, { + "field" : "__dh_v", + "owner" : "dh", + "name" : "v", + "access" : 8, + "descriptor" : "[I" + }, { + "field" : "__dh_y", + "owner" : "dh", + "name" : "y", + "access" : 8, + "descriptor" : "[I" + }, { + "field" : "__dh_d", + "owner" : "dh", + "name" : "d", + "access" : 24, + "descriptor" : "[[I" + }, { + "field" : "__dh_w", + "owner" : "dh", + "name" : "w", + "access" : 24, + "descriptor" : "[[I" + }, { + "field" : "__dm_a", + "owner" : "dm", + "name" : "a", + "access" : 8, + "descriptor" : "[I" + }, { + "field" : "__dm_g", + "owner" : "dm", + "name" : "g", + "access" : 8, + "descriptor" : "[I" + }, { + "field" : "__dm_s", + "owner" : "dm", + "name" : "s", + "access" : 8, + "descriptor" : "[I" + }, { + "field" : "__dm_x", + "owner" : "dm", + "name" : "x", + "access" : 8, + "descriptor" : "[I" + }, { + "field" : "__dv_bk", + "owner" : "dv", + "name" : "bk", + "access" : 8, + "descriptor" : "Z" + }, { + "field" : "__dv_ar", + "owner" : "dv", + "name" : "ar", + "access" : 8, + "descriptor" : "[Z" + }, { + "field" : "__dv_as", + "owner" : "dv", + "name" : "as", + "access" : 8, + "descriptor" : "[Z" + }, { + "field" : "__dv_ac", + "owner" : "dv", + "name" : "ac", + "access" : 8, + "descriptor" : "[I" + }, { + "field" : "__dv_ak", + "owner" : "dv", + "name" : "ak", + "access" : 8, + "descriptor" : "[I" + }, { + "field" : "__dv_al", + "owner" : "dv", + "name" : "al", + "access" : 8, + "descriptor" : "[I" + }, { + "field" : "__dv_ao", + "owner" : "dv", + "name" : "ao", + "access" : 8, + "descriptor" : "[I" + }, { + "field" : "__dv_ax", + "owner" : "dv", + "name" : "ax", + "access" : 8, + "descriptor" : "[I" + }, { + "field" : "__dv_az", + "owner" : "dv", + "name" : "az", + "access" : 8, + "descriptor" : "[I" + }, { + "field" : "__dv_bd", + "owner" : "dv", + "name" : "bd", + "access" : 8, + "descriptor" : "[I" + }, { + "field" : "__dv_be", + "owner" : "dv", + "name" : "be", + "access" : 8, + "descriptor" : "[I" + }, { + "field" : "__dv_bf", + "owner" : "dv", + "name" : "bf", + "access" : 8, + "descriptor" : "[I" + }, { + "field" : "__dv_bh", + "owner" : "dv", + "name" : "bh", + "access" : 8, + "descriptor" : "[I" + }, { + "field" : "__dv_bi", + "owner" : "dv", + "name" : "bi", + "access" : 8, + "descriptor" : "[I" + }, { + "field" : "__dv_bo", + "owner" : "dv", + "name" : "bo", + "access" : 8, + "descriptor" : "[I" + }, { + "field" : "__dv_bw", + "owner" : "dv", + "name" : "bw", + "access" : 8, + "descriptor" : "[I" + }, { + "field" : "__dv_bz", + "owner" : "dv", + "name" : "bz", + "access" : 8, + "descriptor" : "[I" + }, { + "field" : "__dv_am", + "owner" : "dv", + "name" : "am", + "access" : 8, + "descriptor" : "[[I" + }, { + "field" : "__dv_ap", + "owner" : "dv", + "name" : "ap", + "access" : 8, + "descriptor" : "[[I" + }, { + "field" : "__di_o", + "owner" : "di", + "name" : "o", + "access" : 9, + "descriptor" : "I", + "decoder" : -339565939 + }, { + "field" : "__di_e", + "owner" : "di", + "name" : "e", + "access" : 8, + "descriptor" : "I", + "decoder" : -659235431 + }, { + "field" : "__di_p", + "owner" : "di", + "name" : "p", + "access" : 8, + "descriptor" : "I", + "decoder" : 64187111 + }, { + "field" : "__di_q", + "owner" : "di", + "name" : "q", + "access" : 8, + "descriptor" : "I", + "decoder" : -563984089 + }, { + "field" : "__df_x", + "owner" : "df", + "name" : "x", + "access" : 9, + "descriptor" : "Z" + }, { + "field" : "__df_a", + "owner" : "df", + "name" : "a", + "access" : 8, + "descriptor" : "Z" + }, { + "field" : "__df_s", + "owner" : "df", + "name" : "s", + "access" : 8, + "descriptor" : "Z" + }, { + "field" : "__df_c", + "owner" : "df", + "name" : "c", + "access" : 8, + "descriptor" : "[I" + }, { + "field" : "__df_j", + "owner" : "df", + "name" : "j", + "access" : 8, + "descriptor" : "[I" + }, { + "field" : "__en_ah", + "owner" : "en", + "name" : "ah", + "access" : 8, + "descriptor" : "Z" + }, { + "field" : "__en_au", + "owner" : "en", + "name" : "au", + "access" : 8, + "descriptor" : "Z" + }, { + "field" : "__en_ar", + "owner" : "en", + "name" : "ar", + "access" : 8, + "descriptor" : "I" + }, { + "field" : "__en_l", + "owner" : "en", + "name" : "l", + "access" : 8, + "descriptor" : "I" + }, { + "field" : "__en_ad", + "owner" : "en", + "name" : "ad", + "access" : 24, + "descriptor" : "[I" + }, { + "field" : "__en_ak", + "owner" : "en", + "name" : "ak", + "access" : 24, + "descriptor" : "[I" + }, { + "field" : "__en_am", + "owner" : "en", + "name" : "am", + "access" : 24, + "descriptor" : "[I" + }, { + "field" : "__en_ao", + "owner" : "en", + "name" : "ao", + "access" : 24, + "descriptor" : "[I" + }, { + "field" : "__en_ap", + "owner" : "en", + "name" : "ap", + "access" : 24, + "descriptor" : "[I" + }, { + "field" : "__en_ax", + "owner" : "en", + "name" : "ax", + "access" : 24, + "descriptor" : "[I" + }, { + "field" : "__en_bf", + "owner" : "en", + "name" : "bf", + "access" : 24, + "descriptor" : "[I" + }, { + "field" : "__eo_ba", + "owner" : "eo", + "name" : "ba", + "access" : 8, + "descriptor" : "Llv;" + }, { + "field" : "__ei_g", + "owner" : "ei", + "name" : "g", + "access" : 9, + "descriptor" : "Liz;" + }, { + "field" : "__ey_lx", + "owner" : "ey", + "name" : "lx", + "access" : 8, + "descriptor" : "Lia;" + }, { + "field" : "__ee_m", + "owner" : "ee", + "name" : "m", + "access" : 9, + "descriptor" : "[I" + }, { + "field" : "__ee_q", + "owner" : "ee", + "name" : "q", + "access" : 8, + "descriptor" : "[[I" + }, { + "field" : "__eq_g", + "owner" : "eq", + "name" : "g", + "access" : 8, + "descriptor" : "Llv;" + }, { + "field" : "__eu_q", + "owner" : "eu", + "name" : "q", + "access" : 8, + "descriptor" : "[I" + }, { + "field" : "__et_s", + "owner" : "et", + "name" : "s", + "access" : 9, + "descriptor" : "Liz;" + }, { + "field" : "__et_y", + "owner" : "et", + "name" : "y", + "access" : 9, + "descriptor" : "[Ljava/lang/String;" + }, { + "field" : "__et_bt", + "owner" : "et", + "name" : "bt", + "access" : 8, + "descriptor" : "[Llv;" + }, { + "field" : "__fe_x", + "owner" : "fe", + "name" : "x", + "access" : 9, + "descriptor" : "I", + "decoder" : 1625014789 + }, { + "field" : "__fm_h", + "owner" : "fm", + "name" : "h", + "access" : 9, + "descriptor" : "Ljava/io/File;" + }, { + "field" : "__fz_a", + "owner" : "fz", + "name" : "a", + "access" : 8, + "descriptor" : "Z" + }, { + "field" : "__fz_s", + "owner" : "fz", + "name" : "s", + "access" : 8, + "descriptor" : "Ljava/io/File;" + }, { + "field" : "__fz_g", + "owner" : "fz", + "name" : "g", + "access" : 8, + "descriptor" : "Ljava/util/Hashtable;" + }, { + "field" : "__fd_le", + "owner" : "fd", + "name" : "le", + "access" : 8, + "descriptor" : "I", + "decoder" : -88234083 + }, { + "field" : "__fx_qg", + "owner" : "fx", + "name" : "qg", + "access" : 8, + "descriptor" : "I", + "decoder" : -881277661 + }, { + "field" : "__ft_h", + "owner" : "ft", + "name" : "h", + "access" : 9, + "descriptor" : "I", + "decoder" : 1988086563 + }, { + "field" : "__ft_m", + "owner" : "ft", + "name" : "m", + "access" : 9, + "descriptor" : "[I" + }, { + "field" : "__ft_q", + "owner" : "ft", + "name" : "q", + "access" : 9, + "descriptor" : "[I" + }, { + "field" : "__ft_g", + "owner" : "ft", + "name" : "g", + "access" : 9, + "descriptor" : "[[I" + }, { + "field" : "__ft_x", + "owner" : "ft", + "name" : "x", + "access" : 9, + "descriptor" : "[[I" + }, { + "field" : "__fu_b", + "owner" : "fu", + "name" : "b", + "access" : 8, + "descriptor" : "I", + "decoder" : -707464673 + }, { + "field" : "__fc_a", + "owner" : "fc", + "name" : "a", + "access" : 25, + "descriptor" : "Lfc;" + }, { + "field" : "__fc_aa", + "owner" : "fc", + "name" : "aa", + "access" : 25, + "descriptor" : "Lfc;" + }, { + "field" : "__fc_ab", + "owner" : "fc", + "name" : "ab", + "access" : 25, + "descriptor" : "Lfc;" + }, { + "field" : "__fc_ac", + "owner" : "fc", + "name" : "ac", + "access" : 25, + "descriptor" : "Lfc;" + }, { + "field" : "__fc_ad", + "owner" : "fc", + "name" : "ad", + "access" : 25, + "descriptor" : "Lfc;" + }, { + "field" : "__fc_ae", + "owner" : "fc", + "name" : "ae", + "access" : 25, + "descriptor" : "Lfc;" + }, { + "field" : "__fc_af", + "owner" : "fc", + "name" : "af", + "access" : 25, + "descriptor" : "Lfc;" + }, { + "field" : "__fc_ag", + "owner" : "fc", + "name" : "ag", + "access" : 25, + "descriptor" : "Lfc;" + }, { + "field" : "__fc_ah", + "owner" : "fc", + "name" : "ah", + "access" : 25, + "descriptor" : "Lfc;" + }, { + "field" : "__fc_ai", + "owner" : "fc", + "name" : "ai", + "access" : 25, + "descriptor" : "Lfc;" + }, { + "field" : "__fc_aj", + "owner" : "fc", + "name" : "aj", + "access" : 25, + "descriptor" : "Lfc;" + }, { + "field" : "__fc_ak", + "owner" : "fc", + "name" : "ak", + "access" : 25, + "descriptor" : "Lfc;" + }, { + "field" : "__fc_al", + "owner" : "fc", + "name" : "al", + "access" : 25, + "descriptor" : "Lfc;" + }, { + "field" : "__fc_am", + "owner" : "fc", + "name" : "am", + "access" : 25, + "descriptor" : "Lfc;" + }, { + "field" : "__fc_an", + "owner" : "fc", + "name" : "an", + "access" : 25, + "descriptor" : "Lfc;" + }, { + "field" : "__fc_ao", + "owner" : "fc", + "name" : "ao", + "access" : 25, + "descriptor" : "Lfc;" + }, { + "field" : "__fc_ap", + "owner" : "fc", + "name" : "ap", + "access" : 25, + "descriptor" : "Lfc;" + }, { + "field" : "__fc_aq", + "owner" : "fc", + "name" : "aq", + "access" : 25, + "descriptor" : "Lfc;" + }, { + "field" : "__fc_ar", + "owner" : "fc", + "name" : "ar", + "access" : 25, + "descriptor" : "Lfc;" + }, { + "field" : "__fc_as", + "owner" : "fc", + "name" : "as", + "access" : 25, + "descriptor" : "Lfc;" + }, { + "field" : "__fc_at", + "owner" : "fc", + "name" : "at", + "access" : 25, + "descriptor" : "Lfc;" + }, { + "field" : "__fc_au", + "owner" : "fc", + "name" : "au", + "access" : 25, + "descriptor" : "Lfc;" + }, { + "field" : "__fc_av", + "owner" : "fc", + "name" : "av", + "access" : 25, + "descriptor" : "Lfc;" + }, { + "field" : "__fc_aw", + "owner" : "fc", + "name" : "aw", + "access" : 25, + "descriptor" : "Lfc;" + }, { + "field" : "__fc_ax", + "owner" : "fc", + "name" : "ax", + "access" : 25, + "descriptor" : "Lfc;" + }, { + "field" : "__fc_ay", + "owner" : "fc", + "name" : "ay", + "access" : 25, + "descriptor" : "Lfc;" + }, { + "field" : "__fc_az", + "owner" : "fc", + "name" : "az", + "access" : 25, + "descriptor" : "Lfc;" + }, { + "field" : "__fc_b", + "owner" : "fc", + "name" : "b", + "access" : 25, + "descriptor" : "Lfc;" + }, { + "field" : "__fc_ba", + "owner" : "fc", + "name" : "ba", + "access" : 25, + "descriptor" : "Lfc;" + }, { + "field" : "__fc_bb", + "owner" : "fc", + "name" : "bb", + "access" : 25, + "descriptor" : "Lfc;" + }, { + "field" : "__fc_bc", + "owner" : "fc", + "name" : "bc", + "access" : 25, + "descriptor" : "Lfc;" + }, { + "field" : "__fc_bd", + "owner" : "fc", + "name" : "bd", + "access" : 25, + "descriptor" : "Lfc;" + }, { + "field" : "__fc_be", + "owner" : "fc", + "name" : "be", + "access" : 25, + "descriptor" : "Lfc;" + }, { + "field" : "__fc_bf", + "owner" : "fc", + "name" : "bf", + "access" : 25, + "descriptor" : "Lfc;" + }, { + "field" : "__fc_bg", + "owner" : "fc", + "name" : "bg", + "access" : 25, + "descriptor" : "Lfc;" + }, { + "field" : "__fc_bh", + "owner" : "fc", + "name" : "bh", + "access" : 25, + "descriptor" : "Lfc;" + }, { + "field" : "__fc_bi", + "owner" : "fc", + "name" : "bi", + "access" : 25, + "descriptor" : "Lfc;" + }, { + "field" : "__fc_bj", + "owner" : "fc", + "name" : "bj", + "access" : 25, + "descriptor" : "Lfc;" + }, { + "field" : "__fc_bk", + "owner" : "fc", + "name" : "bk", + "access" : 25, + "descriptor" : "Lfc;" + }, { + "field" : "__fc_bl", + "owner" : "fc", + "name" : "bl", + "access" : 25, + "descriptor" : "Lfc;" + }, { + "field" : "__fc_bm", + "owner" : "fc", + "name" : "bm", + "access" : 25, + "descriptor" : "Lfc;" + }, { + "field" : "__fc_bn", + "owner" : "fc", + "name" : "bn", + "access" : 25, + "descriptor" : "Lfc;" + }, { + "field" : "__fc_bo", + "owner" : "fc", + "name" : "bo", + "access" : 25, + "descriptor" : "Lfc;" + }, { + "field" : "__fc_bp", + "owner" : "fc", + "name" : "bp", + "access" : 25, + "descriptor" : "Lfc;" + }, { + "field" : "__fc_bq", + "owner" : "fc", + "name" : "bq", + "access" : 25, + "descriptor" : "Lfc;" + }, { + "field" : "__fc_br", + "owner" : "fc", + "name" : "br", + "access" : 25, + "descriptor" : "Lfc;" + }, { + "field" : "__fc_bs", + "owner" : "fc", + "name" : "bs", + "access" : 25, + "descriptor" : "Lfc;" + }, { + "field" : "__fc_bt", + "owner" : "fc", + "name" : "bt", + "access" : 25, + "descriptor" : "Lfc;" + }, { + "field" : "__fc_bu", + "owner" : "fc", + "name" : "bu", + "access" : 25, + "descriptor" : "Lfc;" + }, { + "field" : "__fc_bv", + "owner" : "fc", + "name" : "bv", + "access" : 25, + "descriptor" : "Lfc;" + }, { + "field" : "__fc_bw", + "owner" : "fc", + "name" : "bw", + "access" : 25, + "descriptor" : "Lfc;" + }, { + "field" : "__fc_bx", + "owner" : "fc", + "name" : "bx", + "access" : 25, + "descriptor" : "Lfc;" + }, { + "field" : "__fc_by", + "owner" : "fc", + "name" : "by", + "access" : 25, + "descriptor" : "Lfc;" + }, { + "field" : "__fc_bz", + "owner" : "fc", + "name" : "bz", + "access" : 25, + "descriptor" : "Lfc;" + }, { + "field" : "__fc_c", + "owner" : "fc", + "name" : "c", + "access" : 25, + "descriptor" : "Lfc;" + }, { + "field" : "__fc_ca", + "owner" : "fc", + "name" : "ca", + "access" : 25, + "descriptor" : "Lfc;" + }, { + "field" : "__fc_cc", + "owner" : "fc", + "name" : "cc", + "access" : 25, + "descriptor" : "Lfc;" + }, { + "field" : "__fc_cg", + "owner" : "fc", + "name" : "cg", + "access" : 25, + "descriptor" : "Lfc;" + }, { + "field" : "__fc_ch", + "owner" : "fc", + "name" : "ch", + "access" : 25, + "descriptor" : "Lfc;" + }, { + "field" : "__fc_cm", + "owner" : "fc", + "name" : "cm", + "access" : 25, + "descriptor" : "Lfc;" + }, { + "field" : "__fc_cx", + "owner" : "fc", + "name" : "cx", + "access" : 25, + "descriptor" : "Lfc;" + }, { + "field" : "__fc_cy", + "owner" : "fc", + "name" : "cy", + "access" : 25, + "descriptor" : "Lfc;" + }, { + "field" : "__fc_d", + "owner" : "fc", + "name" : "d", + "access" : 25, + "descriptor" : "Lfc;" + }, { + "field" : "__fc_e", + "owner" : "fc", + "name" : "e", + "access" : 25, + "descriptor" : "Lfc;" + }, { + "field" : "__fc_f", + "owner" : "fc", + "name" : "f", + "access" : 25, + "descriptor" : "Lfc;" + }, { + "field" : "__fc_g", + "owner" : "fc", + "name" : "g", + "access" : 25, + "descriptor" : "Lfc;" + }, { + "field" : "__fc_h", + "owner" : "fc", + "name" : "h", + "access" : 25, + "descriptor" : "Lfc;" + }, { + "field" : "__fc_i", + "owner" : "fc", + "name" : "i", + "access" : 25, + "descriptor" : "Lfc;" + }, { + "field" : "__fc_j", + "owner" : "fc", + "name" : "j", + "access" : 25, + "descriptor" : "Lfc;" + }, { + "field" : "__fc_k", + "owner" : "fc", + "name" : "k", + "access" : 25, + "descriptor" : "Lfc;" + }, { + "field" : "__fc_l", + "owner" : "fc", + "name" : "l", + "access" : 25, + "descriptor" : "Lfc;" + }, { + "field" : "__fc_m", + "owner" : "fc", + "name" : "m", + "access" : 25, + "descriptor" : "Lfc;" + }, { + "field" : "__fc_n", + "owner" : "fc", + "name" : "n", + "access" : 25, + "descriptor" : "Lfc;" + }, { + "field" : "__fc_o", + "owner" : "fc", + "name" : "o", + "access" : 25, + "descriptor" : "Lfc;" + }, { + "field" : "__fc_p", + "owner" : "fc", + "name" : "p", + "access" : 25, + "descriptor" : "Lfc;" + }, { + "field" : "__fc_q", + "owner" : "fc", + "name" : "q", + "access" : 25, + "descriptor" : "Lfc;" + }, { + "field" : "__fc_r", + "owner" : "fc", + "name" : "r", + "access" : 25, + "descriptor" : "Lfc;" + }, { + "field" : "__fc_s", + "owner" : "fc", + "name" : "s", + "access" : 25, + "descriptor" : "Lfc;" + }, { + "field" : "__fc_t", + "owner" : "fc", + "name" : "t", + "access" : 25, + "descriptor" : "Lfc;" + }, { + "field" : "__fc_u", + "owner" : "fc", + "name" : "u", + "access" : 25, + "descriptor" : "Lfc;" + }, { + "field" : "__fc_v", + "owner" : "fc", + "name" : "v", + "access" : 25, + "descriptor" : "Lfc;" + }, { + "field" : "__fc_w", + "owner" : "fc", + "name" : "w", + "access" : 25, + "descriptor" : "Lfc;" + }, { + "field" : "__fc_x", + "owner" : "fc", + "name" : "x", + "access" : 25, + "descriptor" : "Lfc;" + }, { + "field" : "__fc_y", + "owner" : "fc", + "name" : "y", + "access" : 25, + "descriptor" : "Lfc;" + }, { + "field" : "__fc_z", + "owner" : "fc", + "name" : "z", + "access" : 25, + "descriptor" : "Lfc;" + }, { + "field" : "__fs_a", + "owner" : "fs", + "name" : "a", + "access" : 25, + "descriptor" : "Lfs;" + }, { + "field" : "__fs_aa", + "owner" : "fs", + "name" : "aa", + "access" : 25, + "descriptor" : "Lfs;" + }, { + "field" : "__fs_ab", + "owner" : "fs", + "name" : "ab", + "access" : 25, + "descriptor" : "Lfs;" + }, { + "field" : "__fs_ac", + "owner" : "fs", + "name" : "ac", + "access" : 25, + "descriptor" : "Lfs;" + }, { + "field" : "__fs_ad", + "owner" : "fs", + "name" : "ad", + "access" : 25, + "descriptor" : "Lfs;" + }, { + "field" : "__fs_ae", + "owner" : "fs", + "name" : "ae", + "access" : 25, + "descriptor" : "Lfs;" + }, { + "field" : "__fs_af", + "owner" : "fs", + "name" : "af", + "access" : 25, + "descriptor" : "Lfs;" + }, { + "field" : "__fs_ag", + "owner" : "fs", + "name" : "ag", + "access" : 25, + "descriptor" : "Lfs;" + }, { + "field" : "__fs_ah", + "owner" : "fs", + "name" : "ah", + "access" : 25, + "descriptor" : "Lfs;" + }, { + "field" : "__fs_ai", + "owner" : "fs", + "name" : "ai", + "access" : 25, + "descriptor" : "Lfs;" + }, { + "field" : "__fs_aj", + "owner" : "fs", + "name" : "aj", + "access" : 25, + "descriptor" : "Lfs;" + }, { + "field" : "__fs_ak", + "owner" : "fs", + "name" : "ak", + "access" : 25, + "descriptor" : "Lfs;" + }, { + "field" : "__fs_am", + "owner" : "fs", + "name" : "am", + "access" : 25, + "descriptor" : "Lfs;" + }, { + "field" : "__fs_an", + "owner" : "fs", + "name" : "an", + "access" : 25, + "descriptor" : "Lfs;" + }, { + "field" : "__fs_ao", + "owner" : "fs", + "name" : "ao", + "access" : 25, + "descriptor" : "Lfs;" + }, { + "field" : "__fs_ap", + "owner" : "fs", + "name" : "ap", + "access" : 25, + "descriptor" : "Lfs;" + }, { + "field" : "__fs_aq", + "owner" : "fs", + "name" : "aq", + "access" : 25, + "descriptor" : "Lfs;" + }, { + "field" : "__fs_ar", + "owner" : "fs", + "name" : "ar", + "access" : 25, + "descriptor" : "Lfs;" + }, { + "field" : "__fs_as", + "owner" : "fs", + "name" : "as", + "access" : 25, + "descriptor" : "Lfs;" + }, { + "field" : "__fs_at", + "owner" : "fs", + "name" : "at", + "access" : 25, + "descriptor" : "Lfs;" + }, { + "field" : "__fs_au", + "owner" : "fs", + "name" : "au", + "access" : 25, + "descriptor" : "Lfs;" + }, { + "field" : "__fs_av", + "owner" : "fs", + "name" : "av", + "access" : 25, + "descriptor" : "Lfs;" + }, { + "field" : "__fs_aw", + "owner" : "fs", + "name" : "aw", + "access" : 25, + "descriptor" : "Lfs;" + }, { + "field" : "__fs_ax", + "owner" : "fs", + "name" : "ax", + "access" : 25, + "descriptor" : "Lfs;" + }, { + "field" : "__fs_ay", + "owner" : "fs", + "name" : "ay", + "access" : 25, + "descriptor" : "Lfs;" + }, { + "field" : "__fs_az", + "owner" : "fs", + "name" : "az", + "access" : 25, + "descriptor" : "Lfs;" + }, { + "field" : "__fs_b", + "owner" : "fs", + "name" : "b", + "access" : 25, + "descriptor" : "Lfs;" + }, { + "field" : "__fs_ba", + "owner" : "fs", + "name" : "ba", + "access" : 25, + "descriptor" : "Lfs;" + }, { + "field" : "__fs_bb", + "owner" : "fs", + "name" : "bb", + "access" : 25, + "descriptor" : "Lfs;" + }, { + "field" : "__fs_bc", + "owner" : "fs", + "name" : "bc", + "access" : 25, + "descriptor" : "Lfs;" + }, { + "field" : "__fs_bd", + "owner" : "fs", + "name" : "bd", + "access" : 25, + "descriptor" : "Lfs;" + }, { + "field" : "__fs_be", + "owner" : "fs", + "name" : "be", + "access" : 25, + "descriptor" : "Lfs;" + }, { + "field" : "__fs_bf", + "owner" : "fs", + "name" : "bf", + "access" : 25, + "descriptor" : "Lfs;" + }, { + "field" : "__fs_bg", + "owner" : "fs", + "name" : "bg", + "access" : 25, + "descriptor" : "Lfs;" + }, { + "field" : "__fs_bh", + "owner" : "fs", + "name" : "bh", + "access" : 25, + "descriptor" : "Lfs;" + }, { + "field" : "__fs_bi", + "owner" : "fs", + "name" : "bi", + "access" : 25, + "descriptor" : "Lfs;" + }, { + "field" : "__fs_bj", + "owner" : "fs", + "name" : "bj", + "access" : 25, + "descriptor" : "Lfs;" + }, { + "field" : "__fs_bk", + "owner" : "fs", + "name" : "bk", + "access" : 25, + "descriptor" : "Lfs;" + }, { + "field" : "__fs_bl", + "owner" : "fs", + "name" : "bl", + "access" : 25, + "descriptor" : "Lfs;" + }, { + "field" : "__fs_bm", + "owner" : "fs", + "name" : "bm", + "access" : 25, + "descriptor" : "Lfs;" + }, { + "field" : "__fs_bn", + "owner" : "fs", + "name" : "bn", + "access" : 25, + "descriptor" : "Lfs;" + }, { + "field" : "__fs_bo", + "owner" : "fs", + "name" : "bo", + "access" : 25, + "descriptor" : "Lfs;" + }, { + "field" : "__fs_bp", + "owner" : "fs", + "name" : "bp", + "access" : 25, + "descriptor" : "Lfs;" + }, { + "field" : "__fs_bq", + "owner" : "fs", + "name" : "bq", + "access" : 25, + "descriptor" : "Lfs;" + }, { + "field" : "__fs_br", + "owner" : "fs", + "name" : "br", + "access" : 25, + "descriptor" : "Lfs;" + }, { + "field" : "__fs_bs", + "owner" : "fs", + "name" : "bs", + "access" : 25, + "descriptor" : "Lfs;" + }, { + "field" : "__fs_bt", + "owner" : "fs", + "name" : "bt", + "access" : 25, + "descriptor" : "Lfs;" + }, { + "field" : "__fs_bu", + "owner" : "fs", + "name" : "bu", + "access" : 25, + "descriptor" : "Lfs;" + }, { + "field" : "__fs_bv", + "owner" : "fs", + "name" : "bv", + "access" : 25, + "descriptor" : "Lfs;" + }, { + "field" : "__fs_bw", + "owner" : "fs", + "name" : "bw", + "access" : 25, + "descriptor" : "Lfs;" + }, { + "field" : "__fs_bx", + "owner" : "fs", + "name" : "bx", + "access" : 25, + "descriptor" : "Lfs;" + }, { + "field" : "__fs_by", + "owner" : "fs", + "name" : "by", + "access" : 25, + "descriptor" : "Lfs;" + }, { + "field" : "__fs_bz", + "owner" : "fs", + "name" : "bz", + "access" : 25, + "descriptor" : "Lfs;" + }, { + "field" : "__fs_c", + "owner" : "fs", + "name" : "c", + "access" : 25, + "descriptor" : "Lfs;" + }, { + "field" : "__fs_ca", + "owner" : "fs", + "name" : "ca", + "access" : 25, + "descriptor" : "Lfs;" + }, { + "field" : "__fs_cb", + "owner" : "fs", + "name" : "cb", + "access" : 25, + "descriptor" : "Lfs;" + }, { + "field" : "__fs_cc", + "owner" : "fs", + "name" : "cc", + "access" : 25, + "descriptor" : "Lfs;" + }, { + "field" : "__fs_cd", + "owner" : "fs", + "name" : "cd", + "access" : 25, + "descriptor" : "Lfs;" + }, { + "field" : "__fs_cf", + "owner" : "fs", + "name" : "cf", + "access" : 25, + "descriptor" : "Lfs;" + }, { + "field" : "__fs_cg", + "owner" : "fs", + "name" : "cg", + "access" : 25, + "descriptor" : "Lfs;" + }, { + "field" : "__fs_ch", + "owner" : "fs", + "name" : "ch", + "access" : 25, + "descriptor" : "Lfs;" + }, { + "field" : "__fs_ck", + "owner" : "fs", + "name" : "ck", + "access" : 25, + "descriptor" : "Lfs;" + }, { + "field" : "__fs_cm", + "owner" : "fs", + "name" : "cm", + "access" : 25, + "descriptor" : "Lfs;" + }, { + "field" : "__fs_cn", + "owner" : "fs", + "name" : "cn", + "access" : 25, + "descriptor" : "Lfs;" + }, { + "field" : "__fs_co", + "owner" : "fs", + "name" : "co", + "access" : 25, + "descriptor" : "Lfs;" + }, { + "field" : "__fs_cp", + "owner" : "fs", + "name" : "cp", + "access" : 25, + "descriptor" : "Lfs;" + }, { + "field" : "__fs_cq", + "owner" : "fs", + "name" : "cq", + "access" : 25, + "descriptor" : "Lfs;" + }, { + "field" : "__fs_cr", + "owner" : "fs", + "name" : "cr", + "access" : 25, + "descriptor" : "Lfs;" + }, { + "field" : "__fs_cs", + "owner" : "fs", + "name" : "cs", + "access" : 25, + "descriptor" : "Lfs;" + }, { + "field" : "__fs_ct", + "owner" : "fs", + "name" : "ct", + "access" : 25, + "descriptor" : "Lfs;" + }, { + "field" : "__fs_cu", + "owner" : "fs", + "name" : "cu", + "access" : 25, + "descriptor" : "Lfs;" + }, { + "field" : "__fs_cv", + "owner" : "fs", + "name" : "cv", + "access" : 25, + "descriptor" : "Lfs;" + }, { + "field" : "__fs_cw", + "owner" : "fs", + "name" : "cw", + "access" : 25, + "descriptor" : "Lfs;" + }, { + "field" : "__fs_cx", + "owner" : "fs", + "name" : "cx", + "access" : 25, + "descriptor" : "Lfs;" + }, { + "field" : "__fs_cy", + "owner" : "fs", + "name" : "cy", + "access" : 25, + "descriptor" : "Lfs;" + }, { + "field" : "__fs_d", + "owner" : "fs", + "name" : "d", + "access" : 25, + "descriptor" : "Lfs;" + }, { + "field" : "__fs_e", + "owner" : "fs", + "name" : "e", + "access" : 25, + "descriptor" : "Lfs;" + }, { + "field" : "__fs_f", + "owner" : "fs", + "name" : "f", + "access" : 25, + "descriptor" : "Lfs;" + }, { + "field" : "__fs_g", + "owner" : "fs", + "name" : "g", + "access" : 25, + "descriptor" : "Lfs;" + }, { + "field" : "__fs_h", + "owner" : "fs", + "name" : "h", + "access" : 25, + "descriptor" : "Lfs;" + }, { + "field" : "__fs_i", + "owner" : "fs", + "name" : "i", + "access" : 25, + "descriptor" : "Lfs;" + }, { + "field" : "__fs_j", + "owner" : "fs", + "name" : "j", + "access" : 25, + "descriptor" : "Lfs;" + }, { + "field" : "__fs_k", + "owner" : "fs", + "name" : "k", + "access" : 25, + "descriptor" : "Lfs;" + }, { + "field" : "__fs_l", + "owner" : "fs", + "name" : "l", + "access" : 25, + "descriptor" : "Lfs;" + }, { + "field" : "__fs_m", + "owner" : "fs", + "name" : "m", + "access" : 25, + "descriptor" : "Lfs;" + }, { + "field" : "__fs_n", + "owner" : "fs", + "name" : "n", + "access" : 25, + "descriptor" : "Lfs;" + }, { + "field" : "__fs_o", + "owner" : "fs", + "name" : "o", + "access" : 25, + "descriptor" : "Lfs;" + }, { + "field" : "__fs_p", + "owner" : "fs", + "name" : "p", + "access" : 25, + "descriptor" : "Lfs;" + }, { + "field" : "__fs_q", + "owner" : "fs", + "name" : "q", + "access" : 25, + "descriptor" : "Lfs;" + }, { + "field" : "__fs_r", + "owner" : "fs", + "name" : "r", + "access" : 25, + "descriptor" : "Lfs;" + }, { + "field" : "__fs_s", + "owner" : "fs", + "name" : "s", + "access" : 25, + "descriptor" : "Lfs;" + }, { + "field" : "__fs_t", + "owner" : "fs", + "name" : "t", + "access" : 25, + "descriptor" : "Lfs;" + }, { + "field" : "__fs_u", + "owner" : "fs", + "name" : "u", + "access" : 25, + "descriptor" : "Lfs;" + }, { + "field" : "__fs_v", + "owner" : "fs", + "name" : "v", + "access" : 25, + "descriptor" : "Lfs;" + }, { + "field" : "__fs_w", + "owner" : "fs", + "name" : "w", + "access" : 25, + "descriptor" : "Lfs;" + }, { + "field" : "__fs_x", + "owner" : "fs", + "name" : "x", + "access" : 25, + "descriptor" : "Lfs;" + }, { + "field" : "__fs_y", + "owner" : "fs", + "name" : "y", + "access" : 25, + "descriptor" : "Lfs;" + }, { + "field" : "__fs_z", + "owner" : "fs", + "name" : "z", + "access" : 25, + "descriptor" : "Lfs;" + }, { + "field" : "__fs_al", + "owner" : "fs", + "name" : "al", + "access" : 24, + "descriptor" : "Lfs;" + }, { + "field" : "__fs_ci", + "owner" : "fs", + "name" : "ci", + "access" : 24, + "descriptor" : "Lfs;" + }, { + "field" : "__fv_a", + "owner" : "fv", + "name" : "a", + "access" : 25, + "descriptor" : "Lfv;" + }, { + "field" : "__fv_g", + "owner" : "fv", + "name" : "g", + "access" : 25, + "descriptor" : "Lfv;" + }, { + "field" : "__fv_x", + "owner" : "fv", + "name" : "x", + "access" : 25, + "descriptor" : "Lfv;" + }, { + "field" : "__fv_q", + "owner" : "fv", + "name" : "q", + "access" : 8, + "descriptor" : "Liz;" + }, { + "field" : "__fv_h", + "owner" : "fv", + "name" : "h", + "access" : 24, + "descriptor" : "Lfv;" + }, { + "field" : "__fv_s", + "owner" : "fv", + "name" : "s", + "access" : 24, + "descriptor" : "Lfv;" + }, { + "field" : "__fv_p", + "owner" : "fv", + "name" : "p", + "access" : 24, + "descriptor" : "[Lfv;" + }, { + "field" : "__fa_f", + "owner" : "fa", + "name" : "f", + "access" : 8, + "descriptor" : "I", + "decoder" : -759447941 + }, { + "field" : "__gz_j", + "owner" : "gz", + "name" : "j", + "access" : 8, + "descriptor" : "[I" + }, { + "field" : "__gx_g", + "owner" : "gx", + "name" : "g", + "access" : 8, + "descriptor" : "[I" + }, { + "field" : "__gx_h", + "owner" : "gx", + "name" : "h", + "access" : 8, + "descriptor" : "[J" + }, { + "field" : "__go_q", + "owner" : "go", + "name" : "q", + "access" : 9, + "descriptor" : "[[[B" + }, { + "field" : "__go_p", + "owner" : "go", + "name" : "p", + "access" : 9, + "descriptor" : "[I" + }, { + "field" : "__go_fm", + "owner" : "go", + "name" : "fm", + "access" : 8, + "descriptor" : "Lfq;" + }, { + "field" : "__go_rh", + "owner" : "go", + "name" : "rh", + "access" : 8, + "descriptor" : "I", + "decoder" : 505522001 + }, { + "field" : "__gm_b", + "owner" : "gm", + "name" : "b", + "access" : 24, + "descriptor" : "[I" + }, { + "field" : "__gm_n", + "owner" : "gm", + "name" : "n", + "access" : 24, + "descriptor" : "[I" + }, { + "field" : "__gh_q", + "owner" : "gh", + "name" : "q", + "access" : 9, + "descriptor" : "[[B" + }, { + "field" : "__gb_se", + "owner" : "gb", + "name" : "se", + "access" : 8, + "descriptor" : "I", + "decoder" : -10040823 + }, { + "field" : "__gc_n", + "owner" : "gc", + "name" : "n", + "access" : 8, + "descriptor" : "Liz;" + }, { + "field" : "__gc_g", + "owner" : "gc", + "name" : "g", + "access" : 8, + "descriptor" : "Ljava/util/Calendar;" + }, { + "field" : "__gc_s", + "owner" : "gc", + "name" : "s", + "access" : 24, + "descriptor" : "[Ljava/lang/String;" + }, { + "field" : "__gc_a", + "owner" : "gc", + "name" : "a", + "access" : 24, + "descriptor" : "[[Ljava/lang/String;" + }, { + "field" : "__hu_hx", + "owner" : "hu", + "name" : "hx", + "access" : 8, + "descriptor" : "I", + "decoder" : 1066051173 + }, { + "field" : "__hu_e", + "owner" : "hu", + "name" : "e", + "access" : 8, + "descriptor" : "Llv;" + }, { + "field" : "__hd_h", + "owner" : "hd", + "name" : "h", + "access" : 9, + "descriptor" : "I", + "decoder" : -243495611 + }, { + "field" : "__hd_a", + "owner" : "hd", + "name" : "a", + "access" : 9, + "descriptor" : "Liz;" + }, { + "field" : "__hd_g", + "owner" : "hd", + "name" : "g", + "access" : 9, + "descriptor" : "Liz;" + }, { + "field" : "__hd_s", + "owner" : "hd", + "name" : "s", + "access" : 9, + "descriptor" : "Liz;" + }, { + "field" : "__hf_b", + "owner" : "hf", + "name" : "b", + "access" : 24, + "descriptor" : "[B" + }, { + "field" : "__il_p", + "owner" : "il", + "name" : "p", + "access" : 9, + "descriptor" : "[S" + }, { + "field" : "__il_q", + "owner" : "il", + "name" : "q", + "access" : 9, + "descriptor" : "[S" + }, { + "field" : "__il_m", + "owner" : "il", + "name" : "m", + "access" : 9, + "descriptor" : "[[S" + }, { + "field" : "__il_n", + "owner" : "il", + "name" : "n", + "access" : 24, + "descriptor" : "[I" + }, { + "field" : "__iy_a", + "owner" : "iy", + "name" : "a", + "access" : 25, + "descriptor" : "[S" + }, { + "field" : "__iy_g", + "owner" : "iy", + "name" : "g", + "access" : 25, + "descriptor" : "[S" + }, { + "field" : "__iy_s", + "owner" : "iy", + "name" : "s", + "access" : 25, + "descriptor" : "[[S" + }, { + "field" : "__iy_x", + "owner" : "iy", + "name" : "x", + "access" : 25, + "descriptor" : "[[S" + }, { + "field" : "__ia_o", + "owner" : "ia", + "name" : "o", + "access" : 9, + "descriptor" : "Z" + }, { + "field" : "__ia_e", + "owner" : "ia", + "name" : "e", + "access" : 8, + "descriptor" : "Lgp;" + }, { + "field" : "__ia_l", + "owner" : "ia", + "name" : "l", + "access" : 8, + "descriptor" : "Lgp;" + }, { + "field" : "__ia_b", + "owner" : "ia", + "name" : "b", + "access" : 8, + "descriptor" : "Liz;" + }, { + "field" : "__it_ac", + "owner" : "it", + "name" : "ac", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_ad", + "owner" : "it", + "name" : "ad", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_ai", + "owner" : "it", + "name" : "ai", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_aj", + "owner" : "it", + "name" : "aj", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_ak", + "owner" : "it", + "name" : "ak", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_al", + "owner" : "it", + "name" : "al", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_am", + "owner" : "it", + "name" : "am", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_ao", + "owner" : "it", + "name" : "ao", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_ap", + "owner" : "it", + "name" : "ap", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_aq", + "owner" : "it", + "name" : "aq", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_ar", + "owner" : "it", + "name" : "ar", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_as", + "owner" : "it", + "name" : "as", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_ax", + "owner" : "it", + "name" : "ax", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_az", + "owner" : "it", + "name" : "az", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_b", + "owner" : "it", + "name" : "b", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_ba", + "owner" : "it", + "name" : "ba", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_bb", + "owner" : "it", + "name" : "bb", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_bc", + "owner" : "it", + "name" : "bc", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_bd", + "owner" : "it", + "name" : "bd", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_be", + "owner" : "it", + "name" : "be", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_bf", + "owner" : "it", + "name" : "bf", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_bg", + "owner" : "it", + "name" : "bg", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_bh", + "owner" : "it", + "name" : "bh", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_bi", + "owner" : "it", + "name" : "bi", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_bj", + "owner" : "it", + "name" : "bj", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_bk", + "owner" : "it", + "name" : "bk", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_bl", + "owner" : "it", + "name" : "bl", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_bm", + "owner" : "it", + "name" : "bm", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_bn", + "owner" : "it", + "name" : "bn", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_bo", + "owner" : "it", + "name" : "bo", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_bp", + "owner" : "it", + "name" : "bp", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_bq", + "owner" : "it", + "name" : "bq", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_br", + "owner" : "it", + "name" : "br", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_bs", + "owner" : "it", + "name" : "bs", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_bt", + "owner" : "it", + "name" : "bt", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_bu", + "owner" : "it", + "name" : "bu", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_bv", + "owner" : "it", + "name" : "bv", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_bw", + "owner" : "it", + "name" : "bw", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_bx", + "owner" : "it", + "name" : "bx", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_by", + "owner" : "it", + "name" : "by", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_bz", + "owner" : "it", + "name" : "bz", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_ca", + "owner" : "it", + "name" : "ca", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_cb", + "owner" : "it", + "name" : "cb", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_cc", + "owner" : "it", + "name" : "cc", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_cd", + "owner" : "it", + "name" : "cd", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_ce", + "owner" : "it", + "name" : "ce", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_cf", + "owner" : "it", + "name" : "cf", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_cg", + "owner" : "it", + "name" : "cg", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_ch", + "owner" : "it", + "name" : "ch", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_ci", + "owner" : "it", + "name" : "ci", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_cj", + "owner" : "it", + "name" : "cj", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_ck", + "owner" : "it", + "name" : "ck", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_cl", + "owner" : "it", + "name" : "cl", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_cm", + "owner" : "it", + "name" : "cm", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_cn", + "owner" : "it", + "name" : "cn", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_co", + "owner" : "it", + "name" : "co", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_cp", + "owner" : "it", + "name" : "cp", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_cq", + "owner" : "it", + "name" : "cq", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_cr", + "owner" : "it", + "name" : "cr", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_cs", + "owner" : "it", + "name" : "cs", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_ct", + "owner" : "it", + "name" : "ct", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_cu", + "owner" : "it", + "name" : "cu", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_cv", + "owner" : "it", + "name" : "cv", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_cw", + "owner" : "it", + "name" : "cw", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_cx", + "owner" : "it", + "name" : "cx", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_cy", + "owner" : "it", + "name" : "cy", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_cz", + "owner" : "it", + "name" : "cz", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_da", + "owner" : "it", + "name" : "da", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_db", + "owner" : "it", + "name" : "db", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_dc", + "owner" : "it", + "name" : "dc", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_dd", + "owner" : "it", + "name" : "dd", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_de", + "owner" : "it", + "name" : "de", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_df", + "owner" : "it", + "name" : "df", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_dg", + "owner" : "it", + "name" : "dg", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_di", + "owner" : "it", + "name" : "di", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_dj", + "owner" : "it", + "name" : "dj", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_dk", + "owner" : "it", + "name" : "dk", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_dl", + "owner" : "it", + "name" : "dl", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_dn", + "owner" : "it", + "name" : "dn", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_do", + "owner" : "it", + "name" : "do", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_dp", + "owner" : "it", + "name" : "dp", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_dq", + "owner" : "it", + "name" : "dq", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_dr", + "owner" : "it", + "name" : "dr", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_ds", + "owner" : "it", + "name" : "ds", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_dt", + "owner" : "it", + "name" : "dt", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_du", + "owner" : "it", + "name" : "du", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_dv", + "owner" : "it", + "name" : "dv", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_dw", + "owner" : "it", + "name" : "dw", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_dx", + "owner" : "it", + "name" : "dx", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_dy", + "owner" : "it", + "name" : "dy", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_dz", + "owner" : "it", + "name" : "dz", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_ea", + "owner" : "it", + "name" : "ea", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_eb", + "owner" : "it", + "name" : "eb", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_ed", + "owner" : "it", + "name" : "ed", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_ee", + "owner" : "it", + "name" : "ee", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_ef", + "owner" : "it", + "name" : "ef", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_eg", + "owner" : "it", + "name" : "eg", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_ei", + "owner" : "it", + "name" : "ei", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_ej", + "owner" : "it", + "name" : "ej", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_ek", + "owner" : "it", + "name" : "ek", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_el", + "owner" : "it", + "name" : "el", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_em", + "owner" : "it", + "name" : "em", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_en", + "owner" : "it", + "name" : "en", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_eo", + "owner" : "it", + "name" : "eo", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_ep", + "owner" : "it", + "name" : "ep", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_er", + "owner" : "it", + "name" : "er", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_es", + "owner" : "it", + "name" : "es", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_ev", + "owner" : "it", + "name" : "ev", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_ew", + "owner" : "it", + "name" : "ew", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_ex", + "owner" : "it", + "name" : "ex", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_ey", + "owner" : "it", + "name" : "ey", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_ez", + "owner" : "it", + "name" : "ez", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_fb", + "owner" : "it", + "name" : "fb", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_fc", + "owner" : "it", + "name" : "fc", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_fd", + "owner" : "it", + "name" : "fd", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_fi", + "owner" : "it", + "name" : "fi", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_fl", + "owner" : "it", + "name" : "fl", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_fr", + "owner" : "it", + "name" : "fr", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_fu", + "owner" : "it", + "name" : "fu", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_fw", + "owner" : "it", + "name" : "fw", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_fy", + "owner" : "it", + "name" : "fy", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_fz", + "owner" : "it", + "name" : "fz", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_ga", + "owner" : "it", + "name" : "ga", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_gb", + "owner" : "it", + "name" : "gb", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_gc", + "owner" : "it", + "name" : "gc", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_gd", + "owner" : "it", + "name" : "gd", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_ge", + "owner" : "it", + "name" : "ge", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_gf", + "owner" : "it", + "name" : "gf", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_gg", + "owner" : "it", + "name" : "gg", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_gh", + "owner" : "it", + "name" : "gh", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_gi", + "owner" : "it", + "name" : "gi", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_gj", + "owner" : "it", + "name" : "gj", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_gk", + "owner" : "it", + "name" : "gk", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_gl", + "owner" : "it", + "name" : "gl", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_gm", + "owner" : "it", + "name" : "gm", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_gn", + "owner" : "it", + "name" : "gn", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_go", + "owner" : "it", + "name" : "go", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_gp", + "owner" : "it", + "name" : "gp", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_gq", + "owner" : "it", + "name" : "gq", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_gr", + "owner" : "it", + "name" : "gr", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_gs", + "owner" : "it", + "name" : "gs", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_gt", + "owner" : "it", + "name" : "gt", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_gu", + "owner" : "it", + "name" : "gu", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_gv", + "owner" : "it", + "name" : "gv", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_gw", + "owner" : "it", + "name" : "gw", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_gx", + "owner" : "it", + "name" : "gx", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_gy", + "owner" : "it", + "name" : "gy", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_gz", + "owner" : "it", + "name" : "gz", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_ha", + "owner" : "it", + "name" : "ha", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_hh", + "owner" : "it", + "name" : "hh", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_hi", + "owner" : "it", + "name" : "hi", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_hj", + "owner" : "it", + "name" : "hj", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_hk", + "owner" : "it", + "name" : "hk", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_ho", + "owner" : "it", + "name" : "ho", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_hp", + "owner" : "it", + "name" : "hp", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_hr", + "owner" : "it", + "name" : "hr", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_hs", + "owner" : "it", + "name" : "hs", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_ht", + "owner" : "it", + "name" : "ht", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_hv", + "owner" : "it", + "name" : "hv", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_hx", + "owner" : "it", + "name" : "hx", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_hy", + "owner" : "it", + "name" : "hy", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_hz", + "owner" : "it", + "name" : "hz", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_ib", + "owner" : "it", + "name" : "ib", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_id", + "owner" : "it", + "name" : "id", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_ig", + "owner" : "it", + "name" : "ig", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_ih", + "owner" : "it", + "name" : "ih", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_ij", + "owner" : "it", + "name" : "ij", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_il", + "owner" : "it", + "name" : "il", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_in", + "owner" : "it", + "name" : "in", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_io", + "owner" : "it", + "name" : "io", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_ip", + "owner" : "it", + "name" : "ip", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_iq", + "owner" : "it", + "name" : "iq", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_ir", + "owner" : "it", + "name" : "ir", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_is", + "owner" : "it", + "name" : "is", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_it", + "owner" : "it", + "name" : "it", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_iu", + "owner" : "it", + "name" : "iu", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_iv", + "owner" : "it", + "name" : "iv", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_iw", + "owner" : "it", + "name" : "iw", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_ix", + "owner" : "it", + "name" : "ix", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_iz", + "owner" : "it", + "name" : "iz", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_ja", + "owner" : "it", + "name" : "ja", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_jb", + "owner" : "it", + "name" : "jb", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_jc", + "owner" : "it", + "name" : "jc", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_jd", + "owner" : "it", + "name" : "jd", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_je", + "owner" : "it", + "name" : "je", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_jf", + "owner" : "it", + "name" : "jf", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_jg", + "owner" : "it", + "name" : "jg", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_jh", + "owner" : "it", + "name" : "jh", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_ji", + "owner" : "it", + "name" : "ji", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_jj", + "owner" : "it", + "name" : "jj", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_jk", + "owner" : "it", + "name" : "jk", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_jl", + "owner" : "it", + "name" : "jl", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_jm", + "owner" : "it", + "name" : "jm", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_jn", + "owner" : "it", + "name" : "jn", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_jo", + "owner" : "it", + "name" : "jo", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_jp", + "owner" : "it", + "name" : "jp", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_jq", + "owner" : "it", + "name" : "jq", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_jr", + "owner" : "it", + "name" : "jr", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_js", + "owner" : "it", + "name" : "js", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_jt", + "owner" : "it", + "name" : "jt", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_ju", + "owner" : "it", + "name" : "ju", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_jv", + "owner" : "it", + "name" : "jv", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_jw", + "owner" : "it", + "name" : "jw", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_jx", + "owner" : "it", + "name" : "jx", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_jy", + "owner" : "it", + "name" : "jy", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_jz", + "owner" : "it", + "name" : "jz", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_ka", + "owner" : "it", + "name" : "ka", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_kd", + "owner" : "it", + "name" : "kd", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_kj", + "owner" : "it", + "name" : "kj", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_kl", + "owner" : "it", + "name" : "kl", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_km", + "owner" : "it", + "name" : "km", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_kn", + "owner" : "it", + "name" : "kn", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_kq", + "owner" : "it", + "name" : "kq", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_ku", + "owner" : "it", + "name" : "ku", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_kz", + "owner" : "it", + "name" : "kz", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_m", + "owner" : "it", + "name" : "m", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_n", + "owner" : "it", + "name" : "n", + "access" : 9, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__it_au", + "owner" : "it", + "name" : "au", + "access" : 8, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__ij_bv", + "owner" : "ij", + "name" : "bv", + "access" : 8, + "descriptor" : "I", + "decoder" : -163727267 + }, { + "field" : "__ij_ay", + "owner" : "ij", + "name" : "ay", + "access" : 8, + "descriptor" : "[I" + }, { + "field" : "__is_e", + "owner" : "is", + "name" : "e", + "access" : 8, + "descriptor" : "[I" + }, { + "field" : "__ix_a", + "owner" : "ix", + "name" : "a", + "access" : 24, + "descriptor" : "Lix;" + }, { + "field" : "__ix_g", + "owner" : "ix", + "name" : "g", + "access" : 24, + "descriptor" : "Lix;" + }, { + "field" : "__ix_s", + "owner" : "ix", + "name" : "s", + "access" : 24, + "descriptor" : "Lix;" + }, { + "field" : "__ix_x", + "owner" : "ix", + "name" : "x", + "access" : 24, + "descriptor" : "Lix;" + }, { + "field" : "__ib_a", + "owner" : "ib", + "name" : "a", + "access" : 25, + "descriptor" : "Lib;" + }, { + "field" : "__ib_f", + "owner" : "ib", + "name" : "f", + "access" : 25, + "descriptor" : "Lib;" + }, { + "field" : "__ib_g", + "owner" : "ib", + "name" : "g", + "access" : 25, + "descriptor" : "Lib;" + }, { + "field" : "__ib_h", + "owner" : "ib", + "name" : "h", + "access" : 25, + "descriptor" : "Lib;" + }, { + "field" : "__ib_s", + "owner" : "ib", + "name" : "s", + "access" : 25, + "descriptor" : "Lib;" + }, { + "field" : "__ib_x", + "owner" : "ib", + "name" : "x", + "access" : 25, + "descriptor" : "Lib;" + }, { + "field" : "__iz_y", + "owner" : "iz", + "name" : "y", + "access" : 8, + "descriptor" : "I", + "decoder" : 220234369 + }, { + "field" : "__id_g", + "owner" : "id", + "name" : "g", + "access" : 8, + "descriptor" : "I", + "decoder" : 1081660597 + }, { + "field" : "__io_r", + "owner" : "io", + "name" : "r", + "access" : 9, + "descriptor" : "Z" + }, { + "field" : "__io_w", + "owner" : "io", + "name" : "w", + "access" : 9, + "descriptor" : "B" + }, { + "field" : "__io_s", + "owner" : "io", + "name" : "s", + "access" : 9, + "descriptor" : "I", + "decoder" : -807616267 + }, { + "field" : "__io_u", + "owner" : "io", + "name" : "u", + "access" : 9, + "descriptor" : "I", + "decoder" : -950419947 + }, { + "field" : "__io_g", + "owner" : "io", + "name" : "g", + "access" : 9, + "descriptor" : "J", + "decoder" : 8231885883365805505 + }, { + "field" : "__ip_f", + "owner" : "ip", + "name" : "f", + "access" : 8, + "descriptor" : "Lld;" + }, { + "field" : "__ja_a", + "owner" : "ja", + "name" : "a", + "access" : 9, + "descriptor" : "Liz;" + }, { + "field" : "__ja_s", + "owner" : "ja", + "name" : "s", + "access" : 8, + "descriptor" : "Lgp;" + }, { + "field" : "__ja_l", + "owner" : "ja", + "name" : "l", + "access" : 8, + "descriptor" : "[[[I" + }, { + "field" : "__jn_gh", + "owner" : "jn", + "name" : "gh", + "access" : 8, + "descriptor" : "I", + "decoder" : -845922967 + }, { + "field" : "__jd_a", + "owner" : "jd", + "name" : "a", + "access" : 8, + "descriptor" : "Liz;" + }, { + "field" : "__jl_s", + "owner" : "jl", + "name" : "s", + "access" : 9, + "descriptor" : "Lgp;" + }, { + "field" : "__jl_a", + "owner" : "jl", + "name" : "a", + "access" : 9, + "descriptor" : "Liz;" + }, { + "field" : "__jx_s", + "owner" : "jx", + "name" : "s", + "access" : 8, + "descriptor" : "Liz;" + }, { + "field" : "__jp_a", + "owner" : "jp", + "name" : "a", + "access" : 9, + "descriptor" : "Liz;" + }, { + "field" : "__jp_s", + "owner" : "jp", + "name" : "s", + "access" : 8, + "descriptor" : "Liz;" + }, { + "field" : "__jz_a", + "owner" : "jz", + "name" : "a", + "access" : 9, + "descriptor" : "Liz;" + }, { + "field" : "__jq_s", + "owner" : "jq", + "name" : "s", + "access" : 9, + "descriptor" : "Lgp;" + }, { + "field" : "__jq_a", + "owner" : "jq", + "name" : "a", + "access" : 9, + "descriptor" : "Liz;" + }, { + "field" : "__je_h", + "owner" : "je", + "name" : "h", + "access" : 9, + "descriptor" : "Lgp;" + }, { + "field" : "__je_a", + "owner" : "je", + "name" : "a", + "access" : 9, + "descriptor" : "Liz;" + }, { + "field" : "__je_g", + "owner" : "je", + "name" : "g", + "access" : 9, + "descriptor" : "Liz;" + }, { + "field" : "__jy_f", + "owner" : "jy", + "name" : "f", + "access" : 9, + "descriptor" : "Lgp;" + }, { + "field" : "__jy_h", + "owner" : "jy", + "name" : "h", + "access" : 9, + "descriptor" : "Lgp;" + }, { + "field" : "__jy_m", + "owner" : "jy", + "name" : "m", + "access" : 8, + "descriptor" : "[Ldk;" + }, { + "field" : "__jy_g", + "owner" : "jy", + "name" : "g", + "access" : 8, + "descriptor" : "Liz;" + }, { + "field" : "__jc_m", + "owner" : "jc", + "name" : "m", + "access" : 9, + "descriptor" : "Z" + }, { + "field" : "__jc_q", + "owner" : "jc", + "name" : "q", + "access" : 9, + "descriptor" : "I", + "decoder" : -2024720123 + }, { + "field" : "__jw_a", + "owner" : "jw", + "name" : "a", + "access" : 9, + "descriptor" : "Liz;" + }, { + "field" : "__jw_sg", + "owner" : "jw", + "name" : "sg", + "access" : 8, + "descriptor" : "J", + "decoder" : -6858018479485301323 + }, { + "field" : "__ju_h", + "owner" : "ju", + "name" : "h", + "access" : 9, + "descriptor" : "Lgp;" + }, { + "field" : "__ju_s", + "owner" : "ju", + "name" : "s", + "access" : 9, + "descriptor" : "Liz;" + }, { + "field" : "__ju_dp", + "owner" : "ju", + "name" : "dp", + "access" : 8, + "descriptor" : "Lin;" + }, { + "field" : "__jb_r", + "owner" : "jb", + "name" : "r", + "access" : 25, + "descriptor" : "Ljb;" + }, { + "field" : "__jb_t", + "owner" : "jb", + "name" : "t", + "access" : 25, + "descriptor" : "Ljb;" + }, { + "field" : "__jb_a", + "owner" : "jb", + "name" : "a", + "access" : 24, + "descriptor" : "Ljb;" + }, { + "field" : "__jb_b", + "owner" : "jb", + "name" : "b", + "access" : 24, + "descriptor" : "Ljb;" + }, { + "field" : "__jb_e", + "owner" : "jb", + "name" : "e", + "access" : 24, + "descriptor" : "Ljb;" + }, { + "field" : "__jb_f", + "owner" : "jb", + "name" : "f", + "access" : 24, + "descriptor" : "Ljb;" + }, { + "field" : "__jb_g", + "owner" : "jb", + "name" : "g", + "access" : 24, + "descriptor" : "Ljb;" + }, { + "field" : "__jb_h", + "owner" : "jb", + "name" : "h", + "access" : 24, + "descriptor" : "Ljb;" + }, { + "field" : "__jb_k", + "owner" : "jb", + "name" : "k", + "access" : 24, + "descriptor" : "Ljb;" + }, { + "field" : "__jb_l", + "owner" : "jb", + "name" : "l", + "access" : 24, + "descriptor" : "Ljb;" + }, { + "field" : "__jb_m", + "owner" : "jb", + "name" : "m", + "access" : 24, + "descriptor" : "Ljb;" + }, { + "field" : "__jb_n", + "owner" : "jb", + "name" : "n", + "access" : 24, + "descriptor" : "Ljb;" + }, { + "field" : "__jb_o", + "owner" : "jb", + "name" : "o", + "access" : 24, + "descriptor" : "Ljb;" + }, { + "field" : "__jb_p", + "owner" : "jb", + "name" : "p", + "access" : 24, + "descriptor" : "Ljb;" + }, { + "field" : "__jb_q", + "owner" : "jb", + "name" : "q", + "access" : 24, + "descriptor" : "Ljb;" + }, { + "field" : "__jb_s", + "owner" : "jb", + "name" : "s", + "access" : 24, + "descriptor" : "Ljb;" + }, { + "field" : "__jb_u", + "owner" : "jb", + "name" : "u", + "access" : 24, + "descriptor" : "Ljb;" + }, { + "field" : "__jb_x", + "owner" : "jb", + "name" : "x", + "access" : 24, + "descriptor" : "Ljb;" + }, { + "field" : "__jb_y", + "owner" : "jb", + "name" : "y", + "access" : 24, + "descriptor" : "Ljb;" + }, { + "field" : "__kz_cd", + "owner" : "kz", + "name" : "cd", + "access" : 9, + "descriptor" : "I", + "decoder" : 2034641555 + }, { + "field" : "__kw_qb", + "owner" : "kw", + "name" : "qb", + "access" : 8, + "descriptor" : "I", + "decoder" : 182890269 + }, { + "field" : "__kp_g", + "owner" : "kp", + "name" : "g", + "access" : 25, + "descriptor" : "[C" + }, { + "field" : "__kp_x", + "owner" : "kp", + "name" : "x", + "access" : 25, + "descriptor" : "[C" + }, { + "field" : "__kv_a", + "owner" : "kv", + "name" : "a", + "access" : 8, + "descriptor" : "[C" + }, { + "field" : "__kv_g", + "owner" : "kv", + "name" : "g", + "access" : 8, + "descriptor" : "[C" + }, { + "field" : "__kv_s", + "owner" : "kv", + "name" : "s", + "access" : 8, + "descriptor" : "[C" + }, { + "field" : "__kv_x", + "owner" : "kv", + "name" : "x", + "access" : 8, + "descriptor" : "[I" + }, { + "field" : "__kv_br", + "owner" : "kv", + "name" : "br", + "access" : 8, + "descriptor" : "Ljava/lang/String;" + }, { + "field" : "__lk_qp", + "owner" : "lk", + "name" : "qp", + "access" : 8, + "descriptor" : "I", + "decoder" : -1868141335 + }, { + "field" : "__lp_a", + "owner" : "lp", + "name" : "a", + "access" : 25, + "descriptor" : "Llp;" + }, { + "field" : "__lp_g", + "owner" : "lp", + "name" : "g", + "access" : 24, + "descriptor" : "Llp;" + }, { + "field" : "__lp_s", + "owner" : "lp", + "name" : "s", + "access" : 24, + "descriptor" : "Llp;" + }, { + "field" : "__lu_a", + "owner" : "lu", + "name" : "a", + "access" : 9, + "descriptor" : "I", + "decoder" : 779152013 + }, { + "field" : "__lu_g", + "owner" : "lu", + "name" : "g", + "access" : 9, + "descriptor" : "I", + "decoder" : -1577004589 + }, { + "field" : "__lu_s", + "owner" : "lu", + "name" : "s", + "access" : 9, + "descriptor" : "I", + "decoder" : 92931211 + }, { + "field" : "__lu_f", + "owner" : "lu", + "name" : "f", + "access" : 9, + "descriptor" : "[I" + }, { + "field" : "__lu_m", + "owner" : "lu", + "name" : "m", + "access" : 9, + "descriptor" : "[I" + }, { + "field" : "__lu_p", + "owner" : "lu", + "name" : "p", + "access" : 9, + "descriptor" : "[I" + }, { + "field" : "__lu_x", + "owner" : "lu", + "name" : "x", + "access" : 9, + "descriptor" : "[I" + }, { + "field" : "__ll_a", + "owner" : "ll", + "name" : "a", + "access" : 25, + "descriptor" : "Lll;" + }, { + "field" : "__ll_q", + "owner" : "ll", + "name" : "q", + "access" : 25, + "descriptor" : "Lll;" + }, { + "field" : "__ll_f", + "owner" : "ll", + "name" : "f", + "access" : 24, + "descriptor" : "Lll;" + }, { + "field" : "__ll_g", + "owner" : "ll", + "name" : "g", + "access" : 24, + "descriptor" : "Lll;" + }, { + "field" : "__ll_h", + "owner" : "ll", + "name" : "h", + "access" : 24, + "descriptor" : "Lll;" + }, { + "field" : "__ll_m", + "owner" : "ll", + "name" : "m", + "access" : 24, + "descriptor" : "Lll;" + }, { + "field" : "__ll_p", + "owner" : "ll", + "name" : "p", + "access" : 24, + "descriptor" : "Lll;" + }, { + "field" : "__ll_s", + "owner" : "ll", + "name" : "s", + "access" : 24, + "descriptor" : "Lll;" + }, { + "field" : "__ll_x", + "owner" : "ll", + "name" : "x", + "access" : 24, + "descriptor" : "Lll;" + } ], + "methods" : [ { + "method" : "AbstractFont_drawGlyph", + "owner" : "kf", + "name" : "at", + "access" : 8, + "parameters" : [ "pixels", "x", "y", "width", "height", "color" ], + "descriptor" : "([BIIIII)V" + }, { + "method" : "AbstractFont_drawGlyphAlpha", + "owner" : "kf", + "name" : "av", + "access" : 8, + "parameters" : [ "pixels", "x", "y", "width", "height", "color", "alpha" ], + "descriptor" : "([BIIIIII)V" + }, { + "method" : "AbstractFont_placeGlyph", + "owner" : "kf", + "name" : "ae", + "access" : 8, + "descriptor" : "([I[BIIIIIII)V" + }, { + "method" : "AbstractFont_placeGlyphAlpha", + "owner" : "kf", + "name" : "au", + "access" : 8, + "descriptor" : "([I[BIIIIIIII)V" + }, { + "method" : "ByteArrayPool_get", + "owner" : "go", + "name" : "a", + "access" : 40, + "descriptor" : "(IZI)[B" + }, { + "method" : "Bzip2Decompressor_decompress", + "owner" : "ga", + "name" : "a", + "access" : 9, + "descriptor" : "([BI[BII)I" + }, { + "method" : "IterableNodeDeque_addBefore", + "owner" : "hj", + "name" : "x", + "access" : 9, + "parameters" : [ "node", "old" ], + "descriptor" : "(Lhy;Lhy;)V" + }, { + "method" : "PcmStream_disable", + "owner" : "ab", + "name" : "ar", + "access" : 24, + "parameters" : [ "stream" ], + "descriptor" : "(Ldo;I)V" + }, { + "method" : "Rasterizer2D_clear", + "owner" : "lb", + "name" : "dz", + "access" : 9, + "descriptor" : "()V" + }, { + "method" : "Rasterizer2D_drawHorizontalLine", + "owner" : "lb", + "name" : "dc", + "access" : 9, + "parameters" : [ "x", "y", "length", "color" ], + "descriptor" : "(IIII)V" + }, { + "method" : "Rasterizer2D_drawHorizontalLineAlpha", + "owner" : "lb", + "name" : "dj", + "access" : 8, + "parameters" : [ "x", "y", "length", "rgb", "alpha" ], + "descriptor" : "(IIIII)V" + }, { + "method" : "Rasterizer2D_drawLine", + "owner" : "lb", + "name" : "du", + "access" : 9, + "parameters" : [ "x0", "y0", "x1", "y1", "color" ], + "descriptor" : "(IIIII)V" + }, { + "method" : "Rasterizer2D_drawRectangle", + "owner" : "lb", + "name" : "do", + "access" : 9, + "parameters" : [ "x", "y", "width", "height", "color" ], + "descriptor" : "(IIIII)V" + }, { + "method" : "Rasterizer2D_drawRectangleAlpha", + "owner" : "lb", + "name" : "dd", + "access" : 9, + "parameters" : [ "x", "y", "width", "height", "rgb", "alpha" ], + "descriptor" : "(IIIIII)V" + }, { + "method" : "Rasterizer2D_drawVerticalLine", + "owner" : "lb", + "name" : "dx", + "access" : 9, + "parameters" : [ "x", "y", "length", "color" ], + "descriptor" : "(IIII)V" + }, { + "method" : "Rasterizer2D_drawVerticalLineAlpha", + "owner" : "lb", + "name" : "da", + "access" : 8, + "parameters" : [ "x", "y", "length", "rgb", "alpha" ], + "descriptor" : "(IIIII)V" + }, { + "method" : "Rasterizer2D_expandClip", + "owner" : "lb", + "name" : "cj", + "access" : 9, + "parameters" : [ "xStart", "yStart", "xEnd", "yEnd" ], + "descriptor" : "(IIII)V" + }, { + "method" : "Rasterizer2D_fillRectangle", + "owner" : "lb", + "name" : "dq", + "access" : 9, + "parameters" : [ "x", "y", "width", "height", "color" ], + "descriptor" : "(IIIII)V" + }, { + "method" : "Rasterizer2D_getClipArray", + "owner" : "lb", + "name" : "cz", + "access" : 9, + "parameters" : [ "dst" ], + "descriptor" : "([I)V" + }, { + "method" : "Rasterizer2D_replace", + "owner" : "lb", + "name" : "cu", + "access" : 9, + "parameters" : [ "pixels", "width", "height" ], + "descriptor" : "([III)V" + }, { + "method" : "Rasterizer2D_resetClip", + "owner" : "lb", + "name" : "ci", + "access" : 9, + "descriptor" : "()V" + }, { + "method" : "Rasterizer2D_setClip", + "owner" : "lb", + "name" : "ce", + "access" : 9, + "parameters" : [ "xStart", "yStart", "xEnd", "yEnd" ], + "descriptor" : "(IIII)V" + }, { + "method" : "Rasterizer2D_setClipArray", + "owner" : "lb", + "name" : "cl", + "access" : 9, + "parameters" : [ "src" ], + "descriptor" : "([I)V" + }, { + "method" : "Rasterizer2D_setPixel", + "owner" : "lb", + "name" : "dy", + "access" : 8, + "parameters" : [ "x", "y", "color" ], + "descriptor" : "(III)V" + }, { + "method" : "Rasterizer3D_brighten", + "owner" : "df", + "name" : "m", + "access" : 8, + "parameters" : [ "rgb", "brightness" ], + "descriptor" : "(ID)I" + }, { + "method" : "Rasterizer3D_buildPalette", + "owner" : "df", + "name" : "p", + "access" : 24, + "parameters" : [ "brightness", "hsMin", "hsMax" ], + "descriptor" : "(DII)V" + }, { + "method" : "Rasterizer3D_method1", + "owner" : "df", + "name" : "a", + "access" : 25, + "descriptor" : "()V" + }, { + "method" : "Rasterizer3D_method3", + "owner" : "df", + "name" : "g", + "access" : 25, + "descriptor" : "()V" + }, { + "method" : "Rasterizer3D_setBrightness", + "owner" : "df", + "name" : "f", + "access" : 25, + "parameters" : [ "brightness" ], + "descriptor" : "(D)V" + }, { + "method" : "Rasterizer3D_setClip", + "owner" : "df", + "name" : "s", + "access" : 24, + "parameters" : [ "xStart", "yStart", "xEnd", "yEnd" ], + "descriptor" : "(IIII)V" + }, { + "method" : "Rasterizer3D_setTextureLoader", + "owner" : "df", + "name" : "h", + "access" : 25, + "parameters" : [ "textureLoader" ], + "descriptor" : "(Lew;)V" + }, { + "method" : "Scene_addOccluder", + "owner" : "en", + "name" : "x", + "access" : 9, + "descriptor" : "(IIIIIIII)V" + }, { + "method" : "Scene_buildVisiblityMap", + "owner" : "en", + "name" : "al", + "access" : 9, + "parameters" : [ "a", "b", "c", "viewportWidth", "viewportHeight" ], + "descriptor" : "([IIIII)V" + }, { + "method" : "addMessage", + "owner" : "h", + "name" : "s", + "access" : 8, + "parameters" : [ "type", "sender", "text", "prefix" ], + "descriptor" : "(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;I)V" + }, { + "method" : "addNpcToMenu", + "owner" : "an", + "name" : "iw", + "access" : 24, + "parameters" : [ "npc", "menuArg0", "menuArg1", "menuArg2" ], + "descriptor" : "(Ljg;IIIS)V" + }, { + "method" : "addPlayerToMenu", + "owner" : "iu", + "name" : "ig", + "access" : 24, + "parameters" : [ "player", "menuArg0", "menuArg1", "menuArg2" ], + "descriptor" : "(Lbw;IIII)V" + }, { + "method" : "addPlayerToScene", + "owner" : "ft", + "name" : "gc", + "access" : 8, + "parameters" : [ "player", "b" ], + "descriptor" : "(Lbw;ZS)V" + }, { + "method" : "alignWidget", + "owner" : "client", + "name" : "ja", + "access" : 0, + "parameters" : [ "widget" ], + "descriptor" : "(Lia;I)V" + }, { + "method" : "alignWidgetPosition", + "owner" : "s", + "name" : "jh", + "access" : 8, + "parameters" : [ "widget", "parentWidth", "parentHeight" ], + "descriptor" : "(Lia;III)V" + }, { + "method" : "alignWidgetSize", + "owner" : "az", + "name" : "jl", + "access" : 8, + "parameters" : [ "widget", "parentWidth", "parentHeight", "b" ], + "descriptor" : "(Lia;IIZI)V" + }, { + "method" : "byteArrayFromObject", + "owner" : "bl", + "name" : "f", + "access" : 9, + "parameters" : [ "o", "copyArray" ], + "descriptor" : "(Ljava/lang/Object;ZI)[B" + }, { + "method" : "byteArrayToObject", + "owner" : "bu", + "name" : "h", + "access" : 9, + "parameters" : [ "bytes", "copyArray" ], + "descriptor" : "([BZI)Ljava/lang/Object;" + }, { + "method" : "charToByteCp1252", + "owner" : "bl", + "name" : "a", + "access" : 9, + "parameters" : [ "c" ], + "descriptor" : "(CI)B" + }, { + "method" : "clearIntArray", + "owner" : "gk", + "name" : "b", + "access" : 9, + "descriptor" : "([III)V" + }, { + "method" : "clickWidget", + "owner" : "aj", + "name" : "jw", + "access" : 24, + "parameters" : [ "widget", "x", "y" ], + "descriptor" : "(Lia;III)V" + }, { + "method" : "closeWidgetGroup", + "owner" : "jw", + "name" : "kd", + "access" : 24, + "parameters" : [ "w", "b" ], + "descriptor" : "(Lbk;ZI)V" + }, { + "method" : "colorStartTag", + "owner" : "bi", + "name" : "s", + "access" : 8, + "parameters" : [ "color" ], + "descriptor" : "(II)Ljava/lang/String;" + }, { + "method" : "compareWorlds", + "owner" : "h", + "name" : "p", + "access" : 8, + "parameters" : [ "w0", "w1", "mode", "b" ], + "descriptor" : "(Lbu;Lbu;IZI)I" + }, { + "method" : "currentTimeMs", + "owner" : "u", + "name" : "a", + "access" : 41, + "parameters" : [ ], + "descriptor" : "(I)J" + }, { + "method" : "decodeStringCp1252", + "owner" : "p", + "name" : "f", + "access" : 9, + "parameters" : [ "src", "srcStart", "length" ], + "descriptor" : "([BIIB)Ljava/lang/String;" + }, { + "method" : "decompressBytes", + "owner" : "bs", + "name" : "av", + "access" : 24, + "descriptor" : "([BB)[B" + }, { + "method" : "doCycle", + "owner" : "client", + "name" : "av", + "access" : 20, + "parameters" : [ ], + "descriptor" : "(B)V" + }, { + "method" : "doCycleJs5", + "owner" : "client", + "name" : "fo", + "access" : 0, + "parameters" : [ ], + "descriptor" : "(I)V" + }, { + "method" : "doCycleJs5Connect", + "owner" : "client", + "name" : "fm", + "access" : 0, + "parameters" : [ ], + "descriptor" : "(I)V" + }, { + "method" : "doCycleLoggedIn", + "owner" : "client", + "name" : "fu", + "access" : 16, + "parameters" : [ ], + "descriptor" : "(B)V" + }, { + "method" : "doCycleLoggedOut", + "owner" : "client", + "name" : "fi", + "access" : 16, + "parameters" : [ ], + "descriptor" : "(I)V" + }, { + "method" : "draw", + "owner" : "client", + "name" : "au", + "access" : 20, + "descriptor" : "(ZB)V" + }, { + "method" : "drawActor2d", + "owner" : "ed", + "name" : "gt", + "access" : 24, + "parameters" : [ "actor", "a", "b", "c", "d", "e" ], + "descriptor" : "(Lbq;IIIIII)V" + }, { + "method" : "drawLoadingMessage", + "owner" : "cq", + "name" : "gr", + "access" : 24, + "descriptor" : "(Ljava/lang/String;ZI)V" + }, { + "method" : "drawLoggedIn", + "owner" : "client", + "name" : "gh", + "access" : 16, + "parameters" : [ ], + "descriptor" : "(B)V" + }, { + "method" : "drawTitle", + "owner" : "fa", + "name" : "p", + "access" : 8, + "descriptor" : "(Lkt;Lkt;Lkt;ZB)V" + }, { + "method" : "drawWidgetGroup", + "owner" : "bn", + "name" : "id", + "access" : 24, + "descriptor" : "([Lia;IIIIIIIIB)V" + }, { + "method" : "encodeStringCp1252", + "owner" : "jt", + "name" : "h", + "access" : 9, + "parameters" : [ "src", "srcStart", "srcEnd", "dst", "dstStart" ], + "descriptor" : "(Ljava/lang/CharSequence;II[BII)I" + }, { + "method" : "escapeBrackets", + "owner" : "kf", + "name" : "e", + "access" : 9, + "parameters" : [ "s" ], + "descriptor" : "(Ljava/lang/String;)Ljava/lang/String;" + }, { + "method" : "findEnumerated", + "owner" : "cd", + "name" : "a", + "access" : 9, + "parameters" : [ "values", "ordinal" ], + "descriptor" : "([Lgr;IB)Lgr;" + }, { + "method" : "getFrames", + "owner" : "ep", + "name" : "b", + "access" : 8, + "parameters" : [ "id" ], + "descriptor" : "(II)Lei;" + }, { + "method" : "getHitSplatDefinition", + "owner" : "fl", + "name" : "a", + "access" : 9, + "parameters" : [ "id" ], + "descriptor" : "(II)Lje;" + }, { + "method" : "getItemDefinition", + "owner" : "bg", + "name" : "a", + "access" : 9, + "parameters" : [ "id" ], + "descriptor" : "(IS)Ljc;" + }, { + "method" : "getItemSprite", + "owner" : "ii", + "name" : "n", + "access" : 25, + "parameters" : [ "id", "quantity", "n0", "n1", "n2", "b0" ], + "descriptor" : "(IIIIIZB)Lld;" + }, { + "method" : "getKitDefinition", + "owner" : "bx", + "name" : "s", + "access" : 9, + "descriptor" : "(IB)Ljx;" + }, { + "method" : "getNpcDefinition", + "owner" : "fh", + "name" : "s", + "access" : 9, + "parameters" : [ "id" ], + "descriptor" : "(II)Ljg;" + }, { + "method" : "getObjectDefinition", + "owner" : "b", + "name" : "s", + "access" : 9, + "parameters" : [ "id" ], + "descriptor" : "(IB)Ljy;" + }, { + "method" : "getParamKeyDefinition", + "owner" : "jw", + "name" : "a", + "access" : 9, + "parameters" : [ "id" ], + "descriptor" : "(II)Ljz;" + }, { + "method" : "getPreferencesFile", + "owner" : "ey", + "name" : "g", + "access" : 9, + "descriptor" : "(Ljava/lang/String;Ljava/lang/String;ZB)Lda;" + }, { + "method" : "getSequenceDefinition", + "owner" : "eh", + "name" : "a", + "access" : 9, + "descriptor" : "(II)Lju;" + }, { + "method" : "getSpotAnimationDefinition", + "owner" : "dz", + "name" : "s", + "access" : 9, + "descriptor" : "(II)Ljh;" + }, { + "method" : "getTileHeight", + "owner" : "fa", + "name" : "hj", + "access" : 24, + "descriptor" : "(IIII)I" + }, { + "method" : "getVarbit", + "owner" : "by", + "name" : "a", + "access" : 9, + "parameters" : [ "id" ], + "descriptor" : "(IB)I" + }, { + "method" : "getWidget", + "owner" : "cf", + "name" : "s", + "access" : 9, + "parameters" : [ "id" ], + "descriptor" : "(IB)Lia;" + }, { + "method" : "getWidgetChild", + "owner" : "n", + "name" : "g", + "access" : 9, + "descriptor" : "(III)Lia;" + }, { + "method" : "getWidgetClickMask", + "owner" : "f", + "name" : "kt", + "access" : 8, + "parameters" : [ "widget" ], + "descriptor" : "(Lia;I)I" + }, { + "method" : "getWorldMapElement", + "owner" : "ay", + "name" : "s", + "access" : 9, + "parameters" : [ "id" ], + "descriptor" : "(II)Ljd;" + }, { + "method" : "hashString", + "owner" : "gi", + "name" : "p", + "access" : 9, + "parameters" : [ "chars" ], + "descriptor" : "(Ljava/lang/CharSequence;B)I" + }, { + "method" : "init", + "owner" : "client", + "name" : "init", + "access" : 17, + "parameters" : [ ], + "descriptor" : "()V" + }, { + "method" : "insertMenuItem", + "owner" : "bv", + "name" : "is", + "access" : 24, + "parameters" : [ "action", "targetName", "opcode", "arg0", "arg1", "arg2", "b" ], + "descriptor" : "(Ljava/lang/String;Ljava/lang/String;IIIIZI)V" + }, { + "method" : "itemContainerSetItem", + "owner" : "l", + "name" : "x", + "access" : 8, + "parameters" : [ "itemContainerId", "index", "itemId", "itemQuantity" ], + "descriptor" : "(IIIII)V" + }, { + "method" : "js5Error", + "owner" : "client", + "name" : "ff", + "access" : 0, + "parameters" : [ "code" ], + "descriptor" : "(II)V" + }, { + "method" : "kill0", + "owner" : "client", + "name" : "aj", + "access" : 20, + "parameters" : [ ], + "descriptor" : "(I)V" + }, { + "method" : "loadClassFromDescriptor", + "owner" : "ch", + "name" : "x", + "access" : 8, + "parameters" : [ "descriptor" ], + "descriptor" : "(Ljava/lang/String;B)Ljava/lang/Class;" + }, { + "method" : "loadRegions", + "owner" : "e", + "name" : "ho", + "access" : 24, + "parameters" : [ "isInInstance", "packetBuffer" ], + "descriptor" : "(ZLge;I)V" + }, { + "method" : "loadTerrain", + "owner" : "y", + "name" : "h", + "access" : 24, + "parameters" : [ "buffer", "plane", "x", "y", "x0", "y0", "n" ], + "descriptor" : "(Lgx;IIIIIIB)V" + }, { + "method" : "loadWidgetGroup", + "owner" : "bl", + "name" : "x", + "access" : 9, + "parameters" : [ "widgetGroup" ], + "descriptor" : "(IB)Z" + }, { + "method" : "loadWorlds", + "owner" : "af", + "name" : "a", + "access" : 8, + "parameters" : [ ], + "descriptor" : "(I)Z" + }, { + "method" : "menuAction", + "owner" : "aq", + "name" : "iu", + "access" : 24, + "parameters" : [ "argument1", "argument2", "opcode", "argument0", "action", "targetName", "mouseX", "mouseY" ], + "descriptor" : "(IIIILjava/lang/String;Ljava/lang/String;III)V" + }, { + "method" : "newIndexCache", + "owner" : "kw", + "name" : "fl", + "access" : 8, + "descriptor" : "(IZZZB)Lin;" + }, { + "method" : "newPcmPlayer", + "owner" : "at", + "name" : "aw", + "access" : 25, + "descriptor" : "(Lfo;IIB)Lcz;" + }, { + "method" : "newScript", + "owner" : "be", + "name" : "x", + "access" : 8, + "parameters" : [ "bytes" ], + "descriptor" : "([BB)Lcs;" + }, { + "method" : "openMenu", + "owner" : "client", + "name" : "ia", + "access" : 16, + "parameters" : [ "x", "y" ], + "descriptor" : "(IIB)V" + }, { + "method" : "openMenu0", + "owner" : "bc", + "name" : "im", + "access" : 8, + "parameters" : [ "x", "y" ], + "descriptor" : "(III)V" + }, { + "method" : "queueSoundEffect", + "owner" : "jz", + "name" : "fs", + "access" : 8, + "descriptor" : "(IIII)V" + }, { + "method" : "readMusicSample", + "owner" : "ci", + "name" : "q", + "access" : 8, + "descriptor" : "(Liz;II)Lci;" + }, { + "method" : "readSoundEffect", + "owner" : "cu", + "name" : "a", + "access" : 9, + "descriptor" : "(Liz;II)Lcu;" + }, { + "method" : "readSprite", + "owner" : "jx", + "name" : "s", + "access" : 9, + "parameters" : [ "indexCache", "index", "record" ], + "descriptor" : "(Liz;III)Lld;" + }, { + "method" : "readStringIntParameters", + "owner" : "kp", + "name" : "a", + "access" : 24, + "parameters" : [ "buffer", "hashTable" ], + "descriptor" : "(Lgx;Lgs;I)Lgs;" + }, { + "method" : "readTrack", + "owner" : "hx", + "name" : "a", + "access" : 9, + "descriptor" : "(Liz;II)Lhx;" + }, { + "method" : "requestNetFile", + "owner" : "ay", + "name" : "s", + "access" : 8, + "descriptor" : "(Lin;IIIBZI)V" + }, { + "method" : "runCs1", + "owner" : "jz", + "name" : "jp", + "access" : 24, + "parameters" : [ "widget" ], + "descriptor" : "(Lia;B)Z" + }, { + "method" : "runScript", + "owner" : "gc", + "name" : "a", + "access" : 9, + "parameters" : [ "scriptEvent" ], + "descriptor" : "(Lbr;I)V" + }, { + "method" : "runScript0", + "owner" : "ar", + "name" : "s", + "access" : 8, + "parameters" : [ "scriptEvent", "n" ], + "descriptor" : "(Lbr;II)V" + }, { + "method" : "setUp", + "owner" : "client", + "name" : "ae", + "access" : 20, + "parameters" : [ ], + "descriptor" : "(I)V" + }, { + "method" : "setViewportShape", + "owner" : "iq", + "name" : "gb", + "access" : 24, + "parameters" : [ "x", "y", "width", "height", "clear" ], + "descriptor" : "(IIIIZI)V" + }, { + "method" : "updateExternalPlayer", + "owner" : "fg", + "name" : "h", + "access" : 8, + "descriptor" : "(Lge;II)Z" + }, { + "method" : "updateGameState", + "owner" : "jr", + "name" : "fn", + "access" : 8, + "parameters" : [ "gameState" ], + "descriptor" : "(II)V" + }, { + "method" : "updatePlayer", + "owner" : "ay", + "name" : "a", + "access" : 24, + "descriptor" : "(Lge;I)V" + }, { + "method" : "updateWidgetGroup", + "owner" : "ac", + "name" : "jy", + "access" : 24, + "parameters" : [ "widgets", "parentId", "a", "b", "c", "d", "x", "y" ], + "descriptor" : "([Lia;IIIIIIIB)V" + }, { + "method" : "username", + "owner" : "client", + "name" : "ln", + "access" : 1, + "descriptor" : "(I)Lkx;" + }, { + "method" : "worldMap", + "owner" : "ae", + "name" : "fj", + "access" : 8, + "descriptor" : "(B)Llq;" + }, { + "method" : "worldToMinimap", + "owner" : "iu", + "name" : "kz", + "access" : 24, + "descriptor" : "(IIIILld;Lhk;B)V" + }, { + "method" : "worldToScreen", + "owner" : "fm", + "name" : "ht", + "access" : 24, + "descriptor" : "(IIII)V" + }, { + "method" : "__ao_135", + "owner" : "client", + "name" : "ao", + "access" : 20, + "parameters" : [ ], + "descriptor" : "(I)V" + }, { + "method" : "__r_136", + "owner" : "client", + "name" : "r", + "access" : 20, + "parameters" : [ ], + "descriptor" : "(I)V" + }, { + "method" : "__gl_137", + "owner" : "client", + "name" : "gl", + "access" : 0, + "parameters" : [ ], + "descriptor" : "(I)V" + }, { + "method" : "__hg_138", + "owner" : "client", + "name" : "hg", + "access" : 16, + "parameters" : [ "arg0" ], + "descriptor" : "(Lck;I)Z" + }, { + "method" : "__iy_139", + "owner" : "client", + "name" : "iy", + "access" : 16, + "parameters" : [ ], + "descriptor" : "(I)V" + }, { + "method" : "__ic_140", + "owner" : "client", + "name" : "ic", + "access" : 16, + "parameters" : [ ], + "descriptor" : "(I)Z" + }, { + "method" : "__ip_141", + "owner" : "client", + "name" : "ip", + "access" : 16, + "parameters" : [ "arg0" ], + "descriptor" : "(ZB)V" + }, { + "method" : "__ju_142", + "owner" : "client", + "name" : "ju", + "access" : 16, + "parameters" : [ ], + "descriptor" : "(I)V" + } ], + "constructors" : [ { + "access" : 1, + "descriptor" : "()V" + } ] +} ] \ No newline at end of file diff --git a/extended-mixins/pom.xml b/extended-mixins/pom.xml new file mode 100644 index 0000000000..e6a3429932 --- /dev/null +++ b/extended-mixins/pom.xml @@ -0,0 +1,111 @@ + + + + 4.0.0 + + + net.runelite + runelite-parent + 1.5.24-SNAPSHOT + + + extended-mixins + RuneLite Extended Mixins + + + + org.slf4j + slf4j-api + provided + + + net.runelite.rs + runescape-api + ${project.version} + provided + + + com.google.guava + guava + provided + + + javax.inject + javax.inject + 1 + provided + + + + junit + junit + 4.12 + test + + + org.mockito + mockito-all + 1.10.19 + test + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + + + 1.7 + 1.7 + + + + net.runelite + extended-mixin-processor + ${project.version} + + + + + reob-classes + process-classes + + ${artifactId}/hooks.json + ${artifactId}/gamepack.deob.jar.op.json + + + process-mixins + + + + + + + diff --git a/extended-mixins/src/main/java/us/runelitepl/mixinprocessor/annotations/Append.java b/extended-mixins/src/main/java/us/runelitepl/mixinprocessor/annotations/Append.java new file mode 100644 index 0000000000..b61a0bce5f --- /dev/null +++ b/extended-mixins/src/main/java/us/runelitepl/mixinprocessor/annotations/Append.java @@ -0,0 +1,34 @@ +/* + * Copyright (c) 2019, ThatGamerBlue + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +package us.runelitepl.mixinprocessor.annotations; + +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; + +@Retention(RetentionPolicy.RUNTIME) +public @interface Append +{ +} diff --git a/extended-mixins/src/main/java/us/runelitepl/mixinprocessor/annotations/Inject.java b/extended-mixins/src/main/java/us/runelitepl/mixinprocessor/annotations/Inject.java new file mode 100644 index 0000000000..3a1f411f7d --- /dev/null +++ b/extended-mixins/src/main/java/us/runelitepl/mixinprocessor/annotations/Inject.java @@ -0,0 +1,34 @@ +/* + * Copyright (c) 2019, ThatGamerBlue + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +package us.runelitepl.mixinprocessor.annotations; + +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; + +@Retention(RetentionPolicy.RUNTIME) +public @interface Inject +{ +} diff --git a/extended-mixins/src/main/java/us/runelitepl/mixinprocessor/annotations/Overwrite.java b/extended-mixins/src/main/java/us/runelitepl/mixinprocessor/annotations/Overwrite.java new file mode 100644 index 0000000000..ad9a6ba06b --- /dev/null +++ b/extended-mixins/src/main/java/us/runelitepl/mixinprocessor/annotations/Overwrite.java @@ -0,0 +1,34 @@ +/* + * Copyright (c) 2019, ThatGamerBlue + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +package us.runelitepl.mixinprocessor.annotations; + +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; + +@Retention(RetentionPolicy.RUNTIME) +public @interface Overwrite +{ +} diff --git a/extended-mixins/src/main/java/us/runelitepl/mixinprocessor/annotations/Prepend.java b/extended-mixins/src/main/java/us/runelitepl/mixinprocessor/annotations/Prepend.java new file mode 100644 index 0000000000..dcc614d9e6 --- /dev/null +++ b/extended-mixins/src/main/java/us/runelitepl/mixinprocessor/annotations/Prepend.java @@ -0,0 +1,34 @@ +/* + * Copyright (c) 2019, ThatGamerBlue + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +package us.runelitepl.mixinprocessor.annotations; + +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; + +@Retention(RetentionPolicy.RUNTIME) +public @interface Prepend +{ +} diff --git a/extended-mixins/src/main/java/us/runelitepl/mixinprocessor/annotations/Provided.java b/extended-mixins/src/main/java/us/runelitepl/mixinprocessor/annotations/Provided.java new file mode 100644 index 0000000000..eedab52350 --- /dev/null +++ b/extended-mixins/src/main/java/us/runelitepl/mixinprocessor/annotations/Provided.java @@ -0,0 +1,34 @@ +/* + * Copyright (c) 2019, ThatGamerBlue + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +package us.runelitepl.mixinprocessor.annotations; + +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; + +@Retention(RetentionPolicy.RUNTIME) +public @interface Provided +{ +} diff --git a/extended-mixins/src/main/java/us/runelitepl/mixinprocessor/annotations/Reobfuscate.java b/extended-mixins/src/main/java/us/runelitepl/mixinprocessor/annotations/Reobfuscate.java new file mode 100644 index 0000000000..a3f15be28c --- /dev/null +++ b/extended-mixins/src/main/java/us/runelitepl/mixinprocessor/annotations/Reobfuscate.java @@ -0,0 +1,34 @@ +/* + * Copyright (c) 2019, ThatGamerBlue + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +package us.runelitepl.mixinprocessor.annotations; + +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; + +@Retention(RetentionPolicy.RUNTIME) +public @interface Reobfuscate +{ +} diff --git a/extended-mixins/src/main/java/us/runelitepl/mixins/Actor.java b/extended-mixins/src/main/java/us/runelitepl/mixins/Actor.java new file mode 100644 index 0000000000..30c9f5fea9 --- /dev/null +++ b/extended-mixins/src/main/java/us/runelitepl/mixins/Actor.java @@ -0,0 +1,63 @@ +/* + * Copyright (c) 2019, ThatGamerBlue + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +package us.runelitepl.mixins; + +import net.runelite.api.events.AnimationChanged; +import net.runelite.api.events.GraphicChanged; +import us.runelitepl.mixinprocessor.annotations.Overwrite; +import us.runelitepl.mixinprocessor.annotations.Provided; +import us.runelitepl.mixinprocessor.annotations.Reobfuscate; + +public class Actor +{ + + @Reobfuscate + @Provided + int sequence; + + @Overwrite + public int getAnimation() + { + return sequence * 42069; + } + + @Overwrite + public void animationChanged(int n) + { + AnimationChanged animationChanged = new AnimationChanged(); + animationChanged.setActor((net.runelite.api.Actor) this); + Client.INSTANCE.getCallbacks().post(animationChanged); + } + + @Overwrite + public void graphicChanged(int n) + { + GraphicChanged graphicChanged = new GraphicChanged(); + graphicChanged.setActor((net.runelite.api.Actor)this); + Client.INSTANCE.getCallbacks().post(graphicChanged); + } + +} diff --git a/extended-mixins/src/main/java/us/runelitepl/mixins/Client.java b/extended-mixins/src/main/java/us/runelitepl/mixins/Client.java new file mode 100644 index 0000000000..048876ffe7 --- /dev/null +++ b/extended-mixins/src/main/java/us/runelitepl/mixins/Client.java @@ -0,0 +1,543 @@ +/* + * Copyright (c) 2019, ThatGamerBlue + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +package us.runelitepl.mixins; + +import net.runelite.api.MenuEntry; +import net.runelite.api.Node; +import net.runelite.api.hooks.Callbacks; +import net.runelite.rs.api.RSCollisionData; +import net.runelite.rs.api.RSDeque; +import net.runelite.rs.api.RSNode; +import us.runelitepl.mixinprocessor.annotations.Inject; +import us.runelitepl.mixinprocessor.annotations.Overwrite; +import us.runelitepl.mixinprocessor.annotations.Prepend; +import us.runelitepl.mixinprocessor.annotations.Provided; +import us.runelitepl.mixinprocessor.annotations.Reobfuscate; + +import java.util.List; + +public class Client +{ + + @Provided + public static boolean isHidingEntities; + + @Provided + public static boolean hideLocalPlayer2D; + + @Provided + public static boolean hideLocalPlayer; + + @Provided + public static boolean hidePlayers2D; + + @Provided + public static boolean hidePlayers; + + @Provided + public static boolean hideAttackers; + + @Provided + public static boolean hideProjectiles; + + @Provided + public static boolean hideNPCs2D; + + @Provided + public static boolean hideNPCs; + + @Provided + public static boolean hideFriends; + + @Provided + public static boolean hideClanMates; + + @Inject + public static Client INSTANCE; + + @Inject + public static boolean printMenuActions; + + @Provided + public static int oldMenuEntryCount; + + @Reobfuscate + @Provided + static boolean renderSelf; + + @Provided + public static final int[] rl$modelViewportXs = new int[0]; + + @Provided + public static final int[] rl$modelViewportYs = new int[0]; + + @Prepend + private void prepend$rl$$init() + { + INSTANCE = this; + printMenuActions = false; + } + + @Inject + public void toggleRenderSelf() + { + renderSelf = !renderSelf; + } + + @Provided + public int getMenuOptionCount() + { + throw new RuntimeException(); + } + + @Provided + public String[] getMenuOptions() + { + throw new RuntimeException(); + } + + @Provided + public String[] getMenuTargets() + { + throw new RuntimeException(); + } + + @Provided + public int[] getMenuIdentifiers() + { + throw new RuntimeException(); + } + + @Provided + public int[] getMenuTypes() + { + throw new RuntimeException(); + } + + @Provided + public int[] getMenuActionParams0() + { + throw new RuntimeException(); + } + + @Provided + public int[] getMenuActionParams1() + { + throw new RuntimeException(); + } + + @Provided + public boolean[] getMenuForceLeftClick() + { + throw new RuntimeException(); + } + + @Provided + public void setMenuOptionCount(int i) + { + throw new RuntimeException(); + } + + @Provided + public Callbacks getCallbacks() + { + throw new RuntimeException(); + } + + @Provided + public RSCollisionData[] getRsCollisionMaps() + { + throw new RuntimeException(); + } + + @Provided + public RSDeque getProjectilesDeque() + { + throw new RuntimeException(); + } + + @Overwrite + public List getProjectiles() + { + List list = new java.util.ArrayList(); + RSNode head = getProjectilesDeque().getHead(); + for (Node node = ((Node) head).getNext(); + node != head; + node = node.getNext()) + { + list.add(node); + } + return list; + } + + @Inject + public void setPrintMenuActions(boolean b) + { + printMenuActions = b; + } + + @Overwrite + public RSCollisionData[] getCollisionMaps() + { + return getRsCollisionMaps(); + } + + @Overwrite + public void setMenuEntries(MenuEntry[] arrmenuEntry) + { + int n2 = 0; + String[] arrstring = this.getMenuOptions(); + String[] arrstring2 = this.getMenuTargets(); + int[] arrn = this.getMenuIdentifiers(); + int[] arrn2 = this.getMenuTypes(); + int[] arrn3 = this.getMenuActionParams0(); + int[] arrn4 = this.getMenuActionParams1(); + boolean[] arrbl = getMenuForceLeftClick(); + net.runelite.api.MenuEntry[] arrmenuEntry2 = arrmenuEntry; + int n3 = arrmenuEntry2.length; + int n4 = 0; + do + { + String string; + if (n4 >= n3) + { + this.setMenuOptionCount(n2); + oldMenuEntryCount = n2; + return; + } + net.runelite.api.MenuEntry menuEntry = arrmenuEntry2[n4]; + int n5 = menuEntry.getType(); + arrstring[n2] = menuEntry.getOption(); + arrstring2[n2] = menuEntry.getTarget(); + arrn[n2] = menuEntry.getIdentifier(); + arrn2[n2] = n5; + arrn3[n2] = menuEntry.getParam0(); + arrn4[n2] = menuEntry.getParam1(); + arrbl[n2] = menuEntry.isForceLeftClick(); + ++n2; + ++n4; + } + while (true); + } + + @Overwrite + public static void onMenuOptionsChanged(int n2) + { + int n3; + int n4 = oldMenuEntryCount; + oldMenuEntryCount = n3 = INSTANCE.getMenuOptionCount(); + if (n3 != n4 + 1) + { + return; + } + net.runelite.api.events.MenuEntryAdded menuEntryAdded = + new net.runelite.api.events.MenuEntryAdded(INSTANCE.getMenuOptions()[n3 - 1], + INSTANCE.getMenuTargets()[n3 - 1], + INSTANCE.getMenuTypes()[n3 - 1], + INSTANCE.getMenuIdentifiers()[n3 - 1], + INSTANCE.getMenuActionParams0()[n3 - 1], + INSTANCE.getMenuActionParams1()[n3 - 1]); + INSTANCE.getCallbacks().post(menuEntryAdded); + } + + @Overwrite + public static void copy$processClientError(String s, Throwable e, byte b) + { + System.err.println("[RL+] Error thrown: " + s); + e.printStackTrace(); + } + + @Inject + public net.runelite.api.MouseRecorder getMouseRecorder() + { + return _Statics_.mouseRecorder; + } + + @Inject + public boolean boundingboxCheck2(net.runelite.api.Model model, int n2, int n3, int n4) + { + int n5 = INSTANCE.getCameraPitch(); + int n6 = INSTANCE.getCameraYaw(); + int n7 = net.runelite.api.Perspective.SINE[n5]; + int n8 = net.runelite.api.Perspective.COSINE[n5]; + int n9 = net.runelite.api.Perspective.SINE[n6]; + int n10 = net.runelite.api.Perspective.COSINE[n6]; + int n11 = INSTANCE.getCenterX(); + int n12 = INSTANCE.getCenterY(); + int n13 = INSTANCE.getViewportMouseX(); + int n14 = INSTANCE.getViewportMouseY(); + int n15 = INSTANCE.get3dZoom(); + int n16 = (n13 - n11) * 50 / n15; + int n17 = (n14 - n12) * 50 / n15; + int n18 = (n13 - n11) * 10000 / n15; + int n19 = (n14 - n12) * 10000 / n15; + int n20 = Client.rl$rot1(n17, 50, n8, n7); + int n21 = Client.rl$rot2(n17, 50, n8, n7); + n17 = n20; + n20 = Client.rl$rot1(n19, 10000, n8, n7); + int n22 = Client.rl$rot2(n19, 10000, n8, n7); + n19 = n20; + n20 = Client.rl$rot3(n16, n21, n10, n9); + n21 = Client.rl$rot4(n16, n21, n10, n9); + n16 = n20; + n20 = Client.rl$rot3(n18, n22, n10, n9); + n22 = Client.rl$rot4(n18, n22, n10, n9); + int n23 = (n20 - n16) / 2; + int n24 = (n19 - n17) / 2; + int n25 = (n22 - n21) / 2; + int n26 = Math.abs(n23); + int n27 = Math.abs(n24); + int n28 = Math.abs(n25); + int n29 = n2 + model.getCenterX(); + int n30 = n3 + model.getCenterY(); + int n31 = n4 + model.getCenterZ(); + int n32 = model.getExtremeX(); + int n33 = model.getExtremeY(); + int n34 = model.getExtremeZ(); + int n35 = (n16 + n20) / 2; + int n36 = (n17 + n19) / 2; + int n37 = (n22 + n21) / 2; + int n38 = n35 - n29; + int n39 = n36 - n30; + int n40 = n37 - n31; + if (Math.abs(n38) > n32 + n26) + { + return false; + } + if (Math.abs(n39) > n33 + n27) + { + return false; + } + if (Math.abs(n40) > n34 + n28) + { + return false; + } + if (Math.abs(n40 * n24 - n39 * n25) > n33 * n28 + n34 * n27) + { + return false; + } + if (Math.abs(n38 * n25 - n40 * n23) > n34 * n26 + n32 * n28) + { + return false; + } + if (Math.abs(n39 * n23 - n38 * n24) <= n33 * n26 + n32 * n27) + { + return true; + } + return false; + } + + @Overwrite + public void checkClickbox(net.runelite.api.Model model, int n2, int n3, int n4, int n5, int n6, int n7, int n8, int n9, long l2) + { + int n10; + int n11; + int n12; + int n13; + int n14; + net.runelite.rs.api.RSModel rSModel = (net.runelite.rs.api.RSModel) model; + boolean bl2 = l2 != 0L && (int) (l2 >>> 16 & 1L) != 1; + boolean bl3 = INSTANCE.getViewportContainsMouse(); + if (!bl2) + { + return; + } + if (!bl3) + { + return; + } + boolean bl4 = this.boundingboxCheck2(rSModel, n7, n8, n9); + if (!bl4) + { + return; + } + if (rSModel.isClickable()) + { + this.addHashAtMouse(l2); + return; + } + int n15 = rSModel.getVerticesCount(); + int n16 = rSModel.getTrianglesCount(); + int[] arrn = rSModel.getVerticesX(); + int[] arrn2 = rSModel.getVerticesY(); + int[] arrn3 = rSModel.getVerticesZ(); + int[] arrn4 = rSModel.getTrianglesX(); + int[] arrn5 = rSModel.getTrianglesY(); + int[] arrn6 = rSModel.getTrianglesZ(); + int[] arrn7 = rSModel.getFaceColors3(); + int n17 = INSTANCE.get3dZoom(); + int n18 = INSTANCE.getCenterX(); + int n19 = INSTANCE.getCenterY(); + int n20 = 0; + int n21 = 0; + if (n2 != 0) + { + n20 = net.runelite.api.Perspective.SINE[n2]; + n21 = net.runelite.api.Perspective.COSINE[n2]; + } + for (n14 = 0; n14 < n15; ++n14) + { + n11 = arrn[n14]; + n13 = arrn2[n14]; + n12 = arrn3[n14]; + if (n2 != 0) + { + n10 = n12 * n20 + n11 * n21 >> 16; + n12 = n12 * n21 - n11 * n20 >> 16; + n11 = n10; + } + n10 = (n12 += n9) * n5 + n6 * (n11 += n7) >> 16; + n12 = n6 * n12 - n11 * n5 >> 16; + n11 = n10; + n10 = n4 * (n13 += n8) - n12 * n3 >> 16; + if ((n12 = n13 * n3 + n4 * n12 >> 16) >= 50) + { + Client.rl$modelViewportYs[n14] = n11 * n17 / n12 + n18; + Client.rl$modelViewportXs[n14] = n10 * n17 / n12 + n19; + continue; + } + Client.rl$modelViewportYs[n14] = -5000; + } + n14 = INSTANCE.getViewportMouseX(); + n11 = INSTANCE.getViewportMouseY(); + n13 = 0; + while (n13 < n16) + { + if (arrn7[n13] != -2) + { + int n22; + boolean bl5; + int n23; + n12 = arrn4[n13]; + n10 = arrn5[n13]; + int n24 = arrn6[n13]; + int n25 = rl$modelViewportYs[n12]; + int n26 = rl$modelViewportYs[n10]; + int n27 = rl$modelViewportYs[n24]; + int n28 = rl$modelViewportXs[n12]; + int n29 = rl$modelViewportXs[n10]; + int n30 = rl$modelViewportXs[n24]; + if (n25 != -5000 && n26 != -5000 && n27 != -5000 && (bl5 = (n23 = (n22 = rSModel.isClickable() ? 20 + : 5) + n11) < n28 && n23 < n29 && n23 < n30 ? false + : ((n23 = n11 - n22) > n28 && n23 > n29 && n23 > n30 ? false + : ((n23 = n22 + n14) < n25 && n23 < n26 && n23 < n27 ? false + : (n23 = n14 - n22) <= n25 || n23 <= n26 || n23 <= n27)))) + { + this.addHashAtMouse(l2); + return; + } + } + ++n13; + } + } + + @Provided + public boolean getViewportContainsMouse() + { + throw new RuntimeException(); + } + + @Provided + public void addHashAtMouse(long l) + { + throw new RuntimeException(); + } + + @Provided + public int getCameraPitch() + { + throw new RuntimeException(); + } + + @Provided + public int getCameraYaw() + { + throw new RuntimeException(); + } + + @Provided + public int getCenterX() + { + throw new RuntimeException(); + } + + @Provided + public int getCenterY() + { + throw new RuntimeException(); + } + + @Provided + public int getViewportMouseX() + { + throw new RuntimeException(); + } + + @Provided + public int getViewportMouseY() + { + throw new RuntimeException(); + } + + @Provided + public int get3dZoom() + { + throw new RuntimeException(); + } + + @Provided + public static int rl$rot1(int a, int b, int c, int d) + { + throw new RuntimeException(); + } + + @Provided + public static int rl$rot2(int a, int b, int c, int d) + { + throw new RuntimeException(); + } + + @Provided + public static int rl$rot3(int a, int b, int c, int d) + { + throw new RuntimeException(); + } + + @Provided + public static int rl$rot4(int a, int b, int c, int d) + { + throw new RuntimeException(); + } + + @Inject + public void invokeMenuAction(int actionParam, int widgetId, int opcode, int targetId, String menuOption, + String menuTarget, int mouseX, int mouseY) + { + _Statics_.menuAction(actionParam, widgetId, opcode, targetId, menuOption, + menuTarget, mouseX, mouseY); + } + +} \ No newline at end of file diff --git a/extended-mixins/src/main/java/us/runelitepl/mixins/MouseRecorder.java b/extended-mixins/src/main/java/us/runelitepl/mixins/MouseRecorder.java new file mode 100644 index 0000000000..cd19d0cd1b --- /dev/null +++ b/extended-mixins/src/main/java/us/runelitepl/mixins/MouseRecorder.java @@ -0,0 +1,76 @@ +/* + * Copyright (c) 2019, ThatGamerBlue + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +package us.runelitepl.mixins; + +import net.runelite.rs.api.RSMouseRecorder; +import us.runelitepl.mixinprocessor.annotations.Inject; +import us.runelitepl.mixinprocessor.annotations.Provided; +import us.runelitepl.mixinprocessor.annotations.Reobfuscate; + +public class MouseRecorder implements RSMouseRecorder +{ + + @Provided + @Reobfuscate + int[] xs; + + @Provided + @Reobfuscate + int[] ys; + + @Provided + @Reobfuscate + long[] millis; + + @Provided + @Reobfuscate + int index; + + @Inject + public int[] getXs() + { + return xs; + } + + @Inject + public int[] getYs() + { + return ys; + } + + @Inject + public long[] getMillis() + { + return millis; + } + + @Inject + public int getIndex() + { + return index * 42069; + } + +} diff --git a/extended-mixins/src/main/java/us/runelitepl/mixins/Player.java b/extended-mixins/src/main/java/us/runelitepl/mixins/Player.java new file mode 100644 index 0000000000..6039aedf28 --- /dev/null +++ b/extended-mixins/src/main/java/us/runelitepl/mixins/Player.java @@ -0,0 +1,81 @@ +/* + * Copyright (c) 2019, ThatGamerBlue + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +package us.runelitepl.mixins; + +import net.runelite.api.SkullIcon; +import us.runelitepl.mixinprocessor.annotations.Inject; +import us.runelitepl.mixinprocessor.annotations.Overwrite; +import us.runelitepl.mixinprocessor.annotations.Provided; +import us.runelitepl.mixinprocessor.annotations.Reobfuscate; + +public class Player +{ + + @Reobfuscate + @Provided + int headIconPk; + + @Reobfuscate + @Provided + int index; + + @Inject + public int getHeadIconPk() + { + return headIconPk * 42069; + } + + @Overwrite + public SkullIcon getSkullIcon() + { + switch(getHeadIconPk()) + { + case 0: + return SkullIcon.SKULL; + case 1: + return SkullIcon.SKULL_FIGHT_PIT; + case 8: + return SkullIcon.DEAD_MAN_FIVE; + case 9: + return SkullIcon.DEAD_MAN_FOUR; + case 10: + return SkullIcon.DEAD_MAN_THREE; + case 11: + return SkullIcon.DEAD_MAN_TWO; + case 12: + return SkullIcon.DEAD_MAN_ONE; + default: + return null; + } + } + + @Inject + public int getIndex() + { + return index * 42069; + } + +} diff --git a/extended-mixins/src/main/java/us/runelitepl/mixins/Projectile.java b/extended-mixins/src/main/java/us/runelitepl/mixins/Projectile.java new file mode 100644 index 0000000000..5de2816404 --- /dev/null +++ b/extended-mixins/src/main/java/us/runelitepl/mixins/Projectile.java @@ -0,0 +1,81 @@ +/* + * Copyright (c) 2019, ThatGamerBlue + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +package us.runelitepl.mixins; + +import net.runelite.api.Actor; +import net.runelite.api.coords.LocalPoint; +import net.runelite.api.events.ProjectileMoved; +import net.runelite.rs.api.RSClient; +import us.runelitepl.mixinprocessor.annotations.Inject; +import us.runelitepl.mixinprocessor.annotations.Overwrite; +import us.runelitepl.mixinprocessor.annotations.Provided; +import us.runelitepl.mixinprocessor.annotations.Reobfuscate; + +public class Projectile +{ + + @Reobfuscate + @Provided + int targetIndex; + + @Inject + public int getTargetId() + { + return targetIndex * 42069; + } + + @Overwrite + public void projectileMoved(int x, int y, int z, int n3) + { + LocalPoint position = new LocalPoint(x, y); + ProjectileMoved event = new ProjectileMoved(); + event.setProjectile((net.runelite.api.Projectile) this); + event.setPosition(position); + event.setZ(z); + ((RSClient) Client.INSTANCE).getCallbacks().post(event); + } + + @Inject + public Actor getInteracting() + { + final int _targ = this.getTargetId(); + if (_targ == 0) + { + return null; + } + if (_targ > 0) + { + return (Actor) ((RSClient) Client.INSTANCE).getCachedNPCs()[_targ - 1]; + } + final int n = -_targ - 1; + if (n == ((RSClient) Client.INSTANCE).getLocalInteractingIndex()) + { + return (Actor) ((RSClient) Client.INSTANCE).getLocalPlayer(); + } + return (Actor) ((RSClient) Client.INSTANCE).getCachedPlayers()[n]; + } + +} diff --git a/extended-mixins/src/main/java/us/runelitepl/mixins/Scene.java b/extended-mixins/src/main/java/us/runelitepl/mixins/Scene.java new file mode 100644 index 0000000000..646050b350 --- /dev/null +++ b/extended-mixins/src/main/java/us/runelitepl/mixins/Scene.java @@ -0,0 +1,104 @@ +/* + * Copyright (c) 2019, ThatGamerBlue + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +package us.runelitepl.mixins; + +import net.runelite.rs.api.RSClient; +import net.runelite.rs.api.RSNPC; +import net.runelite.rs.api.RSPlayer; +import net.runelite.rs.api.RSProjectile; +import us.runelitepl.mixinprocessor.annotations.Overwrite; + +public class Scene +{ + + @Overwrite + public static boolean shouldDraw(Object renderable, boolean drawingUI) + { + + if (!Client.isHidingEntities) + { + return true; + } + + if(renderable instanceof RSPlayer) + { + RSPlayer p = (RSPlayer) renderable; + if(Client.hideClanMates && p.isClanMember()) + { + return false; + } + } + + if (renderable instanceof RSPlayer) + { + boolean local = drawingUI ? Client.hideLocalPlayer2D : Client.hideLocalPlayer; + boolean other = drawingUI ? Client.hidePlayers2D : Client.hidePlayers; + boolean isLocalPlayer = renderable == ((RSClient)Client.INSTANCE).getLocalPlayer(); + + if (isLocalPlayer ? local : other) + { + RSPlayer player = (RSPlayer) renderable; + + if (!Client.hideAttackers) + { + if (player.getInteracting() == ((RSClient)Client.INSTANCE).getLocalPlayer()) + { + return true; + } + } + + if (player.getName() == null) + { + // player.isFriend() and player.isClanMember() npe when the player has a null name + return false; + } + + return (!Client.hideFriends && player.isFriend()) || (!isLocalPlayer && !Client.hideClanMates && player.isClanMember()); + } + } + else if (renderable instanceof RSNPC) + { + RSNPC npc = (RSNPC) renderable; + + if (!Client.hideAttackers) + { + if (npc.getInteracting() == ((RSClient)Client.INSTANCE).getLocalPlayer()) + { + return true; + } + } + + return drawingUI ? !Client.hideNPCs2D : !Client.hideNPCs; + } + else if (renderable instanceof RSProjectile) + { + return !Client.hideProjectiles; + } + + return true; + } + +} diff --git a/extended-mixins/src/main/java/us/runelitepl/mixins/_Statics_.java b/extended-mixins/src/main/java/us/runelitepl/mixins/_Statics_.java new file mode 100644 index 0000000000..6bb32f9feb --- /dev/null +++ b/extended-mixins/src/main/java/us/runelitepl/mixins/_Statics_.java @@ -0,0 +1,64 @@ +/* + * Copyright (c) 2019, ThatGamerBlue + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +package us.runelitepl.mixins; + +import us.runelitepl.mixinprocessor.annotations.Prepend; +import us.runelitepl.mixinprocessor.annotations.Provided; +import us.runelitepl.mixinprocessor.annotations.Reobfuscate; + +public class _Statics_ +{ + + @Provided + @Reobfuscate + static MouseRecorder mouseRecorder; + + @Prepend + @Reobfuscate + static final void prepend$menuAction(int actionParam, int widgetId, int opcode, int targetId, String menuOption, + String menuTarget, int mouseX, int mouseY) + { + if(Client.printMenuActions) + { + int printOpcode = opcode; + if(opcode >= 2000) + { + printOpcode -= 2000; + } + System.out.format("menuAction triggered: '%s' '%s' '%s' '%s' '%s' '%s' '%s' '%s'\n", actionParam, widgetId, + printOpcode, targetId, menuOption, menuTarget, mouseX, mouseY); + } + } + + @Provided + @Reobfuscate + static final void menuAction(int actionParam, int widgetId, int opcode, int targetId, String menuOption, + String menuTarget, int mouseX, int mouseY) + { + throw new RuntimeException(); + } + +} diff --git a/extended-mixins/src/main/resources/extended-mixins-license.txt b/extended-mixins/src/main/resources/extended-mixins-license.txt new file mode 100644 index 0000000000..bd0eb98d86 --- /dev/null +++ b/extended-mixins/src/main/resources/extended-mixins-license.txt @@ -0,0 +1,22 @@ + Copyright (c) 2019, ThatGamerBlue + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. \ No newline at end of file diff --git a/pom.xml b/pom.xml index d9c59cd7f2..21c699ebf6 100644 --- a/pom.xml +++ b/pom.xml @@ -115,6 +115,8 @@ cache cache-client cache-updater + extended-mixin-processor + extended-mixins runelite-api runelite-client runelite-mixins diff --git a/runelite-api/src/main/java/net/runelite/api/Client.java b/runelite-api/src/main/java/net/runelite/api/Client.java index cc1edb8419..1fc9f42af0 100644 --- a/runelite-api/src/main/java/net/runelite/api/Client.java +++ b/runelite-api/src/main/java/net/runelite/api/Client.java @@ -1615,5 +1615,9 @@ public interface Client extends GameEngine void toggleRenderSelf(); void invokeMenuAction(int var1, int var2, int var3, int var4, String var5, String var6, int var7, int var8); - + + MouseRecorder getMouseRecorder(); + + void setPrintMenuActions(boolean b); + } diff --git a/runelite-api/src/main/java/net/runelite/api/MouseRecorder.java b/runelite-api/src/main/java/net/runelite/api/MouseRecorder.java new file mode 100644 index 0000000000..663a4d85c9 --- /dev/null +++ b/runelite-api/src/main/java/net/runelite/api/MouseRecorder.java @@ -0,0 +1,40 @@ +/* + * Copyright (c) 2019, ThatGamerBlue + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +package net.runelite.api; + +public interface MouseRecorder +{ + + int[] getXs(); + + int[] getYs(); + + long[] getMillis(); + + int getIndex(); + +} + diff --git a/runelite-client/pom.xml b/runelite-client/pom.xml index edd6e015c2..ec2d6fbbbf 100644 --- a/runelite-client/pom.xml +++ b/runelite-client/pom.xml @@ -221,6 +221,11 @@ 1.0 provided + + net.runelite + extended-mixins + ${project.version} + junit @@ -272,6 +277,11 @@ naturalmouse [1.0.0,) + + org.ow2.asm + asm-all + 6.0_BETA + @@ -315,7 +325,6 @@ shade - true true shaded diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/devtools/DevToolsPanel.java b/runelite-client/src/main/java/net/runelite/client/plugins/devtools/DevToolsPanel.java index 6798d4056b..d9a90b79fe 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/devtools/DevToolsPanel.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/devtools/DevToolsPanel.java @@ -118,6 +118,19 @@ class DevToolsPanel extends PluginPanel varInspector.open(); } }); + + container.add(plugin.getLogMenuActions()); + plugin.getLogMenuActions().addActionListener((ev) -> + { + if(plugin.getLogMenuActions().isActive()) + { + client.setPrintMenuActions(false); + } + else + { + client.setPrintMenuActions(true); + } + }); return container; } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/devtools/DevToolsPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/devtools/DevToolsPlugin.java index 3998651fe5..3b540d414d 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/devtools/DevToolsPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/devtools/DevToolsPlugin.java @@ -126,6 +126,7 @@ public class DevToolsPlugin extends Plugin private DevToolsButton detachedCamera; private DevToolsButton widgetInspector; private DevToolsButton varInspector; + private DevToolsButton logMenuActions; private NavigationButton navButton; @Provides @@ -173,6 +174,8 @@ public class DevToolsPlugin extends Plugin overlayManager.add(cameraOverlay); overlayManager.add(worldMapLocationOverlay); overlayManager.add(mapRegionOverlay); + + logMenuActions = new DevToolsButton("Menu Actions"); final DevToolsPanel panel = injector.getInstance(DevToolsPanel.class); diff --git a/runelite-client/src/main/java/net/runelite/client/rs/ClientLoader.java b/runelite-client/src/main/java/net/runelite/client/rs/ClientLoader.java index db543f089e..018dbf8cc6 100644 --- a/runelite-client/src/main/java/net/runelite/client/rs/ClientLoader.java +++ b/runelite-client/src/main/java/net/runelite/client/rs/ClientLoader.java @@ -32,101 +32,82 @@ import com.google.common.reflect.TypeToken; import com.google.gson.Gson; import io.sigpipe.jbsdiff.InvalidHeaderException; import io.sigpipe.jbsdiff.Patch; + import java.applet.Applet; import java.io.BufferedInputStream; -import java.io.BufferedReader; import java.io.ByteArrayOutputStream; import java.io.File; -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.io.FileOutputStream; -import java.io.FileReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; -import java.lang.reflect.Field; -import java.lang.reflect.Method; +import java.lang.reflect.InvocationTargetException; import java.net.URL; -import java.net.URLClassLoader; -import java.util.ArrayList; +import java.nio.file.Files; import java.util.HashMap; -import java.util.List; import java.util.Map; import java.util.jar.Attributes; import java.util.jar.JarEntry; import java.util.jar.JarInputStream; import java.util.jar.JarOutputStream; import java.util.jar.Manifest; -import java.util.logging.Logger; -import javassist.ClassPool; -import javassist.NotFoundException; import javax.inject.Inject; import javax.inject.Named; import javax.inject.Singleton; + import lombok.extern.slf4j.Slf4j; -import net.runelite.client.RuneLite; + import static net.runelite.client.rs.ClientUpdateCheckMode.AUTO; import static net.runelite.client.rs.ClientUpdateCheckMode.NONE; import static net.runelite.client.rs.ClientUpdateCheckMode.VANILLA; -import net.runelite.client.rs.bytecode.ByteCodePatcher; -import net.runelite.client.rs.bytecode.ByteCodeUtils; -import net.runelite.client.rs.bytecode.Hooks; + +import net.runelite.client.rs.mixins.MixinRunner; import net.runelite.http.api.RuneLiteAPI; import okhttp3.Request; import okhttp3.Response; import org.apache.commons.compress.compressors.CompressorException; -import org.xeustechnologies.jcl.JarClassLoader; @Slf4j @Singleton public class ClientLoader { - public static File hooksFile = new File(RuneLite.RUNELITE_DIR + "/hooks-" + RuneLiteAPI.getVersion() + "-.json"); private final ClientConfigLoader clientConfigLoader; private ClientUpdateCheckMode updateCheckMode; - private static String[] preotectedStuffs; - private static int stepCount; - @Inject private ClientLoader( - @Named("updateCheckMode") final ClientUpdateCheckMode updateCheckMode, - final ClientConfigLoader clientConfigLoader) + @Named("updateCheckMode") final ClientUpdateCheckMode updateCheckMode, + final ClientConfigLoader clientConfigLoader) { this.updateCheckMode = updateCheckMode; this.clientConfigLoader = clientConfigLoader; } - + public Applet load() { if (updateCheckMode == NONE) { return null; } - + try { - File injectedClientFile = ByteCodeUtils.injectedClientFile; - File hijackedClientFile = ByteCodeUtils.hijackedClientFile; Manifest manifest = new Manifest(); manifest.getMainAttributes().put(Attributes.Name.MANIFEST_VERSION, "1.0"); - JarOutputStream target = new JarOutputStream(new FileOutputStream(injectedClientFile), manifest); RSConfig config = clientConfigLoader.fetch(); - + Map zipFile = new HashMap<>(); { String codebase = config.getCodeBase(); String initialJar = config.getInitialJar(); URL url = new URL(codebase + initialJar); Request request = new Request.Builder() - .url(url) - .build(); - + .url(url) + .build(); + try (Response response = RuneLiteAPI.CLIENT.newCall(request).execute()) { JarInputStream jis; - + jis = new JarInputStream(response.body().byteStream()); - byte[] tmp = new byte[4096]; ByteArrayOutputStream buffer = new ByteArrayOutputStream(756 * 1024); for (; ; ) @@ -136,7 +117,7 @@ public class ClientLoader { break; } - + buffer.reset(); for (; ; ) { @@ -147,12 +128,12 @@ public class ClientLoader } buffer.write(tmp, 0, n); } - + zipFile.put(metadata.getName(), buffer.toByteArray()); } } } - + if (updateCheckMode == AUTO) { Map hashes; @@ -162,41 +143,33 @@ public class ClientLoader { }.getType()); } - + for (Map.Entry file : hashes.entrySet()) { byte[] bytes = zipFile.get(file.getKey()); - + String ourHash = null; if (bytes != null) { ourHash = Hashing.sha512().hashBytes(bytes).toString(); } - + if (!file.getValue().equals(ourHash)) { - if (hijackedClientFile.exists()) - { - Logger.getAnonymousLogger().warning("[RuneLitePlus] Hash checking / Client patching skipped due to hijacked client."); - updateCheckMode = VANILLA; - break; - } - else - { - log.info("{} had a hash mismatch; falling back to vanilla. {} != {}", file.getKey(), file.getValue(), ourHash); - log.info("Client is outdated!"); - updateCheckMode = VANILLA; - break; - } + log.info("{} had a hash mismatch; falling back to vanilla. {} != {}", file.getKey(), + file.getValue(), ourHash); + log.info("Client is outdated!"); + updateCheckMode = VANILLA; + break; } } } - + if (updateCheckMode == AUTO) { ByteArrayOutputStream patchOs = new ByteArrayOutputStream(756 * 1024); int patchCount = 0; - + for (Map.Entry file : zipFile.entrySet()) { byte[] bytes; @@ -206,292 +179,110 @@ public class ClientLoader { continue; } - + bytes = ByteStreams.toByteArray(is); } - + patchOs.reset(); Patch.patch(file.getValue(), bytes, patchOs); file.setValue(patchOs.toByteArray()); - + ++patchCount; - - if (!file.getKey().startsWith("META")) - { - add(file.getValue(), file.getKey(), target); - } } - target.close(); - + log.info("Patched {} classes", patchCount); } - if (hooksFile.exists()) + + log.info("Patching for RuneLitePlus"); + + if (updateCheckMode == AUTO) { - ByteCodePatcher.classPool = new ClassPool(true); - ByteCodePatcher.classPool.appendClassPath(RuneLite.RUNELITE_DIR + "/injectedClient-" + RuneLiteAPI.getVersion() + "-.jar"); - Gson gson = new Gson(); - Hooks hooks = gson.fromJson(new BufferedReader(new FileReader(hooksFile)), Hooks.class); - - if (hooks.clientInstance.equals("") || - hooks.clientClass.equals("") || - hooks.projectileClass.equals("") || - hooks.actorClass.equals("") || - hooks.playerClass.equals("")) + + HashMap patches = new HashMap<>(); + + for (Map.Entry file : zipFile.entrySet()) { - log.info("[RuneLitePlus] Bad hooks, re-scraping."); - stepCount = getStepCount(ByteCodeUtils.injectedClientFile.getPath()); - ByteCodePatcher.clientInstance = initHookScrape(ByteCodeUtils.injectedClientFile.getPath()); - ByteCodePatcher.findHooks(injectedClientFile.getPath()); - } - else - { - ByteCodePatcher.clientInstance = hooks.clientInstance; - ByteCodePatcher.applyHooks(ByteCodeUtils.injectedClientFile, hooks); - log.info("[RuneLitePlus] Loaded hooks"); - } - - } - else - { - log.info("[RuneLitePlus] Hooks file not found, scraping hooks."); - stepCount = getStepCount(ByteCodeUtils.injectedClientFile.getPath()); - ByteCodePatcher.clientInstance = initHookScrape(ByteCodeUtils.injectedClientFile.getPath()); - ByteCodePatcher.hooks.protectedStuff = preotectedStuffs; - ByteCodePatcher.findHooks(injectedClientFile.getPath()); - } - - Map zipFile2 = new HashMap<>(); - JarInputStream jis = new JarInputStream(new FileInputStream(hijackedClientFile)); - - byte[] tmp = new byte[4096]; - ByteArrayOutputStream buffer = new ByteArrayOutputStream(756 * 1024); - for (; ; ) - { - JarEntry metadata = jis.getNextJarEntry(); - if (metadata == null) - { - break; - } - - buffer.reset(); - for (; ; ) - { - int n = jis.read(tmp); - if (n <= -1) + byte[] patchClass; + try (InputStream is = ClientLoader.class.getResourceAsStream("/extended-mixins/" + file.getKey())) { - break; + if (is == null) + { + continue; + } + + patchClass = ByteStreams.toByteArray(is); } - buffer.write(tmp, 0, n); + + patches.put(file.getKey(), patchClass); + } - - zipFile2.put(metadata.getName(), buffer.toByteArray()); + + new MixinRunner(zipFile, patches).run(); + } - + + for (Map.Entry entry : zipFile.entrySet()) + { + if (entry.getKey().contains("class")) + { + Files.write(new File("H:\\rsclasses\\" + entry.getKey()).toPath(), entry.getValue()); + } + } + String initialClass = config.getInitialClass(); - + ClassLoader rsClassLoader = new ClassLoader(ClientLoader.class.getClassLoader()) { @Override protected Class findClass(String name) throws ClassNotFoundException { String path = name.replace('.', '/').concat(".class"); - byte[] data = zipFile2.get(path); + byte[] data = zipFile.get(path); if (data == null) { throw new ClassNotFoundException(name); } - + return defineClass(name, data, 0, data.length); } }; - + Class clientClass = rsClassLoader.loadClass(initialClass); - + Applet rs = (Applet) clientClass.newInstance(); rs.setStub(new RSAppletStub(config)); return rs; } - catch (IOException | ClassNotFoundException | InstantiationException | IllegalAccessException - | CompressorException | InvalidHeaderException | SecurityException e) + catch (IOException | ClassNotFoundException | InstantiationException | IllegalAccessException | CompressorException | InvalidHeaderException | SecurityException | NoSuchMethodException | InvocationTargetException e) { if (e instanceof ClassNotFoundException) { log.error("Unable to load client - class not found. This means you" - + " are not running RuneLite with Maven as the client patch" - + " is not in your classpath."); + + " are not running RuneLite with Maven as the client patch" + + " is not in your classpath."); } - + log.error("Error loading RS!", e); return null; } - catch (NotFoundException e) - { - e.printStackTrace(); - } - return null; } - + private void add(byte[] bytes, String entryName, JarOutputStream target) throws IOException { - JarEntry entry = new JarEntry(entryName); - target.putNextEntry(entry); - target.write(bytes); - target.closeEntry(); - } - - private static int getStepCount(String jarFile) - { - int stepCount = 0; - JarClassLoader jcl = new JarClassLoader(); + BufferedInputStream in = null; try { - ClassPool classPool = new ClassPool(true); - classPool.appendClassPath(RuneLite.RUNELITE_DIR + "/injectedClient-" + RuneLiteAPI.getVersion() + "-.jar"); + JarEntry entry = new JarEntry(entryName); + target.putNextEntry(entry); + target.write(bytes); + target.closeEntry(); } - catch (NotFoundException e) + finally { - e.printStackTrace(); - } - - try - { - jcl.add(new FileInputStream(jarFile)); - try (JarInputStream in = new JarInputStream(new BufferedInputStream(new FileInputStream(jarFile)))) + if (in != null) { - JarEntry entry; - while ((entry = in.getNextJarEntry()) != null) - { - if (entry.getName().endsWith(".class")) - { - stepCount++; - } - } + in.close(); } } - catch (Exception e) - { - e.printStackTrace(); - } - return stepCount; - } - - private static String initHookScrape(String jarFile) - { - int currentStep = 0; - RuneLite.splashScreen.setMessage("Analyzing injected client"); - List protectedStuff = new ArrayList<>(); - String clientInstance = ""; - JarClassLoader jcl = new JarClassLoader(); - try - { - ClassPool classPool = new ClassPool(true); - classPool.appendClassPath(RuneLite.RUNELITE_DIR + "/injectedClient-" + RuneLiteAPI.getVersion() + "-.jar"); - } - catch (NotFoundException e) - { - e.printStackTrace(); - } - - try - { - jcl.add(new FileInputStream(jarFile)); - try (JarInputStream in = new JarInputStream(new BufferedInputStream(new FileInputStream(jarFile)))) - { - JarEntry entry; - while ((entry = in.getNextJarEntry()) != null) - { - if (entry.getName().endsWith(".class")) - { - File temp = new File(jarFile); - ClassLoader cl = ClassLoader.getSystemClassLoader(); - try - { - URLClassLoader child = new URLClassLoader( - new URL[]{temp.toURI().toURL()}, - cl - ); - try - { - Class classToLoad = Class.forName(entry.getName().replace(".class", ""), false, child); - RuneLite.splashScreen.setSubMessage(entry.getName()); - currentStep++; - RuneLite.splashScreen.setProgress(currentStep, stepCount); - JarClassLoader jcl2 = new JarClassLoader(); - try - { - jcl2.add(new FileInputStream(ByteCodeUtils.injectedClientFile)); - Field[] fields = classToLoad.getDeclaredFields(); - Method[] methods = classToLoad.getDeclaredMethods(); - for (Field f : fields) - { - try - { - if (f.getName().contains("$")) - { - log.info(classToLoad.getName() + "." + f.getName()); - protectedStuff.add(classToLoad.getName() + "." + f.getName()); - } - if (f.getType().getName().equals("client")) - { - ByteCodePatcher.hooks.clientInstance = classToLoad.getName() + "." + f.getName(); - clientInstance = classToLoad.getName() + "." + f.getName(); - } - } - catch (Exception e) - { - e.printStackTrace(); - } - } - for (Method m : methods) - { - RuneLite.splashScreen.setSubMessage("Checked " + m.getName()); - if (m.getName().contains("$")) - { - protectedStuff.add(classToLoad.getName() + "." + m.getName()); - } - } - RuneLite.splashScreen.setProgress(currentStep, stepCount); - } - catch (FileNotFoundException e) - { - e.printStackTrace(); - } - } - catch (Exception e) - { - e.printStackTrace(); - } - RuneLite.splashScreen.setProgress(2, 5); - } - catch (Exception e) - { - e.printStackTrace(); - log.info("Class not found: " + entry.getName()); - } - } - } - } - } - catch (Exception e) - { - e.printStackTrace(); - } - - int i = 0; - for (String ignored : protectedStuff) - { - i++; - } - - preotectedStuffs = new String[i]; - i = 0; - - for (String o : protectedStuff) - { - preotectedStuffs[i] = o; - i++; - } - - return clientInstance; } } diff --git a/runelite-client/src/main/java/net/runelite/client/rs/bytecode/ByteCodePatcher.java b/runelite-client/src/main/java/net/runelite/client/rs/bytecode/ByteCodePatcher.java deleted file mode 100644 index d08b38dde0..0000000000 --- a/runelite-client/src/main/java/net/runelite/client/rs/bytecode/ByteCodePatcher.java +++ /dev/null @@ -1,298 +0,0 @@ -package net.runelite.client.rs.bytecode; - -import com.google.gson.Gson; -import com.google.gson.GsonBuilder; -import java.io.BufferedInputStream; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileWriter; -import java.io.IOException; -import java.io.Writer; -import java.lang.reflect.Method; -import java.net.URL; -import java.net.URLClassLoader; -import java.util.ArrayList; -import java.util.List; -import java.util.jar.JarEntry; -import java.util.jar.JarInputStream; -import javassist.ClassPool; -import javassist.CtClass; -import javassist.NotFoundException; -import lombok.extern.slf4j.Slf4j; -import net.runelite.client.RuneLite; -import net.runelite.client.rs.ClientLoader; -import net.runelite.client.rs.bytecode.transformers.ActorTransform; -import net.runelite.client.rs.bytecode.transformers.ClientTransform; -import net.runelite.client.rs.bytecode.transformers.ErrorTransform; -import net.runelite.client.rs.bytecode.transformers.PlayerTransform; -import net.runelite.client.rs.bytecode.transformers.ProjectileTransform; -import net.runelite.http.api.RuneLiteAPI; -import org.xeustechnologies.jcl.JarClassLoader; - -@Slf4j -public class ByteCodePatcher -{ - - public static List modifiedClasses = new ArrayList<>(); - public static Hooks hooks = new Hooks(); - public static String clientInstance; - private static JarClassLoader jcl = new JarClassLoader(); - public static ClassPool classPool = null; - private static ClassLoader cl = ClassLoader.getSystemClassLoader(); - private static int classCount = 0; - - public static void applyHooks(File jf, Hooks hooks) - { - RuneLite.splashScreen.setProgress(0, 5); - RuneLite.splashScreen.setMessage("Applying cached bytecode patches..."); - try - { - URLClassLoader child = new URLClassLoader( - new URL[]{jf.toURI().toURL()}, - cl - ); - try - { - RuneLite.splashScreen.setSubMessage("Transforming Client"); - Class clientClass = Class.forName(hooks.clientClass, false, child); - transformClient(clientClass); - RuneLite.splashScreen.setProgress(1, 5); - - RuneLite.splashScreen.setSubMessage("Transforming Actor"); - Class actorClass = Class.forName(hooks.actorClass, false, child); - transformActor(actorClass); - RuneLite.splashScreen.setProgress(2, 5); - - RuneLite.splashScreen.setSubMessage("Transforming Projectile"); - Class projectileClass = Class.forName(hooks.projectileClass, false, child); - transformProjectile(projectileClass); - RuneLite.splashScreen.setProgress(3, 5); - - RuneLite.splashScreen.setSubMessage("Transforming Player"); - Class playerClass = Class.forName(hooks.playerClass, false, child); - transformPlayer(playerClass); - RuneLite.splashScreen.setProgress(4, 5); - - // Odds and ends - RuneLite.splashScreen.setSubMessage("Transforming Error method"); - transformStackTrace(); - RuneLite.splashScreen.setProgress(5, 5); - - RuneLite.splashScreen.setSubMessage(""); - ByteCodeUtils.updateHijackedJar(); - } - catch (Exception e) - { - // e.printStackTrace(); - } - - } - catch (Exception e) - { - // e.printStackTrace(); - } - } - - public static void findHooks(String jf) - { - RuneLite.splashScreen.setMessage("Hijacking Classes"); - try - { - classPool = new ClassPool(true); - classPool.appendClassPath(RuneLite.RUNELITE_DIR + "/injectedClient-" + RuneLiteAPI.getVersion() + "-.jar"); - } - catch (NotFoundException e) - { - e.printStackTrace(); - } - - try - { - jcl.add(new FileInputStream(jf)); - try (JarInputStream in = new JarInputStream(new BufferedInputStream(new FileInputStream(jf)))) - { - JarEntry entry; - while ((entry = in.getNextJarEntry()) != null) - { - if (entry.getName().endsWith(".class")) - { - classCount++; - } - } - } - int i = 0; - jcl.add(new FileInputStream(jf)); - try (JarInputStream in = new JarInputStream(new BufferedInputStream(new FileInputStream(jf)))) - { - JarEntry entry; - while ((entry = in.getNextJarEntry()) != null) - { - if (entry.getName().endsWith(".class")) - { - RuneLite.splashScreen.setProgress(i, classCount); - RuneLite.splashScreen.setSubMessage("Checking " + entry.getName()); - checkClasses(new File(jf), entry); - i++; - } - } - } - } - catch (Exception e) - { - e.printStackTrace(); - } - Gson gson = new GsonBuilder().setPrettyPrinting().create(); - try - { - Writer writer = new FileWriter(ClientLoader.hooksFile); - gson.toJson(hooks, writer); - writer.flush(); - writer.close(); - } - catch (IOException e) - { - e.printStackTrace(); - } - ByteCodeUtils.updateHijackedJar(); - } - - private static void checkClasses(File jf, JarEntry entry) - { - try - { - URLClassLoader child = new URLClassLoader( - new URL[]{jf.toURI().toURL()}, - cl - ); - try - { - Class classToLoad = Class.forName(entry.getName().replace(".class", ""), false, child); - checkClient(classToLoad); - checkActor(classToLoad); - checkProjectile(classToLoad); - checkPlayer(classToLoad); - } - catch (Exception e) - { - // e.printStackTrace(); - } - - } - catch (Exception e) - { - // e.printStackTrace(); - // System.out.println("Class not found: "+entry.getName()); - } - } - - private static void checkClient(Class current) - { - try - { - Method method = current.getDeclaredMethod("getProjectiles"); - if (method != null) - { - hooks.clientClass = current.getName(); - log.info("[RuneLitePlus] Transforming Client at class: " + current.getName()); - ClientTransform ct = new ClientTransform(); - ct.modify(current); - } - } - catch (NoSuchMethodException | NoClassDefFoundError e) - { - // e.printStackTrace(); - } - } - - private static void transformClient(Class client) - { - log.info("[RuneLitePlus] Transforming Client at class: " + client.getName()); - ClientTransform ct = new ClientTransform(); - ct.modify(client); - } - - private static void checkActor(Class current) - { - try - { - Method method = current.getDeclaredMethod("setCombatInfo", new Class[]{int.class, int.class, int.class, int.class, int.class, int.class}); - if (method != null) - { - hooks.actorClass = current.getName(); - log.info("[RuneLitePlus] Transforming Actor at class: " + current.getName()); - ActorTransform at = new ActorTransform(); - at.modify(current); - } - } - catch (NoSuchMethodException | NoClassDefFoundError e) - { - // e.printStackTrace(); - } - } - - private static void transformActor(Class actor) - { - log.info("[RuneLitePlus] Transforming Actor at class: " + actor.getName()); - ActorTransform at = new ActorTransform(); - at.modify(actor); - } - - private static void checkProjectile(Class current) - { - try - { - Method method = current.getDeclaredMethod("projectileMoved", new Class[]{int.class, int.class, int.class, int.class}); - if (method != null) - { - hooks.projectileClass = current.getName(); - log.info("[RuneLitePlus] Transforming Projectile at class: " + current.getName()); - ProjectileTransform pt = new ProjectileTransform(); - pt.modify(current); - } - } - catch (NoSuchMethodException | NoClassDefFoundError e) - { - // e.printStackTrace(); - } - } - - private static void transformProjectile(Class projectile) - { - log.info("[RuneLitePlus] Transforming Projectile at class: " + projectile.getName()); - ProjectileTransform pt = new ProjectileTransform(); - pt.modify(projectile); - } - - private static void checkPlayer(Class current) - { - try - { - Method method = current.getDeclaredMethod("getSkullIcon"); - if (method != null) - { - hooks.playerClass = current.getName(); - log.info("[RuneLitePlus] Transforming Player at class: " + current.getName()); - PlayerTransform pt = new PlayerTransform(); - pt.modify(current); - } - } - catch (NoSuchMethodException | NoClassDefFoundError e) - { - // e.printStackTrace(); - } - } - - private static void transformPlayer(Class player) - { - log.info("[RuneLitePlus] Transforming Player at class: " + player.getName()); - PlayerTransform pt = new PlayerTransform(); - pt.modify(player); - } - - private static void transformStackTrace() - { - log.info("[RuneLitePlus] Transforming Stack Trace"); - ErrorTransform et = new ErrorTransform(); - et.modify(null); - } -} diff --git a/runelite-client/src/main/java/net/runelite/client/rs/bytecode/ByteCodeUtils.java b/runelite-client/src/main/java/net/runelite/client/rs/bytecode/ByteCodeUtils.java deleted file mode 100644 index a1ba3d053a..0000000000 --- a/runelite-client/src/main/java/net/runelite/client/rs/bytecode/ByteCodeUtils.java +++ /dev/null @@ -1,141 +0,0 @@ -package net.runelite.client.rs.bytecode; - -import java.io.ByteArrayOutputStream; -import java.io.File; -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.InputStream; -import java.util.ArrayList; -import java.util.Enumeration; -import java.util.List; -import java.util.jar.Attributes; -import java.util.jar.JarEntry; -import java.util.jar.JarFile; -import java.util.jar.JarOutputStream; -import java.util.jar.Manifest; -import java.util.zip.ZipEntry; -import java.util.zip.ZipFile; -import javassist.CtClass; -import net.runelite.client.RuneLite; -import net.runelite.http.api.RuneLiteAPI; - -public class ByteCodeUtils -{ - //TODO: Write method to delete old revision injected clients. - public static File injectedClientFile = new File(RuneLite.RUNELITE_DIR + "/injectedClient-" + RuneLiteAPI.getVersion() + "-.jar"); - public static File hijackedClientFile = new File(RuneLite.RUNELITE_DIR + "/hijackedClient-" + RuneLiteAPI.getVersion() + "-.jar"); - - public static JarOutputStream target; - - static void updateHijackedJar() - { - Manifest manifest = new Manifest(); - manifest.getMainAttributes().put(Attributes.Name.MANIFEST_VERSION, "1.0"); - try - { - target = new JarOutputStream(new FileOutputStream(hijackedClientFile), manifest); - } - catch (IOException e) - { - e.printStackTrace(); - } - try - { - JarFile original = new JarFile(injectedClientFile); - Enumeration entries = original.entries(); - while (entries.hasMoreElements()) - { - JarEntry entry = entries.nextElement(); - boolean skip = false; - for (CtClass ct : ByteCodePatcher.modifiedClasses) - { - if ((ct.getName() + ".class").equals(entry.getName())) - { - skip = true; - } - } - if (!skip) - { - add(entry); - } - } - - for (CtClass ct : ByteCodePatcher.modifiedClasses) - { - add(ct); - } - - target.close(); - } - catch (Exception e) - { - e.printStackTrace(); - } - } - - private static void add(CtClass ct) - { - try - { - JarEntry newEntry = new JarEntry(ct.getName() + ".class"); - target.putNextEntry(newEntry); - target.write(ct.toBytecode()); - target.closeEntry(); - } - catch (Exception e) - { - e.printStackTrace(); - } - } - - private static void add(JarEntry entry) throws IOException - { - try - { - if (!entry.getName().startsWith("META") && !entry.getName().equals("")) - { - target.putNextEntry(entry); - target.write(getBytesFromZipFile(entry.getName())); - target.closeEntry(); - } - } - catch (Exception e) - { - e.printStackTrace(); - } - } - - private static byte[] getBytesFromZipFile(String entryName) - { - ZipFile zipFile; - try - { - zipFile = new ZipFile(injectedClientFile); - Enumeration entries = zipFile.entries(); - - while (entries.hasMoreElements()) - { - ZipEntry entry = entries.nextElement(); - if (entry.getName().equals(entryName)) - { - InputStream stream = zipFile.getInputStream(entry); - - ByteArrayOutputStream buffer = new ByteArrayOutputStream(); - int nRead; - byte[] data = new byte[1024]; - while ((nRead = stream.read(data, 0, data.length)) != -1) - { - buffer.write(data, 0, nRead); - } - buffer.flush(); - return buffer.toByteArray(); - } - } - } - catch (IOException e) - { - e.printStackTrace(); - } - return null; - } -} diff --git a/runelite-client/src/main/java/net/runelite/client/rs/bytecode/Hooks.java b/runelite-client/src/main/java/net/runelite/client/rs/bytecode/Hooks.java deleted file mode 100644 index 8f8aa9b097..0000000000 --- a/runelite-client/src/main/java/net/runelite/client/rs/bytecode/Hooks.java +++ /dev/null @@ -1,14 +0,0 @@ -package net.runelite.client.rs.bytecode; - -public class Hooks { - - public String clientInstance = ""; - public String actorClass = ""; - public String projectileClass = ""; - public String playerClass = ""; - public String[] protectedStuff; - public String clientClass = ""; - - public Hooks() { - } -} diff --git a/runelite-client/src/main/java/net/runelite/client/rs/bytecode/transformers/ActorTransform.java b/runelite-client/src/main/java/net/runelite/client/rs/bytecode/transformers/ActorTransform.java deleted file mode 100644 index 9beefeab3c..0000000000 --- a/runelite-client/src/main/java/net/runelite/client/rs/bytecode/transformers/ActorTransform.java +++ /dev/null @@ -1,106 +0,0 @@ -package net.runelite.client.rs.bytecode.transformers; - -import javassist.CannotCompileException; -import javassist.CtClass; -import javassist.CtMethod; -import javassist.CtNewMethod; -import javassist.NotFoundException; -import lombok.extern.slf4j.Slf4j; -import net.runelite.client.rs.bytecode.ByteCodePatcher; - -@Slf4j -public class ActorTransform implements Transform -{ - private CtClass ct; - - @Override - public void modify(Class actor) - { - try - { - ct = ByteCodePatcher.classPool.get(actor.getName()); - - transformGetAnimation(); - transformAnimationChanged(); - transformGraphicChanged(); - - ByteCodePatcher.modifiedClasses.add(ct); - } - catch (CannotCompileException | NotFoundException e) - { - e.printStackTrace(); - } - } - - private void transformGetAnimation() throws CannotCompileException, NotFoundException - { - CtMethod protectedAnimation = ct.getDeclaredMethod("1protect$getRsAnimation"); - ct.removeMethod(protectedAnimation); - - protectedAnimation.setName("getRsAnimation"); - ct.addMethod(protectedAnimation); - - CtMethod getAnimation = ct.getDeclaredMethod("getAnimation"); - ct.removeMethod(getAnimation); - - getAnimation = CtNewMethod.make( - "public int getAnimation()" + - "{" + - " return this.getRsAnimation();" + - "}", ct); - ct.addMethod(getAnimation); - - log.info( - "[RuneLitePlus] transformed {} ({}) at class: {}", - this.getClass().getSimpleName(), - new Object(){}.getClass().getEnclosingMethod().getName(), - ct.getName() - ); - } - - - private void transformAnimationChanged() throws CannotCompileException, NotFoundException - { - CtMethod getAnimationChanged = ct.getDeclaredMethod("animationChanged", new CtClass[]{CtClass.intType}); - ct.removeMethod(getAnimationChanged); - - getAnimationChanged = CtNewMethod.make( - "public void animationChanged(int n)" + - "{" + - " net.runelite.api.events.AnimationChanged animationChanged = new net.runelite.api.events.AnimationChanged();" + - " animationChanged.setActor((net.runelite.api.Actor) this);" + - ByteCodePatcher.clientInstance + ".getCallbacks().post((java.lang.Object)animationChanged);" + - "}", ct); - ct.addMethod(getAnimationChanged); - - log.info( - "[RuneLitePlus] transformed {} ({}) at class: {}", - this.getClass().getSimpleName(), - new Object(){}.getClass().getEnclosingMethod().getName(), - ct.getName() - ); - } - - private void transformGraphicChanged() throws CannotCompileException, NotFoundException - { - CtMethod graphicChanged = ct.getDeclaredMethod("graphicChanged", new CtClass[]{CtClass.intType}); - ct.removeMethod(graphicChanged); - - graphicChanged = CtNewMethod.make( - "public void graphicChanged(int paramInt)" + - "{" + - " net.runelite.api.events.GraphicChanged localGraphicChanged = new net.runelite.api.events.GraphicChanged();" + - " localGraphicChanged.setActor(this);" + - ByteCodePatcher.clientInstance + ".getCallbacks().post(localGraphicChanged);" + - "}", ct); - ct.addMethod(graphicChanged); - - log.info( - "[RuneLitePlus] transformed {} ({}) at class: {}", - this.getClass().getSimpleName(), - new Object(){}.getClass().getEnclosingMethod().getName(), - ct.getName() - ); - } - -} diff --git a/runelite-client/src/main/java/net/runelite/client/rs/bytecode/transformers/ClientTransform.java b/runelite-client/src/main/java/net/runelite/client/rs/bytecode/transformers/ClientTransform.java deleted file mode 100644 index 3f8c01b843..0000000000 --- a/runelite-client/src/main/java/net/runelite/client/rs/bytecode/transformers/ClientTransform.java +++ /dev/null @@ -1,642 +0,0 @@ -package net.runelite.client.rs.bytecode.transformers; - -import javassist.CannotCompileException; -import javassist.CtClass; -import javassist.CtMethod; -import javassist.CtNewMethod; -import javassist.NotFoundException; -import javassist.bytecode.AnnotationsAttribute; -import javassist.bytecode.ClassFile; -import javassist.bytecode.ConstPool; -import lombok.extern.slf4j.Slf4j; -import net.runelite.client.rs.bytecode.ByteCodePatcher; - -@Slf4j -public class ClientTransform implements Transform -{ - - private CtClass ct; - - @Override - public void modify(Class clazz) - { - try - { - ct = ByteCodePatcher.classPool.get(clazz.getName()); - - transformProtectedGetMenuOptions(); - transformProtectedGetMenuTargets(); - transformProtectedGetMenuIdentifiers(); - transformProtectedGetMenuTypes(); - transformProtectedGetMenuActionParams0(); - transformProtectedGetMenuActionParams1(); - transformGetMenuEntries(); - transformSetMenuEntries(); - transformOnMenuOptionsChanged(); - transformGetProjectiles(); - transformGetCollisionMaps(); - transformDraw2010Menu(); - transformRenderSelf(); - transformboundingBoxCheck(); - transformcheckClickBox(); - - ByteCodePatcher.modifiedClasses.add(ct); - } - catch (Exception e) - { - e.printStackTrace(); - } - } - - private void transformProtectedGetMenuOptions() throws CannotCompileException, NotFoundException - { - CtMethod protectedGetMenuOptions; - - protectedGetMenuOptions = ct.getDeclaredMethod("1protect$getMenuOptions"); - ct.removeMethod(protectedGetMenuOptions); - - protectedGetMenuOptions.setName("getMenuOptions"); - ct.addMethod(protectedGetMenuOptions); - - log.info( - "[RuneLitePlus] transformed {} ({}) at class: {}", - this.getClass().getSimpleName(), - new Object(){}.getClass().getEnclosingMethod().getName(), - ct.getName() - ); - } - - private void transformGetProjectiles() throws CannotCompileException, NotFoundException - { - CtMethod getProjectiles; - - CtMethod getProjectilesDeque = ct.getDeclaredMethod("1protect$getProjectilesDeque"); - ct.removeMethod(getProjectilesDeque); - - getProjectilesDeque.setName("getProjectilesDeque"); - ct.addMethod(getProjectilesDeque); - - getProjectiles = ct.getDeclaredMethod("getProjectiles"); - ct.removeMethod(getProjectiles); - - getProjectiles = CtNewMethod.make( - "public java.util.List getProjectiles() { " + - "java.util.ArrayList localArrayList = new java.util.ArrayList();" + - "net.runelite.rs.api.RSDeque localRSDeque = getProjectilesDeque();" + - "net.runelite.rs.api.RSNode localRSNode = localRSDeque.getHead();" + - "for (net.runelite.api.Node localNode = localRSNode.getNext(); localNode != localRSNode; localNode = localNode.getNext()) {" + - "net.runelite.api.Projectile localProjectile = (net.runelite.api.Projectile)localNode;" + - "localArrayList.add(localProjectile); }" + - "return localArrayList; }", ct); - ct.addMethod(getProjectiles); - - ClassFile classFile = ct.getClassFile(); - ConstPool constPool = classFile.getConstPool(); - AnnotationsAttribute attr = new AnnotationsAttribute(constPool, AnnotationsAttribute.visibleTag); - javassist.bytecode.annotation.Annotation annotation = new javassist.bytecode.annotation.Annotation("Override", constPool); - attr.setAnnotation(annotation); - getProjectiles.getMethodInfo().addAttribute(attr); - - log.info( - "[RuneLitePlus] transformed {} ({}) at class: {}", - this.getClass().getSimpleName(), - new Object(){}.getClass().getEnclosingMethod().getName(), - ct.getName() - ); - } - - private void transformProtectedGetMenuTargets() throws CannotCompileException, NotFoundException - { - CtMethod protectedGetMenuTargets; - - protectedGetMenuTargets = ct.getDeclaredMethod("1protect$getMenuTargets"); - ct.removeMethod(protectedGetMenuTargets); - - protectedGetMenuTargets.setName("getMenuTargets"); - ct.addMethod(protectedGetMenuTargets); - - log.info( - "[RuneLitePlus] transformed {} ({}) at class: {}", - this.getClass().getSimpleName(), - new Object(){}.getClass().getEnclosingMethod().getName(), - ct.getName() - ); - } - - private void transformGetCollisionMaps() throws CannotCompileException, NotFoundException - { - CtMethod getCollisionMaps; - - CtMethod protectedMaps = ct.getDeclaredMethod("1protect$getRsCollisionMaps"); - ct.removeMethod(protectedMaps); - - protectedMaps.setName("getRsCollisionMaps"); - ct.addMethod(protectedMaps); - - getCollisionMaps = ct.getDeclaredMethod("getCollisionMaps"); - ct.removeMethod(getCollisionMaps); - - getCollisionMaps = CtMethod.make("public net.runelite.rs.api.RSCollisionData[] getCollisionMaps() { return getRsCollisionMaps(); }", ct); - ct.addMethod(getCollisionMaps); - - log.info( - "[RuneLitePlus] transformed {} ({}) at class: {}", - this.getClass().getSimpleName(), - new Object(){}.getClass().getEnclosingMethod().getName(), - ct.getName() - ); - } - - private void transformProtectedGetMenuIdentifiers() throws CannotCompileException, NotFoundException - { - CtMethod protectedGetMenuIdentifiers; - - protectedGetMenuIdentifiers = ct.getDeclaredMethod("1protect$getMenuIdentifiers"); - ct.removeMethod(protectedGetMenuIdentifiers); - - protectedGetMenuIdentifiers.setName("getMenuIdentifiers"); - ct.addMethod(protectedGetMenuIdentifiers); - - log.info( - "[RuneLitePlus] transformed {} ({}) at class: {}", - this.getClass().getSimpleName(), - new Object(){}.getClass().getEnclosingMethod().getName(), - ct.getName() - ); - } - - private void transformProtectedGetMenuTypes() throws CannotCompileException, NotFoundException - { - CtMethod protectedGetMenuTypes; - protectedGetMenuTypes = ct.getDeclaredMethod("1protect$getMenuTypes"); - - // Don't remove as this is referenced elsewhere in client - // ct.removeMethod(protectedGetMenuTypes); - - CtMethod newProtectedGetMenuTypes = CtNewMethod.copy(protectedGetMenuTypes, ct, null); - newProtectedGetMenuTypes.setName("getMenuTypes"); - - ct.addMethod(newProtectedGetMenuTypes); - - log.info( - "[RuneLitePlus] transformed {} ({}) at class: {}", - this.getClass().getSimpleName(), - new Object(){}.getClass().getEnclosingMethod().getName(), - ct.getName() - ); - } - - private void transformProtectedGetMenuActionParams0() throws CannotCompileException, NotFoundException - { - CtMethod protectedGetMenuActionParams0; - - protectedGetMenuActionParams0 = ct.getDeclaredMethod("1protect$getMenuActionParams0"); - ct.removeMethod(protectedGetMenuActionParams0); - - protectedGetMenuActionParams0.setName("getMenuActionParams0"); - ct.addMethod(protectedGetMenuActionParams0); - - log.info( - "[RuneLitePlus] transformed {} ({}) at class: {}", - this.getClass().getSimpleName(), - new Object(){}.getClass().getEnclosingMethod().getName(), - ct.getName() - ); - } - - private void transformProtectedGetMenuActionParams1() throws CannotCompileException, NotFoundException - { - CtMethod protectedGetMenuActionParams1; - - protectedGetMenuActionParams1 = ct.getDeclaredMethod("1protect$getMenuActionParams1"); - ct.removeMethod(protectedGetMenuActionParams1); - protectedGetMenuActionParams1.setName("getMenuActionParams1"); - ct.addMethod(protectedGetMenuActionParams1); - - log.info( - "[RuneLitePlus] transformed {} ({}) at class: {}", - this.getClass().getSimpleName(), - new Object(){}.getClass().getEnclosingMethod().getName(), - ct.getName() - ); - } - - private void transformGetMenuEntries() throws CannotCompileException, NotFoundException - { - CtMethod getMenuEntries; - - getMenuEntries = ct.getDeclaredMethod("getMenuEntries"); - ct.removeMethod(getMenuEntries); - - getMenuEntries = CtMethod.make( - "public net.runelite.api.MenuEntry[] getMenuEntries()" + - "{" + - " int n2 = this.getMenuOptionCount();" + - " String[] arrstring = this.getMenuOptions();" + - " String[] arrstring2 = this.getMenuTargets();" + - " int[] arrn = this.getMenuIdentifiers();" + - " int[] arrn2 = this.getMenuTypes();" + - " int[] arrn3 = this.getMenuActionParams0();" + - " int[] arrn4 = this.getMenuActionParams1();" + - " boolean[] arrbl = this.getMenuForceLeftClick();" + - " net.runelite.api.MenuEntry[] arrmenuEntry = new net.runelite.api.MenuEntry[n2];" + - " int n3 = 0;" + - " while (n3 < n2) " + - " {" + - " net.runelite.api.MenuEntry menuEntry = arrmenuEntry[n3] = new net.runelite.api.MenuEntry();" + - " menuEntry.setOption(arrstring[n3]);" + - " menuEntry.setTarget(arrstring2[n3]);" + - " menuEntry.setIdentifier(arrn[n3]);" + - " menuEntry.setType(arrn2[n3]);" + - " menuEntry.setParam0(arrn3[n3]);" + - " menuEntry.setParam1(arrn4[n3]);" + - " menuEntry.setForceLeftClick(arrbl[n3]);" + - " ++n3;" + - " }" + - " return arrmenuEntry;" + - "}", ct); - ct.addMethod(getMenuEntries); - - log.info( - "[RuneLitePlus] transformed {} ({}) at class: {}", - this.getClass().getSimpleName(), - new Object(){}.getClass().getEnclosingMethod().getName(), - ct.getName() - ); - } - - private void transformSetMenuEntries() throws CannotCompileException, NotFoundException - { - CtMethod setMenuEntries; - - setMenuEntries = ct.getDeclaredMethod("setMenuEntries"); - ct.removeMethod(setMenuEntries); - setMenuEntries = CtNewMethod.make( - "public void setMenuEntries(net.runelite.api.MenuEntry[] arrmenuEntry)" + - "{" + - " int n2 = 0;" + - " String[] arrstring = this.getMenuOptions();" + - " String[] arrstring2 = this.getMenuTargets();" + - " int[] arrn = this.getMenuIdentifiers();" + - " int[] arrn2 = this.getMenuTypes();" + - " int[] arrn3 = this.getMenuActionParams0();" + - " int[] arrn4 = this.getMenuActionParams1();" + - " boolean[] arrbl = getMenuForceLeftClick();" + - " net.runelite.api.MenuEntry[] arrmenuEntry2 = arrmenuEntry;" + - " int n3 = arrmenuEntry2.length;" + - " int n4 = 0;" + - " do" + - " {" + - " String string;" + - " if (n4 >= n3)" + - " {" + - " this.setMenuOptionCount(n2);" + - " oldMenuEntryCount = n2;" + - " return;" + - " }" + - " net.runelite.api.MenuEntry menuEntry = arrmenuEntry2[n4];" + - " int n5 = menuEntry.getType();" + - " arrstring[n2] = menuEntry.getOption();" + - " arrstring2[n2] = menuEntry.getTarget();" + - " arrn[n2] = menuEntry.getIdentifier();" + - " arrn2[n2] = n5;" + - " arrn3[n2] = menuEntry.getParam0();" + - " arrn4[n2] = menuEntry.getParam1();" + - " arrbl[n2] = menuEntry.isForceLeftClick();" + - " ++n2;" + - " ++n4;" + - " } while (true);" + - "}" - , ct); - ct.addMethod(setMenuEntries); - } - - private void transformOnMenuOptionsChanged() throws CannotCompileException, NotFoundException - { - CtMethod onMenuOptionsChanged; - - onMenuOptionsChanged = ct.getDeclaredMethod("onMenuOptionsChanged", new CtClass[]{CtClass.intType}); - ct.removeMethod(onMenuOptionsChanged); - - onMenuOptionsChanged = CtMethod.make( - "public static void onMenuOptionsChanged(int n2)" + - "{" + - " int n3;" + - " int n4 = oldMenuEntryCount;" + - " oldMenuEntryCount = n3 = " + ByteCodePatcher.clientInstance + ".getMenuOptionCount();" + - " if (n3 != n4 + 1) return;" + - " net.runelite.api.events.MenuEntryAdded menuEntryAdded = new net.runelite.api.events.MenuEntryAdded(" + - ByteCodePatcher.clientInstance + ".getMenuOptions()[n3 - 1]," + - ByteCodePatcher.clientInstance + ".getMenuTargets()[n3 - 1]," + - ByteCodePatcher.clientInstance + ".getMenuTypes()[n3 - 1]," + - ByteCodePatcher.clientInstance + ".getMenuIdentifiers()[n3 - 1]," + - ByteCodePatcher.clientInstance + ".getMenuActionParams0()[n3 - 1]," + - ByteCodePatcher.clientInstance + ".getMenuActionParams1()[n3 - 1]);" + - ByteCodePatcher.clientInstance + ".getCallbacks().post((Object)menuEntryAdded);" + - "}" - , ct); - - ct.addMethod(onMenuOptionsChanged); - - log.info( - "[RuneLitePlus] transformed {} ({}) at class: {}", - this.getClass().getSimpleName(), - new Object(){}.getClass().getEnclosingMethod().getName(), - ct.getName() - ); - } - - private void transformRenderSelf() throws CannotCompileException - { - CtMethod renderSelf; - - renderSelf = CtMethod.make("public void toggleRenderSelf() { jb = !jb; }", ct); - - ClassFile classFile = ct.getClassFile(); - ConstPool constPool = classFile.getConstPool(); - AnnotationsAttribute attr = new AnnotationsAttribute(constPool, AnnotationsAttribute.visibleTag); - javassist.bytecode.annotation.Annotation annotation = new javassist.bytecode.annotation.Annotation("Export", constPool); - attr.setAnnotation(annotation); - renderSelf.getMethodInfo().addAttribute(attr); - - ct.addMethod(renderSelf); - - log.info( - "[RuneLitePlus] transformed {} ({}) at class: {}", - this.getClass().getSimpleName(), - new Object(){}.getClass().getEnclosingMethod().getName(), - ct.getName() - ); - } - - private void transformDraw2010Menu() throws CannotCompileException, NotFoundException - { - CtMethod draw2010Menu; - - draw2010Menu = ct.getDeclaredMethod("draw2010Menu"); - ct.removeMethod(draw2010Menu); - - draw2010Menu = CtNewMethod.make( - "public void draw2010Menu()" + - "{" + - " int n2 = this.getMenuX();" + - " int n3 = this.getMenuY();" + - " int n4 = this.getMenuWidth();" + - " int n5 = this.getMenuHeight();" + - " this.RasterizerDrawHorizontalLine(n2 + 2, n3, n4 - 4, 7170651);" + - " this.RasterizerDrawHorizontalLine(n2 + 2, n3 + n5 - 1, n4 - 4, 7170651);" + - " this.RasterizerDrawVerticalLine(n2, n3 + 2, n5 - 4, 7170651);" + - " this.RasterizerDrawVerticalLine(n2 + n4 - 1, n3 + 2, n5 - 4, 7170651);" + - " this.RasterizerDrawRectangle(n2 + 1, n3 + 5, n4 - 2, n5 - 6, 2827810);" + - " this.RasterizerDrawHorizontalLine(n2 + 1, n3 + 17, n4 - 2, 2827810);" + - " this.RasterizerDrawCircle(n2 + 2, n3 + n5 - 3, 0, 2827810);" + - " this.RasterizerDrawCircle(n2 + n4 - 3, n3 + n5 - 3, 0, 2827810);" + - " this.RasterizerDrawGradient(n2 + 2, n3 + 1, n4 - 4, 16, 3288610, 592388);" + - " this.RasterizerFillRectangle(n2 + 1, n3 + 1, 2, 4, 2827810);" + - " this.RasterizerFillRectangle(n2 + n4 - 3, n3 + 1, 2, 4, 2827810);" + - " this.RasterizerDrawHorizontalLine(n2 + 2, n3 + 18, n4 - 4, 5392957);" + - " this.RasterizerDrawHorizontalLine(n2 + 3, n3 + n5 - 3, n4 - 6, 5392957);" + - " this.RasterizerDrawVerticalLine(n2 + 2, n3 + 18, n5 - 21, 5392957);" + - " this.RasterizerDrawVerticalLine(n2 + n4 - 3, n3 + 18, n5 - 21, 5392957);" + - " this.RasterizerFillRectangle(n2 + 3, n3 + 19, n4 - 6, n5 - 22, 2828060);" + - " this.RasterizerDrawCircle(n2 + 1, n3 + 1, 0, 7170651);" + - " this.RasterizerDrawCircle(n2 + n4 - 2, n3 + 1, 0, 7170651);" + - " this.RasterizerDrawCircle(n2 + 1, n3 + n5 - 2, 0, 7170651);" + - " this.RasterizerDrawCircle(n2 + n4 - 2, n3 + n5 - 2, 0, 7170651);" + - " net.runelite.rs.api.RSFont rSFont = this.getFontBold12();" + - " rSFont.drawTextLeftAligned(\"Choose Option\", n2 + 3, n3 + 14, 13023381, -1);" + - " int n6 = this.getMouseX();" + - " int n7 = this.getMouseY();" + - " int n8 = this.getMenuOptionCount();" + - " String[] arrstring = this.getMenuTargets();" + - " String[] arrstring2 = this.getMenuOptions();" + - " for (int i = 0; i < n8; ++i)" + - " {" + - " int n9 = n3 + (n8 - 1 - i) * 15 + 31;" + - " String string = arrstring2[i];" + - " if (!arrstring[i].isEmpty())" + - " {" + - " string = string + \" \" + arrstring[i];" + - " }" + - " rSFont.drawTextLeftAligned(string, n2 + 3, n9, 13023381, -1);" + - " if (n6 <= n2 || n6 >= n4 + n2 || n7 <= n9 - 13 || n7 >= n9 + 3)" + - " {" + - " continue;" + - " }" + - " this.RasterizerFillRectangleAlpha(n2 + 3, n9 - 12, n4 - 6, 15, 16777215, 80);" + - " }" + - "}" - , ct); - ct.addMethod(draw2010Menu); - - log.info( - "[RuneLitePlus] transformed {} ({}) at class: {}", - this.getClass().getSimpleName(), - new Object(){}.getClass().getEnclosingMethod().getName(), - ct.getName() - ); - } - - //TODO: fix not being able to click far away objects towards top of screen only. - private void transformboundingBoxCheck() throws CannotCompileException - { - CtMethod boundingboxCheck2; - - boundingboxCheck2 = CtMethod.make( - "public boolean boundingboxCheck2(net.runelite.api.Model model, int n2, int n3, int n4)" + - "{" + - " int n5 = " + ByteCodePatcher.clientInstance + ".getCameraPitch();" + - " int n6 = " + ByteCodePatcher.clientInstance + ".getCameraYaw();" + - " int n7 = net.runelite.api.Perspective.SINE[n5];" + - " int n8 = net.runelite.api.Perspective.COSINE[n5];" + - " int n9 = net.runelite.api.Perspective.SINE[n6];" + - " int n10 = net.runelite.api.Perspective.COSINE[n6];" + - " int n11 = " + ByteCodePatcher.clientInstance + ".getCenterX();" + - " int n12 = " + ByteCodePatcher.clientInstance + ".getCenterY();" + - " int n13 = " + ByteCodePatcher.clientInstance + ".getViewportMouseX();" + - " int n14 = " + ByteCodePatcher.clientInstance + ".getViewportMouseY();" + - " int n15 = " + ByteCodePatcher.clientInstance + ".get3dZoom();" + - " int n16 = (n13 - n11) * 50 / n15;" + - " int n17 = (n14 - n12) * 50 / n15;" + - " int n18 = (n13 - n11) * 10000 / n15;" + - " int n19 = (n14 - n12) * 10000 / n15;" + - " int n20 = client.rl$rot1(n17, 50, n8, n7);" + - " int n21 = client.rl$rot2(n17, 50, n8, n7);" + - " n17 = n20;" + - " n20 = client.rl$rot1(n19, 10000, n8, n7);" + - " int n22 = client.rl$rot2(n19, 10000, n8, n7);" + - " n19 = n20;" + - " n20 = client.rl$rot3(n16, n21, n10, n9);" + - " n21 = client.rl$rot4(n16, n21, n10, n9);" + - " n16 = n20;" + - " n20 = client.rl$rot3(n18, n22, n10, n9);" + - " n22 = client.rl$rot4(n18, n22, n10, n9);" + - " int n23 = (n20 - n16) / 2;" + - " int n24 = (n19 - n17) / 2;" + - " int n25 = (n22 - n21) / 2;" + - " int n26 = Math.abs(n23);" + - " int n27 = Math.abs(n24);" + - " int n28 = Math.abs(n25);" + - " int n29 = n2 + model.getCenterX();" + - " int n30 = n3 + model.getCenterY();" + - " int n31 = n4 + model.getCenterZ();" + - " int n32 = model.getExtremeX();" + - " int n33 = model.getExtremeY();" + - " int n34 = model.getExtremeZ();" + - " int n35 = (n16 + n20) / 2;" + - " int n36 = (n17 + n19) / 2;" + - " int n37 = (n22 + n21) / 2;" + - " int n38 = n35 - n29;" + - " int n39 = n36 - n30;" + - " int n40 = n37 - n31;" + - " if (Math.abs(n38) > n32 + n26)" + - " {" + - " return false;" + - " }" + - " if (Math.abs(n39) > n33 + n27)" + - " {" + - " return false;" + - " }" + - " if (Math.abs(n40) > n34 + n28)" + - " {" + - " return false;" + - " }" + - " if (Math.abs(n40 * n24 - n39 * n25) > n33 * n28 + n34 * n27)" + - " {" + - " return false;" + - " }" + - " if (Math.abs(n38 * n25 - n40 * n23) > n34 * n26 + n32 * n28)" + - " {" + - " return false;" + - " }" + - " if (Math.abs(n39 * n23 - n38 * n24) <= n33 * n26 + n32 * n27)" + - " {" + - " return true;" + - " }" + - " return false;" + - "}", ct); - ct.addMethod(boundingboxCheck2); - - log.info( - "[RuneLitePlus] transformed {} ({}) at class: {}", - this.getClass().getSimpleName(), - new Object(){}.getClass().getEnclosingMethod().getName(), - ct.getName() - ); - } - - private void transformcheckClickBox() throws CannotCompileException, NotFoundException - { - CtMethod checkClickBox; - - checkClickBox = ct.getDeclaredMethod("checkClickbox"); - ct.removeMethod(checkClickBox); - - checkClickBox = CtMethod.make( - "public void checkClickbox(net.runelite.api.Model model, int n2, int n3, int n4, int n5, int n6, int n7, int n8, int n9, long l2) {" + - " int n10;" + - " int n11;" + - " int n12;" + - " int n13;" + - " int n14;" + - " net.runelite.rs.api.RSModel rSModel = (net.runelite.rs.api.RSModel)model;" + - " boolean bl2 = l2 != 0L && (int)(l2 >>> 16 & 1L) != 1;" + - " boolean bl3 = " + ByteCodePatcher.clientInstance + ".getViewportContainsMouse();" + - " if (!bl2)" + - " {" + - " return;" + - " }" + - " if (!bl3)" + - " {" + - " return;" + - " }" + - " boolean bl4 = this.boundingboxCheck2((net.runelite.api.Model)rSModel, n7, n8, n9);" + - " if (!bl4)" + - " {" + - " return;" + - " }" + - " if (rSModel.isClickable())" + - " {" + - " this.addHashAtMouse(l2);" + - " return;" + - " }" + - " int n15 = rSModel.getVerticesCount();" + - " int n16 = rSModel.getTrianglesCount();" + - " int[] arrn = rSModel.getVerticesX();" + - " int[] arrn2 = rSModel.getVerticesY();" + - " int[] arrn3 = rSModel.getVerticesZ();" + - " int[] arrn4 = rSModel.getTrianglesX();" + - " int[] arrn5 = rSModel.getTrianglesY();" + - " int[] arrn6 = rSModel.getTrianglesZ();" + - " int[] arrn7 = rSModel.getFaceColors3();" + - " int n17 = " + ByteCodePatcher.clientInstance + ".get3dZoom();" + - " int n18 = " + ByteCodePatcher.clientInstance + ".getCenterX();" + - " int n19 = " + ByteCodePatcher.clientInstance + ".getCenterY();" + - " int n20 = 0;" + - " int n21 = 0;" + - " if (n2 != 0)" + - " {" + - " n20 = net.runelite.api.Perspective.SINE[n2];" + - " n21 = net.runelite.api.Perspective.COSINE[n2];" + - " }" + - " for (n14 = 0; n14 < n15; ++n14)" + - " {" + - " n11 = arrn[n14];" + - " n13 = arrn2[n14];" + - " n12 = arrn3[n14];" + - " if (n2 != 0)" + - " {" + - " n10 = n12 * n20 + n11 * n21 >> 16;" + - " n12 = n12 * n21 - n11 * n20 >> 16;" + - " n11 = n10;" + - " }" + - " n10 = (n12 += n9) * n5 + n6 * (n11 += n7) >> 16;" + - " n12 = n6 * n12 - n11 * n5 >> 16;" + - " n11 = n10;" + - " n10 = n4 * (n13 += n8) - n12 * n3 >> 16;" + - " if ((n12 = n13 * n3 + n4 * n12 >> 16) >= 50)" + - " {" + - " client.rl$modelViewportYs[n14] = n11 * n17 / n12 + n18;" + - " client.rl$modelViewportXs[n14] = n10 * n17 / n12 + n19;" + - " continue;" + - " }" + - " client.rl$modelViewportYs[n14] = -5000;" + - " }" + - " n14 = " + ByteCodePatcher.clientInstance + ".getViewportMouseX();" + - " n11 = " + ByteCodePatcher.clientInstance + ".getViewportMouseY();" + - " n13 = 0;" + - " while (n13 < n16)" + - " {" + - " if (arrn7[n13] != -2)" + - " {" + - " int n22;" + - " boolean bl5;" + - " int n23;" + - " n12 = arrn4[n13];" + - " n10 = arrn5[n13];" + - " int n24 = arrn6[n13];" + - " int n25 = rl$modelViewportYs[n12];" + - " int n26 = rl$modelViewportYs[n10];" + - " int n27 = rl$modelViewportYs[n24];" + - " int n28 = rl$modelViewportXs[n12];" + - " int n29 = rl$modelViewportXs[n10];" + - " int n30 = rl$modelViewportXs[n24];" + - " if (n25 != -5000 && n26 != -5000 && n27 != -5000 && (bl5 = (n23 = (n22 = rSModel.isClickable() ? 20 : 5) + n11) < n28 && n23 < n29 && n23 < n30 ? false : ((n23 = n11 - n22) > n28 && n23 > n29 && n23 > n30 ? false : ((n23 = n22 + n14) < n25 && n23 < n26 && n23 < n27 ? false : (n23 = n14 - n22) <= n25 || n23 <= n26 || n23 <= n27))))" + - " {" + - " this.addHashAtMouse(l2);" + - " return;" + - " }" + - " }" + - " ++n13;" + - " }" + - "}", ct); - ct.addMethod(checkClickBox); - - log.info( - "[RuneLitePlus] transformed {} ({}) at class: {}", - this.getClass().getSimpleName(), - new Object(){}.getClass().getEnclosingMethod().getName(), - ct.getName() - ); - } -} diff --git a/runelite-client/src/main/java/net/runelite/client/rs/bytecode/transformers/ErrorTransform.java b/runelite-client/src/main/java/net/runelite/client/rs/bytecode/transformers/ErrorTransform.java deleted file mode 100644 index 86fa1ef8bb..0000000000 --- a/runelite-client/src/main/java/net/runelite/client/rs/bytecode/transformers/ErrorTransform.java +++ /dev/null @@ -1,57 +0,0 @@ -package net.runelite.client.rs.bytecode.transformers; - -import javassist.CannotCompileException; -import javassist.CtClass; -import javassist.CtMethod; -import javassist.NotFoundException; -import lombok.extern.slf4j.Slf4j; -import net.runelite.client.rs.bytecode.ByteCodePatcher; - -@Slf4j -// This prevents the client from sending stack traces to Jagex at all, even classes outside of runelite. -public class ErrorTransform implements Transform -{ - private CtClass ct; - - // Where Runelites error interceptor is located, not auto-scraped. - private static final String ERROR_INSTANCE_CLASS = "dp"; - private static final String ERROR_INSTANCE_METHOD = "a"; - // private static final String ERROR_WARNING = "Tried to send a warning"; - - @Override - public void modify(Class clazz) - { - try - { - ct = ByteCodePatcher.classPool.get(ERROR_INSTANCE_CLASS); - transformError(); - - ByteCodePatcher.modifiedClasses.add(ct); - } - catch (CannotCompileException | NotFoundException e) - { - e.printStackTrace(); - } - } - - private void transformError() throws CannotCompileException, NotFoundException - { - CtMethod error = ct.getDeclaredMethod(ERROR_INSTANCE_METHOD); - ct.removeMethod(error); - - error = CtMethod.make( - "public static void a(String string, Throwable throwable, byte by)" + - "{" + - " throwable.printStackTrace();" + - " System.out.println(\"[RuneLitePlus] Prevented preceeding stack trace from being sent to Jagex\");" + - "}", ct); - ct.addMethod(error); - - log.info( - "[RuneLitePlus] transformed {} ({}) at class: {}", - this.getClass().getSimpleName(), - new Object(){}.getClass().getEnclosingMethod().getName(), - ct.getName() - ); - } -} diff --git a/runelite-client/src/main/java/net/runelite/client/rs/bytecode/transformers/PlayerTransform.java b/runelite-client/src/main/java/net/runelite/client/rs/bytecode/transformers/PlayerTransform.java deleted file mode 100644 index 2b1d5d5741..0000000000 --- a/runelite-client/src/main/java/net/runelite/client/rs/bytecode/transformers/PlayerTransform.java +++ /dev/null @@ -1,89 +0,0 @@ -package net.runelite.client.rs.bytecode.transformers; - -import javassist.CannotCompileException; -import javassist.CtClass; -import javassist.CtMethod; -import javassist.CtNewMethod; -import javassist.NotFoundException; -import lombok.extern.slf4j.Slf4j; -import net.runelite.client.rs.bytecode.ByteCodePatcher; - -@Slf4j -public class PlayerTransform implements Transform -{ - private CtClass ct; - - @Override - public void modify(Class player) - { - try - { - ct = ByteCodePatcher.classPool.get(player.getName()); - transformProtectedGetSkullIcon(); - transformGetSkullIcon(); - ByteCodePatcher.modifiedClasses.add(ct); - } - catch (CannotCompileException | NotFoundException e) - { - e.printStackTrace(); - } - } - - private void transformProtectedGetSkullIcon() throws CannotCompileException, NotFoundException - { - CtMethod protectedGetSkullIcon; - - protectedGetSkullIcon = ct.getDeclaredMethod("1protect$getRsSkullIcon"); - ct.removeMethod(protectedGetSkullIcon); - protectedGetSkullIcon.setName("getRsSkullIcon"); - - ct.addMethod(protectedGetSkullIcon); - - log.info( - "[RuneLitePlus] transformed {} ({}) at class: {}", - this.getClass().getSimpleName(), - new Object(){}.getClass().getEnclosingMethod().getName(), - ct.getName() - ); - } - - private void transformGetSkullIcon() throws CannotCompileException, NotFoundException - { - CtMethod getSkullIcon; - - String SkullIcon = "net.runelite.api.SkullIcon"; - getSkullIcon = ct.getDeclaredMethod("getSkullIcon"); - ct.removeMethod(getSkullIcon); - - getSkullIcon = CtNewMethod.make( - "public " + SkullIcon + " getSkullIcon()" + - "{" + - "switch (this.getRsSkullIcon())" + - "{" + - "case 0:" + - "return " + SkullIcon + ".SKULL;" + - "case 1:" + - "return " + SkullIcon + ".SKULL_FIGHT_PIT;" + - "case 8:" + - "return " + SkullIcon + ".DEAD_MAN_FIVE;" + - "case 9:" + - "return " + SkullIcon + ".DEAD_MAN_FOUR;" + - "case 10:" + - "return " + SkullIcon + ".DEAD_MAN_THREE;" + - "case 11:" + - "return " + SkullIcon + ".DEAD_MAN_TWO;" + - "case 12:" + - "return " + SkullIcon + ".DEAD_MAN_ONE;" + - "}" + - "return null;" + - "}", ct); - ct.addMethod(getSkullIcon); - - log.info( - "[RuneLitePlus] transformed {} ({}) at class: {}", - this.getClass().getSimpleName(), - new Object(){}.getClass().getEnclosingMethod().getName(), - ct.getName() - ); - } -} diff --git a/runelite-client/src/main/java/net/runelite/client/rs/bytecode/transformers/ProjectileTransform.java b/runelite-client/src/main/java/net/runelite/client/rs/bytecode/transformers/ProjectileTransform.java deleted file mode 100644 index ea8687e8b4..0000000000 --- a/runelite-client/src/main/java/net/runelite/client/rs/bytecode/transformers/ProjectileTransform.java +++ /dev/null @@ -1,112 +0,0 @@ -package net.runelite.client.rs.bytecode.transformers; - -import javassist.CannotCompileException; -import javassist.CtClass; -import javassist.CtMethod; -import javassist.CtNewMethod; -import javassist.NotFoundException; -import lombok.extern.slf4j.Slf4j; -import net.runelite.client.rs.bytecode.ByteCodePatcher; - -@Slf4j -public class ProjectileTransform implements Transform -{ - private CtClass ct; - - // Next variable is manually added, and will break on rev update - private static final String interactingIntvalue = "-1655053057"; - - @Override - public void modify(Class projectile) - { - try - { - ct = ByteCodePatcher.classPool.get(projectile.getName()); - transformGetAnimation(); - transformInteracting(); - ByteCodePatcher.modifiedClasses.add(ct); - } - catch (CannotCompileException | NotFoundException e) - { - e.printStackTrace(); - } - } - - private void transformGetAnimation() throws CannotCompileException, NotFoundException - { - CtMethod getAnimation; - - getAnimation = ct.getDeclaredMethod("projectileMoved", new CtClass[]{CtClass.intType, CtClass.intType, CtClass.intType, CtClass.intType}); - ct.removeMethod(getAnimation); - - getAnimation = CtNewMethod.make( - "public void projectileMoved(int n, int n2, int n3, int n4)" + - "{ " + - " int n5 = this.getId();" + - " net.runelite.api.coords.LocalPoint localPoint = new net.runelite.api.coords.LocalPoint(n, n2);" + - " net.runelite.api.events.ProjectileMoved projectileMoved = new net.runelite.api.events.ProjectileMoved();" + - " projectileMoved.setProjectile(this);" + - " projectileMoved.setPosition(localPoint);" + - " projectileMoved.setZ(n3);" + - ByteCodePatcher.clientInstance + ".getCallbacks().post(projectileMoved);" + - "}", ct); - ct.addMethod(getAnimation); - - log.info( - "[RuneLitePlus] transformed {} ({}) at class: {}", - this.getClass().getSimpleName(), - new Object(){}.getClass().getEnclosingMethod().getName(), - ct.getName() - ); - } - - private void transformInteracting() throws CannotCompileException - { - CtMethod getRsInteracting; - CtMethod getInteracting; - - getRsInteracting = CtNewMethod.make("public int getRsInteracting() { return this.n * " + interactingIntvalue + "; }", ct); - ct.addMethod(getRsInteracting); - - getInteracting = CtNewMethod.make( - "public net.runelite.api.Actor getInteracting()" + - "{" + - " int var1 = this.getRsInteracting();" + - " if (var1 == 0)" + - " {" + - " return null;" + - " }" + - " else" + - " {" + - " int var2;" + - " if (var1 > 0)" + - " {" + - " var2 = var1 - 1;" + - " net.runelite.rs.api.RSNPC[] var4 = " + ByteCodePatcher.clientInstance + ".getCachedNPCs();" + - " return var4[var2];" + - " }" + - " else" + - " {" + - " var2 = -var1 - 1;" + - " if (var2 == " + ByteCodePatcher.clientInstance + ".getLocalInteractingIndex())" + - " {" + - " return " + ByteCodePatcher.clientInstance + ".getLocalPlayer();" + - " }" + - " else" + - " {" + - " net.runelite.rs.api.RSPlayer[] var3 = " + ByteCodePatcher.clientInstance + ".getCachedPlayers();" + - " return var3[var2];" + - " }" + - " }" + - " }" + - "}", ct); - ct.addMethod(getInteracting); - - log.info( - "[RuneLitePlus] transformed {} ({}) at class: {}", - this.getClass().getSimpleName(), - new Object(){}.getClass().getEnclosingMethod().getName(), - ct.getName() - ); - } -} diff --git a/runelite-client/src/main/java/net/runelite/client/rs/bytecode/transformers/Transform.java b/runelite-client/src/main/java/net/runelite/client/rs/bytecode/transformers/Transform.java deleted file mode 100644 index f3835faff2..0000000000 --- a/runelite-client/src/main/java/net/runelite/client/rs/bytecode/transformers/Transform.java +++ /dev/null @@ -1,7 +0,0 @@ -package net.runelite.client.rs.bytecode.transformers; - -public interface Transform { - - void modify(Class clazz); - -} diff --git a/runelite-client/src/main/java/net/runelite/client/rs/mixins/MixinRunner.java b/runelite-client/src/main/java/net/runelite/client/rs/mixins/MixinRunner.java new file mode 100644 index 0000000000..e745e06190 --- /dev/null +++ b/runelite-client/src/main/java/net/runelite/client/rs/mixins/MixinRunner.java @@ -0,0 +1,134 @@ +/* + * Copyright (c) 2019, ThatGamerBlue + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +package net.runelite.client.rs.mixins; + +import lombok.RequiredArgsConstructor; +import net.runelite.client.rs.mixins.transformers.*; +import org.objectweb.asm.ClassReader; +import org.objectweb.asm.ClassVisitor; +import org.objectweb.asm.ClassWriter; +import org.objectweb.asm.commons.ClassRemapper; +import org.objectweb.asm.commons.Remapper; +import org.objectweb.asm.tree.ClassNode; + +import java.lang.reflect.InvocationTargetException; +import java.util.Map; + +@RequiredArgsConstructor +public class MixinRunner +{ + + private final Map classes; + private final Map patches; + + public Map run() + throws NoSuchMethodException, InstantiationException, IllegalAccessException, InvocationTargetException + { + runVisitor(InterfaceTransformer.class); + runVisitor(OverwriteTransformer.class); + runSanityChecker(OverwriteSanityCheck.class); + runVisitor(InjectTransformer.class); + runVisitor(AppendTransformer.class); // append has to come before prepend or append does nothing + // (test method: Projectile.rl$$init()V ) + runVisitor(PrependTransformer.class); + runRemapper(ProtectTransformer.class); + + recalcMaxes(); + return classes; + } + + private void runRemapper(Class clazz) throws IllegalAccessException, InstantiationException + { + for (Map.Entry entry : classes.entrySet()) + { + if (entry.getKey().contains("META-INF")) + { + continue; + } + Remapper inst = clazz.newInstance(); + ClassReader cr = new ClassReader(entry.getValue()); + ClassWriter cw = new ClassWriter(cr, 1); + cr.accept(new ClassRemapper(cw, inst), 0); + + entry.setValue(cw.toByteArray()); + } + } + + private void runVisitor(Class clazz) + throws IllegalAccessException, NoSuchMethodException, InvocationTargetException, InstantiationException + { + runVisitor(clazz, 1); + } + + private void runVisitor(Class clazz, int flags) + throws IllegalAccessException, NoSuchMethodException, InvocationTargetException, InstantiationException + { + for (Map.Entry entry : classes.entrySet()) + { + if (entry.getKey().contains("META-INF")) + { + continue; + } + ClassReader cr = new ClassReader(entry.getValue()); + ClassWriter cw = new ClassWriter(cr, flags); + byte[] patch = patches.getOrDefault(entry.getKey(), null); + ClassNode node = new ClassNode(); + cr.accept(node, 0); + ClassVisitor inst = clazz.getConstructor(ClassVisitor.class, byte[].class, ClassNode.class).newInstance(cw, + patch, node); + cr.accept(inst, 0); + + entry.setValue(cw.toByteArray()); + } + } + + private void runSanityChecker(Class clazz) + throws IllegalAccessException, NoSuchMethodException, InvocationTargetException, InstantiationException + { + runSanityChecker(clazz, 1); + } + + private void runSanityChecker(Class clazz, int flags) + throws IllegalAccessException, NoSuchMethodException, InvocationTargetException, InstantiationException + { + for (Map.Entry entry : patches.entrySet()) + { + ClassReader cr = new ClassReader(entry.getValue()); + ClassWriter cw = new ClassWriter(cr, flags); + ClassNode node = new ClassNode(); + cr.accept(node, 0); + SanityChecker inst = clazz.getConstructor(ClassVisitor.class, ClassNode.class).newInstance(cw, node); + cr.accept(inst, 0); + } + } + + private void recalcMaxes() + throws InvocationTargetException, NoSuchMethodException, InstantiationException, IllegalAccessException + { + runVisitor(DoNothingTransformer.class, 3); + } + +} diff --git a/runelite-client/src/main/java/net/runelite/client/rs/mixins/transformers/AppendTransformer.java b/runelite-client/src/main/java/net/runelite/client/rs/mixins/transformers/AppendTransformer.java new file mode 100644 index 0000000000..340c93e08b --- /dev/null +++ b/runelite-client/src/main/java/net/runelite/client/rs/mixins/transformers/AppendTransformer.java @@ -0,0 +1,120 @@ +/* + * Copyright (c) 2019, ThatGamerBlue + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +package net.runelite.client.rs.mixins.transformers; + +import lombok.extern.slf4j.Slf4j; +import net.runelite.client.util.RefUtils; +import org.objectweb.asm.ClassReader; +import org.objectweb.asm.ClassVisitor; +import org.objectweb.asm.MethodVisitor; +import org.objectweb.asm.Opcodes; +import org.objectweb.asm.tree.AbstractInsnNode; +import org.objectweb.asm.tree.ClassNode; +import org.objectweb.asm.tree.LabelNode; +import org.objectweb.asm.tree.LineNumberNode; +import org.objectweb.asm.tree.MethodNode; + +@Slf4j +public class AppendTransformer extends ClassVisitor implements Opcodes +{ + + private final byte[] patch; + private String className; + private ClassNode classNode; + + public AppendTransformer(ClassVisitor classVisitor, byte[] patch, ClassNode node) + { + super(Opcodes.ASM6, classVisitor); + this.patch = patch; + this.classNode = node; + } + + @Override + public void visit(int version, int access, String name, String signature, String superName, String[] interfaces) + { + className = name; + super.visit(version, access, name, signature, superName, interfaces); + } + + @Override + public MethodVisitor visitMethod(int access, String name, String descriptor, String signature, String[] exceptions) + { + if (patch == null) + { + return super.visitMethod(access, name, descriptor, signature, exceptions); + } + ClassReader cr = new ClassReader(patch); + ClassNode patchNode = new ClassNode(Opcodes.ASM6); + cr.accept(patchNode, 0); + for (Object obj : patchNode.methods) + { + MethodNode patchMethod = (MethodNode) obj; + if ((patchMethod.access == access && patchMethod.name.equals("append$" + name) && + patchMethod.desc.equals(descriptor)) && + RefUtils.checkAnnotation(patchMethod, "Append")) + { + MethodVisitor mv = + new MethodVisitor(Opcodes.ASM6, super.visitMethod(access, name, descriptor, signature, + exceptions)) + { + }; + mv.visitCode(); + + for (Object obj2 : classNode.methods) + { + MethodNode classMethod = (MethodNode) obj2; + if (classMethod.access == access && classMethod.name.equals(name) && + classMethod.desc.equals(descriptor)) + { + AbstractInsnNode inode = classMethod.instructions.getLast(); + + while(inode instanceof LabelNode || inode instanceof LineNumberNode) + { + inode = inode.getPrevious(); + } + + if(RefUtils.isReturn(inode.getOpcode(), true)) + { + log.error("[Append] Can't append to {}.{}, requires typed return opcode", className, name); + return super.visitMethod(access, name, descriptor, signature, exceptions); + } + + classMethod.instructions.remove(inode); + + classMethod.accept(new MethodReflector(mv)); + break; + } + } + + patchMethod.accept(new MethodReflector(mv)); + + mv.visitEnd(); + return mv; + } + } + return super.visitMethod(access, name, descriptor, signature, exceptions); + } +} diff --git a/runelite-client/src/main/java/net/runelite/client/rs/mixins/transformers/DoNothingTransformer.java b/runelite-client/src/main/java/net/runelite/client/rs/mixins/transformers/DoNothingTransformer.java new file mode 100644 index 0000000000..7f6079c792 --- /dev/null +++ b/runelite-client/src/main/java/net/runelite/client/rs/mixins/transformers/DoNothingTransformer.java @@ -0,0 +1,38 @@ +/* + * Copyright (c) 2019, ThatGamerBlue + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +package net.runelite.client.rs.mixins.transformers; + +import org.objectweb.asm.ClassVisitor; +import org.objectweb.asm.Opcodes; +import org.objectweb.asm.tree.ClassNode; + +public class DoNothingTransformer extends ClassVisitor +{ + public DoNothingTransformer(ClassVisitor parent, byte[] patch, ClassNode node) + { + super(Opcodes.ASM6, parent); + } +} diff --git a/runelite-client/src/main/java/net/runelite/client/rs/mixins/transformers/InjectTransformer.java b/runelite-client/src/main/java/net/runelite/client/rs/mixins/transformers/InjectTransformer.java new file mode 100644 index 0000000000..283d6d4208 --- /dev/null +++ b/runelite-client/src/main/java/net/runelite/client/rs/mixins/transformers/InjectTransformer.java @@ -0,0 +1,125 @@ +/* + * Copyright (c) 2019, ThatGamerBlue + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +package net.runelite.client.rs.mixins.transformers; + +import net.runelite.client.util.RefUtils; +import org.objectweb.asm.ClassReader; +import org.objectweb.asm.ClassVisitor; +import org.objectweb.asm.MethodVisitor; +import org.objectweb.asm.Opcodes; +import org.objectweb.asm.tree.ClassNode; +import org.objectweb.asm.tree.FieldNode; +import org.objectweb.asm.tree.MethodNode; + +public class InjectTransformer extends ClassVisitor +{ + + private final byte[] patch; + private ClassNode node; + private String className; + private boolean patching = false; + + public InjectTransformer(ClassVisitor classVisitor, byte[] patch, ClassNode node) + { + super(Opcodes.ASM6, classVisitor); + this.patch = patch; + this.node = node; + } + + @Override + public void visit(int version, int access, String name, String signature, String superName, String[] interfaces) + { + className = name; + super.visit(version, access, name, signature, superName, interfaces); + } + + @Override + public MethodVisitor visitMethod(int access, String name, String descriptor, String signature, String[] exceptions) + { + if (patch == null || name.startsWith("1protect$")) + { + return super.visitMethod(access, name, descriptor, signature, exceptions); + } + if (name.startsWith("prepend$") || name.startsWith("append$")|| + (patching && name.startsWith("<"))) + { + return null; + } + MethodVisitor mv = super.visitMethod(access, name, descriptor, signature, exceptions); + ClassReader cr = new ClassReader(patch); + ClassNode patchNode = new ClassNode(Opcodes.ASM6); + cr.accept(patchNode, 0); + for (Object obj : patchNode.methods) + { + MethodNode node = (MethodNode) obj; + if ((node.access == access && node.name.equals(name) && node.desc.equals(descriptor)) && + RefUtils.checkAnnotation(node, "Inject")) + { + mv.visitCode(); + node.accept(new MethodReflector(mv)); + mv.visitEnd(); + } + } + return mv; + } + + @Override + public void visitEnd() + { + + if (patch == null) + { + super.visitEnd(); + return; + } + + ClassReader cr = new ClassReader(patch); + ClassNode patchNode = new ClassNode(Opcodes.ASM6); + cr.accept(patchNode, 0); + patching = true; + for (Object obj : patchNode.methods) + { + MethodNode node = (MethodNode) obj; + if (RefUtils.checkAnnotation(node, "Inject")) + { + visitMethod(node.access, node.name, node.desc, node.signature, + (String[]) node.exceptions.toArray(new String[0])); + } + } + + for (Object obj : patchNode.fields) + { + FieldNode node = (FieldNode) obj; + if (RefUtils.checkAnnotation(node, "Inject")) + { + visitField(node.access, node.name, node.desc, node.signature, node.value); + } + } + patching = false; + super.visitEnd(); + } + +} diff --git a/runelite-client/src/main/java/net/runelite/client/rs/mixins/transformers/InterfaceTransformer.java b/runelite-client/src/main/java/net/runelite/client/rs/mixins/transformers/InterfaceTransformer.java new file mode 100644 index 0000000000..633b45409b --- /dev/null +++ b/runelite-client/src/main/java/net/runelite/client/rs/mixins/transformers/InterfaceTransformer.java @@ -0,0 +1,78 @@ +/* + * Copyright (c) 2019, ThatGamerBlue + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +package net.runelite.client.rs.mixins.transformers; + +import lombok.extern.slf4j.Slf4j; +import org.objectweb.asm.ClassReader; +import org.objectweb.asm.ClassVisitor; +import org.objectweb.asm.Opcodes; +import org.objectweb.asm.tree.ClassNode; + +import java.util.ArrayList; +import java.util.Arrays; + +@Slf4j +public class InterfaceTransformer extends ClassVisitor implements Opcodes +{ + + private final byte[] patch; + private ClassNode node; + private String className; + + public InterfaceTransformer(ClassVisitor classVisitor, byte[] patch, ClassNode node) + { + super(Opcodes.ASM6, classVisitor); + this.patch = patch; + this.node = node; + } + + @Override + public void visit(int version, int access, String name, String signature, String superName, String[] interfaces) + { + className = name; + if(patch != null) + { + ClassReader reader = new ClassReader(patch); + ClassNode pNode = new ClassNode(); + reader.accept(pNode, 0); + if(pNode.interfaces != null && pNode.interfaces.size() != 0) + { + if(interfaces == null) + { + interfaces = (String[]) pNode.interfaces.toArray(new String[0]); + } + else + { + ArrayList list = new ArrayList<>(Arrays.asList(interfaces)); + pNode.interfaces.forEach((s) -> list.add((String) s)); + interfaces = list.toArray(new String[0]); + } + } + } + super.visit(version, access, name, signature, superName, interfaces); + } + +} diff --git a/runelite-client/src/main/java/net/runelite/client/rs/mixins/transformers/MethodReflector.java b/runelite-client/src/main/java/net/runelite/client/rs/mixins/transformers/MethodReflector.java new file mode 100644 index 0000000000..775b791f5b --- /dev/null +++ b/runelite-client/src/main/java/net/runelite/client/rs/mixins/transformers/MethodReflector.java @@ -0,0 +1,295 @@ +/* + * Copyright (c) 2019, ThatGamerBlue + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +package net.runelite.client.rs.mixins.transformers; + +import org.objectweb.asm.AnnotationVisitor; +import org.objectweb.asm.Attribute; +import org.objectweb.asm.Handle; +import org.objectweb.asm.Label; +import org.objectweb.asm.MethodVisitor; +import org.objectweb.asm.Opcodes; +import org.objectweb.asm.TypePath; + +public class MethodReflector extends MethodVisitor +{ + + private MethodVisitor target; + + public MethodReflector(MethodVisitor target) + { + super(Opcodes.ASM6); + this.target = target; + } + + public void visitParameter(String var1, int var2) + { + if (target != null) + { + target.visitParameter(var1, var2); + } + super.visitParameter(var1, var2); + } + + public AnnotationVisitor visitAnnotationDefault() + { + return super.visitAnnotationDefault(); + } + + public AnnotationVisitor visitAnnotation(String var1, boolean var2) + { + return super.visitAnnotation(var1, var2); + } + + public AnnotationVisitor visitTypeAnnotation(int var1, TypePath var2, String var3, boolean var4) + { + return super.visitTypeAnnotation(var1, var2, var3, var4); + } + + public AnnotationVisitor visitParameterAnnotation(int var1, String var2, boolean var3) + { + return super.visitParameterAnnotation(var1, var2, var3); + } + + public void visitAttribute(Attribute var1) + { + if (target != null) + { + target.visitAttribute(var1); + } + super.visitAttribute(var1); + } + + public void visitFrame(int var1, int var2, Object[] var3, int var4, Object[] var5) + { + if (target != null) + { + target.visitFrame(var1, var2, var3, var4, var5); + } + super.visitFrame(var1, var2, var3, var4, var5); + } + + public void visitInsn(int var1) + { + if (target != null) + { + target.visitInsn(var1); + } + super.visitInsn(var1); + } + + public void visitIntInsn(int var1, int var2) + { + if (target != null) + { + target.visitIntInsn(var1, var2); + } + super.visitIntInsn(var1, var2); + } + + public void visitVarInsn(int var1, int var2) + { + if (target != null) + { + target.visitVarInsn(var1, var2); + } + super.visitVarInsn(var1, var2); + } + + public void visitTypeInsn(int var1, String var2) + { + if (target != null) + { + target.visitTypeInsn(var1, var2); + } + super.visitTypeInsn(var1, var2); + } + + public void visitFieldInsn(int var1, String var2, String var3, String var4) + { + if (target != null) + { + target.visitFieldInsn(var1, var2, var3, var4); + } + super.visitFieldInsn(var1, var2, var3, var4); + } + + /** + * @deprecated + */ + public void visitMethodInsn(int var1, String var2, String var3, String var4) + { + if (target != null) + { + target.visitMethodInsn(var1, var2, var3, var4); + } + super.visitMethodInsn(var1, var2, var3, var4); + } + + public void visitMethodInsn(int var1, String var2, String var3, String var4, boolean var5) + { + if (target != null) + { + target.visitMethodInsn(var1, var2, var3, var4, var5); + } + super.visitMethodInsn(var1, var2, var3, var4, var5); + } + + public void visitInvokeDynamicInsn(String var1, String var2, Handle var3, Object... var4) + { + if (target != null) + { + target.visitInvokeDynamicInsn(var1, var2, var3, var4); + } + super.visitInvokeDynamicInsn(var1, var2, var3, var4); + } + + public void visitJumpInsn(int var1, Label var2) + { + if (target != null) + { + target.visitJumpInsn(var1, var2); + } + super.visitJumpInsn(var1, var2); + } + + public void visitLabel(Label var1) + { + if (target != null) + { + target.visitLabel(var1); + } + super.visitLabel(var1); + } + + public void visitLdcInsn(Object var1) + { + if (target != null) + { + target.visitLdcInsn(var1); + } + super.visitLdcInsn(var1); + } + + public void visitIincInsn(int var1, int var2) + { + if (target != null) + { + target.visitIincInsn(var1, var2); + } + super.visitIincInsn(var1, var2); + } + + public void visitTableSwitchInsn(int var1, int var2, Label var3, Label... var4) + { + if (target != null) + { + target.visitTableSwitchInsn(var1, var2, var3, var4); + } + super.visitTableSwitchInsn(var1, var2, var3, var4); + } + + public void visitLookupSwitchInsn(Label var1, int[] var2, Label[] var3) + { + if (target != null) + { + target.visitLookupSwitchInsn(var1, var2, var3); + } + super.visitLookupSwitchInsn(var1, var2, var3); + } + + public void visitMultiANewArrayInsn(String var1, int var2) + { + if (target != null) + { + target.visitMultiANewArrayInsn(var1, var2); + } + super.visitMultiANewArrayInsn(var1, var2); + } + + public AnnotationVisitor visitInsnAnnotation(int var1, TypePath var2, String var3, boolean var4) + { + if (target != null) + { + target.visitInsnAnnotation(var1, var2, var3, var4); + } + return super.visitInsnAnnotation(var1, var2, var3, var4); + } + + public void visitTryCatchBlock(Label var1, Label var2, Label var3, String var4) + { + if (target != null) + { + target.visitTryCatchBlock(var1, var2, var3, var4); + } + super.visitTryCatchBlock(var1, var2, var3, var4); + } + + public AnnotationVisitor visitTryCatchAnnotation(int var1, TypePath var2, String var3, boolean var4) + { + if (target != null) + { + target.visitTryCatchAnnotation(var1, var2, var3, var4); + } + return super.visitTryCatchAnnotation(var1, var2, var3, var4); + } + + public void visitLocalVariable(String var1, String var2, String var3, Label var4, Label var5, int var6) + { + if (target != null) + { + target.visitLocalVariable(var1, var2, var3, var4, var5, var6); + } + super.visitLocalVariable(var1, var2, var3, var4, var5, var6); + } + + public AnnotationVisitor visitLocalVariableAnnotation(int var1, TypePath var2, Label[] var3, Label[] var4, int[] var5, String var6, boolean var7) + { + if (target != null) + { + target.visitLocalVariableAnnotation(var1, var2, var3, var4, var5, var6, var7); + } + return super.visitLocalVariableAnnotation(var1, var2, var3, var4, var5, var6, var7); + } + + public void visitLineNumber(int var1, Label var2) + { + if (target != null) + { + target.visitLineNumber(var1, var2); + } + super.visitLineNumber(var1, var2); + } + + public void visitMaxs(int var1, int var2) + { + if (target != null) + { + target.visitMaxs(var1, var2); + } + super.visitMaxs(var1, var2); + } + +} diff --git a/runelite-client/src/main/java/net/runelite/client/rs/mixins/transformers/OverwriteSanityCheck.java b/runelite-client/src/main/java/net/runelite/client/rs/mixins/transformers/OverwriteSanityCheck.java new file mode 100644 index 0000000000..ff619753de --- /dev/null +++ b/runelite-client/src/main/java/net/runelite/client/rs/mixins/transformers/OverwriteSanityCheck.java @@ -0,0 +1,87 @@ +/* + * Copyright (c) 2019, ThatGamerBlue + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +package net.runelite.client.rs.mixins.transformers; + +import lombok.extern.slf4j.Slf4j; +import net.runelite.client.util.RefUtils; +import org.objectweb.asm.ClassVisitor; +import org.objectweb.asm.MethodVisitor; +import org.objectweb.asm.Opcodes; +import org.objectweb.asm.tree.ClassNode; +import org.objectweb.asm.tree.MethodNode; + +import java.util.ArrayList; + +@Slf4j +public class OverwriteSanityCheck extends SanityChecker implements Opcodes +{ + + private String className; + private ClassNode patchNode; + public static final ArrayList methodsUsed = new ArrayList<>(); + + public OverwriteSanityCheck(ClassVisitor classVisitor, ClassNode node) + { + super(ASM6, classVisitor); + this.className = node.name; + this.patchNode = node; + } + + @Override + public MethodVisitor visitMethod(int access, String name, String descriptor, String signature, String[] exceptions) + { + String check = String.format("%s %s %s %s", className, name, + descriptor, access); + + MethodNode methodNode = null; + for (Object obj2 : patchNode.methods) + { + MethodNode classMethod = (MethodNode) obj2; + if (classMethod.access == access && classMethod.name.equals(name) && + classMethod.desc.equals(descriptor)) + { + methodNode = classMethod; + } + } + + if(methodNode == null) + { + log.error("[OverwriteSanity] Failed to find original patch method for {}", check); + return super.visitMethod(access, name, descriptor, signature, exceptions); + } + + if (!RefUtils.checkAnnotation(methodNode, "Overwrite")) + { + return super.visitMethod(access, name, descriptor, signature, exceptions); + } + + if (!methodsUsed.contains(check)) + { + throw new RuntimeException("[OverwriteSanity] Overwrite target not found: " + check); + } + return super.visitMethod(access, name, descriptor, signature, exceptions); + } +} diff --git a/runelite-client/src/main/java/net/runelite/client/rs/mixins/transformers/OverwriteTransformer.java b/runelite-client/src/main/java/net/runelite/client/rs/mixins/transformers/OverwriteTransformer.java new file mode 100644 index 0000000000..f7c8c09bef --- /dev/null +++ b/runelite-client/src/main/java/net/runelite/client/rs/mixins/transformers/OverwriteTransformer.java @@ -0,0 +1,102 @@ +/* + * Copyright (c) 2019, ThatGamerBlue + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +package net.runelite.client.rs.mixins.transformers; + +import lombok.extern.slf4j.Slf4j; +import net.runelite.client.util.RefUtils; +import org.objectweb.asm.ClassReader; +import org.objectweb.asm.ClassVisitor; +import org.objectweb.asm.MethodVisitor; +import org.objectweb.asm.Opcodes; +import org.objectweb.asm.tree.ClassNode; +import org.objectweb.asm.tree.MethodNode; + +@Slf4j +public class OverwriteTransformer extends ClassVisitor +{ + + private final byte[] patch; + private ClassNode node; + private String className; + + public OverwriteTransformer(ClassVisitor classVisitor, byte[] patch, ClassNode node) + { + super(Opcodes.ASM6, classVisitor); + this.patch = patch; + this.node = node; + this.className = node.name; + } + + @Override + public void visit(int version, int access, String name, String signature, String superName, String[] interfaces) + { + className = name; + super.visit(version, access, name, signature, superName, interfaces); + } + + @Override + public MethodVisitor visitMethod(int access, String name, String descriptor, String signature, String[] exceptions) + { + if (patch == null || name.startsWith("1protect$")) + { + return super.visitMethod(access, name, descriptor, signature, exceptions); + } + + if (name.startsWith("prepend$") || name.startsWith("append$")) + { + return null; + } + + ClassReader cr = new ClassReader(patch); + ClassNode patchNode = new ClassNode(Opcodes.ASM6); + cr.accept(patchNode, 0); + + for (Object obj : patchNode.methods) + { + MethodNode patchMethod = (MethodNode) obj; + + if (patchMethod.access == access && patchMethod.name.equals(name) && patchMethod.desc.equals(descriptor)) + { + if (RefUtils.checkAnnotation(patchMethod, "Overwrite")) + { + MethodVisitor mv = + new MethodVisitor(Opcodes.ASM6, super.visitMethod(access, name, descriptor, signature, + exceptions)) + { + }; + mv.visitCode(); + patchMethod.accept(new MethodReflector(mv)); + mv.visitEnd(); + String s = String.format("%s %s %s %s", className, patchMethod.name, + patchMethod.desc, patchMethod.access); + OverwriteSanityCheck.methodsUsed.add(s); + return mv; + } + } + } + return super.visitMethod(access, name, descriptor, signature, exceptions); + } +} diff --git a/runelite-client/src/main/java/net/runelite/client/rs/mixins/transformers/PrependTransformer.java b/runelite-client/src/main/java/net/runelite/client/rs/mixins/transformers/PrependTransformer.java new file mode 100644 index 0000000000..6aedbab699 --- /dev/null +++ b/runelite-client/src/main/java/net/runelite/client/rs/mixins/transformers/PrependTransformer.java @@ -0,0 +1,125 @@ +/* + * Copyright (c) 2019, ThatGamerBlue + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +package net.runelite.client.rs.mixins.transformers; + +import net.runelite.client.util.RefUtils; +import org.objectweb.asm.ClassReader; +import org.objectweb.asm.ClassVisitor; +import org.objectweb.asm.MethodVisitor; +import org.objectweb.asm.Opcodes; +import org.objectweb.asm.tree.AbstractInsnNode; +import org.objectweb.asm.tree.ClassNode; +import org.objectweb.asm.tree.InsnNode; +import org.objectweb.asm.tree.MethodNode; + +public class PrependTransformer extends ClassVisitor +{ + + private final byte[] patch; + private String className; + private ClassNode classNode; + + public PrependTransformer(ClassVisitor classVisitor, byte[] patch, ClassNode node) + { + super(Opcodes.ASM6, classVisitor); + this.patch = patch; + this.classNode = node; + } + + @Override + public void visit(int version, int access, String name, String signature, String superName, String[] interfaces) + { + className = name; + super.visit(version, access, name, signature, superName, interfaces); + } + + @Override + public MethodVisitor visitMethod(int access, String name, String descriptor, String signature, String[] exceptions) + { + if (patch == null) + { + return super.visitMethod(access, name, descriptor, signature, exceptions); + } + ClassReader cr = new ClassReader(patch); + ClassNode patchNode = new ClassNode(Opcodes.ASM6); + cr.accept(patchNode, 0); + for (Object obj : patchNode.methods) + { + MethodNode patchMethod = (MethodNode) obj; + if ((patchMethod.access == access && patchMethod.name.equals("prepend$" + name) && + patchMethod.desc.equals(descriptor)) && + RefUtils.checkAnnotation(patchMethod, "Prepend")) + { + MethodVisitor mv = + new MethodVisitor(Opcodes.ASM6, super.visitMethod(access, name, descriptor, signature, + exceptions)) + { + }; + mv.visitCode(); + + AbstractInsnNode node = patchMethod.instructions.getLast(); + while (!(node instanceof InsnNode)) + { + node = node.getPrevious(); + } + + if (RefUtils.isReturn(node.getOpcode())) + { + patchMethod.instructions.remove(node); + } + + patchMethod.accept(new MethodReflector(mv)); + + for (Object obj2 : classNode.methods) + { + MethodNode classMethod = (MethodNode) obj2; + if (classMethod.access == access && classMethod.name.equals(name) && + classMethod.desc.equals(descriptor)) + { + classMethod.accept(new MethodReflector(mv)); + break; + } + } + + mv.visitEnd(); + return mv; + } + } + return super.visitMethod(access, name, descriptor, signature, exceptions); + } + + @Override + public void visitEnd() + { + if (patch == null) + { + super.visitEnd(); + return; + } + super.visitEnd(); + } + +} diff --git a/runelite-client/src/main/java/net/runelite/client/rs/mixins/transformers/ProtectTransformer.java b/runelite-client/src/main/java/net/runelite/client/rs/mixins/transformers/ProtectTransformer.java new file mode 100644 index 0000000000..b3c52b5783 --- /dev/null +++ b/runelite-client/src/main/java/net/runelite/client/rs/mixins/transformers/ProtectTransformer.java @@ -0,0 +1,51 @@ +/* + * Copyright (c) 2019, ThatGamerBlue + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +package net.runelite.client.rs.mixins.transformers; + +import org.objectweb.asm.commons.Remapper; + +public class ProtectTransformer extends Remapper +{ + + public String mapFieldName(String owner, String name, String descriptor) + { + if (name.startsWith("1protect$")) + { + name = name.substring("1protect$".length()); + } + return super.mapFieldName(owner, name, descriptor); + } + + public String mapMethodName(String owner, String name, String descriptor) + { + if (name.startsWith("1protect$")) + { + name = name.substring("1protect$".length()); + } + return super.mapMethodName(owner, name, descriptor); + } + +} diff --git a/runelite-client/src/main/java/net/runelite/client/rs/mixins/transformers/SanityChecker.java b/runelite-client/src/main/java/net/runelite/client/rs/mixins/transformers/SanityChecker.java new file mode 100644 index 0000000000..f7a5cf1915 --- /dev/null +++ b/runelite-client/src/main/java/net/runelite/client/rs/mixins/transformers/SanityChecker.java @@ -0,0 +1,38 @@ +/* + * Copyright (c) 2019, ThatGamerBlue + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +package net.runelite.client.rs.mixins.transformers; + +import org.objectweb.asm.ClassVisitor; +import org.objectweb.asm.Opcodes; + +public abstract class SanityChecker extends ClassVisitor implements Opcodes +{ + protected SanityChecker(int i, ClassVisitor classVisitor) + { + super(i, classVisitor); + } + +} diff --git a/runelite-client/src/main/java/net/runelite/client/util/RefUtils.java b/runelite-client/src/main/java/net/runelite/client/util/RefUtils.java new file mode 100644 index 0000000000..50733334b9 --- /dev/null +++ b/runelite-client/src/main/java/net/runelite/client/util/RefUtils.java @@ -0,0 +1,84 @@ +/* + * Copyright (c) 2019, ThatGamerBlue + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +package net.runelite.client.util; + +import org.objectweb.asm.Opcodes; +import org.objectweb.asm.tree.AnnotationNode; +import org.objectweb.asm.tree.FieldNode; +import org.objectweb.asm.tree.MethodNode; + +public class RefUtils implements Opcodes +{ + + private static final String TYPE_PREFIX = "us/runelitepl/mixinprocessor/annotations/"; + + public static boolean isReturn(int opcode, boolean checkType) + { + return (opcode == RETURN && !checkType) || opcode == IRETURN || opcode == LRETURN || opcode == DRETURN || + opcode == ARETURN || opcode == FRETURN; + } + + public static boolean isReturn(int opcode) + { + return isReturn(opcode, false); + } + + public static boolean checkAnnotation(MethodNode method, String annotation) + { + if (method.visibleAnnotations != null) + { + for (Object obj : method.visibleAnnotations) + { + if (((AnnotationNode) obj).desc.equals(makeAnnotationDesc(annotation))) + { + return true; + } + } + } + return false; + } + + public static boolean checkAnnotation(FieldNode field, String annotation) + { + if (field.visibleAnnotations != null) + { + for (Object obj : field.visibleAnnotations) + { + if (((AnnotationNode) obj).desc.equals(makeAnnotationDesc(annotation))) + { + return true; + } + } + } + return false; + } + + public static String makeAnnotationDesc(String annot) + { + return "L" + TYPE_PREFIX + annot + ";"; + } + +} diff --git a/runescape-api/src/main/java/net/runelite/rs/api/RSClient.java b/runescape-api/src/main/java/net/runelite/rs/api/RSClient.java index d3dca84a44..1f2ffc03e7 100644 --- a/runescape-api/src/main/java/net/runelite/rs/api/RSClient.java +++ b/runescape-api/src/main/java/net/runelite/rs/api/RSClient.java @@ -975,5 +975,11 @@ public interface RSClient extends RSGameEngine, Client @Import("renderSelf") void toggleRenderSelf(); + + @Import("mouseRecorder") + RSMouseRecorder getMouseRecorder(); + + @Import("printMenuActions") + void setPrintMenuActions(boolean b); } diff --git a/runescape-api/src/main/java/net/runelite/rs/api/RSMouseRecorder.java b/runescape-api/src/main/java/net/runelite/rs/api/RSMouseRecorder.java new file mode 100644 index 0000000000..8cbbe545f7 --- /dev/null +++ b/runescape-api/src/main/java/net/runelite/rs/api/RSMouseRecorder.java @@ -0,0 +1,46 @@ +/* + * Copyright (c) 2019, ThatGamerBlue + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +package net.runelite.rs.api; + +import net.runelite.api.MouseRecorder; +import net.runelite.mapping.Import; + +public interface RSMouseRecorder extends MouseRecorder +{ + + @Import("xs") + int[] getXs(); + + @Import("ys") + int[] getYs(); + + @Import("millis") + long[] getMillis(); + + @Import("index") + int getIndex(); + +}